Autor: Maciej W. Rozycki (macro_at_macro.ds2.pg.gda.pl)
Data: Wed 12 Feb 1997 - 04:55:08 MET
On Tue, 11 Feb 1997, Radoslaw Poplawski wrote:
> No wlasnie tak mam: primary - dysk PIO4, CD-ROM PIO2(lub 3), secondary
> - dysk PIO0.
A jestes pewien, ze urzadzenia na pierwszym kontrolerze chodza w swoich
optymalnych trybach pracy? Zwroc uwage na nastepujace subtelnosci:
1. Tryb pracy dysku ustawia sie niezaleznie od trybu pracy kontrolera.
2. Dysk moze transmitowac w PIO3(2) z taka sama szybkoscia jak w PIO4 (no
chyba, ze czyta nie z nosnika, a z pamieci podrecznej, ale to zdarza sie
niezmiernie rzadko).
3. Jesli wolniejsze urzadzenie poprawnie obsluguje linie IORDY, to
kontroler moze sprawdzic jej stan przy probie odczytu i w przypadku
nieaktywnosci odlozyc probe transmisji na pozniej (Intel twierdzi, ze na
min. 2 takty PCI). Z IORDY jest ciekawa zabawa. Specyfikacja ATA
przewiduje, ze urzadzenie ATA(PI) moze poinformowac, ze linie te
obsluguje. Ze wzgledow historycznych brak tej informacji nie oznacza, ze
urzadzenie tej linii nie obsluguje (sam mam taki dysk). Informacja ta jest
wymagana dopiero dla PIO>=3. W dodatku, niektore dyski pracujace co
najwyzej w PIO1 "klamia", podajac, ze obsluguja PIO2. PIIX umozliwia
rezygnacje z linii IORDY i ustawienie zaleznosci czasowych na sztywno. W
zwiazku z tym, na poziomie BIOSu pojawia sie problem: czy "wierzyc"
dyskowi i ustawic PIO2 bez IORDY (ryzykujac "sieczke" na dysku), czy "nie
wierzyc" dyskowi i ustawic PIO1 bez IORDY (ryzykujac wscieklosc
uzytkownika ;-) ), czy tez moze pozwolic uzytkownikowi skonfigurowac dysk
recznie. Niestety, nie spotkalem jeszcze BIOSu umozliwiajacego
konfiguracje IORDY, a automatyczne rozpoznanie np. na podstawie modelu
dysku jest niemozliwe (bo od IORDY jest specjalna zworka). Problem IORDY
oczywiscie znika w przypadku transmisji DMA.
4. PIIX tak naprawde nie obsluguje PIO4. Niestety. W kontrolerach
zawartych w tym ukladzie nie konfiguruje sie trybu PIO czy DMA, a liczbe
taktow zegara pomiedzy zadaniem transmisji, a momentem probkowania IORDY
oraz pomiedzy momentem probkowania i kolejnym zadaniem transmisji.
Minimalne wartosci tych opoznien wynosza odpowiednio: 2 takty i 1 takt, co
daje w sumie 3 takty. Niestety kontrolery dyskow PIIX taktowane sa zegarem
PCI, co daje max. 33 MHz / 3 = 11 MHz i to jest akurat PIO3. Koniec,
kropka. Dla czestotliwosci 30 i 25 MHz jest to odpowiednio mniej.
> Hmmm, z tego co piszesz wychodzi, ze u mnie nie ma prawa chodzic moja
> konfiguracja (tzn. nie bedzie chodzic optymalnie). Ale wychodzi, ze
> jak najbardziej dysk jest PIO4, a CD - PIO2.
Niestety nie mozna odczytac z dysku aktualnego trybu PIO. Niektore
urzadzenia umozliwiaja odczytanie aktualnego trybu DMA, tak wiec o ile
uzywasz DMA dla obu urzadzen, to mozesz porownac ich ustawienia (pod
Linuxem np. `hdparm'). PIO2 odpowiada DMA SW2, PIO4 -- DMA MW2. Mozesz
sprobowac podejrzec ustawienia rejestrow PCI dla kontrolerow dyskow w
Linuxie. W tym celu nalezy zmienic `#undef DISPLAY_TRITON_TIMINGS' na
`#define DISPLAY_TRITON_TIMINGS' w `drivers/block/triton.c' i skompilowac
jadro. W uogolnionym DOSie pozostaje jedynie napisanie odpowiedniego
programu lub dlubanie deguggerem.
> PS. Kontroler PIIX (i82430) - taki driver jest na dolaczonej do plyty
> dyskietce.
Ale BIOS chyba obsluguje ten kontroler, czyz nie? Jesli tak, to co Ci
przy starcie wypisuje?
A tak na marginesie, to po odpowiednim ustawieniu parametrow dysku PIO2,
wyciagam z niego pod Linuxem 1500 kB/s zamiast 800 kB/s (chyba warto bylo
w nim pogrzebac ;-) ). Niestety, BIOS chyba nie do konca go inicjuje, gdyz
po restarcie, DOS pokazuje mi na nim sieczke. Moze wylaczenie zasilania by
pomoglo, ale ostatnio tego nie czynie.
Pozdrawiam.
-- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro_at_ds2.pg.gda.pl, PGP key available +
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:54:34 MET DST