Commit 83b90bf0 authored by Cédric Le Goater's avatar Cédric Le Goater Committed by David Gibson
Browse files

ppc/pnv: introduce new skiboot platform properties



Newer skiboots (after 6.3) support QEMU platforms that have
characteristics closer to real OpenPOWER systems. The CPU type is used
to define the BMC drivers: Aspeed AST2400 for POWER8 processors and
AST2500 for POWER9s.

Advertise the new platform property names, "qemu,powernv8" and
"qemu,powernv9", using the CPU type chosen for the QEMU PowerNV
machine. Also, advertise the original platform name "qemu,powernv" in
case of POWER8 processors for compatibility with older skiboots.

Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
Message-Id: <20190527071749.31499-1-clg@kaod.org>
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 3725ef1a
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -450,7 +450,8 @@ static void pnv_dt_power_mgt(void *fdt)

static void *pnv_dt_create(MachineState *machine)
{
    const char plat_compat[] = "qemu,powernv\0ibm,powernv";
    const char plat_compat8[] = "qemu,powernv8\0qemu,powernv\0ibm,powernv";
    const char plat_compat9[] = "qemu,powernv9\0ibm,powernv";
    PnvMachineState *pnv = PNV_MACHINE(machine);
    void *fdt;
    char *buf;
@@ -465,8 +466,14 @@ static void *pnv_dt_create(MachineState *machine)
    _FDT((fdt_setprop_cell(fdt, 0, "#size-cells", 0x2)));
    _FDT((fdt_setprop_string(fdt, 0, "model",
                             "IBM PowerNV (emulated by qemu)")));
    _FDT((fdt_setprop(fdt, 0, "compatible", plat_compat,
                      sizeof(plat_compat))));
    if (pnv_is_power9(pnv)) {
        _FDT((fdt_setprop(fdt, 0, "compatible", plat_compat9,
                          sizeof(plat_compat9))));
    } else {
        _FDT((fdt_setprop(fdt, 0, "compatible", plat_compat8,
                          sizeof(plat_compat8))));
    }


    buf =  qemu_uuid_unparse_strdup(&qemu_uuid);
    _FDT((fdt_setprop_string(fdt, 0, "vm,uuid", buf)));