다음을 통해 공유


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 연결 관리자 드라이버를 로드할 수 있습니다.

PCIe 기반 호스트 라우터의 하드웨어 ID 스크린샷.

참고

네이티브 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(디바이스별 방법) 섹션을 참조하세요.

참고 항목

Thunderbolt는 Intel Corporation 또는 그 자회사의 상표입니다.

"USB4™"는 USB Implementers Forum의 상표이며 USB4™ 사양을 기반으로 하고 이를 준수하는 제품에만 사용하기 위한 것입니다.