LINUX.ORG.RU

что такое «PCIBIOS 2.1 IRQ routing table»?


0

0

В рекомендациях по запуску PCI1130 CardBus bridge под оффтопиком
советуют устанавливать параметры "Use IRQ Steering" и
"Get IRQ Table from PCIBIOS 2.1 call".

Якобы таким образом решается проблема когда устройству не выдается
прерывание.

Что собой представляет этот самый PCIBIOS 2.1 call,
и как это проделать в линуксе?

anonymous

зависит от того как ядро скомпилишь - линукс может как угодно к PCI обращаться и через BIOS и напрямую. Детали правда сообщить не могу, рекомендую гугл =)

Параметр в ядре PCI_ACCESS_MODE, как-то так.

WerNA ★★★★★
()

что-то мне подсказывает, что лучше попробовать, авось линукс разбрётся с прерыванием =)

А если не заработает - тогда уж ковырять.

WerNA ★★★★★
()
Ответ на: комментарий от anonymous

Пересобери ядро, вместо дефолтного  "Any" - BIOS. Это предположение.


из хелпа:

PCI access mode

On PCI systems, the BIOS can be used to detect the PCI devices and
determine their configuration. However, some old PCI motherboards
have BIOS bugs and may crash if this is done. Also, some embedded
PCI-based systems don't have any BIOS at all. Linux can also try to
detect the PCI hardware directly without using the BIOS.

With this option, you can specify how Linux should detect the
PCI devices. If you choose "BIOS", the BIOS will be used,
if you choose "Direct", the BIOS won't be used, and if you
choose "MMConfig", then PCI Express MMCONFIG will be used.
If you choose "Any", the kernel will try MMCONFIG, then the
direct access method and falls back to the BIOS if that doesn't
work. If unsure, go with the default, which is "Any".

WerNA ★★★★★
()
Ответ на: комментарий от WerNA

в том и дело, что никак не удается сопоставить терминологию МС
с терминологией используемой в документации ядра.
из того что пишут на сайте МС выходит что они знают несколько
способов выяснения PCI routing table, один из них должен раобтать
в моем случае.
реализован ли этот способ в ядре, и как называется -- непонятно.


при загрузке ядро говорит
PCI: PCI BIOS revision 2.10 entry at 0xf6b08, last bus=0
PCI: Using configuration type 1

пробовал передавать ядру параметры pci=[bios|nobios|conf1|conf2]
(из linux-2.4.29/Documentation/kernel-parameters.txt) -- безуспешно.
да и вообще хотелось бы понять что происходит, а не перезагружаться
бездумно 2^N раз со всеми возможными комбинациями опций ядра.

anonymous
()

нихрена не выходит

линукс ищет таблицу прерываний (irq routing table)
в верхнем 64к-сегменте биоса. там ее нет.
а дальше начинается какая-то эвристика.

что такое этот PCIBIOS2.1 CALL так и не понял.
то есть понятно что это некая процедура которая
возвращает указатель на таблицу, но как ее вызвать
неясно

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.