Fragen zu Kombi-Grafikkarte AT-Bus

  • Hallo zusammen.


    Habe mal grundsätzliche Fragen, wenn es um HW-Adressierung und BIOS-Caching ("shadowing" RAM/LevelCache) für beschleunigte Zugriffe von AT-/ISA-Bus basierende VGA/XGA-Grafikkarten in PCs geht.


    Für den weiteren Verlauf wird angenommen, das eine ATI Graphics Ultra Pro verbaut ist, es die einzige Grafikkarte im PC ist und folgende Konfiguration vorliegt:

    • IRQ 10

    • BIOS-Adresse 0xCA000

    • Adapter-BIOS ist aktiviert

    • VGA-Funktion des Adapters ist aktiviert


    Das System-BIOS unterstützt die Funktionen "Shadow BIOS ROM" und "Cache Shadow RAM" u.a. auch für das "Video BIOS", wobei die vorhandenen BIOS-Adressbereiche 0xC0000 - 0xC7FFF in den RAM oder gar im CPU-näheren Cache beim Systemstart geladen werden.


    Funktionen wie "Shadow Adaptor ROM" oder "Cache Adaptor ROM" stehen nicht zur Auswahl.


    0. Was ist der Unterschied zwischen shadowing für "BIOS ROM" (max 64 kiB) zu "Adaptor ROM" (max 16kiB)?


    Es ist bekannt, dass Zugriffe auf BIOS-Routinen von Adaptern in kürzerer Zeit ablaufen, wenn der Zugriff nicht auf die langsamen E/PROM-Bausteine, sondern auf RAM oder besser auf den Cache erfolgt. Soweit noch verständlich.


    Angenommen der Anteil des VGA-BIOS auf dem ISA-Adapter belegt eine Adresse des obenstehenden Bereiches (Memory Mapping).


    1. Warum kann man dann zusätzlich eine BIOS-Adresse (für XGA oder 8514/A) vergeben, beginnend bei 0xC8000, nächste bei 0xCA00 usw (= 32 kiB Block) ?


    2. Ist die (zusätzliche?) BIOS-Adresse überhaupt dem XGA- bzw 8514/A-Anteil (Funktion) zuzuordenen?


    Die Grafikkarte lässt keine Einstellung zu, um die BIOS-Adresse innerhalb des im System-BIOS vorgegebenen, fixen, vom User nicht adressierbaren Speicherbereich hineinzukonfigurieren. Das ist so vorgegeben und daher für mich nicht weiter relevant. Generell stehen allen Adaptern in Summe 96 kiB für BIOS Adressen zur Verfügung, wobei die Bereiche nicht überlappen dürfen. Auch klar.


    3. Hat die Grafikkarte einen DMA und I/O-Port?

    4. Wenn ja wie läst dich der ermitteln?


    Solaris 2.4 bietet mit prtconf zwar eine Anzeige, die jedoch den XGA/VGA-Teil (dplctl .. DisPLayConTroLer) nicht im Detail aufführt, nicht mal den IRQ, ggf liegt auch ein IRQ-Konflikt mit dem NIC vor.


    5. Ist das im RAM/Cache zwischengespeicherte Video-BIOS des VGA-Anteils direkte Funktionalitäten die von Programmen genutzt werde können?

    6. Wenn ja, welche zum Beispiel?


    7. In welchem Fall wären beschleunigte Zugriffe neben dem VGA-Ctrl (innerhalb Adr-Bereich des MB-BIOS) auch beim XGA-Ctrl (außerhalb des Adr-Bereiches) möglich?

    Ohne DMA oder Memory Mapping fällt mir nicht ein.


    8. Welchen Vorteil bietet es für einen Treiber oder Programm mit HW-Zugriff, wenn die BIOS-Adresse (Bereich) nahe am Beginn des Adressbereiches liegt?


    Hintergrund meiner Fragen sind Vorgaben und Empfehlungen zur Konfiguration von PCs im Eindatz unter einem DOS und Sun Solaris x86 (2.1/2.4).


    Auf den SPARCstations gibt es solche Fragestellungen (Fragestellungen) nicht, dafür andere :)

    Einmal editiert, zuletzt von escimo ()

  • 1. Warum kann man dann zusätzlich eine BIOS-Adresse (für XGA oder 8514/A) vergeben, beginnend bei 0xC8000, nächste bei 0xCA00 usw (= 32 kiB Block) ?

    muss natürlich "(= 8 kiB Block)" lauten.


    Im ersten Beitrag sind noch weitere Typos vorhanden, die sich negativ bemerkbar machen bzw einfach nicht zu passen scheinen. Mit Handy lässt es sich nicht gut tippen, vor allem ohne Auto-Korrektur. Zu spät... :fp:

  • 1. Warum kann man dann zusätzlich eine BIOS-Adresse (für XGA oder 8514/A) vergeben, beginnend bei 0xC8000, nächste bei 0xCA00 usw (= 32 kiB Block) ?


    Interessante Fragen.


    Für obige Frage würde mir einfallen, daß man damit eine Option hat, wenn mehrere Karten im PC stecken und etwa eine ausschließlich eine fixe Adresse benutzen mag, die sich mit der der Grafik überlappt.

    5. Ist das im RAM/Cache zwischengespeicherte Video-BIOS des VGA-Anteils direkte Funktionalitäten die von Programmen genutzt werde können?

    6. Wenn ja, welche zum Beispiel?


    https://de.wikibooks.org/wiki/Interrupts_80x86/_INT_10

    https://de.wikipedia.org/wiki/Video_Graphics_Array#Grafik-BIOS


    Scrollen, Modus umschalten, Bildschirm löschen, Cursor bewegen und sowas in der Art

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • 0. Was ist der Unterschied zwischen shadowing für "BIOS ROM" (max 64 kiB) zu "Adaptor ROM" (max 16kiB)?

    https://www.rigacci.org/docs/b…nline/firmware/shadow.htm



    1. Warum kann man dann zusätzlich eine BIOS-Adresse (für XGA oder 8514/A) vergeben, beginnend bei 0xC8000, nächste bei 0xCA00 usw (= 32 kiB Block) ?

    2. Ist die (zusätzliche?) BIOS-Adresse überhaupt dem XGA- bzw 8514/A-Anteil (Funktion) zuzuordnen?


    Keine zusätzliche BIOS-Adresse, sondern "die" BIOS-Adresse des Grafikadapters. Fragt sich nur wie groß (max 32k). Der gesamte Bereich (96k) wird nach BIOS-ROMs gescannt:

    Zitat von PC Hardware Configuration Guide for DOS and Solaris, p. 30

    The memory space is scanned sequentially. The first BIOS found is usually the video adapter. (...)

    The scan continues until each BIOS chip is found. (...)

    As a rule, the area of memory available for any adapter BIOS address is the 96k block from C8000 to E0000


    Die Grafikkarte lässt keine Einstellung zu, um die BIOS-Adresse innerhalb des im System-BIOS vorgegebenen, fixen, vom User nicht adressierbaren Speicherbereich hineinzukonfigurieren.Das ist so, weil das Systemboard (mainboard) einen integrierten (onboard) Grafikcontroller besitzt (CL GD-5428), dessen BIOS sich ebenso im EPROM des Systemboards befindet.


    7. In welchem Fall wären beschleunigte Zugriffe neben dem VGA-Ctrl (innerhalb Adr-Bereich des MB-BIOS) auch beim XGA-Ctrl (außerhalb des Adr-Bereiches) möglich?

    These: das Video BIOS in Adresse 0xCA000 wird in den RAM kopiert an eine Position der innerhalb des Bereiches 0xA000-0xC7FFF liegt. Daher werden Zugriffe auf BIOS-Routinen beschleunigt, ggf. zu Lasten der Stabilität (write-protection)


    3. Hat die Grafikkarte einen DMA und I/O-Port?

    4. Wenn ja wie läst dich der ermitteln?

    Ja, Programme oder Dokumentation.

    8. Welchen Vorteil bietet es für einen Treiber oder Programm mit HW-Zugriff, wenn die BIOS-Adresse (Bereich) nahe am Beginn des Adressbereiches liegt?

    Segmentadressen, Offset-Adressen, Priorisierung (?) - muss ich mich nochmal schlau machen. Ist alles gefährliches Halbwissen... :/

  • Bei meinem PCD-3Msx stellt "Shadow (Video) BIOS ROM" kein Problem dar, bspw. Ausgabe unter NetBSD 1.6.2


    # dmesg | grep vga0
    vga0 at isa0 port 0x3b0-0x3df iomem 0xa0000-0xbffff
    wsdisplay0 at vga0 (kbdmux ignored): console (80x25, vt100 emulation), using wskbd0