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