Merge commit 'gnu/master' into test
[qemu] / hw / ppc440_bamboo.c
index 6963309..00aa2c7 100644 (file)
@@ -16,8 +16,6 @@
 #include "net.h"
 #include "hw.h"
 #include "pci.h"
-#include "virtio-blk.h"
-#include "virtio-console.h"
 #include "boards.h"
 #include "sysemu.h"
 #include "ppc440.h"
@@ -36,20 +34,19 @@ static void *bamboo_load_device_tree(target_phys_addr_t addr,
     void *fdt = NULL;
 #ifdef HAVE_FDT
     uint32_t mem_reg_property[] = { 0, 0, ramsize };
-    char *path;
+    char *filename;
     int fdt_size;
-    int pathlen;
     int ret;
 
-    pathlen = snprintf(NULL, 0, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE) + 1;
-    path = qemu_malloc(pathlen);
-
-    snprintf(path, pathlen, "%s/%s", bios_dir, BINARY_DEVICE_TREE_FILE);
-
-    fdt = load_device_tree(path, &fdt_size);
-    free(path);
-    if (fdt == NULL)
+    filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, BINARY_DEVICE_TREE_FILE);
+    if (!filename) {
         goto out;
+    }
+    fdt = load_device_tree(filename, &fdt_size);
+    qemu_free(filename);
+    if (fdt == NULL) {
+        goto out;
+    }
 
     /* Manipulate device tree in memory. */
 
@@ -84,7 +81,7 @@ out:
     return fdt;
 }
 
-static void bamboo_init(ram_addr_t ram_size, int vga_ram_size,
+static void bamboo_init(ram_addr_t ram_size,
                         const char *boot_device,
                         const char *kernel_filename,
                         const char *kernel_cmdline,
@@ -113,14 +110,15 @@ static void bamboo_init(ram_addr_t ram_size, int vga_ram_size,
 
         /* Add virtio block devices. */
         while ((i = drive_get_index(IF_VIRTIO, 0, unit_id)) != -1) {
-            virtio_blk_init(pcibus, drives_table[i].bdrv);
+            pci_create_simple(pcibus, -1, "virtio-blk-pci");
             unit_id++;
         }
 
         /* Add virtio console devices */
         for(i = 0; i < MAX_VIRTIO_CONSOLES; i++) {
-            if (virtcon_hds[i])
-                virtio_console_init(pcibus, virtcon_hds[i]);
+            if (virtcon_hds[i]) {
+                pci_create_simple(pcibus, -1, "virtio-console-pci");
+            }
         }
 
         /* Register network interfaces. */
@@ -186,8 +184,15 @@ static void bamboo_init(ram_addr_t ram_size, int vga_ram_size,
         kvmppc_init();
 }
 
-QEMUMachine bamboo_machine = {
+static QEMUMachine bamboo_machine = {
     .name = "bamboo",
     .desc = "bamboo",
     .init = bamboo_init,
 };
+
+static void bamboo_machine_init(void)
+{
+    qemu_register_machine(&bamboo_machine);
+}
+
+machine_init(bamboo_machine_init);