Ядро Linux 4.7 (Arch ARM64) не создает файл "resource0" в /sys/bus/pci/devices/*/ для PCI BAR0

Я работаю над проектом, где мне нужно получить доступ к памяти FPGA через PCI BAR0 из пользовательского пространства.

В старых ядрах я использовал файл resource0, который находится в /sys/bus/pci/devices/my_device/, а затем использовал функцию mmap(), которая выставляет память FPGA в пространство пользователя.

К сожалению, в версии ядра 4.7 (архитектура ARM64) кажется, что файл resource0 по какой-то причине не создан.

Когда я использую lspci, я вижу, что система распознает PCI-шины FPGA. Кроме того, когда я выполняю поиск в каталоге /sys/bus/pci/devices/my_device/, я вижу, что существует файл с именем resource, в котором, помимо прочего, указаны адреса PCI-баров, записанных в нем.

Кто-нибудь знаком с подобной ситуацией? Как я могу заставить linux создать файл resource0?

1 ответ

Решение

Я понимаю ваше беспокойство, вы можете попробовать это из патча Tree, который не был принят апстримом.

https://patchwork.codeaurora.org/patch/2059/

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/359435.html

Это поможет вам отобразить файл ресурсов PCI в пространстве пользователя.

Другие вопросы по тегам