Delen via


Omleidingstabel voor seriële poortconsole (SPCR)

In dit document wordt de inhoud van de omleidingstabel van de seriële poortconsole gedefinieerd. Deze tabel wordt gebruikt om aan te geven of een seriële poort of een niet-verouderde UART-interface beschikbaar is voor gebruik met Microsoft® Windows® Emergency Management Services (EMS).

De tabel bevat informatie over de configuratie en het gebruik van de seriële poort of niet-verouderde UART-interface. Op een systeem waarin de BIOS- of systeemfirmware de seriële poort gebruikt voor consoleinvoer/-uitvoer, moet deze tabel worden gebruikt om informatie over de instellingen over te brengen, om een naadloze overgang tussen de uitvoer van de firmwareconsole en Windows EMS-uitvoer te garanderen.

Deze tabel moet zich in het systeemgeheugen bevinden met andere ACPI-tabellen en er moet naar worden verwezen in de TABEL ACPI RSDT.

Octrooimelding: Microsoft maakt bepaalde octrooirechten beschikbaar voor implementaties van deze specificatie onder twee opties:

  1. Microsoft's Community Promise, beschikbaar op https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx; of
  2. De definitieve specificatieovereenkomst van Open Web Foundation versie 1.0 ('OWF 1.0') vanaf 1 oktober 2012, die beschikbaar is op de Open Web Foundation-website .
Field Byte Length Byte Offset Description
Header
Signature 4 0 'SPCR'. Handtekening voor de omleidingstabel van de seriële poortconsole.
Length 4 4 Lengte, in bytes, van de volledige omleidingstabel van de seriële poortconsole, inclusief NamespaceString.
Revision 1 8 De huidige tabelrevisie is 4.
Checksum 1 9 De hele tabel moet optellen tot nul.
OEM ID 6 10 OEM-id (Original Equipment Manufacturer).
OEM-tabel-id 8 16 Voor de omleidingstabel van de seriële poortconsole is de tabel-id de model-id van de fabrikant.
OEM Revision 4 24 OEM-revisie van omleidingstabel voor seriële poortconsole voor opgegeven OEM-tabel-id.
Creator ID 4 28 Leverancier-id van hulpprogramma waarmee de tabel is gemaakt.
Creator Revision 4 32 Revisie van het hulpprogramma waarmee de tabel is gemaakt.
Interface Type 1 36 Geeft het type van de registerinterface aan:
Voor revisie 1:
  • 0 = Volledige interface 16550
  • 1 = Volledige 16450 interface (moet ook schrijven naar het 16550 FCR-register accepteren)
  • 2-255 = Gereserveerd
Voor revisie 2 of hoger:
See the Serial Port Subtypes in Table 3 of the DBG2 Specification.
Reserved 3 37 Moet 0 zijn.
Base Address 12 40 Het basisadres van de set seriële poortregisters die worden beschreven met behulp van de algemene ACPI-adresstructuur of 0 als consoleomleiding is uitgeschakeld.

Note:
COM1 (0x3F8) zou zijn:
  • Formulier geheel getal: 0x 01 08 00 00 00000000000003F8
  • Bekeken in het geheugen: 0x01080000F803000000000000
COM2 (0x2F8) zou zijn:
  • Formulier geheel getal: 0x 01 08 00 00 000000000000002F8
  • Bekeken in het geheugen: 0x01080000F802000000000000
Interrupt Type 1 52 Onderbrekingstypen die worden gebruikt door de UART:
  • Bit[0]: PC-AT-compatibele dual-8259 IRQ interrupt
  • Bit[1]: I/O APIC-interrupt (Global System Interrupt)
  • Bit[2]: I/O SAPIC-interrupt (Global System Interrupt)
  • Bit[3]: ARMH GIC-interrupt (Global System Interrupt)
  • Bit[4]: RISC-V PLIC/APLIC-interrupt (Global System Interrupt)
  • Bit[5:7]: Gereserveerd (moet worden ingesteld op 0)
Where
  • 0 = Niet ondersteund
  • 1 = Ondersteund
Stel dit veld in op nul als de beschreven interface alleen polled operation ondersteunt.
Platforms met zowel een dual-8259 als een I/O APIC of I/O SAPIC moeten de IRQ-bit (Bit[0]) en de bijbehorende Global System Interrupt-bit instellen (bijvoorbeeld een systeem dat 8259 en SAPIC ondersteunt, is 5).
IRQ 1 53 De PC-AT-compatibele IRQ die wordt gebruikt door de UART:
  • 2-7, 9-12, 14-15 = Geldige IRQs
  • 0-1, 8, 13, 16-255 = Gereserveerd
