次の方法で共有


シリアル ポート コンソール リダイレクト テーブル (SPCR)

このドキュメントでは、シリアル ポート コンソール リダイレクト テーブルの内容を定義します。 この表は、Microsoft® Windows® 緊急管理サービス (EMS) でシリアル ポートまたはレガシ以外の UART インターフェイスを使用できるかどうかを示すために使用します。

この表では、シリアル ポートまたはレガシ以外の UART インターフェイスの構成と使用に関する情報を提供します。 BIOS またはシステム ファームウェアがコンソールの入出力にシリアル ポートを使用するシステムでは、このテーブルを使用して設定に関する情報を伝達し、ファームウェア コンソールの出力と Windows EMS 出力の間のシームレスな遷移を確保する必要があります。

このテーブルは、他の ACPI テーブルと共にシステム メモリ内にあり、ACPI RSDT テーブルで参照されている必要があります。

特許通知: Microsoft は、次の 2 つのオプションの下で、この仕様の実装に特定の特許権を利用可能にしています。

  1. Microsoft の Community Promise( https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspxで入手できます。
  2. Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") は、2012 年 10 月 1 日時点で 、Open Web Foundation Web サイトで入手できます。
Field Byte Length Byte Offset Description
Header
Signature 4 0 'SPCR'. シリアル ポート コンソール リダイレクト テーブルの署名。
Length 4 4 NamespaceString を含むシリアル ポート コンソール リダイレクト テーブル全体の長さ (バイト単位)。
Revision 1 8 現在のテーブルリビジョンは 4 です。
Checksum 1 9 テーブル全体を 0 に合計する必要があります。
OEM ID 6 10 OEM (相手先ブランド) ID。
OEM テーブル ID 8 16 シリアル ポート コンソール リダイレクト テーブルの場合、テーブル ID は製造元モデル ID です。
OEM Revision 4 24 提供された OEM テーブル ID のシリアル ポート コンソール リダイレクト テーブルの OEM リビジョン。
Creator ID 4 28 テーブルを作成したユーティリティのベンダー ID。
Creator Revision 4 32 テーブルを作成したユーティリティのリビジョン。
Interface Type 1 36 レジスタ インターフェイスの種類を示します。
リビジョン 1 の場合:
  • 0 = 完全な 16550 インターフェイス
  • 1 = 完全な 16450 インターフェイス (16550 FCR レジスタへの書き込みも受け入れる必要があります)
  • 2-255 = 予約済み
リビジョン 2 以降の場合:
See the Serial Port Subtypes in Table 3 of the DBG2 Specification.
Reserved 3 37 0 を指定する必要があります。
Base Address 12 40 ACPI 汎用アドレス構造を使用して説明されているシリアル ポート レジスタ セットのベース アドレス。本体のリダイレクトが無効になっている場合は 0。

Note:
COM1 (0x3F8) は次のようになります。
  • 整数形式: 0x 01 08 00 00 00000000000003F8
  • メモリ内で表示: 0x01080000F803000000000000
COM2 (0x2F8) は次のようになります。
  • 整数形式: 0x 01 08 00 00 000000000000002F8
  • メモリ内で表示: 0x01080000F802000000000000
Interrupt Type 1 52 UART で使用される割り込みの種類:
  • Bit[0]: PC-AT 互換デュアル 8259 IRQ 割り込み
  • Bit[1]: I/O APIC 割り込み (グローバル システム割り込み)
  • Bit[2]: I/O SAPIC 割り込み (グローバル システム割り込み)
  • Bit[3]: ARMH GIC 割り込み (グローバル システム割り込み)
  • Bit[4]: RISC-V PLIC/APLIC 割り込み (グローバル システム割り込み)
  • Bit[5:7]: 予約済み (0 に設定する必要があります)
Where
  • 0 = サポートされていません
  • 1 = サポートされています
記述されたインターフェイスがポーリング操作のみをサポートしている場合は、このフィールドを 0 に設定します。
デュアル 8259 と I/O APIC または I/O SAPIC の両方を持つプラットフォームでは、IRQ ビット (Bit[0]) と対応するグローバル システム割り込みビット (たとえば、8259 と SAPIC をサポートするシステムは 5) を設定する必要があります。
IRQ 1 53 UART によって使用される PC-AT 互換 IRQ:
  • 2-7、9-12、14-15 = 有効な IRQ
  • 0-1、8、13、16-255 = 予約済み
[割り込みタイプ] フィールドの Bit[0] が設定されている場合にのみ有効です。
グローバル システム割り込み 4 54 UART によって使用されるグローバル システム割り込み (GSIV)。
割り込みタイプ フィールドの Bit[1:7] が 0 の場合は無効です。
割り込みタイプ フィールドのビット 3 が設定されている場合 (ARMH GIC)、Arm GIC 割り込みコントローラーが使用されます。 Arm GIC SGI および PPI 割り込みは UART に使用できないため、このフィールドを {0、...、31} または {1056,..., 1119} の任意の値に設定することは禁止されています。
設定されたボー レート 1 58 リダイレクトに使用される BIOS のボー レート:
  • 0 = 現状では、オペレーティング システムは、完全な機能を備えたドライバーが初期化されるまで、シリアル ポートの現在の構成に依存します。
  • 3 = 9600
  • 4 = 19200
  • 6 = 57600
  • 7 = 115200
  • 1-2、5、8-255 = 予約済み
Parity 1 59
  • 0 = パリティなし
  • 1 から 255 = 予約済み
Stop Bits 1 60
  • 1 = 1 ストップ ビット
  • 0、2 から 255 = 予約済み
Flow Control 1 61
  • Bit[0]: 送信に DCD が必要
  • Bit[1]: RTS/CTS ハードウェア フロー制御
  • Bit[2]: XON/XOFF ソフトウェア 制御
  • Bit[3:7]: 予約済み、0 である必要があります
Terminal Type 1 62 BIOS がコンソール リダイレクトに使用していたターミナル プロトコル:
  • 0 = VT100
  • 1 = 拡張 VT100 (VT100 以降)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = 予約済み
Language 1 63 BIOS がリダイレクトしていた言語。 0 を指定する必要があります。
PCI デバイス ID 2 64 ヘッドレス ポートとして使用する UART を含む PCI デバイスのデバイス ID を指定します。
PCI デバイスでない場合は、0xFFFFする必要があります。
PCI ベンダー ID 2 66 ヘッドレス ポートとして使用する UART を含む PCI デバイスのベンダー ID を指定します。
PCI デバイスでない場合は、0xFFFFする必要があります。
PCI バス番号 1 68 PCI バス番号 (表に PCI デバイスが記述されている場合)。
PCI デバイスでない場合は、0x00する必要があります。
PCI デバイス番号 1 69 PCI デバイス番号 (表に PCI デバイスが記述されている場合)。
PCI デバイスでない場合は、0x00する必要があります。
PCI 関数番号 1 70 PCI 関数番号 (表に PCI デバイスが記述されている場合)。
PCI デバイスでない場合は、0x00する必要があります。
PCI Flags 4 71 PCI 互換性フラグのビットマスク。 既定では 0 にする必要があります。
  • Bit[0]: オペレーティング システムでは、PNP デバイスの列挙を抑制したり、このデバイスの電源管理を無効にしたりしないでください。 PCI デバイスでない場合は、0 にする必要があります。
  • Bit[1-31]: 予約済み、0 である必要があります。
PCI Segment 1 75 PCI セグメント番号。

PCI バスが 255 未満のシステムの場合、この数は 0 である必要があります。

UART クロック周波数 4 76 リビジョン 2 以下の場合:
  • 0 を指定する必要があります。
リビジョン 3 以降の場合:
  • UART クロック周波数が不確定であることを示す 0。
  • UART クロック周波数を Hz で示す 0 以外の値。
正確なボーレート 4 80 [構成済みのボー レート] フィールドの値をオーバーライドする、特定の 0 以外のボー レートが含まれます。 このフィールドがゼロまたは存在しない場合は、設定されたボーレートが使用されます。 下記の「注意」を参照。
NamespaceStringLength 2 84 NUL 文字を含む NamespaceString の長さ (バイト単位)。
NamespaceStringOffset 2 86 この構造体の先頭から NamespaceString[] フィールドへのオフセット (バイト単位)。 この文字列が存在する必要があるため、この値は有効である必要があります。
NamespaceString[] NamespaceStringLength NamespaceStringOffset このデバイスを一意に識別するための NUL で終わる ASCII 文字列。 この文字列は、ACPI 名前空間のこのデバイスを表すオブジェクトへの完全修飾参照で構成されます。 名前空間デバイスが存在しない場合、NamespaceString[] には 1 つの '.' のみを含める必要があります。(ASCII ピリオド) 文字。

ボー レート フィールドに関する注意事項

SPCR テーブルの作成以降、構成済みのボー レート フィールドは 1 バイト フィールドとして存在し、オペレーティング システムで広くサポートされています。 ただし、列挙体であるため、高速 UART で使用されるものなど、従来以外のボー レートを正確に記述する機能は限られています。 したがって、ファームウェアがサポート オペレーティング システムに特定のボー レート (例: 1500000) を記述する DWORD 値を提供できるように、Precise Baud Rate フィールドが追加されました。 [正確なボーレート]フィールドにゼロ以外の値が含まれている場合、[設定済みのボーレート]フィールドはゼロになります。

Revision History

Date Rev Description
2/15/00 .10 Created
3/1/00 .50 ‘SPCR’. 署名データの追加
3/20/00 .55 ポートと irq を含むように変更されたデータ
3/22/00 .56 ポート識別を明確にしました。リダイレクトを無効にする機能が追加されました。 汎用レジスタ アドレス構造体へのポインターを追加しました
3/23/00 .56a 書式設定、免責事項、コピー編集
4/24/00 .6 Web に投稿された WinHEC
4/24/00 .6 公開レビュードラフトの公開
5/25/00 .61 BASE_ADDRESS説明の修正
5/25/00 .61 公開レビュードラフトの公開
5/31/00 .7 BASE_ADDRESS説明例の修正。 16540 インターフェイスを追加しました。
5/31/00 .71 GRAS の情報をメモから "*" に変更しました
5/31/00 .71 公開レビュードラフトの公開
6/1/00 .72 GRAS COM ポートの例をリトル エンディアンに変更しました。 行の末尾にテキストを追加しました
7/12/00 .75 IRQ の説明を修正しました。 PCI バス情報を追加したさまざまな形式の問題を修正しました。
7/26/00 .76 PCI フィールド名 "Device Number" に更新します。 イントロ言語が、レガシ以外の UART を含むように変更されました。
8/10/00 .77 割り込み情報の変更、APIC と SAPIC の追加フロー制御の追加
9/22/00 .78 PCI セグメントを追加しました
10/25/00 .80 PCI フラグ セクションを修正しました。 追加されたターミナルの種類: 16450 FCR 情報を追加しました
10/1/01 .95 言語コードを削除しました
1/11/02 1.00 更新されたライセンス 仕様を 1.00 に追加する
3/12/14 1.01 Microsoft Community Promise の下でリリース
6/2/14 1.02 テーブル リビジョンを 2 に変更し、DBG2 仕様で定義されている追加のインターフェイスの種類のサポートを追加しました。
8/10/15 1.03 特許通知を更新しました。
7/23/2018 1.04
6/5/2020 1.05 Edited formatting
9/1/2020 1.06 編集された書式設定と DBG2 仕様への更新されたリンク
2/17/2021 1.07 [ビットの停止] フィールドの説明が正しくない問題を修正しました。 [フロー制御] フィールドの誤削除を元に戻します。 Edited formatting.
10/7/2021 1.08 テーブルリビジョンを3に変更し、UARTクロック周波数のフィールドを作成しました。 Edited formatting.
4/10/2023 1.09 テーブルリビジョンを4に変更しました。 割り込みタイプ フィールドに RISC-V とポーリングのサポートを追加しました。 新しいフィールドを追加しました: Precise Baud Rate、NamespaceStringLength、NamespaceStringOffset、NamespaceString[]。
5/1/2023 1.10 グローバル システム割り込みおよび UART クロック周波数フィールドでの表現を明確にしました。