Ошибка драйвера PCIe для включения устройства и выделения памяти
Я использую шину PCIe в Freescale MPC8308 (в качестве корневого комплекса), а конечное устройство представляет собой ASIC с одной областью памяти 256 МБ и одним регистром BAR. Регистры пространства конфигурации устройства легко доступны через пакет «pciutils». Сначала я попытался получить доступ к области памяти с помощью, mmap()
но это не сработало. Итак, на следующем уровне я подготовил драйвер устройства для конечного устройства PCIe, являющегося модулем ядра, который я загружаю в ядро после загрузки Linux.
В моем драйвере устройство конечной точки идентифицируется из таблицы идентификаторов устройств, но когда я хочу включить устройство с помощью pci_enable_device()
, я вижу эту ошибку:
driver-pci 0000: 00: 00.0: устройство недоступно из-за коллизий BAR 0 [0x000000-0xfffffff]
Также, когда я хочу выделить область памяти для устройства PCIe с помощью pci_request_region()
, это невозможно.
Вот часть кода драйвера, которая не работает:
pci_enable_result = pci_enable_device (pdev); if (pci_enable_result) { printk(KERN_INFO "PCI enable encountered a problem \n"); return pci_enable_result; } else { printk(KERN_INFO "PCI enable was succesfull \n"); }
И вот результат в "dmesg":
driver-pci 0000: 00: 00.0: устройство недоступно из-за коллизий BAR 0 [0x000000-0xfffffff]
При включении PCI возникла проблема
драйвер-pci: зонд 0000: 00: 00.0 не выполнен с ошибкой -22
Стоит отметить, что в драйвере я могу правильно читать и записывать регистры конфигурации, используя такие функции, как pci_read_config_dword()
и pci_write_config_dword()
.
В чем проблема, вы думаете? Возможно ли, что проблема возникает, потому что ядро инициализирует устройство до модуля ядра? что я должен сделать, чтобы это не произошло?
0 ответов на вопрос
Похожие вопросы
-
5
Рекомендации по хорошей цене / выгоде VGA для Windows Areo
-
4
Будет ли графическая карта PCI-E V2.0 работать с материнской платой PCI-E V1.0?
-
4
Как я могу отличить неотмеченные слоты PCIE на моей материнской плате?
-
-
2
Как настроить несколько видеокарт в Windows XP
-
3
Есть ли заметная разница между пропускной способностью OB SATA и контроллером SATA PCI-e?
-
7
Можно ли превратить слот PCI-e x1 в старый слот PCI?
-
1
Карта ТВ-тюнеров PCI Express X1 Что мне нужно, чтобы она работала
-
8
PCI-E SATA контроллер
-
1
Что такое «Intel 945G PCI Express корневой порт 2771»?
-
5
Сколько электроэнергии я сэкономлю, если использую встроенную видеокарту