Eeprom boot (K.N.-nek valasz)
Szolnoki Tibor
szolnoki2 at freemail.hu
Sun Dec 19 02:24:54 CET 1999
> Mert annyiban azert vitaba
> szallnek az elottem szolo, INT-vektorok atirasat megado level irojaval,
hogy
> azert _annyira_ nem egyszeru ez, bar valoban megoldhato...
Ha ram gondoltal (en vetettem fel eloszor az INT13h hook-olast akkor
vitakozzunk, hatha valaki valami haszonsat talat benne.
Pedig szerintem mas megoldas nincs. (Persze a hook-olast ugy ertettem, hogy
a main BIOS mar megtalata a kiegeszito BIOS-t es ez hook-olja be az
INT13-at, igy csinal egy uj meghajtot.)
Azert nincs mas megoldas, mert a BOOT-olas elott nincs mas szolgaltatas ami
a drive-okat kezeli, igy szoftveresen uj meghajtot csak ide tudsz
"beepiteni".
Ezt en amugy mar ki is probaltam regebben. Szerettem volna csinalni egy
LPT-re teheto IDE portot, hogy barmlyen IDE-s HDD-t ra lehessen tenni az
LPT-re, de ugy hogy akar meg boot-olni is lehessen rola!!
Addig eljutottam, hogy irtam egy olyan kodot ami fent volt egy floppy boot
szektorban+mas szektorokban. Floppy bootolas utan bettete magat a 640k felso
1-2k-jaba, majd bealitotta BIOS tablaban hogy mar csak 438k hasznalhato. A
kod annyit csainalt, hogy be hook-olta magat az INT13h-ba, kiegeszitette egy
uj meghajtoval (DL>=80h), plussz a HDD kezelesehez szukseges minimalis
rutinokkal.
Ha valaki ezen a maghajton akart irni/olvasni akkor ezt a kodom (NEM A
BIOS-n keresztul!!!) hanem sajat maga lekezelte hardver szinten, kozvetlenul
az IDE portokon. Ja nem DMA-n keresztul. DOS altt ment, Win95 alatt is, bar
a win95 azt montda, hogy lehet hogy virus van a gepen (gondolom a 640k
lecsipese miatt), es hogy real uzemmodban kezeli a meghajtot. (Win 95
bebootolt, bejott a Desktop, nyuztam egy kicsit, majd tonkretette a
file-rendszert. De ez is eredmeny, elsore semmi sem mukodik tokeletesen.....
:-) ) Ja tudta a CHS es LBA modokat!
Mar csak annyi kelett volna, hogy nem az IDE porton irok/olvasok, hanem a
parhuzamos portra. De sajnos a hardver nem keszult el,
(multpilexer,demultiplexer hegyek), igy ez a resz kimaradt.
Ha valkinek kell a majdnem kesz forras elkuldhetem/feltehetm. Ezt ki kell
egesziten ugy hogy a main BIOS megtalalja, persze EPROM-ba pakolva. A RAM-ba
masolast ki kell hagyni, az IDE kezelest pedig a Flash kezlesere kell
atrini. (Ez egy szektor irasnal/olvasanal nem tobb mint par in/out majd
512db in/out 8bites).
Mikor ezt a valamit irtam akkor a "PC hardver kezikonyv", "Az IBM PC-k belso
felepitese", "A DOS titkai" es a "ROM BIOS es ami mogotte van" konyveket
hasznaltam, ajanlom annak a filgyelmebe aki ezzel akar foglakozni.
Linux alatt szerintem ez mind nem menne, kiveve ha meg lehet mondani a
kernelnek, hogy ne hardveresen, hanem IN13h-an keresztul kezelje a
meghato(ka)t, vagy kernel drivert irni hozza. (Ez sem bonyolult. Karatkteres
kernel modult mar sikerult irni, blokkos sem lehet nehzebb)
********* UJ OTLET *********
Persze lehehetne csinalni egy olyan kartyat ami nem az ISA vagy LPT portra
menne, hanem az IDE csatlakozora. A kartya ertene a minimalis parncsokat,
ugy mintha tenyleg egy igazi "mechanikus" HDD lenne Nem kell se ISA kartya,
nem kell Boot EPROM, nem kell a BIOS-ba beleturkalni. Ami tud IDE-t kezelni,
(dos,win,linux) az ezt is fogja ismerni, uj meghatjtoprogram nelkul!!!!!
Egy jo kis FPGA + Flash -el mar megoldahto lenne. Azt hogy mik a minimalis
paranxsok, majd megnezem az elozoleg taglalt programban, de ahhoz elo kell
kotoroni. Szerintem nem tobb 5-6 rutinla. (calibrate, iniciializalas, read,
write, verify, ...srb)
Udv:
Tibi
More information about the Elektro
mailing list