В настоящее время я использую два BAR в мосте AXI для PCIe.
Следующая комбинация работает
BAR0: 128 МБ, BAR1: 32 МБ
, а следующее не 't работает (имеется в виду, что это не отражается в $ lspci -vv )
BAR0: 256 МБ, BAR1: 32 МБ
Предложения?
Примечания
- Я пробовал другие комбинации, размер которых не превышает 128 МБ, и они сработали (например, (64 МБ, 32 МБ). Поэтому я предполагаю, что проблем нетс генерацией потока битов и программированием устройства.
- После загрузки потока битов я перезагружаю устройство ($ sudo reboot) и использую команду $ lspci -vv для просмотра областей памяти в PCI.
В приложении
- Сводка проведенных нами испытаний
7-Dec-2018
vineeshvs
----------
Test1 :)
--------
Project: full_system
BAR0: 2MB
BAR1: 2MB
0a:00.0 Memory controller: Xilinx Corporation Device 7038
Subsystem: Xilinx Corporation Device 0007
Physical Slot: 3
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fbe00000 (32-bit, non-prefetchable) [size=2M]
Region 1: Memory at fbc00000 (32-bit, non-prefetchable) [size=2M]
Capabilities: <access denied>
Kernel modules: riffa
Test2 :|
--------
Project: full_system
BAR0: 256MB
BAR1: 32MB
0a:00.0 Memory controller: Xilinx Corporation Device 7038
Subsystem: Xilinx Corporation Device 0007
Physical Slot: 3
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 1: Memory at fa000000 (32-bit, non-prefetchable) [size=32M]
Capabilities: <access denied>
Kernel modules: riffa
Test3 :D
--------
Project: full_system
BAR0: 32MB
BAR1: 32MB
0a:00.0 Memory controller: Xilinx Corporation Device 7038
Subsystem: Xilinx Corporation Device 0007
Physical Slot: 3
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fa000000 (32-bit, non-prefetchable) [size=32M]
Region 1: Memory at f8000000 (32-bit, non-prefetchable) [size=32M]
Capabilities: <access denied>
Kernel modules: riffa
Test4 :D
--------
Project: full_system
BAR0: 128MB
BAR1: 32MB
0a:00.0 Memory controller: Xilinx Corporation Device 7038
Subsystem: Xilinx Corporation Device 0007
Physical Slot: 3
Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=128M]
Region 1: Memory at ee000000 (32-bit, non-prefetchable) [size=32M]
Capabilities: <access denied>
Kernel modules: riffa
Test5
--------
Test 2 with BARs swapped.
Project: full_system
BAR0: 32MB
BAR1: 256MB
0a:00.0 Memory controller: Xilinx Corporation Device 7038
Subsystem: Xilinx Corporation Device 0007
Physical Slot: 3
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at fa000000 (32-bit, non-prefetchable) [size=32M]
Capabilities: <access denied>
Kernel modules: riffa
Настройки шины PCIe (работают с 128 МБ, 32 МБ)