다음을 통해 공유


ACPI를 사용하여 컴퓨터에서 USB 포트 구성

시스템에서 USB 포트 구성을 정확하게 반영하기 위해 ACPI BIOS 변경이 필요한 경우 포트를 구성할 때 디바이스를 포트에 연결하는 사용자의 기능을 고려해야 합니다.

ACPI를 사용하여 USB 포트의 구성을 지정하는 경우 USB 포트 기능(_UPC) 및 물리적 위치 설명(_PLD) 개체를 정의해야 합니다. ACPI 6.0 사양은 _UPC 개체만 사용하는 것을 구체적으로 금지하지는 않지만 두 개체를 더 정확하게 사용하면 디바이스를 포트에 연결할 수 있음을 나타냅니다. _UPC 개체만 사용하면 디바이스 컨테이너 그룹화가 올바르게 또는 예상대로 설정되지 않을 수 있습니다.

DeviceRemovable 비트가 설정된 경우 포트에 연결된 디바이스는 허브에서 이동이 가능합니다. 다음 표에서는 지정된 포트에 대한 ACPI 개체 값이 Windows에서 디바이스에 대해 보고하는 USB 허브 설명자 DeviceRemovable 비트의 값에 미치는 영향을 보여 줍니다.

USB 포트 상태 예제 _Upc. PortIsConnectable 바이트 _Pld. UserVisible 비트(비트 64) 결과 DeviceRemovable 비트 값

포트가 표시되고 사용자가 디바이스를 자유롭게 연결하고 연결을 끊을 수 있습니다.

포트는 사용자에게 표시되는 컴퓨터의 패널 얼굴에 노출됩니다.

Set(0xFF)

Set (1)

설정

포트가 숨겨지거나 내부이며 사용자가 디바이스를 자유롭게 연결하고 연결을 끊을 수 없습니다.

포트는 노트북 웹캠 또는 내부 USB 허브와 같은 통합 디바이스에 직접 하드 연결됩니다.

Set(0xFF)

선택 취소

선택 취소

포트는 USB 호스트 컨트롤러에 의해 물리적으로 구현되지만 사용되지 않습니다.

포트는 포트 플러그 터미널 또는 통합 디바이스에 연결되지 않은 초과 포트입니다.

지워진(0x00)

지우기

선택 취소

참고 포트를 연결할 수 없지만 사용자에게 표시되는 것으로 정의하는 것은 잘못된 구성입니다.

다음 예제에서는 _UPC 및_PLD 개체를 사용하여 USB 포트를 설명하는 방법을 보여 주는 올바르게 구성된 ASL(ACPI 원본 언어)을 보여 줍니다.

  • 사용자가 볼 수 없는 내부 포트를 지정하고 통합 디바이스에 연결할 수 있는 포트를 지정하려면 _UPC. PortIsConnectable 바이트는 0xFF 및 _PLD 설정해야 합니다 . UserVisible 비트는 0으로 설정해야 합니다.

    다음 예제에서는 디바이스가 컴퓨터의 디바이스 컨테이너와 그룹화됩니다.

    Name(_UPC, Package(){
        0xFF,         // Port is connectable
        0xFF,         // Connector type (N/A for non-visible ports)
        0x00000000,   // Reserved 0, must be zero
        0x00000000})  // Reserved 1, must be zero
    
    Name(_PLD, Buffer(0x10){
        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
    
  • 외부(사용자가 표시됨)하고 외부 디바이스에 연결할 수 있는 포트를 지정하려면 _UPC. PortIsConnectable 바이트는 0xFF 및 _PLD 설정해야 합니다 . UserVisible 비트는 1로 설정해야 합니다. _UPC입니다. ACPI 3.0 사양의 섹션 9.13에 지정된 대로 PortConnectorType 바이트를 적절한 USB 커넥터 유형으로 설정해야 합니다.

    다음 예제에서는 디바이스에 새 디바이스 컨테이너가 할당되고 별도의 물리적 디바이스로 표시됩니다.

    Name(_UPC, Package(){
        0xFF,         // Port is connectable
        0x00,         // Connector type, Type 'A' in this case
        0x00000000,   // Reserved 0, must be zero
        0x00000000})  // Reserved 1, must be zero
    
    Name(_PLD, Buffer(0x10){
        0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
    

USB Type-C ACPI 유효성 검사 하드웨어 랩 키트 테스트를 통과하려면 ACPI에서 USB Type-C 커넥터를 올바르게 설명해야 합니다.

USB Type-C 커넥터에 대한 예제 _UPC:

      Name(_UPC, Package(4){
        0x01,                       // Port is connectable
        0x09,                       // Connector type: Type C connector - USB2 and SS with Switch
        0x00000000,                 // Reserved0 – must be zero
        0x00000000})                // Reserved1 – must be zero

ACPI 6.0 인터페이스에 대한 자세한 내용은 고급 구성 및 전원 인터페이스 사양 수정 버전 6.0을 참조하세요.