Der “Ausrutscher”… heute sagt man wohl off-topic. Ich hatte aber so viel Erfahrung mit dem AHA-1542B Controller gesammelt, daß ich dachte es sei nur fair dies mit meinen Brett-Brüdern zu teilen. (Außerdem ist ja ein 8085 auf der Karte ;*)). Immernoch sehr informativ für Retro-Bastler!
Hallo
Ok, ok…zugegeben diese Mail hat nur entfernt was mit Prozessoren zu tun (aber immerhin ist einer auf der Karte). Es geht um den Adaptec AHA1542B. Dieser SCSI-Controller zeichnet sich durch seine Eigenschaft als Bus-Master Controller aus. Dieses Bus-Mastering wird später genauer beschrieben…zu- erst die Rechfertigung warum diese Mail HIER steht:
Der AHA1542B ist als Karte gesehen eine echte Herausforderung, denn sie verlangt dem Anwender viel Wissen über Bustakt, seine Hardware, DMA und nicht zuletzt über den verwandeten CHIPsatz (Aha! Prozessor?) ab. Auch ein funktionierender 1542er kann nachträglich getunt (SCSI-Manta) werden aber auch ziemlichen Schaden anrichten. Alleine die Tatsache, daß die meißten aufge- zählten Dinge in Silizium stattfinden, langt mir als Grund diese Mail hier abzulegen. Um jegliche Art von Aufregung zuvorzukommen habe ich jedoch auch im Hardware-Brett eine HyperMail (jawoll, hab’ ich grade erfunden, adequat zu HyperLink) hinterlegt, sodaß ich somit auch alle Hardwarefreunde in dieser Mail begrüßen kann.
Zu meinem 1 Jährigen Jubiläum, was den 1542 betrifft, dachte ich es wäre an der Zeit einmal ein paar Dinge über diesen Controller zu verlieren. Beginnen wir mit der (ach so grauen) Theorie. Der 1542 ist, wie oben erwähnt, ein sog. DMA Bus-Master Controller. Was heißt das? DMA steht für Direct Memory Access, also direkter speicher Zugriff. DMA Transfer bedeutet also, daß irgendeine Peripherie direkt ohne den CPU Umweg auf den Hauptspeicher zugreifen kann, ob nun lesend oder schreibend. Bus-Mastering bedeutet, daß eine am Systembus (hier also der AT-BUS) hängende Karte für eine bestimmte Zeit der CPU die Kontrolle über diesen abnimmt. Dies kann z.B. bei einer Co.CPU-Karte sinnvoll sein, wenn diese auf den Hauptspeicher zugreifen oder direkt in die Grafikkarte schreiben will. Meistens werden heute beide Techniken zusammen verwendet und so spricht man von Busmaster-DMA (Ausnahmen: z.B. die Sounder- zeugung per DMA, wie beim MAC oder ATARI Falcon). Wie soll es anders sein…Historie: Die Schöpfer des PCs sahen zwei Arten des Datentransfers vor. Entweder CPU gesteuert (per IN- und OUT-Befehlen) oder wie oben erklärt per DMA (mit MOV). Für diesen DMA Transfer findet sich auf dem Motherboard eines PCs ein 8 bittiger DMA Controller der mit rasanten 4,77Mhz Daten in/aus den/m Haupspeicher schreibt/ließt. Stand der technik ist natürlich ca. 1972 als die CPU noch 8088 heiß und 4,77 Mhz das vierfache eines C64 darstellte. Alldieweil nichts über Kompatibilität geht hat sich bis heute eigentlich nicht viel geändert. Beim AT hat man noch einen zweiten Controller drangehängt (Cascadiert), sodaß man zumindest 16 bittig transferieren kann. Jedoch meinte man wohl, daß dies eine Heruntersetzung des Taktes auf 3Mhz (beim AT02) bzw. 4Mhz (AT03) rechtfertige. Wie es eben so passiert, werden immer schnellere Peripheriegeräte entwickelt. Der alleinige DMA transfer wurde zu langsam. Ausweg war der Busmaster-DMA Transfer. Man bedient sich der Möglichkeit, daß der DMA-Controller die CPU “zwingen” kann die Kontrolle über Daten- und Addressbus abzugeben. Kleines Ablaufschema: Anfangs verhält sich der Busmaster wie ein nomaler DMA Nutzer (was er ja zu diesem Zeitpunkt auch noch ist). Per DRQ (Dma ReQuest) Leitung macht er sich dem DMA-Controller aufmerksam. Dieser berichtet der CPU über HRQ (Host ReQuest) daß er die “Macht” über den Bus übernehmen will. Über die HLDA-Leitung bekommt der DMA- Controller sein Ok. Jetzt würde im Normalfall der Transfer vom anfordernden Gerät in den Hauptspeicher vollzogen. Danach nimmt der DMA-Controller den HRQ zurück und alles nimmt seinen alten Lauf. Beim Busmastering werden noch ein paar Schritte mehr eingelegt. Der PC-DMA Controller wird softwaremäßig in den sog. Cascade-Mode gesetzt, d.h. er übernimmt nur die Kontrolle über den Systembus. Die /MASTER Leitung wird auf high geschaltet und der Adaptec kann nun eigenmächtig auf den Hauptspeicher per MEMW und MEMR zugreifen. Ein auf der Karte sitzender 16Bit-DMA-Controller übernimmt dann den eigentlichen Datentransfer. Dieser kann, wenn das Boarddesign mitspielt, ca. 5 mal schneller sein als der Boardeigene DMA-Controller. (PC-DMA max. 2MByte/s Adaptec DMA max. 10MByte/s!!). In einem “Rutsch” kann er im Burstmode 26Bytes in der gewünschten Geschwindigkeit übertragen. Die Geschwindigkeit resultiert auch aus der mitgebrachten Intelligenz des Controllers. Ein i8085 werkelt mit 8Bittigen BIOS auf der Karte (Neben dem 16Bittigen DMA-Controller) und sorgt für die entsprechende ordnungsgemäße Richtigkeit der Kugeln (Manchmal hat die Sache wirklich Lotto-Charakter).
HARDWARE-KRIEG
————–
Das zur Theorie…nun zur Praxis. Der aha1542 kann ein recht unangenehmer Untermieter im PC sein. Seine extreme DMA Auslegung fordert dem Board und dessen Helferlein (Chipsätze) einiges ab. So ist es kein Wunder, daß ca. 60% aller Adaptec “erstuser” Anlaufschwierigkeiten haben. Es empfiehlt sich die Voreinstellungen des Controllers beizubehalten, auch die per Jumper einstell- bare Transferrate. Also: Nach dem Kauf Compi auf, reingestopft, Compi offenlassen, wer weiß, wer weiß! Probelauf…bootet der Rechner wie gewohnt ist alles ok (Es dauert etwas länger, da der Controller erst sein BIOS saugt und dann die SCSI-Ports initialisiert und abscannt) und Du kannst weiter unten bei SOFTWARETUNIG weiterlesen.
Gehörst Du zu den 60%…mach’ Dir nix draus. Wichtig: Keine Panik. Es ist wirklich sehr selten, daß Controller oder Platte defekt ist. Meißt liegt es an der Konfiguration oder am Board. Größte Fehlerquelle der Konfiguration sind Karten, die ebenfalls DMA-Transfer betreiben und auf dem gleichen DMA-Kanal (5 beim aha1542) arbeiten. Sowohl der Adaptec als auch die andere Karte kann man diesbezüglich umjumpern. Auch hier gilt: Lieber die andere(n) Karte(n) als den Adaptec. Zweite Problemquelle: Andere Karten nutzen gleichen IRQ (11) oder I/O Adresse (330h). Letzteres trifft z.B. bei den meißten Scannerkarten zu. Umjumpern! Sollte jetzt immer noch nix laufen belibt die Hammermethode. Alles raus bis auf Adaptec und Grafikkarte (Je primitiver diese ist, desto besser) bootfähige MS-KOTZ Disk ins Laufwerk A und einschalten. Wenn die Rübe immer noch nicht bootet (Die rote LED auf dem aha1542 sollte nun anbleiben (=stehen)) einfach warten…irgendwann gibt er auf und bootet von Disk. Auf dieser Disk sollte zumindest DEBUG vorhanden sein, denn nun rufen wir Adaptecs BIOS zur Hilfe. Also debug aufgerufen und:
g=dc00:9 (RETURN)
eingetippt. Das ist die Testroutiene, die non-stop per DMA-Busmaster ließt und schreibt. Auf dem Bildschrim sollte nun irgendetwas Wichtiges erscheinen, z.B. welche Segmente er schon erfolgreich vollgeschriben hat… Ist das nicht der Fall (auch nach 5min hat sich nix getan, LED ist immer noch an) schaut man nochmal unten in der Liste der Chipsätze nach. Ist der verwendete Chipssatz dabei, hoffe ich Du hast Deinen Compi nicht bei Vobis gekauft, denn dann ist die Chance relativ hoch, daß Dein Händler das Board gegen eines mit anderem Chipsatz austauscht.. ELSEIF..Pech.
SOFTWARE-TUNIG
————–
Willkommen bei den Glücklichen, deren Adaptec freundlich schnurrt. Also Hardwareseitig klappt schon mal alles in eurer Ehe. Trotzdem kann noch viel in die Brüche gehen, wenn ihr nicht vorsorgt. Zum einen MUß der ASPI-Layer, die Adaptek Software Schnittstelle, in Form von ASPI4DOS.SYS in config.sys eingehängt werden, zum anderen gerade beim WINDOWS-Betrieb noch einige Sicherheitsvorkehrungen getroffen werden. Durch seine BUS-Master tätigkeit schreibt der Adaptek ja auch aktiv in den Speicher…fatal bei dem Memorymanager-wirrwar unter DOS/WINDOWS. Also modifiziert man die SYSTEM.INI Datei folgendermaßen im [386Enh] Bereich:
virtualhdirq=off
emmexclude=c000-c7ff (vga bios) emmexclude=dc00-dfff (adaptec bios)
Sinnvoll kann es erscheinen den Adressbereich von dc00 auf c800 umzulegen, sodaß dieser direkt am Ende des VGA-BIOSes liegt. Somit verhindert man eine Zerstückelung des Speichers. Die beiden letzten Zeilen wären dann:
emmexclude=c000-cbff (vga & adaptec bios)
Optimal wäre dann eine CONFIG.SYS folgender art (Kommentare löschen!):
DEVICE=C:\DOS\HIMEM.SYS Kenne ma’ alle DEVICE=C:\WOAUCHIMMER\ASPI4DOS.SYS [/D] [/W] [/X??] (Mit /D kann man später das ganze Infogesülze unterdrücken, /W sollte eingeschaltet werden, wenn Protectetmode Software genutzt wird, die die VDS-Spezifikationen Microsofts nicht unterstützt. VDS heißt virtual DMA Services und diese Spezifikation sieht eben eine Unterstützung von DMA Geräten von. /W richtet einen 64K Puffer ein, in den der Controller schreibt und von wo der Treiber die Daten dann abholt. Das verlangsamt natürlich alles sodaß ein AT-BUS Controller wie eine Rakete wirkt. /X?? bietet die Möglichkeit die Transferrate nachträglich zu ändern, wobei gilt: /X?? ?? Mbytes/sec 00 5.0 01 6.7 02 8.0 03 10.0 04 5.7 )
DEVICE=C:\DOS\EMM386.exe x=c000-cbff i=e000-efff d=48 (x=c000-cbff kennen wir schon von WINDOWS i=e000-efff speichergewinn, hier liegt eigentlich das gespiegelte BIOS d=48 vergrößerung des DMA-Puffers von 16 auf 48k, bei WINDOWS- betrieb unabdingbar.)
DEVICE=C:\WOAUCHIMMER\ASPIDISK.SYS (Falls Du neben Festplatten auch CD-ROM oder Wechselplatten nutzen willst)
DOS=HIGH,UBM und jetzt dein eigener Kram (erst ab jetzt devices “Hochladen”, vor allem die adaptecs vertragen das nicht).
CHIPSATZ-VERWIRRUNG
——————-
Ein kurzer Blick auf dein Motherboard sollte Dir verraten von wem der Chipsatz ist, der Deiner CPU zur seite steht. Auch das mitgelieferte Handheft (Handbuch wäre übertrieben) zum Computer (meißt bei Taiwan-Produkten) gibt auskunft über den verwendeten Chipsatz.
* Bei älteren Modellen (vor ’92)
** es wurde mit Abschlußwiederständen gespart
*** soll sich aber ändern (wann und wie weiß keiner)
So, ich hoffe ich habe nun einigen Adaptec Anwendern geholfen oder Anregungen gegeben. Ich freue mich natürlich über Eure Berichte im Umgang mit diesem kleinen, aber pussierlichen Tierchen. Ach ja, wehe es wagt jemand diese mittlerweile 200 Zeilen lange Mail zu quoten! 🙂
mfg AXEL