Sdílet prostřednictvím


Tabulka přesměrování konzoly sériového portu (SPCR)

Tento dokument definuje obsah tabulky přesměrování konzoly sériového portu. Tato tabulka slouží k označení, zda je sériový port nebo starší rozhraní UART k dispozici pro použití se službou Microsoft® Windows® Emergency Management Services (EMS).

Tabulka obsahuje informace o konfiguraci a použití sériového portu nebo rozhraní UART starší verze. V systému, kde firmware systému BIOS nebo systému používá sériový port pro vstup/výstup konzoly, by se tato tabulka měla použít ke sdělení informací o nastavení, aby se zajistil bezproblémový přechod mezi výstupem konzoly firmwaru a výstupem systému Windows EMS.

Tato tabulka musí být umístěna v systémové paměti s jinými tabulkami ACPI a musí být odkazována v tabulce ACPI RSDT.

Oznámení o patentu: Společnost Microsoft zpřístupňuje určitá patentová práva pro provádění této specifikace ve dvou možnostech:

  1. Příslib komunity Microsoftu, který je k dispozici na https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspxadrese ; nebo
  2. Smlouva Open Web Foundation Final Specification Agreement verze 1.0 ("OWF 1.0") od 1. října 2012, která je k dispozici na webu Open Web Foundation .
Field Byte Length Byte Offset Description
Header
Signature 4 0 'SPCR'. Podpis pro tabulku přesměrování konzoly sériového portu
Length 4 4 Délka v bajtech celé tabulky přesměrování konzoly sériového portu, včetně oboru názvůString.
Revision 1 8 Aktuální revize tabulky je 4.
Checksum 1 9 Celá tabulka musí sčítat na nulu.
OEM ID 6 10 ID výrobce originálního vybavení (OEM).
ID tabulky OEM 8 16 Pro tabulku přesměrování konzoly sériového portu je ID tabulky ID modelu výrobce.
OEM Revision 4 24 Revize OEM tabulky přesměrování konzoly sériového portu pro zadané ID tabulky OEM
Creator ID 4 28 ID dodavatele nástroje, který vytvořil tabulku.
Creator Revision 4 32 Revize nástroje, který vytvořil tabulku.
Interface Type 1 36 Určuje typ rozhraní registru:
Revize 1:
  • 0 = úplné rozhraní 16550
  • 1 = Úplné rozhraní 16450 (musí také přijímat zápis do registru FCR 16550)
  • 2–255 = Vyhrazeno
Pro revizi 2 nebo vyšší:
See the Serial Port Subtypes in Table 3 of the DBG2 Specification.
Reserved 3 37 Musí být 0.
Base Address 12 40 Základní adresa sady registru sériového portu popsaná pomocí obecné struktury adres ACPI nebo 0, pokud je přesměrování konzoly zakázané.

Note:
COM1 (0x3F8) by bylo:
  • Celočíselná forma: 0x 01 08 00 00 0000000000003F8
  • Zobrazení v paměti: 0x01080000F803000000000000
COM2 (0x2F8) by bylo:
  • Celočíselná forma: 0x 01 08 00 00 0000000000002F8
  • Zobrazení v paměti: 0x01080000F802000000000000
Interrupt Type 1 52 Typy přerušení používané objektem UART:
  • Bit[0]: Přerušení IRQ kompatibilní s PC-AT-8259
  • Bit[1]: Přerušení V/O APIC (Globální přerušení systému)
  • Bit[2]: Přerušení SAPIC vstupně-výstupních operací (Globální přerušení systému)
  • Bit[3]: Přerušení ARMH GIC (Globální přerušení systému)
  • Bit[4]: RISC-V přerušení PLIC/APLIC (Global System Interrupt)
  • Bit[5:7]: Vyhrazeno (musí být nastaveno na hodnotu 0)
Where
  • 0 = Nepodporováno
  • 1 = podporováno
Pokud popsané rozhraní podporuje pouze dotazovanou operaci, nastavte toto pole na nulu.
Platformy se dvěma-8259 a I/O APIC nebo I/O SAPIC musí nastavit bit IRQ (Bit[0]) a odpovídající globální bit přerušení systému (např. systém, který podporuje 8259 a SAPIC by byl 5).
IRQ 1 53 Technologie IRQ kompatibilní s počítačem AT, kterou používá UART:
  • 2-7, 9-12, 14-15 = Platné irqs
  • 0-1, 8, 13, 16-255 = Reserved
