ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
248013 Топик полностью
Ralex (15.04.2011 07:35, просмотров: 151) ответил xanoy на В общем как я понял у Вас есть покупной (не собственной разработки) промкомп (SOC) с PCI интерфейсом. И BIOS для него писали не Вы, так?
Прибор нашей разработки, На шине сидит собственно SOC, LAN и SATA, это три физически разделенных микросхемы. "BIOS" представляет собой функции нижнего уровня, бОльшая часть которых написана не нами, но есть все исходники. IDSEL собственно SOC подлючен к PCI_AD17, LAN к PCI_AD21, SATA к PCI_AD22. IDSEL не декодируемый сигнал, во время энумерации контроллер хоста пробегает единичкой по всем PCI_ADxx и подключенные сигналом IDSEL устройства откликаются и следом конфигурируются, далее IDSEL не используется; есть определенное ограничение на используемые для этого PCI_ADxx, оно соблюдено. Энумерация устройств (в штатной функции от разработчика SOC) проходит нормально. Устройства работают при низкой загрузке довольно длительное время (часы), но видимо все-таки когда-нибудь случится проблема и при низкой загрузке шины. При возросшей загрузке видимо устройства начинают конкурировать на шине (чаще происходят их мастер-циклы доступа в память SOC по шине PCI), и в какой-то момент (от 5 секунд до 5 минут от начала нагруженной работы) видимо их время поработать с памятью SOC происходит одновременно, а вот тут по идее арбитр шины долженразделить эти их желания на два непересекающихся временных отрезка, но похоже у микросхем слишком рано отбирают шину и транзакции в память происходят не полными... Как-то так. Именно поэтому в первом посте ветки я указал настройки latency таймера, думаю собака где-то тут зарыта. Думаю покопать, повычитывать configuration space для всех устройств после начала работы, чтобы посмотреть как настроены все таймера.