Hi,
I have managed to disable the UART console and collect the logs via cbmem tool. Therefore it will not add any additional delay even with debug logs enabled so we can compare the logs with and without the delay.
Here are my findings:
- without the delay in dev_enumerate() the NVMe because isn't detected at all (i.e. the PCIe device isn't shown in the bus):
PCI: 00:0b.0 scanning...
do_pci_scan_bridge for PCI: 00:0b.0
PCI: 00:0b.0: Enabled LTR
PCI: pci_scan_bus for bus 04
POST: 0x24
PCI: Static device PCI: 04:00.0 not found, disabling it.
POST: 0x25
PCI: Leftover static devices:
PCI: 04:00.0
PCI: Check your devicetree.cb.
POST: 0x55
scan_bus: bus PCI: 00:0b.0 finished in 0 msecs
- by adding the delay the device is detected and initialized:
PCI: 00:0b.0 scanning...
do_pci_scan_bridge for PCI: 00:0b.0
PCI: 00:0b.0: Enabled LTR
PCI: pci_scan_bus for bus 04
POST: 0x24
PCI: 04:00.0 [1987/5012] enabled
POST: 0x25
POST: 0x55
Enabling Common Clock Configuration
PCIE CLK PM is not supported by endpoint
L1 Sub-State supported from root port 11
L1 Sub-State Support = 0xf
CommonModeRestoreTime = 0x28
Power On Value = 0x6, Power On Scale = 0x1
ASPM: Enabled L1
PCIe: Max_Payload_Size adjusted to 256
PCI: 04:00.0: Enabled LTR
PCI: 04:00.0: Programmed LTR max latencies
scan_bus: bus PCI: 00:0b.0 finished in 0 msecs
Also, another device is failing if I remove the delay - it's a I211 gigabit ethernet controller:
PCI: 00:0f.0 scanning...
do_pci_scan_bridge for PCI: 00:0f.0
PCI: 00:0f.0: Enabled LTR
PCI: pci_scan_bus for bus 05
POST: 0x24
PCI: Static device PCI: 05:00.0 not found, disabling it.
POST: 0x25
PCI: Leftover static devices:
PCI: 05:00.0
PCI: Check your devicetree.cb.
POST: 0x55
scan_bus: bus PCI: 00:0f.0 finished in 0 msecs
With the delay the I211 is detected:
PCI: 00:0f.0 scanning...
do_pci_scan_bridge for PCI: 00:0f.0
PCI: 00:0f.0: Enabled LTR
PCI: pci_scan_bus for bus 05
POST: 0x24
PCI: 05:00.0 [8086/1539] enabled
POST: 0x25
POST: 0x55
Enabling Common Clock Configuration
PCIE CLK PM is not supported by endpoint
ASPM: Enabled L1
PCIe: Max_Payload_Size adjusted to 256
PCI: 05:00.0: No LTR support
scan_bus: bus PCI: 00:0f.0 finished in 0 msecs
Full logs are attached.
Kind regards,
Sumo