Как настроить мостовое устройство PCI-to-PCI в VxWorks?

Я работаю с пакетом поддержки платы (BSP) в VxWorks, который использует pciAutoConfig() для настройки шины PCI. Когда я добавляю карту контроллера Ethernet к шине, подпрограммы отображения pci не отображают карту.

С помощью анализатора шины я обнаружил, что адаптер Ethernet на самом деле состоит из моста PCI-to-PCI с двумя контроллерами Ethernet за мостом. Похоже, что BSP неправильно работает с мостом PCI-PCI, который содержит контроллер Ethernet.

Мой вопрос в том, какие библиотеки и конфигурации мне следует использовать для настройки моста PCI-to-PCI? Я думаю, что эти вызовы будут выполняться в sysHwInit(), где находятся существующие вызовы pciAutoConfig().

pciAutoCfgCtl() имеет параметр PCI_BRIDGE_PRE_CONFIG_FUNC_SET, который указывает на определяемую пользователем функцию для настройки шины. Это единственный метод? Или в библиотеках VxWorks есть что-то, что может сделать это за меня?


person Steve Roe    schedule 29.07.2010    source источник


Ответы (1)


Я думаю, что просмотр подпрограмм автоматической настройки PCI, специфичных для BSP, - это путь.

Правильно ли нумеруется мост PCI-to-PCI на вашей сетевой карте? Имеют ли смысл первичное и вторичное окна? Достаточно ли общего места в памяти PCI, чтобы включить пространство, необходимое для вторичной шины, на которой расположены микросхемы контроллера Ethernet? В противном случае вам может потребоваться увеличить значение PCI_MEMIO32_SIZE_SET.

Если нумерация моста на плате адаптера неверна, вы сможете настроить мост вручную, добавив код в процедуру sysPciAutoconfigPreEnumBridgeInit() BSP.

Предоставляет ли BSP подпрограмму sysPciAutoconfigInclude(), которая по умолчанию перечисляет устройства контроллера Ethernet на сетевом адаптере? В противном случае вам придется добавить к нему устройства контроллера Ethernet, иначе они будут проигнорированы во время цикла перечисления.

person John Efstathiades    schedule 20.08.2010
comment
Спасибо, BSP вызывает библиотеку pciAutoConfig из VxWorks. Это хорошо работает, когда мой код работает на процессоре в системном слоте. К сожалению для меня, у меня другая установка. Я подключаю тестовый интерфейс к существующей системе. Мой процессор не вставляется в системный слот. Запуск pciAutoConfig здесь приводит к зависанию системы. Я читаю книгу «Архитектура системы PCI», чтобы, надеюсь, найти способ настроить мою странную топологию. - person Steve Roe; 02.09.2010