[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v5 07/17] ppc/pnv: add XSCOM infrastructure
From: |
Cédric Le Goater |
Subject: |
Re: [Qemu-ppc] [PATCH v5 07/17] ppc/pnv: add XSCOM infrastructure |
Date: |
Tue, 25 Oct 2016 08:24:40 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
On 10/25/2016 03:13 AM, David Gibson wrote:
> On Sat, Oct 22, 2016 at 11:46:40AM +0200, Cédric Le Goater wrote:
>> On a real POWER8 system, the Pervasive Interconnect Bus (PIB) serves
>> as a backbone to connect different units of the system. The host
>> firmware connects to the PIB through a bridge unit, the
>> Alter-Display-Unit (ADU), which gives him access to all the chiplets
>> on the PCB network (Pervasive Connect Bus), the PIB acting as the root
>> of this network.
>>
>> XSCOM (serial communication) is the interface to the sideband bus
>> provided by the POWER8 pervasive unit to read and write to chiplets
>> resources. This is needed by the host firmware, OPAL and to a lesser
>> extent, Linux. This is among others how the PCI Host bridges get
>> configured at boot or how the LPC bus is accessed.
>>
>> To represent the ADU of a real system, we introduce a specific
>> AddressSpace to dispatch XSCOM accesses to the targeted chiplets. The
>> translation of an XSCOM address into a PCB register address is
>> slightly different between the P9 and the P8. This is handled before
>> the dispatch using a 8byte alignment for all.
>>
>> To customize the device tree, a QOM InterfaceClass, PnvXScomInterface,
>> is provided with a populate() handler. The chip populates the device
>> tree by simply looping on its children. Therefore, each model needing
>> custom nodes should not forget to declare itself as a child at
>> instantiation time.
>>
>> Based on previous work done by :
>> Benjamin Herrenschmidt <address@hidden>
>>
>> Signed-off-by: Cédric Le Goater <address@hidden>
>
> Looks like xscom_complete() is still using current_cpu, which I've
> mentioned before. Apart from that;
gasp. I forgot :/ Thanks for doing it.
C.
- [Qemu-ppc] [PATCH v5 00/17] ppc/pnv: booting the kernel and reaching user space, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 02/17] ppc/pnv: add skeleton PowerNV platform, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 03/17] ppc/pnv: add a PnvChip object, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 04/17] ppc/pnv: add a core mask to PnvChip, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 05/17] ppc/pnv: add a PIR handler to PnvChip, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 06/17] ppc/pnv: add a PnvCore object, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 07/17] ppc/pnv: add XSCOM infrastructure, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 08/17] ppc/pnv: add XSCOM handlers to PnvCore, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 09/17] ppc/pnv: add a LPC controller, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 10/17] ppc/pnv: add a ISA bus, Cédric Le Goater, 2016/10/22
- [Qemu-ppc] [PATCH v5 11/17] ppc/xics: Add "native" XICS subclass, Cédric Le Goater, 2016/10/22