Platné pouze v případě, že je nastaven bit[0] pole Typ přerušení.
Přerušení globálního systému 4 54 Globální přerušení systému (GSIV) používané uživatelem UART.
Není platné, pokud bit[1:7] pole Typ přerušení je 0.
Pokud je nastavena bit 3 pole Typ přerušení (ARMH GIC), použije se kontroler přerušení Arm GIC. Přerušení arm GIC SGI a PPI nelze použít pro UART, takže je zakázáno nastavit toto pole na libovolnou hodnotu v {0, ..., 31} nebo {1056, ..., 1119}.
Nakonfigurovaná přenosová rychlost 1 58 Přenosová rychlost systému BIOS použitá pro přesměrování:
  • 0 = Jak je, operační systém spoléhá na aktuální konfiguraci sériového portu, dokud nebude inicializován úplný doporučený ovladač.
  • 3 = 9600
  • 4 = 19200
  • 6 = 57600
  • 7 = 115200
  • 1-2, 5, 8-255 = Reserved
Parity 1 59
  • 0 = Bez parity
  • 1–255 = Vyhrazeno
Stop Bits 1 60
  • 1 = 1 bit stop
  • 0, 2–255 = Vyhrazeno
Flow Control 1 61
  • Bit[0]: DCD vyžadované pro přenos
  • Bit[1]: Řízení toku hardwaru RTS/CTS
  • Bit[2]: Řízení softwaru XON/XOFF
  • Bit[3:7]: Vyhrazeno, musí být 0
Terminal Type 1 62 Terminálový protokol, který systém BIOS používal pro přesměrování konzoly:
  • 0 = VT100
  • 1 = Rozšířený VT100 (VT100+)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4–255 = Vyhrazeno
Jazyk 1 63 Jazyk, který systém BIOS přesměrovával. Musí být 0.
ID zařízení PCI 2 64 Určuje ID zařízení PCI, které obsahuje UART, který se má použít jako bezobsadový port.
Pokud se nejedná o zařízení PCI, musí být 0xFFFF.
ID dodavatele PCI 2 66 Určuje ID dodavatele zařízení PCI, které obsahuje UART, který se má použít jako bezobsadový port.
Pokud se nejedná o zařízení PCI, musí být 0xFFFF.
PCI Bus Number 1 68 PcI Bus Number if table describes a PCI device.
Pokud se nejedná o zařízení PCI, musí být 0x00.
Číslo zařízení PCI 1 69 Číslo zařízení PCI, pokud tabulka popisuje zařízení PCI.
Pokud se nejedná o zařízení PCI, musí být 0x00.
PCI – číslo funkce 1 70 Číslo funkce PCI, pokud tabulka popisuje zařízení PCI.
Pokud se nejedná o zařízení PCI, musí být 0x00.
PCI Flags 4 71 Příznaky kompatibility PCI jsou bitová maska. Ve výchozím nastavení by měla být nula.
  • Bit[0]: Operační systém by neměl potlačit výčet zařízení PNP nebo zakázat řízení spotřeby pro toto zařízení. Pokud se nejedná o zařízení PCI, musí být 0.
  • Bit[1–31]: Rezervovaná hodnota musí být 0.
PCI Segment 1 75 Číslo segmentu PCI.

Pro systémy s méně než 255 sběrnicemi PCI musí být toto číslo 0.

Frekvence hodin UART 4 76 Pro revizi 2 nebo nižší:
  • Musí být 0.
Pro revizi 3 nebo vyšší:
  • Nula označující, že frekvence hodin UART je nedeterminovaná.
  • Nenulová hodnota označující frekvenci hodin UART v Hz.
