dadv: (Default)

Заметки на манжетах: PCI-роутинг вручную.

Знаете ли вы, что FreeBSD позволяет пользователю вручную задавать PCI-устройствам номера IRQ? Это доступно начиная с версии 6.0, тогда был введен синтаксис для /boot/loader.conf:

hw.pci0.11.INTD.irq=10

Здесь 0 - bus, 11 - slot, INTD - intpin.

Начиная с версии 7.0, синтаксис расширен:

hw.pci1.0.11.INTD.irq=10

Здесь 1 - domain, 0 - bus, 11 - slot, INTD - intpin.

Источник: http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/pci/pci.c?annotate=1.355

Разумеется, никто не обещает, что устройство после этого заработает. Это скорее "последнее средство" для тех случаев, когда нормальными средствами не удается завести железку с очень кривым ACPI BIOS, что не редкость. Узнать нужные параметры устройства можно, например, добавив boot_verbose="YES" в тот же loader.conf, перезагрузившить и заглянув в /var/run/dmesg.boot. Поискать устройство там можно по его PCI Id, которые, в свою очередь, посмотреть в выводе pciconf -lv.

Несколько устаревшая (на пару лет) статья PCI Interrupts for x86 Machines under FreeBSD от jhb@ из Yahoo!. Но MSI/MSI-X там уже есть.

Profile

dadv: (Default)
Choose your future

June 2017

M T W T F S S
   1234
56 7891011
12131415161718
19202122232425
2627282930  

Syndicate

RSS Atom

Tags

Style Credit

Powered by Dreamwidth Studios