Alleen geldig als Bit[0] van het veld Interrupttype is ingesteld.
Globale systeemonderbreeding 4 54 De Global System Interrupt (GSIV) die wordt gebruikt door de UART.
Ongeldig als Bit[1:7] van het veld Interrupttype 0 is.
Als bit 3 van het veld Interrupttype is ingesteld (ARMH GIC), wordt er een Arm GIC-interruptcontroller gebruikt. Arm GIC SGI- en PPI-interrupts kunnen niet worden gebruikt voor de UART, dus het is verboden voor dit veld in te stellen op een waarde in {0, ..., 31} of in {1056, ..., 1119}.
Geconfigureerde Baud Rate 1 58 De baudrate van het BIOS dat wordt gebruikt voor omleiding:
  • 0 = Zoals is, het besturingssysteem is afhankelijk van de huidige configuratie van de seriële poort totdat het volledige aanbevolen stuurprogramma wordt geïnitialiseerd.
  • 3 = 9600
  • 4 = 19200
  • 6 = 57600
  • 7 = 115200
  • 1-2, 5, 8-255 = Gereserveerd
Parity 1 59
  • 0 = Geen pariteit
  • 1-255 = Gereserveerd
Stop Bits 1 60
  • 1 = 1 Stop-bit
  • 0, 2-255 = Gereserveerd
Flow Control 1 61
  • Bit[0]: DCD vereist voor verzending
  • Bit[1]: RTS/CTS-hardwarestroombesturing
  • Bit[2]: XON/XOFF-softwarebeheer
  • Bit[3:7]: Gereserveerd, moet 0 zijn
Terminal Type 1 62 Het terminalprotocol dat het BIOS gebruikte voor consoleomleiding:
  • 0 = VT100
  • 1 = Uitgebreide VT100 (VT100+)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = Gereserveerd
Language 1 63 Taal die door het BIOS werd omgeleid. Moet 0 zijn.
PCI-apparaat-id 2 64 Hiermee geeft u de apparaat-id aan van een PCI-apparaat dat een UART bevat die moet worden gebruikt als een headless poort.
Moet worden 0xFFFF als het geen PCI-apparaat is.
PCI-leverancier-id 2 66 Hiermee geeft u de leverancier-id van een PCI-apparaat aan dat een UART bevat die moet worden gebruikt als een headless poort.
Moet worden 0xFFFF als het geen PCI-apparaat is.
PCI-busnummer 1 68 PCI Bus-nummer als in de tabel een PCI-apparaat wordt beschreven.
Moet 0x00 zijn als het geen PCI-apparaat is.
PCI-apparaatnummer 1 69 PCI-apparaatnummer als tabel een PCI-apparaat beschrijft.
Moet 0x00 zijn als het geen PCI-apparaat is.
PCI-functienummer 1 70 PCI-functienummer als tabel een PCI-apparaat beschrijft.
Moet 0x00 zijn als het geen PCI-apparaat is.
PCI Flags 4 71 PCI-compatibiliteit markeert bitmasker. Moet standaard nul zijn.
  • Bit[0]: Het besturingssysteem mag de opsomming van PNP-apparaten niet onderdrukken of energiebeheer uitschakelen voor dit apparaat. Moet 0 zijn als het geen PCI-apparaat is.
  • Bit[1-31]: Gereserveerd, moet 0 zijn.
PCI Segment 1 75 PCI-segmentnummer.

Voor systemen met minder dan 255 PCI-bussen moet dit aantal 0 zijn.

UART-klokfrequentie 4 76 Voor revisie 2 of lager:
  • Moet 0 zijn.
Voor revisie 3 of hoger:
  • Nul, waarmee wordt aangegeven dat de frequentie van de UART-klok onbepaald is.
  • Een niet-nulwaarde die de UART-klokfrequentie in Hz aangeeft.
Nauwkeurige Baud rate 4 80 Bevat een specifieke niet-nul-baudrate die de waarde van het veld Geconfigureerde Baud Rate overschrijft. Als dit veld nul is of niet aanwezig is, wordt de geconfigureerde Baud Rate gebruikt. Zie de opmerking hieronder.
NamespaceStringLength 2 84 Lengte, in bytes, van NamespaceString, inclusief NUL-tekens.
NamespaceStringOffset 2 86 Verschuiving, in bytes, vanaf het begin van deze structuur tot het veld NamespaceString[]. Deze waarde moet geldig zijn omdat deze tekenreeks aanwezig moet zijn.
NamespaceString[] NamespaceStringLength NamespaceStringOffset MET NUL beëindigde ASCII-tekenreeks om dit apparaat uniek te identificeren. Deze tekenreeks bestaat uit een volledig gekwalificeerde verwijzing naar het object dat dit apparaat vertegenwoordigt in de ACPI-naamruimte. Als er geen naamruimteapparaat bestaat, mag NamespaceString[] slechts één '.' bevatten. Teken (ASCII-punt).

