Freigeben über


Serial Port Console Redirection Table (SPCR)

Dieses Dokument definiert den Inhalt der Umleitungstabelle für die serielle Portkonsole. Diese Tabelle wird verwendet, um anzugeben, ob ein serieller Port oder eine nicht ältere 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, bei dem die BIOS- oder Systemfirmware den seriellen Port für die Konsoleneingabe/-ausgabe verwendet, sollte diese Tabelle verwendet werden, um Informationen zu den Einstellungen zu vermitteln, 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 referenziert werden.

Patenthinweis: Microsoft stellt bestimmte Patentrechte für die Umsetzung dieser Spezifikation unter zwei Optionen zur Verfügung:

  1. Microsofts Community-Zusage, verfügbar unter https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx; oder
  2. 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 .
Field Byte Length Byte Offset Description
Header
Signature 4 0 'SPCR'. Signatur für die Umleitungstabelle der seriellen Portkonsole.
Length 4 4 Länge der gesamten Umleitungstabelle für die serielle Portkonsole( in Bytes), einschließlich NamespaceString.
Revision 1 8 Die aktuelle Tabellenrevision ist 4.
Checksum 1 9 Die gesamte Tabelle muss auf Null summiert werden.
OEM ID 6 10 Originalgerätehersteller(OEM)-ID.
OEM-Tabellen-ID 8 16 Bei der Tabellen-Umleitungstabelle für die serielle Portkonsole ist die Tabellen-ID die Herstellermodell-ID.
OEM Revision 4 24 OEM-Revision der Seriellen Port-Konsolenumleitungstabelle für die angegebene OEM-Tabellen-ID.
Creator ID 4 28 Anbieter-ID des Hilfsprogramms, das die Tabelle erstellt hat.
Creator Revision 4 32 Überarbeitung des Hilfsprogramms, das die Tabelle erstellt hat.
Interface Type 1 36 Gibt den Typ der Registerschnittstelle an:
Für Revision 1:
  • 0 = Vollständige 16550-Schnittstelle
  • 1 = Vollständige Schnittstelle 16450 (muss auch schriftlich an das 16550 FCR-Register schreiben)
  • 2-255 = Reserviert
Für Revision 2 oder höher:
See the Serial Port Subtypes in Table 3 of the DBG2 Specification.
Reserved 3 37 Muss den Wert 0 (null) haben.
Base Address 12 40 Die Basisadresse des Registers für den seriellen Port, der mithilfe der generischen ACPI-Adressstruktur beschrieben wird, oder 0, wenn die Konsolenumleitung deaktiviert ist.

Note:
COM1 (0x3F8) wäre:
  • Ganzzahliges Formular: 0x 01 08 00 00 000000000003F8
  • Im Arbeitsspeicher angezeigt: 0x01080000F803000000000000
COM2 (0x2F8) wäre:
  • Ganzzahliges Formular: 0x 01 08 00 00 0000000000002F8
  • Im Arbeitsspeicher angezeigt: 0x01080000F802000000000000
Interrupt Type 1 52 Interrupttypen, die von der UART verwendet werden:
  • Bit[0]: PC-AT-kompatibler Dual-8259 IRQ-Interrupt
  • Bit[1]: E/A-APIC-Interrupt (Globaler System-Interrupt)
  • Bit[2]: E/A SAPIC-Interrupt (Globaler System-Interrupt)
  • Bit[3]: ARMH GIC interrupt (Global System Interrupt)
  • Bit[4]: RISC-V PLIC/APLIC-Interrupt (globaler Systemunterbruch)
  • Bit[5:7]: Reserviert (muss auf 0 festgelegt werden)
Where
  • 0 = Nicht unterstützt
  • 1 = Unterstützt
