* PCI memory mapping
@ 2025-04-07 14:55 Renaud Barbier
0 siblings, 0 replies; only message in thread
From: Renaud Barbier @ 2025-04-07 14:55 UTC (permalink / raw)
To: Barebox List
Hello,
Barebox version: 2024-09
I am porting the Linux PCIE driver for Broadcom Cortex-A9 (ARMv7) chip.
So far I am able to detect the bridge and NVME device attach to it:
pci: pci_scan_bus for bus 0
pci: last_io = 0x00000000, last_mem = 0x20000000, last_mem_pref = 0x00000000
pci: class = 00000604, hdr_type = 00000001
pci: 00:00 [14e4:b170]
pci: pci_scan_bus for bus 1
pci: last_io = 0x00000000, last_mem = 0x20000000, last_mem_pref = 0x00000000
pci: class = 00000108, hdr_type = 00000000
pci: 01:00 [126f:2263]
ERROR: pci: last_mem = 0x20000000, 16384
pci: pbar0: mask=ffffc004 NP-MEM 16384 bytes
...
pci: class = 00000108, hdr_type = 00000000
pci: 01:f8 [126f:2263]
ERROR: pci: last_mem = 0x2007c000, 16384
pci: pbar0: mask=ffffc004 NP-MEM 16384 bytes
pci: pci_scan_bus returning with max=02
pci: bridge NP limit at 0x20100000
The PCI memory address is assigned to the device and map (pci_iomap from nvme_dev_map) but access to this PCI space crashes the system:
pci: pci_scan_bus returning with max=02
ERROR: nvme_dev_map: bar = 0x20000000
nvme pci-126f:2263.0: enabling bus mastering
ERROR: pci: __pci_set_master
ERROR: nvme_pci_enable: address: 0x2000001c
unable to handle paging request at address 0x2000001c
pc : [<9fe3d6e4>] lr : [<9fe3d6d8>]
sp : 9fff7f38 ip : 00000002 fp : 00000000
r10: 0006b52c r9 : 40000000 r8 : 9fea9b88
r7 : 7fe18500 r6 : 7fe295a8 r5 : 9fe8e5b8 r4 : 7fe29538
r3 : 20000000 r2 : 00000000 r1 : 0000000a r0 : 00000027
Flags: nZCv IRQs off FIQs off Mode SVC_32
[<9fe3d6e4>] (nvme_probe+0xd8/0x4c4) from [<9fe14650>] (device_probe+0x64/0x15c)
[<9fe14650>] (device_probe+0x64/0x15c) from [<9fe14778>] (match+0x30/0x68)
Tracing the problem, I found that if I limit the scanning in pci_scan_bus to 1 device/function
- for (devfn = 0; devfn < 0xff; ++devfn) {
+ for (devfn = 0; devfn < 0x8; ++devfn) { ==> At 0x10 I see the crash.
Then, the NVME device is detected:
nvme pci-126f:2263.0: serial: A012410180620000000
nvme pci-126f:2263.0: model: SM681GEF AGS
nvme pci-126f:2263.0: firmware: TFX7GB
Has anybody seen this problem before (I havenoyt seen that on the LS1046A)?
I am not seeing much diff with the master branch in /drivers/pci and drivers/nvme
Cheers,
Renaud
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-04-07 16:05 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-07 14:55 PCI memory mapping Renaud Barbier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox