2016-08-12 3 views
1

Я работаю над проектом, где мне нужно получить доступ к FPGA-памяти через PCI BAR0 от в пользовательском пространстве.Linux Kernel 4.7 (Arch ARM64) не создает файл «resource0» в/sys/bus/pci/devices/*/для PCI BAR0

Что я делал в старых ядрах открыт файл с именем resource0, который расположен в /SYS/автобус/PCI/устройства/my_device/, а затем использовать функцию ММАП(), которое обнажает FPGA в пользовательское пространство.

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

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

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

+0

Возможно, ваши старшие ядра были 32 бит? –

ответ

2

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

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

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

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

+0

Благодарим за помощь! Кажется, что это решение является решением моей проблемы, но я не знаю, как применять патч! Я дам отзыв, когда мне удастся его протестировать. –

+0

В комментарии к патчу предлагается использовать vfio-pci. Возможно, вы также можете использовать этот модуль вместо sysfs. –