Legen Sie dieses Feld auf Null fest, wenn die beschriebene Schnittstelle nur den abfragebasierten Vorgang unterstützt.
Plattformen mit einem Dual-8259- und einem I/O-APIC oder I/O SAPIC müssen die IRQ-Bit (Bit[0]) und das entsprechende globale System Interrupt-Bit (z. B. ein System, das 8259 unterstützt hat, und SAPIC wäre 5).
IRQ 1 53 Der PC-AT-kompatible IRQ, der von der UART verwendet wird:
  • 2-7, 9-12, 14-15 = Gültige IRQs
  • 0-1, 8, 13, 16-255 = Reserviert
Nur gültig, wenn Bit[0] des Felds "Interrupttyp" festgelegt ist.
Globaler Systemunterbruch 4 54 Der globale System interrupt (GSIV), der von der UART verwendet wird.
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 des BIOS, das für die Umleitung verwendet wird:
  • 0 = Das Betriebssystem basiert auf der aktuellen Konfiguration des seriellen Ports, bis der vollständige Treiber initialisiert wird.
  • 3 = 9600
  • 4 = 19200
  • 6 = 57600
  • 7 = 115200
  • 1-2, 5, 8-255 = Reserviert
Parity 1 59
  • 0 = Keine Parität
  • 1-255 = Reserviert
Stop Bits 1 60
  • 1 = 1 Stoppbit
  • 0, 2-255 = Reserviert
Flow Control 1 61
  • Bit[0]: DCD für die Übertragung erforderlich
  • Bit[1]: RTS/CTS-Hardwareflusssteuerung
  • Bit[2]: XON/XOFF-Softwaresteuerung
  • Bit[3:7]: Reserviert, muss 0 sein
Terminal Type 1 62 Das Terminalprotokoll, das das BIOS für die Konsolenumleitung verwendet hat:
  • 0 = VT100
  • 1 = Extended VT100 (VT100+)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = Reserviert
Language 1 63 Sprache, die das BIOS umleitet. Muss den Wert 0 (null) haben.
PCI-Geräte-ID 2 64 Legt die Geräte-ID eines PCI-Geräts fest, das eine UART enthält, die als Headless-Port verwendet werden soll.
Muss 0xFFFF sein, wenn es sich nicht um ein PCI-Gerät handelt.
PCI-Anbieter-ID 2 66 Legt die Anbieter-ID eines PCI-Geräts fest, das eine UART enthält, die als Headless-Port verwendet werden soll.
Muss 0xFFFF sein, wenn es sich nicht um ein PCI-Gerät handelt.
PCI-Busnummer 1 68 PCI Bus Number if table describes a PCI device.
Muss 0x00 sein, wenn es sich nicht um ein PCI-Gerät handelt.
PCI-Gerätenummer 1 69 PCI Device Number if table describes a PCI device.
Muss 0x00 sein, wenn es sich nicht um ein PCI-Gerät handelt.
PCI-Funktionsnummer 1 70 PCI Function Number if table describes a PCI device.
Muss 0x00 sein, wenn es sich nicht um ein PCI-Gerät handelt.
PCI Flags 4 71 PCI-Kompatibilität kennzeichnet Bitmaske. Sollte standardmäßig null sein.
  • Bit[0]: Das Betriebssystem sollte keine PNP-Geräteaufzählung unterdrücken oder die Energieverwaltung für dieses Gerät deaktivieren. Muss 0 sein, wenn es sich nicht um ein PCI-Gerät handelt.
  • Bit[1-31]: Reserviert, muss 0 sein.
PCI Segment 1 75 PCI-Segmentnummer.

Für Systeme mit weniger als 255 PCI-Bussen muss diese Zahl 0 sein.

UART-Taktfrequenz 4 76 Für Revision 2 oder niedriger:
  • Muss den Wert 0 (null) haben.
Für Revision 3 oder höher:
  • Null, das angibt, dass die UART-Taktfrequenz unbestimmt ist.
  • Ein Wert ungleich Null, der die UART-Taktfrequenz in Hz angibt.
