共用方式為


序列埠主控台重新導向資料表 (SPCR)

本檔會定義序列埠主控台重新導向資料表的內容。 下表用來指出序列埠或非舊版 UART 介面是否可用於 Microsoft® Windows® 緊急管理服務 (EMS) 。

下表提供序列埠或非舊版 UART 介面之組態和使用的相關資訊。 在 BIOS 或系統韌體針對主控台輸入/輸出使用序列埠的系統上,此資料表應該用來傳達設定的相關資訊,以確保韌體主控台輸出與 Windows EMS 輸出之間的順暢轉換。

此資料表必須位於具有其他 ACPI 資料表的系統記憶體中,而且必須在 ACPI RSDT 資料表中參考。

專利聲明:Microsoft 在兩個選項下提供此規格實作的特定專利權利:

  1. Microsoft 社群承諾,可在 https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx ; 或
  2. 自 2012 年 10 月 1 日起,Open Web Foundation 最終規格合約 1.0 版 (「OWF 1.0」) ,可在 Open Web Foundation 網站上取得。
欄位 位元組長度 位元組位移 說明
標頭
簽名 4 0 'SPCR'。 序列埠主控台重新導向資料表的簽章。
長度 4 4 整個序列埠主控台重新導向資料表的長度,以位元組為單位,包括 NamespaceString。
修訂版 1 8 目前的資料表修訂為 4。
總和檢查碼 1 9 整個資料表必須加總為零。
OEM 識別碼 6 10 原始設備製造商 (OEM) 識別碼。
OEM 簎翐礹蜞頇塈 8 16 針對序列埠主控台重新導向資料表,資料表識別碼是製造商型號識別碼。
OEM 摷濻 4 24 所提供 OEM 資料表識別碼的序列埠主控台重新導向資料表 OEM 修訂。
建立者識別碼 4 28 用來建立資料表的公用程式之廠商識別碼。
建立者修訂 4 32 用來建立資料表的公用程式之修訂。
介面類型 1 36 指出暫存器介面的類型:
針對修訂 1:
  • 0 = 完整 16550 介面
  • 1 = 完整 16450 介面 (也必須接受寫入 16550 FCR 暫存器)
  • 2-255 = 保留
針對修訂 2 或更新版本:
請參閱 DBG2 規格表 3 中的序列埠子類型。
保留 3 37 必須是 0。
基底位址 12 40 使用 ACPI 一般位址結構所描述的序列埠暫存器集基底位址,如果停用主控台重新導向,則為 0。

注意:
COM1 (0x3F8) 為:
  • 整數表單:0x 01 08 00 00 00000000000003F8
  • 在記憶體中檢視:0x01080000F803000000000000
COM2 (0x2F8) 為:
  • 整數表單:0x 01 08 00 00 0000000000002F8
  • 在記憶體中檢視:0x01080000F802000000000000
中斷類型 1 52 UART 所使用的中斷類型 () :
  • Bit[0]: PC-AT-compatible dual-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 = 支援
如果描述的介面只支援輪詢的作業,請將此欄位設定為零。
具有雙 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 = 保留
停止位 1 60
  • 1 = 1 停止位
  • 0, 2-255 = 保留
流量控制 1 61
  • Bit[0]:傳輸所需的 DCD
  • Bit[1]: RTS/CTS 硬體流程式控制制
  • Bit[2]: XON/XOFF 軟體控制
  • Bit[3:7]: 保留,必須是 0
終端機類型 1 62 BIOS 用於主控台重新導向的終端機通訊協定:
  • 0 = VT100
  • 1 = 擴充 VT100 (VT100+)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = 保留
