qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH v4 5/9] ppc/xics: Use a helper to add a new ICS


From: David Gibson
Subject: Re: [Qemu-ppc] [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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]