diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index ebb6d96689e847ede6fc935344a567b2ee355d8e..564f6548e4287b3b7ca524bc41a4928833c31bf3 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -339,7 +339,8 @@ static int ppce500_load_device_tree(CPUPPCState *env, qemu_devtree_setprop_cells(fdt, pci, "interrupt-map-mask", 0xf800, 0x0, 0x0, 0x7); pci_map = pci_map_create(fdt, qemu_devtree_get_phandle(fdt, mpic), - 0x11, 2, &len); + params->pci_first_slot, params->pci_nr_slots, + &len); qemu_devtree_setprop(fdt, pci, "interrupt-map", pci_map, len); qemu_devtree_setprop_phandle(fdt, pci, "interrupt-parent", mpic); qemu_devtree_setprop_cells(fdt, pci, "interrupts", 24, 2); @@ -569,6 +570,7 @@ void ppce500_init(PPCE500Params *params) /* PCI */ dev = qdev_create(NULL, "e500-pcihost"); + qdev_prop_set_uint32(dev, "first_slot", params->pci_first_slot); qdev_init_nofail(dev); s = SYS_BUS_DEVICE(dev); sysbus_connect_irq(s, 0, mpic[pci_irq_nrs[0]]); diff --git a/hw/ppc/e500.h b/hw/ppc/e500.h index 7ae87f4e214ca391db37fbbd96bf9cea292433d2..f5ff27385b89010e94015bc9da3b661d7691d6ec 100644 --- a/hw/ppc/e500.h +++ b/hw/ppc/e500.h @@ -9,6 +9,8 @@ typedef struct PPCE500Params { const char *kernel_cmdline; const char *initrd_filename; const char *cpu_model; + int pci_first_slot; + int pci_nr_slots; /* e500-specific params */ diff --git a/hw/ppc/e500plat.c b/hw/ppc/e500plat.c index 4cfb94061adb2f05e1a5ce5ac0230aa950c9093e..9365213aff879472b1ae48d5bcd9e172b2a58ec0 100644 --- a/hw/ppc/e500plat.c +++ b/hw/ppc/e500plat.c @@ -40,6 +40,8 @@ static void e500plat_init(QEMUMachineInitArgs *args) .kernel_cmdline = kernel_cmdline, .initrd_filename = initrd_filename, .cpu_model = cpu_model, + .pci_first_slot = 0x11, + .pci_nr_slots = 2, .fixup_devtree = e500plat_fixup_devtree, }; diff --git a/hw/ppc/mpc8544ds.c b/hw/ppc/mpc8544ds.c index e6516619416687843ec82d4938b7e01d35f9c1c8..7e1761d20c4d365095065c715d989e2af75554c0 100644 --- a/hw/ppc/mpc8544ds.c +++ b/hw/ppc/mpc8544ds.c @@ -40,6 +40,8 @@ static void mpc8544ds_init(QEMUMachineInitArgs *args) .kernel_cmdline = kernel_cmdline, .initrd_filename = initrd_filename, .cpu_model = cpu_model, + .pci_first_slot = 0x11, + .pci_nr_slots = 2, .fixup_devtree = mpc8544ds_fixup_devtree, };