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 <b...@kernel.crashing.org> >> >> Signed-off-by: Cédric Le Goater <c...@kaod.org> > > 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.