I have connected pcie device to Hikey960 through M.2 connector.
On boot up it works fine, but hotplug is not working.
Below are the observations found on analyzing pcie trace in working(reboot) and non working(hot plug) case:
- In working case, the BAR0 address is 0x0140_0000 on bus.
- In non working case the BAR0 address is 0xF540_0000 on bus.
My understanding is in working case the address 0xF540_0000 is translated to 0x0140_0000 before it goes on bus, but when we do hotplug of pci device, this translation is not happening, so the address seen on bus is 0xF540_0000, hence reading the wrong chip id.