Ядро 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 в пространстве пользователя.