SPCR(직렬 포트 콘솔 리디렉션 테이블)

이 문서에서는 직렬 포트 콘솔 리디렉션 테이블의 내용을 정의합니다. 이 테이블은 직렬 포트 또는 레거시가 아닌 UART 인터페이스를 Microsoft® WINDOWS ® EMS(응급 관리 서비스)와 함께 사용할 수 있는지 여부를 나타내는 데 사용됩니다.

이 표에서는 직렬 포트 또는 레거시가 아닌 UART 인터페이스의 구성 및 사용에 대한 정보를 제공합니다. BIOS 또는 시스템 펌웨어가 콘솔 입력/출력에 직렬 포트를 사용하는 시스템에서 이 테이블을 사용하여 설정에 대한 정보를 전달하여 펌웨어 콘솔 출력과 WINDOWS EMS 출력 간에 원활한 전환을 보장해야 합니다.

이 테이블은 다른 ACPI 테이블이 있는 시스템 메모리에 있어야 하며 ACPI RSDT 테이블에서 참조해야 합니다.

특허 고지: Microsoft는 다음 두 가지 옵션에 따라 이 사양의 구현에 특정 특허권을 제공합니다.

  1. Microsoft의 Community Promise,에서 https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx사용 가능
  2. Open Web Foundation 최종 사양 계약 버전 1.0("OWF 1.0")은 2012년 10월 1일 현재 Open Web Foundation 웹 사이트에서 사용할 수 있습니다.
필드 바이트 길이 바이트 오프셋 설명
헤더
서명 4 0 'SPCR'. 직렬 포트 콘솔 리디렉션 테이블에 대한 서명입니다.
길이 4 4 전체 직렬 포트 콘솔 리디렉션 테이블의 길이(바이트)입니다.
수정 버전 1 8 현재 테이블 수정 버전은 3입니다.
체크섬 1 9 전체 테이블의 합계는 0이어야 합니다.
OEM ID 6 10 OEM(원본 장비 제조업체) ID입니다.
OEM 표 ID 8 16 직렬 포트 콘솔 리디렉션 테이블의 경우 테이블 ID는 제조업체 모델 ID입니다.
OEM 수정 버전 4 24 제공된 OEM 테이블 ID에 대한 직렬 포트 콘솔 리디렉션 테이블의 OEM 수정 버전입니다.
작성자 ID 4 28 표를 만든 유틸리티의 공급업체 ID입니다.
작성자 수정 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 0000000000003F8
  • 메모리에서 보기: 0x01080000F803000000000000
COM2(0x2F8)는 다음과 같습니다.
  • 정수 양식: 0x 01 08 00 00 0000000000002F8
  • 메모리에서 보기: 0x01080000F802000000000000
인터럽트 유형 1 52 UART에서 사용하는 인터럽트 유형:
  • Bit[0]: PC-AT 호환 이중 8259 IRQ 인터럽트
  • Bit[1]: I/O APIC 인터럽트(전역 시스템 인터럽트)
  • 비트[2]: I/O SAPIC 인터럽트(전역 시스템 인터럽트)
  • 비트[3]: ARMH GIC 인터럽트(전역 시스템 인터럽트)
  • 비트[4:7]: 예약됨(0으로 설정해야 합니다).
Where
  • 0 = 지원되지 않음
  • 1 = 지원됨
이중 8259와 I/O APIC 또는 I/O SAPIC를 모두 사용하는 플랫폼은 IRQ 비트(비트[0]) 및 해당 전역 시스템 인터럽트 비트(예: 8259 및 SAPIC를 지원하는 시스템 5)를 설정해야 합니다.
IRQ 1 53 UART에서 사용하는 PC-AT 호환 IRQ:
  • 2-7, 9-12, 14-15 = 각각 유효한 IRQ
  • 0-1, 8, 13, 16-255 = 예약됨
인터럽트 유형 필드의 비트[0]이 설정된 경우에만 유효합니다.
글로벌 시스템 인터럽트 4 54 UART에서 사용하는 GSIV(전역 시스템 인터럽트)입니다.
인터럽트 유형 필드에서 Bit[0]이 유일한 비트 집합인 경우 유효하지 않습니다.
전송 속도 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
  • 비트[0]: 전송에 필요한 DCD
  • 비트[1]: RTS/CTS 하드웨어 흐름 제어
  • 비트[2]: XON/XOFF 소프트웨어 제어
  • 비트[3:7]: 예약됨, 0이어야 합니다.
터미널 유형 1 62 BIOS가 콘솔 리디렉션에 사용하던 터미널 프로토콜:
  • 0 = VT100
  • 1 = 확장 VT100(VT100 이상)
  • 2 = VT-UTF8
  • 3 = ANSI
  • 4-255 = 예약됨
언어 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 플래그 4 71 PCI 호환성 플래그 비트 마스크입니다. 기본적으로 0이어야 합니다.
  • 비트[0]: 운영 체제는 PNP 디바이스 열거를 표시하지 않거나 이 디바이스에 대한 전원 관리를 사용하지 않도록 설정해서는 안 됩니다. PCI 디바이스가 아닌 경우 0이어야 합니다.
  • 비트[1-31]: 예약됨, 0이어야 합니다.
PCI 세그먼트 1 75 PCI 세그먼트 번호입니다.

PCI 버스가 255대 미만인 시스템의 경우 이 번호는 0이어야 합니다.

UART 클록 빈도 4 76 수정 버전 2 이하의 경우:
  • 0이어야 합니다.
수정 버전 3의 경우:
  • UART 클록 주파수가 확정되지 않았음을 나타내는 0입니다.
  • Hz의 UART 클록 주파수를 나타내는 0이 아닌 값입니다.

수정 내역

Date Rev 설명
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용 웹에 게시됨
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 플래그 섹션이 수정되었습니다. 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
2020년 6월 5일 1.05 편집된 서식
9/1/2020 1.06 DBG2 사양에 대한 편집된 서식 및 업데이트된 링크
2/17/2021 1.07 비트 중지 필드에서 잘못된 설명을 수정했습니다. Flow 제어 필드의 실수로 제거를 취소합니다. 편집된 서식입니다.
10/7/2021 1.08 테이블 수정 버전을 3으로 변경하고 UART 클록 빈도에 대한 필드를 만들었습니다. 편집된 서식입니다.