mirror of https://github.com/xemu-project/xemu.git
PPC: e500: Select MPIC v4.2 on ppce500 platform
The compatible string is changed to fsl,mpic on all e500 platforms, to advertise the existence of BRR1. This matches what the device tree will have on real hardware. With MPIC v4.2 max_cpu can be increased from 15 to 32. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
bd25922e73
commit
f5fba9d27f
|
@ -297,7 +297,7 @@ static int ppce500_load_device_tree(CPUPPCState *env,
|
|||
snprintf(mpic, sizeof(mpic), "%s/pic@%llx", soc, MPC8544_MPIC_REGS_OFFSET);
|
||||
qemu_devtree_add_subnode(fdt, mpic);
|
||||
qemu_devtree_setprop_string(fdt, mpic, "device_type", "open-pic");
|
||||
qemu_devtree_setprop_string(fdt, mpic, "compatible", "chrp,open-pic");
|
||||
qemu_devtree_setprop_string(fdt, mpic, "compatible", "fsl,mpic");
|
||||
qemu_devtree_setprop_cells(fdt, mpic, "reg", MPC8544_MPIC_REGS_OFFSET,
|
||||
0x40000);
|
||||
qemu_devtree_setprop_cell(fdt, mpic, "#address-cells", 0);
|
||||
|
@ -545,7 +545,7 @@ void ppce500_init(PPCE500Params *params)
|
|||
mpic = g_new(qemu_irq, 256);
|
||||
dev = qdev_create(NULL, "openpic");
|
||||
qdev_prop_set_uint32(dev, "nb_cpus", smp_cpus);
|
||||
qdev_prop_set_uint32(dev, "model", OPENPIC_MODEL_FSL_MPIC_20);
|
||||
qdev_prop_set_uint32(dev, "model", params->mpic_version);
|
||||
qdev_init_nofail(dev);
|
||||
s = SYS_BUS_DEVICE(dev);
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@ typedef struct PPCE500Params {
|
|||
|
||||
/* required -- must at least add toplevel board compatible */
|
||||
void (*fixup_devtree)(struct PPCE500Params *params, void *fdt);
|
||||
|
||||
int mpic_version;
|
||||
} PPCE500Params;
|
||||
|
||||
void ppce500_init(PPCE500Params *params);
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "../boards.h"
|
||||
#include "sysemu/device_tree.h"
|
||||
#include "hw/pci/pci.h"
|
||||
#include "hw/openpic.h"
|
||||
|
||||
static void e500plat_fixup_devtree(PPCE500Params *params, void *fdt)
|
||||
{
|
||||
|
@ -44,6 +45,7 @@ static void e500plat_init(QEMUMachineInitArgs *args)
|
|||
.pci_first_slot = 0x1,
|
||||
.pci_nr_slots = PCI_SLOT_MAX - 1,
|
||||
.fixup_devtree = e500plat_fixup_devtree,
|
||||
.mpic_version = OPENPIC_MODEL_FSL_MPIC_42,
|
||||
};
|
||||
|
||||
ppce500_init(¶ms);
|
||||
|
@ -53,7 +55,7 @@ static QEMUMachine e500plat_machine = {
|
|||
.name = "ppce500",
|
||||
.desc = "generic paravirt e500 platform",
|
||||
.init = e500plat_init,
|
||||
.max_cpus = 15,
|
||||
.max_cpus = 32,
|
||||
DEFAULT_MACHINE_OPTIONS,
|
||||
};
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "e500.h"
|
||||
#include "../boards.h"
|
||||
#include "sysemu/device_tree.h"
|
||||
#include "hw/openpic.h"
|
||||
|
||||
static void mpc8544ds_fixup_devtree(PPCE500Params *params, void *fdt)
|
||||
{
|
||||
|
@ -43,6 +44,7 @@ static void mpc8544ds_init(QEMUMachineInitArgs *args)
|
|||
.pci_first_slot = 0x11,
|
||||
.pci_nr_slots = 2,
|
||||
.fixup_devtree = mpc8544ds_fixup_devtree,
|
||||
.mpic_version = OPENPIC_MODEL_FSL_MPIC_20,
|
||||
};
|
||||
|
||||
ppce500_init(¶ms);
|
||||
|
|
Loading…
Reference in New Issue