On Wed, 2016-09-07 at 07:47 +1000, Benjamin Herrenschmidt wrote: > d be an extra op in the xscom device model I guess. > > No. If you split the XSCOM bus from the MMIO -> XSCOM bridge (the > ADU) > then the conversion only happens in the former. You don't directly > route the MMIOs over ! You intercept the MMIOs and use use the > address_space_rw to "generate" the XSCOM accesses on the other side, > like I do for the LPC bus. > > We need that anyway because of the way XSCOMs can manipulate the HMER > etc... > > > > > Also, the main purpose of the XscomBus is to loop on the devices > > to populate the device tree. I am wondering if we could just use > > a simple list under the chip for that purpose.
In fact, if you do the above, you no longer need a XSCOM device... A number of "devices" can exist below a chip, all they need to have XSCOMs is to register memory regions that are child of that chip's xscom_region. For device-tree, well, we could have a generic interface that anything that can populate DT has and iterate through them. Or make a "chiplet" class or something. Cheers, Ben.