Serial Port Console Redirection Table (SPCR)
In diesem Dokument wird der Inhalt der Umleitungstabelle der Konsole für serielle Ports definiert. Diese Tabelle wird verwendet, um anzugeben, ob ein serieller Port oder eine Nicht-Legacy-UART-Schnittstelle für die Verwendung mit Microsoft® Windows® Emergency Management Services (EMS) verfügbar ist.
Die Tabelle enthält Informationen zur Konfiguration und Verwendung des seriellen Ports oder der nicht älteren UART-Schnittstelle. Auf einem System, auf dem das BIOS oder die Systemfirmware den seriellen Port für die Konsoleneingabe/-ausgabe verwendet, sollte diese Tabelle verwendet werden, um Informationen zu den Einstellungen zu übermitteln, um einen nahtlosen Übergang zwischen der Ausgabe der Firmwarekonsole und der Windows EMS-Ausgabe sicherzustellen.
Diese Tabelle muss sich im Systemspeicher mit anderen ACPI-Tabellen befinden und in der ACPI RSDT-Tabelle darauf verwiesen werden.
Patenthinweis: Microsoft stellt bestimmte Patentrechte für die Umsetzung dieser Spezifikation unter zwei Optionen zur Verfügung:
- Microsofts Community-Zusage, verfügbar unter https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspxoder
- Die Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") ab dem 1. Oktober 2012, verfügbar auf der Open Web Foundation-Website .
Feld | Byte-Länge | Byteoffset | Beschreibung |
---|---|---|---|
Header | |||
Signatur | 4 | 0 | "SPCR". Signatur für die Umleitungstabelle der Seriellen Portkonsole. |
Länge | 4 | 4 | Länge der gesamten Umleitungstabelle der Seriellen Portkonsole in Byte, einschließlich NamespaceString. |
Revision | 1 | 8 | Die aktuelle Tabellenrevision ist 4. |
Checksum | 1 | 9 | Die gesamte Tabelle muss zu 0 (null) summiert werden. |
OEM ID | 6 | 10 | OEM-ID (Original Equipment Manufacturer). |
OEM-Tabellen-ID | 8 | 16 | Für die Umleitungstabelle der Seriellen Portkonsole ist die Tabellen-ID die Modell-ID des Herstellers. |
OEM Revision | 4 | 24 | OEM-Revision der Umleitungstabelle der Seriellen Portkonsole für die angegebene OEM-Tabellen-ID. |
Ersteller-ID | 4 | 28 | Anbieter-ID des Dienstprogramms, das die Tabelle erstellt hat. |
Ersteller-Revision | 4 | 32 | Revision des Dienstprogramms, das die Tabelle erstellt hat. |
Schnittstellentyp | 1 | 36 | Gibt den Typ der Registerschnittstelle an: Für Revision 1:
Weitere Informationen finden Sie unter den Untertypen des seriellen Ports in Tabelle 3 der DBG2-Spezifikation. |
Reserviert | 3 | 37 | Muss den Wert 0 (null) haben. |
Basisadresse | 12 | 40 | Die Basisadresse des Registersatzes für serielle Ports, der mithilfe der generischen ACPI-Adressstruktur beschrieben wird, oder 0, wenn die Konsolenumleitung deaktiviert ist. Hinweis: COM1 (0x3F8) wäre:
|
Interrupttyp | 1 | 52 | Vom UART verwendete(n) Interrupt-Typen:
Plattformen mit einem Dual-8259 und einem E/A-APIC oder E/A-SAPIC müssen das IRQ-Bit (Bit[0]) und das entsprechende globale Systemunterbrechungsbit festlegen (z. B. ein System, das 8259 unterstützt und SAPIC wäre 5). |
IRQ | 1 | 53 | Der PC-AT-kompatible IRQ, der vom UART verwendet wird:
|
Globaler Systemunterbrechung | 4 | 54 | Der vom UART verwendete globale Systemunterbrechung (Global System Interrupt, GSIV). Ungültig, wenn Bit[1:7] des Felds Interrupttyp 0 ist. Wenn Bit 3 des Felds Interrupttyp (ARMH GIC) festgelegt ist, wird ein Arm GIC-Interruptcontroller verwendet. Arm-GIC-SGI- und PPI-Interrupts können nicht für die UART verwendet werden. Daher ist es verboten, dass dieses Feld auf einen beliebigen Wert in {0, ..., 31} oder in {1056, ..., 1119} festgelegt wird. |
Konfigurierte Baudrate | 1 | 58 | Die Baudrate, die das BIOS für die Umleitung verwendet:
|
Parität | 1 | 59 |
|
Stop Bits | 1 | 60 |
|
Flusssteuerung | 1 | 61 |
|
Terminaltyp | 1 | 62 | Das Terminalprotokoll, das das BIOS für die Konsolenumleitung verwendet hat:
|
Sprache | 1 | 63 | Sprache, die das BIOS umgeleitet hat. Muss den Wert 0 (null) haben. |
PCI-Geräte-ID | 2 | 64 | Gibt die Geräte-ID eines PCI-Geräts an, das eine UART enthält, die als headless-Port verwendet werden soll. Muss 0xFFFF werden, wenn es sich nicht um ein PCI-Gerät handelt. |
PCI-Anbieter-ID | 2 | 66 | Gibt die Anbieter-ID eines PCI-Geräts an, das eine UART enthält, die als headless-Port verwendet werden soll. Muss 0xFFFF werden, wenn es sich nicht um ein PCI-Gerät handelt. |
PCI-Busnummer | 1 | 68 | PCI-Busnummer, wenn die Tabelle ein PCI-Gerät beschreibt. Muss 0x00 werden, wenn es sich nicht um ein PCI-Gerät handelt. |
PCI-Gerätenummer | 1 | 69 | PCI-Gerätenummer, wenn die Tabelle ein PCI-Gerät beschreibt. Muss 0x00 werden, wenn es sich nicht um ein PCI-Gerät handelt. |
PCI-Funktionsnummer | 1 | 70 | PCI-Funktionsnummer, wenn die Tabelle ein PCI-Gerät beschreibt. Muss 0x00 werden, wenn es sich nicht um ein PCI-Gerät handelt. |
PCI-Flags | 4 | 71 | PCI-Kompatibilitätsflags für Bitmasken. Sollte standardmäßig 0 sein.
|
PCI-Segment | 1 | 75 | PCI-Segmentnummer. Bei Systemen mit weniger als 255 PCI-Bussen muss diese Zahl 0 sein. |
UART-Taktfrequenz | 4 | 76 | Für Version 2 oder niedriger:
|
Präzise Baudrate | 4 | 80 | Enthält eine bestimmte Nicht-Null-Baudrate, die den Wert des Felds Konfigurierte Baudrate überschreibt. Wenn dieses Feld null oder nicht vorhanden ist, wird die konfigurierte Baudrate verwendet. Siehe Hinweis weiter unten. |
NamespaceStringLength | 2 | 84 | Länge von NamespaceString in Byte, einschließlich NUL-Zeichen. |
NamespaceStringOffset | 2 | 86 | Offset in Bytes vom Anfang dieser Struktur bis zum Feld NamespaceString[]. Dieser Wert muss gültig sein, da diese Zeichenfolge vorhanden sein muss. |
NamespaceString[] | NamespaceStringLength | NamespaceStringOffset | NUL-beendete ASCII-Zeichenfolge, um dieses Gerät eindeutig zu identifizieren. Diese Zeichenfolge besteht aus einem vollqualifizierten Verweis auf das Objekt, das dieses Gerät im ACPI-Namespace darstellt. Wenn kein Namespacegerät vorhanden ist, darf NamespaceString[] nur ein einzelnes "." enthalten. (ASCII-Zeitraum) Zeichen. |
Hinweis zu den Baudrate-Feldern
Das Feld Konfigurierte Baudrate existiert seit der Erstellung der SPCR-Tabelle als Einzelbytefeld und wird von Betriebssystemen weitgehend unterstützt. Da es sich jedoch um eine Enumeration handelt, ist es in seiner Fähigkeit eingeschränkt, nicht herkömmliche Baudraten genau zu beschreiben, wie sie von Hochgeschwindigkeits-UARTs verwendet werden. Daher wurde das Feld Genaue Baudrate hinzugefügt, um firmwarefähigen Betriebssystemen einen DWORD-Wert bereitzustellen, der eine bestimmte Baudrate (z. B. 1500000) beschreibt. Wenn das Feld Genaue Baudrate einen Wert ungleich Null enthält, muss das Feld Konfigurierte Baudrate null sein.
Revisionen
Date | Rev | BESCHREIBUNG |
---|---|---|
2/15/00 | .10 | Erstellt |
3/1/00 | 0,50 | "SPCR". Hinzugefügte Signaturdaten |
3/20/00 | 0,55 | Überarbeitete Daten, um Port und IRQ einzuschließen |
3/22/00 | .56 | Geklärte Portidentifikation Die Möglichkeit zum Deaktivieren der Umleitung wurde hinzugefügt. Zeiger auf die Generische Registeradressstruktur hinzugefügt |
3/23/00 | .56a | Formatierung, Haftungsausschluss, Kopierbearbeitung |
4/24/00 | .6 | Veröffentlicht im Web für WinHEC |
4/24/00 | .6 | Öffentlicher Überprüfungsentwurf veröffentlicht |
5/25/00 | .61 | Korrektur an BASE_ADDRESS Beschreibung |
5/25/00 | .61 | Öffentlicher Überprüfungsentwurf veröffentlicht |
5/31/00 | .7 | Korrektur an BASE_ADDRESS Beschreibungsbeispielen. 16540-Schnittstelle hinzugefügt. |
5/31/00 | .71 | Die Informationen auf der GRAS wurden von einer Notiz in ein "*" geändert. |
5/31/00 | .71 | Öffentlicher Überprüfungsentwurf veröffentlicht |
6/1/00 | .72 | Gras COM-Portbeispiele wurden in Little-Endian geändert. Text am Ende der Zeile hinzugefügt |
7/12/00 | 0,75 | IrQ-Beschreibung wurde behoben. Verschiedene Formatprobleme behoben Pci-Businformationen hinzugefügt. |
7/26/00 | .76 | Aktualisieren Sie auf den PCI-Feldnamen "Gerätenummer". Die Einführungssprache wurde geändert, um UART-älteren Typs einzuschließen. |
8/10/00 | .77 | Geänderte Interruptinformationen, Hinzufügen von APIC und SAPIC: Flusssteuerung hinzugefügt |
9/22/00 | .78 | PCI-Segment hinzugefügt |
10/25/00 | 0,80 | Der Abschnitt "PCI-Flags" wurde korrigiert. Hinzugefügte Terminaltypen 16450 FCR-Informationen hinzugefügt |
10/1/01 | .95 | Sprachcodes wurden entfernt. |
1/11/02 | 1.00 | Hinzufügen einer aktualisierten Lizenzierungsspezifikation zu 1.00 |
3/12/14 | 1.01 | Veröffentlicht unter Microsoft Community Promise |
6/2/14 | 1.02 | Die Tabellenrevision wurde in 2 geändert und unterstützung für zusätzliche Schnittstellentypen hinzugefügt, wie in der DBG2-Spezifikation definiert. |
8/10/15 | 1,03 | Aktualisierter Patenthinweis. |
7/23/2018 | 1,04 | |
05.06.2020 | 1.05 | Bearbeitete Formatierung |
9/1/2020 | 1.06 | Bearbeitete Formatierung und aktualisierter Link zur DBG2-Spezifikation |
17.2.2021 | 1.07 | Falsche Beschreibung im Feld "Stoppbits" wurde behoben. Rückgängigmachen des versehentlichen Entfernens des Flusssteuerungsfelds. Bearbeitete Formatierung. |
10/7/2021 | 1.08 | Tabellenrevision in 3 geändert und Feld für UART Clock Frequency erstellt. Bearbeitete Formatierung. |
4/10/2023 | 1,09 | Tabellenrevision in 4 geändert. RisC-V und abgefragte Unterstützung für das Feld Interrupttyp hinzugefügt. Neue Felder hinzugefügt: Präzise Baudrate, NamespaceStringLength, NamespaceStringOffset und NamespaceString[]. |
5/1/2023 | 1.10 | Klar formulierte Formulierungen in den Feldern Global System Interrupt und UART Clock Frequency. |