Opmerking over de velden Baud Rate

Het veld Geconfigureerde Baud Rate bestaat als een veld met één byte sinds het maken van de SPCR-tabel en wordt veel ondersteund door besturingssystemen. Omdat het echter een opsomming is, is het beperkt in de mogelijkheid om niet-traditionele baudsnelheden nauwkeurig te beschrijven, zoals die worden gebruikt door UART's met hoge snelheid. Het veld Nauwkeurige Baudrate is dus toegevoegd om firmware in staat te stellen ondersteunende besturingssystemen een DWORD-waarde te bieden die een specifieke baudrate beschrijft (bijvoorbeeld 1500000). Wanneer het veld Nauwkeurige Baudrate een niet-nulwaarde bevat, is het veld Geconfigureerde BaudRate nul.

Revision History

Date Rev Description
2/15/00 .10 Created
3/1/00 .50 ‘SPCR’. Handtekeninggegevens toegevoegd
3/20/00 .55 Gegevens die zijn herzien om poort en irq op te nemen
3/22/00 .56 Verduidelijkte poortidentificatie Toegevoegd mogelijkheid om omleiding uit te schakelen. Aanwijzer toegevoegd aan de algemene adresstructuur van het register
3/23/00 .56a Opmaak, disclaimer, kopiëren bewerken
4/24/00 .6 Gepost op internet voor WinHEC
4/24/00 .6 Concept voor openbare beoordeling gepubliceerd
5/25/00 .61 Correctie van BASE_ADDRESS beschrijving
5/25/00 .61 Concept voor openbare beoordeling gepubliceerd
5/31/00 .7 Correctie van BASE_ADDRESS beschrijvingsvoorbeelden. 16540 interface toegevoegd.
5/31/00 .71 De informatie over de GRAS is gewijzigd van een notitie in een "*"
5/31/00 .71 Concept voor openbare beoordeling gepubliceerd
6/1/00 .72 Voorbeelden van GRAS COM-poorten zijn gewijzigd in Little Endian. Tekst toegevoegd aan het einde van de regel
7/12/00 .75 Beschrijving van IRQ opgelost. Verschillende indelingsproblemen opgelost: PCI-busgegevens toegevoegd.
7/26/00 .76 Werk bij naar pci-veldnaam 'Apparaatnummer'. De introtaal is gewijzigd zodat deze niet-verouderde UART bevat.
8/10/00 .77 Onderbrekingsgegevens gewijzigd, APIC- en SAPIC-stroombeheer toegevoegd
9/22/00 .78 PCI-segment toegevoegd
10/25/00 .80 Sectie PCI-vlaggen opgelost. Terminaltypen toegevoegd 16450 FCR-informatie toegevoegd
10/1/01 .95 Taalcodes verwijderd
1/11/02 1.00 bijgewerkte licentiespecificatie toevoegen aan 1.00
3/12/14 1.01 Uitgebracht onder Microsoft Community Promise
6/2/14 1.02 Tabelrevisie gewijzigd in 2 en ondersteuning toegevoegd voor aanvullende interfacetypen, zoals gedefinieerd in de SPECIFICATIE VAN DBG2.
8/10/15 1.03 Kennisgeving van octrooi bijgewerkt.
7/23/2018 1.04
6/5/2020 1.05 Edited formatting
9/1/2020 1.06 Bewerkte opmaak en bijgewerkte koppeling naar DE SPECIFICATIE VAN DBG2
2/17/2021 1.07 Er is een onjuiste beschrijving opgelost in het veld Stop Bits. Onopzettelijke verwijdering van het veld Stroombeheer ongedaan maken. Edited formatting.
10/7/2021 1.08 Tabelrevisie gewijzigd in 3 en gemaakt veld voor UART Klokfrequentie. Edited formatting.
4/10/2023 1.09 Tabelrevisie gewijzigd in 4. Er is RISC-V en polled-ondersteuning toegevoegd aan het veld InterruptType. Nieuwe velden toegevoegd: Nauwkeurige Baud Rate, NamespaceStringLength, NamespaceStringOffset en NamespaceString[].
5/1/2023 1.10 Verduidelijkte tekst in de velden Global System Interrupt en UART Clock Frequency.