I have a boot loader to which I am adding LPAE support to make use of the PCIE bus
I have succeed to use a NVME device doing so. However, it fails when I remap the PCIe memory to both bus.
If the code remaps the memory as follows:
VA CPU ADDR PCIE addr
0x2400.0000 ==> 0x40.0000.0000 ==> conf space (no device connected there/device node not enabled)
0x3400.0000 ==> 0x48.0000.0000 ==> conf space (nvme device found on PCIe2)
0x5000.0000 ==> 0x48.4000.0000 ==> 0x4000.0000 mem space on PCIe2
With this MMU configuration, I can see the NVME device and access the device.
If I add the MMU mapping for PCIe1
0x4000.0000 ==> 0x40.4000.0000 == > 0x?000.0000 mem space on PCIe1
then after probing the NVME device on PCIe2,:
nvme pci-126f:2263.0: serial: A012410180629000000
nvme pci-126f:2263.0: model: SM681GEF AGS
nvme pci-126f:2263.0: firmware: TFX7GB
the system hangs.
I do not understand why a MMU mapping to an unused device would hang the system