2010-07-29 2 views
1

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

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

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

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

ответ

2

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

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

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

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

+0

Спасибо, BSP вызывает библиотеку pciAutoConfig от VxWorks. Это хорошо работает, когда мой код работает на процессоре в системном слоте. К сожалению, для меня у меня другая настройка. Я использую тестовый интерфейс для существующей системы. Мой процессор не входит в системный слот. Запуск pciAutoConfig здесь зависает системы. Я читаю книгу системной архитектуры PCI, чтобы надеяться найти способ настройки моей нечетной топологии. –