Präzise Baudrate 4 80 Enthält eine bestimmte Nicht-Null-Baudrate, die den Wert des Felds "Konfigurierter Baudsatz" überschreibt. Wenn dieses Feld null oder nicht vorhanden ist, wird konfigurierte Baudrate verwendet. Siehe Hinweis weiter unten.
NamespaceStringLength 2 84 Länge in Bytes von NamespaceString, 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-gekündigte 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-Punkt) Zeichen.

Hinweis zu den BaudRate-Feldern

Das Feld "Konfigurierter Baudsatz" ist seit der Erstellung der SPCR-Tabelle als Einzelbytefeld vorhanden und wird von Betriebssystemen weit unterstützt. Da es sich jedoch um eine Aufzählung handelt, ist sie in ihrer Fähigkeit beschränkt, nicht herkömmliche Baudraten genau zu beschreiben, z. B. solche, die von Hochgeschwindigkeits-UARTs verwendet werden. So wurde das Feld "Präzise Baudrate" hinzugefügt, um Firmware zu ermöglichen, unterstützende Betriebssysteme einen DWORD-Wert bereitzustellen, der eine bestimmte Baudrate beschreibt (z. B. 1500000). Wenn das Feld "Genauer Baudsatz" einen Wert ungleich Null enthält, muss das Feld "Konfigurierter Baudsatz" null sein.

Revision History

Date Rev Description
2/15/00 .10 Created
3/1/00 .50 ‘SPCR’. Hinzugefügte Signaturdaten
3/20/00 .55 Daten, die überarbeitet wurden, um Port und Irq einzuschließen
3/22/00 .56 Klärung der Portidentifikation Hinzugefügte Möglichkeit zum Deaktivieren der Umleitung. Zeiger zur generischen Registeradressenstruktur 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 Prüfentwurf veröffentlicht
5/25/00 .61 Korrektur an BASE_ADDRESS Beschreibung
5/25/00 .61 Öffentlicher Prüfentwurf veröffentlicht
5/31/00 .7 Korrektur an BASE_ADDRESS Beschreibungsbeispielen. Schnittstelle 16540 hinzugefügt.
5/31/00 .71 Änderte die Informationen auf der GRAS von einer Notiz in ein "*"
5/31/00 .71 Öffentlicher Prüfentwurf veröffentlicht
6/1/00 .72 Geänderte GRAS COM-Portbeispiele als "little-endian". Text am Ende der Zeile hinzugefügt
7/12/00 .75 IrQ-Beschreibung wurde behoben. Es wurden verschiedene Formatprobleme behoben, die PCI-Businformationen hinzugefügt wurden.
7/26/00 .76 Aktualisieren sie auf den PCI-Feldnamen "Device Number". Die Einführungssprache wurde geändert, um nicht ältere UART einzuschließen.
8/10/00 .77 Geänderte Interruptinformationen, Hinzufügen von APIC und SAPIC Added Flow Control
9/22/00 .78 PCI-Segment hinzugefügt
10/25/00 .80 Abschnitt "PCI-Flags" wurde behoben. Hinzugefügte Terminaltypen hinzugefügt 16450 FCR-Informationen
10/1/01 .95 Entfernte Sprachcodes
1/11/02 1.00 Hinzufügen der 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
6/5/2020 1.05 Edited formatting
9/1/2020 1.06 Bearbeitete Formatierung und aktualisierter Link zur DBG2-Spezifikation
2/17/2021 1.07 Falsche Beschreibung im Feld "Stop Bits" wurde behoben. Versehentliches Entfernen des Flusssteuerungsfelds rückgängigmachen. Edited formatting.
10/7/2021 1.08 Tabelle Revision in 3 geändert und erstellt Feld für UART-Takthäufigkeit. Edited formatting.
4/10/2023 1.09 Tabellenüberarbeitung in 4 geändert. Unterstützung für 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 Klärung des Worts in den Feldern "Global System Interrupt" und "UART Clock Frequency".