[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 16/24] ppc/pnv: Put "*-pnv-chip" and "pnv-xive" on the main s
From: |
Cédric Le Goater |
Subject: |
Re: [PATCH 16/24] ppc/pnv: Put "*-pnv-chip" and "pnv-xive" on the main system bus |
Date: |
Tue, 19 May 2020 15:05:28 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 5/18/20 7:04 AM, Markus Armbruster wrote:
> pnv_init() creates "power10_v1.0-pnv-chip", "power8_v2.0-pnv-chip",
> "power8e_v2.1-pnv-chip", "power8nvl_v1.0-pnv-chip", or
> "power9_v2.0-pnv-chip" sysbus devices in a way that leaves them
> unplugged.
>
> pnv_chip_power9_instance_init() creates a "pnv-xive" sysbus device in
> a way that leaves it unplugged.
>
> Create them the common way that puts them into the main system bus.
> Affects machines powernv8, powernv9, and powernv10. Visible in "info
> qtree". Here's the change for powernv9:
>
> bus: main-system-bus
> type System
> + dev: power9_v2.0-pnv-chip, id ""
> + chip-id = 0 (0x0)
> + ram-start = 0 (0x0)
> + ram-size = 1879048192 (0x70000000)
> + nr-cores = 1 (0x1)
> + cores-mask = 72057594037927935 (0xffffffffffffff)
> + nr-threads = 1 (0x1)
> + num-phbs = 6 (0x6)
> + mmio 000603fc00000000/0000000400000000
> [...]
> + dev: pnv-xive, id ""
> + ic-bar = 1692157036462080 (0x6030203100000)
> + vc-bar = 1689949371891712 (0x6010000000000)
> + pc-bar = 1690499127705600 (0x6018000000000)
> + tm-bar = 1692157036986368 (0x6030203180000)
>
> Cc: "Cédric Le Goater" <address@hidden>
> Cc: David Gibson <address@hidden>
> Cc: address@hidden
> Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Thanks,
C.
> ---
> hw/ppc/pnv.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c
> index da637822f9..8d4fc8109a 100644
> --- a/hw/ppc/pnv.c
> +++ b/hw/ppc/pnv.c
> @@ -818,7 +818,7 @@ static void pnv_init(MachineState *machine)
> pnv->chips = g_new0(PnvChip *, pnv->num_chips);
> for (i = 0; i < pnv->num_chips; i++) {
> char chip_name[32];
> - Object *chip = object_new(chip_typename);
> + Object *chip = OBJECT(qdev_create(NULL, chip_typename));
>
> pnv->chips[i] = PNV_CHIP(chip);
>
> @@ -1317,8 +1317,8 @@ static void pnv_chip_power9_instance_init(Object *obj)
> PnvChipClass *pcc = PNV_CHIP_GET_CLASS(obj);
> int i;
>
> - object_initialize_child(obj, "xive", &chip9->xive, sizeof(chip9->xive),
> - TYPE_PNV_XIVE, &error_abort, NULL);
> + sysbus_init_child_obj(obj, "xive", &chip9->xive, sizeof(chip9->xive),
> + TYPE_PNV_XIVE);
> object_property_add_alias(obj, "xive-fabric", OBJECT(&chip9->xive),
> "xive-fabric");
>
>