[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 5/9] ppc/xics: Use a helper to add a new ICS
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [PATCH v4 5/9] ppc/xics: Use a helper to add a new ICS |
Date: |
Fri, 23 Sep 2016 10:37:22 +1000 |
User-agent: |
Mutt/1.7.0 (2016-08-17) |
On Thu, Sep 22, 2016 at 08:21:00AM +0200, Cédric Le Goater wrote:
> On 09/22/2016 01:40 AM, David Gibson wrote:
> > On Mon, Sep 19, 2016 at 11:59:33AM +0530, Nikunj A Dadhania wrote:
> >> From: Benjamin Herrenschmidt <address@hidden>
> >>
> >> Signed-off-by: Benjamin Herrenschmidt <address@hidden>
> >> [Move object allocation and adding child to the helper]
> >> Signed-off-by: Nikunj A Dadhania <address@hidden>
> >> Reviewed-by: David Gibson <address@hidden>
> >> ---
> >> hw/intc/xics.c | 10 ++++++++++
> >> hw/intc/xics_spapr.c | 6 +-----
> >> include/hw/ppc/xics.h | 1 +
> >> 3 files changed, 12 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/hw/intc/xics.c b/hw/intc/xics.c
> >> index 05e938f..c7901c4 100644
> >> --- a/hw/intc/xics.c
> >> +++ b/hw/intc/xics.c
> >> @@ -109,6 +109,16 @@ static void xics_common_reset(DeviceState *d)
> >> }
> >> }
> >>
> >> +void xics_add_ics(XICSState *xics)
> >> +{
> >> + ICSState *ics;
> >> +
> >> + ics = ICS(object_new(TYPE_ICS));
> >> + object_property_add_child(OBJECT(xics), "ics", OBJECT(ics), NULL);
> >
> > You'll need to construct a name here so you don't have all the ics
> > objects called an indistinguishable "ics".
>
> Yes, exactly, and so PowerNV does not use it because at least three ics
> are needed :
>
> qemu) info qom-tree
> /machine (powernv-machine)
> /unattached (container)
> /sysbus (System)
> /ipmi-bt[0] (qemu:memory-region)
> /device[0] (pnv-phb3)
> /ics-phb-lsi (ics)
> /ics-phb-msi (phb3-msi)
>
> ...
>
> /psi (pnv-psi)
> /xscom-psi[0] (qemu:memory-region)
> /psihb[0] (qemu:memory-region)
> /ics-psi (ics)
>
>
> I think we can drop that patch.
>
>
> However some routine like this one :
>
> +void xics_insert_ics(XICSState *xics, ICSState *ics)
> +{
> + ics->xics = xics;
> + QLIST_INSERT_HEAD(&xics->ics, ics, list);
> +}
> +
>
> would be useful to hide the list details below xics :
Yes, that makes sense.
>
>
> /* link in the PSI ICS */
> xics_insert_ics(XICS_COMMON(&chip->xics), &chip->psi.ics);
>
> ....
>
> /* insert the ICS in XICS */
> xics_insert_ics(xics, phb->lsi_ics);
> xics_insert_ics(xics, ICS_BASE(phb->msis));
>
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
Re: [Qemu-devel] [PATCH v4 3/9] ppc/xics: Make the ICSState a list, David Gibson, 2016/09/21
[Qemu-devel] [PATCH v4 8/9] ppc/xics: Add xics to the monitor "info pic" command, Nikunj A Dadhania, 2016/09/19