FreeBSD 8.1 a soekris lan1741
Dan Lukes
dan at obluda.cz
Tue Nov 15 19:31:15 CET 2011
On 11/15/11 18:33, Miroslav Novotný:
>> Pokud nejde o chybu pri prepisovani prikazu, tak spravna verze prikazu je
>>
>> pciconf -r -b pci0:5:0:0 0x3e
> Neni nejaka moznost jak nastavit ten bit na PCI uz behem startu systemu?
Stavajicimi prostredky IMHO ne. Rekl bych, ze konfigurace bridge je
spise ulohou BIOSu a OS se o to ani nesnazi. "Spravne" reseni je tedy
jeho upgrade, ktery to udela spravne.
Ale jako hack to tam neni az takovy problem dodelat:
Ovladac PCI-PCI bridge je sys/dev/pci/pci_pci.c
V nem je klicova funkce pcib_attach_common()
No a do ni musis dat na vhodne misto dat sekvenci:
pci_write_config(dev, PCIR_BRIDGECTL_1,
sc->bridgectl&~PCIB_BCR_ISA_ENABLE, 2);
sc->bridgectl = pci_read_config(dev, PCIR_BRIDGECTL_1, 2);
Co se toho "vhodneho mista" tyce - najdes tam "case" uvozeny poznamkou
"Quirk handling" kde se resi specifika jednotlivych chipu
(identifikovanych pomoci DEVID).
Jako hack specificky pro tvoji situaci by to melo stacit, genericky bych
to ale v kernelu nenechaval, stejny chip muze byt pouzit i v jinem
kontextu nez jako "interni bridge pro ctyrnasobnou sitovku" a tam uz to
v poradku byt nemusi.
O neco cistejsi by bylo, kdyby se operace provadela jen pro ty chipy,
kde si to explicitne vyzadas konfiguraci (vhodnym zapisem do
device.hints), to uz ale urcite zvladnes v pripade zajmu naimplementovat
sam ...
Dan
P.S. Kod shora uvedeny jsem psal "z ruky" - zadne ladeni, zadny pokus o
preklad - presneji receno - vubec jsem ho nepsal do zdrojaku, jen rovnou
do mailu. Nemusi tedy byt syntakticky spravne.
O moznosti, ze je funkcne nespravny a tvuj problem nevyresi nebo zpusobi
jeste neco horsiho ani nemluvim.
More information about the Users-l
mailing list