このドキュメントでは、シリアル ポート コンソール リダイレクト テーブルの内容を定義します。 この表は、Microsoft® Windows® 緊急管理サービス (EMS) でシリアル ポートまたはレガシ以外の UART インターフェイスを使用できるかどうかを示すために使用します。
この表では、シリアル ポートまたはレガシ以外の UART インターフェイスの構成と使用に関する情報を提供します。 BIOS またはシステム ファームウェアがコンソールの入出力にシリアル ポートを使用するシステムでは、このテーブルを使用して設定に関する情報を伝達し、ファームウェア コンソールの出力と Windows EMS 出力の間のシームレスな遷移を確保する必要があります。
このテーブルは、他の ACPI テーブルと共にシステム メモリ内にあり、ACPI RSDT テーブルで参照されている必要があります。
特許通知: Microsoft は、次の 2 つのオプションの下で、この仕様の実装に特定の特許権を利用可能にしています。
- Microsoft の Community Promise( https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspxで入手できます。
- 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 の場合:
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) は次のようになります。
|
| Interrupt Type | 1 | 52 | UART で使用される割り込みの種類:
デュアル 8259 と I/O APIC または I/O SAPIC の両方を持つプラットフォームでは、IRQ ビット (Bit[0]) と対応するグローバル システム割り込みビット (たとえば、8259 と SAPIC をサポートするシステムは 5) を設定する必要があります。 |
| IRQ | 1 | 53 | UART によって使用される PC-AT 互換 IRQ:
|
| グローバル システム割り込み | 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 のボー レート:
|
| Parity | 1 | 59 |
|
| Stop Bits | 1 | 60 |
|
| Flow Control | 1 | 61 |
|
| Terminal Type | 1 | 62 | BIOS がコンソール リダイレクトに使用していたターミナル プロトコル:
|
| 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 にする必要があります。
|
| PCI Segment | 1 | 75 | PCI セグメント番号。 PCI バスが 255 未満のシステムの場合、この数は 0 である必要があります。 |
| UART クロック周波数 | 4 | 76 | リビジョン 2 以下の場合:
|
| 正確なボーレート | 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 クロック周波数フィールドでの表現を明確にしました。 |