Language 1 63 BIOS 重新導向的語言。 必須是 0。
PCI 裝置識別碼 2 64 指定 PCI 裝置的裝置識別碼,其中包含要作為無周邊埠的 UART。
如果不是 PCI 裝置,則必須0xFFFF。
PCI 廠商識別碼 2 66 指定 PCI 裝置的廠商識別碼,其中包含要作為無周邊埠的 UART。
如果不是 PCI 裝置,則必須0xFFFF。
PCI 匯流排號碼 1 68 如果資料表描述 PCI 裝置,PCI 匯流排號碼。
如果不是 PCI 裝置,則必須0x00。
PCI 裝置號碼 1 69 PCI 裝置編號,如果表格描述 PCI 裝置。
如果不是 PCI 裝置,則必須0x00。
PCI 函數編號 1 70 如果資料表描述 PCI 裝置,PCI 函數編號。
如果不是 PCI 裝置,則必須0x00。
PCI 旗標 4 71 PCI 相容性旗標位元遮罩。 預設應為零。
  • Bit[0]:作業系統不應隱藏此裝置的 PNP 裝置列舉或停用電源管理。 如果不是 PCI 裝置,則必須是 0。
  • Bit[1-31]:保留的 必須是 0。
PCI 區段 1 75 PCI 區段號碼。

對於少於 255 PCI 匯流排的系統,此號碼必須為 0。

UART 時鐘頻率 4 76 針對修訂 2 或更低版本:
  • 必須是 0。
針對修訂 3 或更新版本:
  • 零,表示 UART 時鐘頻率不定。
  • 非零值,表示 Hz 中的 UART 時鐘頻率。
精確傳輸速率 4 80 包含特定的非零傳輸速率,它會覆寫 [已設定的傳輸速率] 欄位的值。 如果此欄位為零或不存在,則會使用已設定的傳輸速率。 請參閱下方注意事項。
NamespaceStringLength 2 84 NamespaceString 的長度,以位元組為單位,包括 NUL 字元。
NamespaceStringOffset 2 86 從這個 結構的開頭到 Field NamespaceString[] 的位移,以位元組為單位。 這個值必須有效,因為此字串必須存在。
NamespaceString[] NamespaceStringLength NamespaceStringOffset NUL 終止的 ASCII 字串,可唯一識別此裝置。 此字串包含物件的完整參考,代表 ACPI 命名空間中的這個裝置。 如果命名空間裝置不存在,NamespaceString[] 只能包含單一 '.' (ASCII 句點) 字元。

[傳輸速率欄位] 上的附注

[設定的傳輸速率] 欄位自建立 SPCR 資料表後已以單一位元組欄位的形式存在,而且作業系統廣泛支援。 不過,由於它是列舉,因此無法精確描述非傳統的傳輸速率,例如高速 UART 所使用的速率。 因此,已新增 [精確傳輸速率] 欄位,讓韌體提供支援的作業系統 DWORD 值,其中描述特定傳輸速率 (例如 1500000) 。 當 [精確傳輸速率] 欄位包含非零值時,[已設定的傳輸速率] 欄位應為零。

修訂歷程

Date Rev Description
2/15/00 .10 建立時間
3/1/00 .50 'SPCR'。 已新增簽章資料
3/20/00 .55 修改為包含埠和 irq 的資料
3/22/00 .56 厘清埠識別 已新增停用重新導向的功能。 已將指標新增至泛型暫存器位址結構
3/23/00 .56a 格式化、免責聲明、複製編輯
4/24/00 .6 張貼在 WinHEC 的 Web 上
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 功能變數名稱「裝置號碼」。 已變更簡介語言以包含非舊版 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 社群承諾下發行
6/2/14 1.02 已將資料表修訂變更為 2,並新增對其他介面類別型的支援,如 DBG2 規格中所定義。
8/10/15 1.03 已更新專利聲明。
7/23/2018 1.04
2020/6/5 1.05 編輯的格式設定
9/1/2020 1.06 已編輯格式化和更新 DBG2 規格的連結
2/17/2021 1.07 已修正 [停止位] 欄位中不正確的描述。 復原意外移除流程式控制制欄位。 編輯的格式設定。
10/7/2021 1.08 已將資料表修訂變更為 3,並建立 UART 時鐘頻率的欄位。 編輯的格式設定。
4/10/2023 1.09 已將資料表修訂變更為 4。 已將 RISC-V 和輪詢支援新增至 [中斷類型] 欄位。 已新增新的欄位:精確傳輸速率、NamespaceStringLength、NamespaceStringOffset 和 NamespaceString[]。
5/1/2023 1.10 已厘清全域系統中斷和 UART 時鐘頻率欄位中的文字。