Přesná přenosová rychlost 4 80 Obsahuje specifickou nenulovou přenosovou rychlost, která přepíše hodnotu pole Nakonfigurovaná přenosová rychlost. Pokud je toto pole nulové nebo není k dispozici, použije se nakonfigurovaná přenosová rychlost. Viz poznámka níže.
NamespaceStringLength 2 84 Délka řetězce názvů v bajtech včetně znaků NUL
NamespaceStringOffset 2 86 Posun v bajtech od začátku této struktury do pole NamespaceString[]. Tato hodnota musí být platná, protože tento řetězec musí být k dispozici.
NamespaceString[] NamespaceStringLength NamespaceStringOffset Řetězec ASCII ukončený NUL, který jednoznačně identifikuje toto zařízení. Tento řetězec se skládá z plně kvalifikovaného odkazu na objekt, který představuje toto zařízení v oboru názvů ACPI. Pokud neexistuje žádné zařízení oboru názvů, musí obor názvů [] obsahovat pouze jednu hodnotu .. Znak tečky (ASCII).

Poznámka k polím přenosové sazby

Pole Nakonfigurovaná přenosová rychlost existovalo od vytvoření tabulky SPCR jako jednobajtů a je široce podporováno operačními systémy. Vzhledem k tomu, že se jedná o výčet, je omezena schopností přesně popsat nestandardní přenosové rychlosti, jako jsou ty, které používají vysokorychlostní UART. Proto bylo přidáno pole Precise Baud Rate, které umožňuje firmwaru poskytovat podpůrné operační systémy hodnotu DWORD, která popisuje konkrétní přenosovou rychlost (např. 1500000). Pokud pole Přesná přenosová rychlost obsahuje nenulovou hodnotu, pole Nakonfigurovaná přenosová sazba musí být nula.

Revision History

Date Rev Description
2/15/00 .10 Created
3/1/00 .50 ‘SPCR’. Přidaná data podpisu
3/20/00 .55 Data revidována tak, aby zahrnovala port a irq
3/22/00 .56 Upřesnění identifikace portu: Přidání možnosti zakázat přesměrování Přidání ukazatele do obecné struktury adresy registru
3/23/00 .56a Formátování, právní omezení, kopírování úprav
4/24/00 .6 Publikováno na webu pro WinHEC
4/24/00 .6 Publikovaný koncept veřejné revize
5/25/00 .61 Oprava popisu BASE_ADDRESS
5/25/00 .61 Publikovaný koncept veřejné revize
5/31/00 .7 Oprava příkladů popisu BASE_ADDRESS Přidáno rozhraní 16540.
5/31/00 .71 Změna informací o GRAS z poznámky na "*"
5/31/00 .71 Publikovaný koncept veřejné revize
6/1/00 .72 Změnili jsme příklady portů COM GRAS tak, aby byly malé endian. Přidání textu na konec řádku
7/12/00 .75 Oprava popisu IRQ Opravili jsme různé problémy s formátováním– Přidání informací sběrnice PCI.
7/26/00 .76 Aktualizovat na název pole PCI "Číslo zařízení". Změna úvodního jazyka tak, aby zahrnovala starší verzi UART.
8/10/00 .77 Změna informací o přerušení, přidání řízení toku APIC a SAPIC
9/22/00 .78 Přidání segmentu PCI
10/25/00 .80 Opravili jsme část příznaky PCI. Přidání typů terminálů – přidání informací o FCR 16450
10/1/01 .95 Odebrané kódy jazyka
1/11/02 1.00 přidání aktualizované specifikace licencování na verzi 1.00
3/12/14 1.01 Vydáno v rámci programu Microsoft Community Promise
6/2/14 1.02 Změna revize tabulky na 2 a přidání podpory pro další typy rozhraní, jak je definováno ve specifikaci DBG2.
8/10/15 1.03 Aktualizované oznámení o patentu.
7/23/2018 1.04
6/5/2020 1.05 Edited formatting
9/1/2020 1.06 Úprava formátování a aktualizace odkazu na specifikaci DBG2
2/17/2021 1.07 Opravili jsme nesprávný popis v poli Stop Bits. Vrácení náhodného odebrání pole řízení toku zpět Edited formatting.
10/7/2021 1.08 Změna revize tabulky na 3 a vytvoření pole pro frekvenci hodin UART Edited formatting.
4/10/2023 1.09 Změna revize tabulky na 4 Přidání RISC-V a dotazování podpory do pole Typ přerušení Přidání nových polí: Precise Baud Rate, NamespaceStringLength, NamespaceStringOffset a NamespaceString[].
5/1/2023 1.10 Upřesnění formulace v polích Globální přerušení systému a Frekvence hodin UART