
Hi Bin,
On Wed, 2020-04-29 at 14:51 +0800, Bin Meng wrote:
Hi Nicolas,
On Wed, Apr 29, 2020 at 1:45 AM Nicolas Saenz Julienne nsaenzjulienne@suse.de wrote:
When needed, RPi4's co-processor (called VideoCore) has to be instructed to load VL805's firmware (the chip providing xHCI support). VideCore's firmware expects the board's PCIe bus to be already configured in order for it to load the xHCI chip firmware. So we have to make sure this happens in between the PCIe configuration and xHCI startup.
I am a little bit confused. I thought we already solved the xHCI driver issuw on RPi4. What's this firmware used for?
This is not related to the issues Sylwester fixed. It builds on it (I should have been more explicit in that regard). It relates to a design change the RPi foundation did on newer revisions of boards. VL805, the xHCI chip, needs its firmware loaded. On older revisions of the board -- the one most people have right now -- this is achieved using an EEPROM that is rooted directly into VL805. Newer board revisions removed the EEPROM and now let VideoCore (the board co-processor) take care of loading the firmware into the VL805 chip.
All we have left from arm's perspective is a mailbox interface to VideoCore, where we can trigger the VL805 firmware load. Which can only happen as long as we've have properly configured the PCI bus.
Regards, Nicolas