USB4 ACPI 요구 사항
이 문서에서는 USB4 디바이스가 ACPI(고급 구성 및 전원 인터페이스) 디바이스와 인터페이스로 연결하는 방법을 설명합니다. ACPI 디바이스는 ACPI(고급 구성 및 전원 인터페이스) 사양에 의해 정의됩니다.
USB4용 _OSC(운영 체제 기능)
BIOS는 ACPI 6.4 사양에 따라 USB4 연결 관리자에 대한 제어 권한을 부여해야 합니다. 시스템은 플랫폼 전체 OSPM(운영 체제 전원 관리) 기능에서 네이티브 USB4 지원을 제어할 수 있어야 합니다. 쿼리 플래그가 0으로 설정되고 네이티브 USB4 지원이 1로 설정된 운영 체제에서 _OSC를 호출하면 제어 권한이 부여됩니다.
또한 USB용 _OSC도 구현해야 합니다. BIOS는 필수 정책 또는 사용자 설정에 따라 보안상의 이유로 PCIe 터널링을 제어할 수 없습니다. 그러나 USB 터널링, DisplayPort™ 터널링 및 도메인 간 USB4 연결은 항상 사용하도록 설정해야 합니다. USB 터널링, DisplayPort™ 터널링 또는 도메인 간 연결을 사용하지 않도록 설정하면 연결 관리자가 디바이스를 실패 상태로 전환합니다.
두 기능 모두 위에서 설명한 대로 구현되면 PCIe 버스는 PCIe 열거 호스트 라우터의 하드웨어 ID 목록에 "PCI\USB4_MS_CM"의 하드웨어 ID를 추가합니다. 이렇게 하면 플러그 앤 플레이에서 USB4 연결 관리자 드라이버를 로드할 수 있습니다.
참고
네이티브 USB4 지원을 위한 _OSC 설정 또는 USB용 _OSC는 최대 절전 모드(S4) 전환 과정에서 변경해서는 안 됩니다. 이러한 설정이 변경되면 전체 다시 부팅이 필요합니다.
USB 3.x 및 PCIe에 대한 포트 매핑(_DSD)
PCIe 및 USB 3.x 소프트웨어 스택에서 USB4 호스트 라우터와의 전원 관계를 설정하려면 터널링된 PCIe 및 USB 3.x 포트에 대한 디바이스별 데이터(_DSD)가 필요합니다. 이 데이터가 없으면 USB4 도메인의 전원이 다운되면서 터널링된 PCIe 및 USB 3.x 디바이스와 조정되지 않을 수 있습니다.
참고
호스트 인터페이스 인스턴스는 항상 3비트 숫자(0-7)로 끝나야 합니다.
다음은 ASL(ACPI 원본 언어)의 포트 매핑 예제입니다.
Scope (\_SB.PCI0)
{
Device (NHI0) { } //Host interface instance must always end with a 3-bit digit (0-7).
Device (DSB0) //Tunneled PCIe port instance
{
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), //Device Properties UUID
Package () {
Package () { "usb4-host-interface", \_SB.PCI0.NHI0 },
Package () { "usb4-port-number", PortInstance#}, // PortInstance# is unused and can be 0
}
})
}
…
Device (SS01) // e.g. Tunnel capable USB 3.x super speed port under RHUB
{
…
Name (_DSD, Package () {
ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), //Device Properties UUID
Package () {
Package () { "usb4-host-interface", \_SB.PCI0.NHI0 },
Package () { "usb4-port-number", PortInstance#}, // PortInstance# is unused and can be 0
}
})
}
기존의 USB 포트 기능(_UPC)을 설명하기 위한 USB 요구 사항이 USB4에 대해서도 변경되지 않고 그대로 적용됩니다.
PCIe 포트에 대한 추가 요구 사항
USB4와 연결된 PCIe 루트 포트는 D3 상태일 때 핫 플러그 이벤트를 처리할 수 있는 것으로 지정되어야 합니다. 자세한 내용은 D3에서 핫 플러그를 지원하는 PCIe 루트 포트 식별 및 외부에 노출된 PCIe 루트 포트 식별을 참조하세요.
PCIe 루트 포트는 _S0W
및 _CRS
또는 _PRW
메서드를 사용하여 D3Cold에서 절전 모드 해제할 수 있는 것으로 적절하게 표시되어야 합니다.
_S0W
및 _CRS
또는 _PRW
에 대한 자세한 내용은 ACPI 사양 및 D3cold에 대한 펌웨어 요구 사항을 참조하세요.
호스트 간 연결을 위해 데이터 역할 교환을 방지하는 디바이스별 방법
특정 플랫폼에서 Windows 시스템 UCSI OPM 드라이버는 UCSI "USB 작업 역할 설정"(SET_UOR
) 명령을 사용하여 USB 데이터 역할 교환을 요청하여 USB 연결에서 USB 데이터 역할을 수정하려고 할 수 있습니다. 그러나 이러한 연결의 양쪽이 이 역할 수정을 시작할 수 있으므로 이것이 호스트 간 연결에 영향을 미칠 수 있습니다. 이 문제를 해결하려면 UCSI OPM에서 데이터 역할 수정을 사용하지 않도록 클레임하기 위해 플랫폼에서 다음과 같이 UCSI 디바이스 아래에 ACPI _DSM 메서드를 구현해야 합니다.
USB 디바이스별 메서드(_DSM)
UCSI OPM에서 USB 데이터 역할 수정을 사용하지 않도록 Windows에서 아래에 설명된 함수가 있는 디바이스별 메서드(_DSM)를 정의합니다.
함수 4: UCSI OPM에서 USB 데이터 역할 수정 사용 안 함
인수
Arg0: UUID = 6F8398C2-7CA4-11E4-AD36-631042B5008F
Arg1: Revision ID = 0
Arg2: 함수 인덱스 = 4
Arg3: 빈 패키지(사용되지 않음)
반환 값
다음 값 중 하나를 포함하는 정수입니다.
요소 | 개체 형식 | 설명 |
---|---|---|
사용 안 함 | 4비트(32비트) 부호 없는 long | UCSI OPM에서 역할 수정을 사용하지 않도록 설정할지 여부를 지정합니다. 0x00(기본값) - USB 데이터 역할 수정을 사용하지 않도록 설정하지 않습니다. 0x01 - UCSI OPM에서 USB 데이터 역할 수정을 사용하지 않도록 설정합니다. |
이 함수를 사용하는 경우 _DSM 메서드가 UCSI 디바이스 아래에 나타나야 합니다.
참고
모든 _DSM의 함수 인덱스 0은 지원되는 함수 인덱스 집합을 반환하는 쿼리 함수입니다. 항상 필요합니다. 자세한 내용은 ACPI 6.4 사양의 9.1.1 _DSM(디바이스별 방법) 섹션을 참조하세요.
참고 항목
- 범용 직렬 버스 4
- Windows의 USB4 연결 관리자 소개
- USB4 디자인 세부 정보 및 일반 요구 사항
- USB4 전원 관리 요구 사항
- USB4 도메인 간 연결
- USB4 필수 테스트
- USB4 디버깅 및 문제 해결
Thunderbolt는 Intel Corporation 또는 그 자회사의 상표입니다.
"USB4™"는 USB Implementers Forum의 상표이며 USB4™ 사양을 기반으로 하고 이를 준수하는 제품에만 사용하기 위한 것입니다.