이 문서에서는 직렬 포트 콘솔 리디렉션 테이블의 내용을 정의합니다. 이 표는 직렬 포트 또는 레거시가 아닌 UART 인터페이스를 Microsoft® EMS(Windows® 응급 관리 서비스)에서 사용할 수 있는지 여부를 나타내는 데 사용됩니다.
이 표에서는 직렬 포트 또는 레거시가 아닌 UART 인터페이스의 구성 및 사용에 대한 정보를 제공합니다. BIOS 또는 시스템 펌웨어가 콘솔 입력/출력에 직렬 포트를 사용하는 시스템에서 이 테이블을 사용하여 설정에 대한 정보를 전달하여 펌웨어 콘솔 출력과 Windows EMS 출력 간의 원활한 전환을 보장해야 합니다.
이 테이블은 다른 ACPI 테이블이 있는 시스템 메모리에 있어야 하며 ACPI RSDT 테이블에서 참조해야 합니다.
특허 고지: Microsoft는 다음 두 가지 옵션에 따라 이 사양의 구현에 사용할 수 있는 특정 특허권을 제공합니다.
- Microsoft의 커뮤니티 프라미스,에서 https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx사용 가능; 또는
- Open Web Foundation 최종 사양 계약 버전 1.0("OWF 1.0")은 2012년 10월 1일 현재 Open Web Foundation 웹 사이트에서 사용할 수 있습니다.
| 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 비트(비트[0]) 및 해당 전역 시스템 인터럽트 비트(예: 8259 및 SAPIC를 지원하는 시스템 5)를 설정해야 합니다. |
| IRQ | 1 | 53 | UART에서 사용하는 PC-AT 호환 IRQ:
|
| 전역 시스템 인터럽트 | 4 | 54 | UART에서 사용하는 GSIV(전역 시스템 인터럽트)입니다. 인터럽트 형식 필드의 비트[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이 아닌 특정 전송 속도를 포함합니다. 이 필드가 0이거나 없는 경우 구성된 전송 속도가 사용됩니다. 다음 참고를 참조하세요. |
| NamespaceStringLength | 2 | 84 | NUL 문자를 포함한 NamespaceString의 길이(바이트)입니다. |
| NamespaceStringOffset | 2 | 86 | 이 구조체의 시작 부분에서 NamespaceString[]필드까지의 오프셋(바이트)입니다. 이 문자열이 있어야 하므로 이 값은 유효해야 합니다. |
| NamespaceString[] | NamespaceStringLength | NamespaceStringOffset | 이 디바이스를 고유하게 식별하기 위해 NUL로 종료된 ASCII 문자열입니다. 이 문자열은 ACPI 네임스페이스에서 이 디바이스를 나타내는 개체에 대한 정규화된 참조로 구성됩니다. 네임스페이스 디바이스가 없는 경우 NamespaceString[]에는 단일 ''만 포함되어야 합니다. (ASCII 마침표) 문자입니다. |
전송 속도 필드에 대한 참고 사항
구성된 전송 속도 필드는 SPCR 테이블을 만든 이후 단일 바이트 필드로 존재했으며 운영 체제에서 널리 지원됩니다. 그러나 열거형이므로 고속 UART에서 사용하는 것과 같이 기존의 전송 속도를 정확하게 설명하는 기능이 제한됩니다. 따라서 펌웨어가 지원 운영 체제에 특정 전송 속도(예: 1500000)를 설명하는 DWORD 값을 제공할 수 있도록 정확한 전송 속도 필드가 추가되었습니다. 정확한 전송 속도 필드에 0이 아닌 값이 포함된 경우 구성된 전송 속도 필드는 0이어야 합니다.
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 | 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 포트 예제를 little-endian으로 변경했습니다. 줄 끝에 텍스트 추가 |
| 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 Flags 섹션이 수정되었습니다. 추가된 터미널 유형 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 및 폴링된 지원이 추가되었습니다. 새 필드가 추가되었습니다. 정확한 전송 속도, NamespaceStringLength, NamespaceStringOffset 및 NamespaceString[]. |
| 5/1/2023 | 1.10 | 전역 시스템 인터럽트 및 UART 클록 빈도 필드의 명확한 표현입니다. |