Bagikan melalui


Menggunakan ACPI untuk Mengonfigurasi Port USB di Komputer

Jika sistem memerlukan perubahan ACPI BIOS untuk secara akurat mencerminkan konfigurasi port USB, Anda harus mempertimbangkan kemampuan pengguna untuk menghubungkan perangkat ke port saat Mengonfigurasi port.

Jika Anda menggunakan ACPI untuk menentukan konfigurasi port USB, Anda harus menentukan kemampuan port USB (_UPC) dan objek deskripsi lokasi fisik (_PLD). Meskipun spesifikasi ACPI 6.0 tidak secara khusus melarang penggunaan hanya objek _UPC , penggunaan kedua objek lebih tepat menunjukkan kemampuan pengguna untuk menghubungkan perangkat ke port. Hanya menggunakan objek _UPC mungkin tidak mengatur pengelompokan kontainer perangkat dengan benar atau seperti yang diharapkan.

Perangkat yang dilampirkan ke port dapat dilepas dari hub jika bit DeviceRemovable diatur. Tabel berikut menunjukkan bagaimana nilai objek ACPI untuk port tertentu memengaruhi nilai deskriptor hub USB DeviceRemovable bit yang dilaporkan Windows untuk perangkat.

USB Port Status Contoh _UPC. Byte PortIsConnectable _PLD. UserVisible bit (bit 64) Nilai Bit DeviceRemovable yang Dihasilkan

Port terlihat dan pengguna dapat dengan bebas menyambungkan dan memutuskan sambungan perangkat.

Port terekspos pada wajah panel pada komputer yang terlihat oleh pengguna.

Set (0xFF)

Set (1)

Set

Port disembunyikan atau internal dan pengguna tidak dapat dengan bebas menyambungkan dan memutuskan sambungan perangkat.

Port langsung ditransfer ke perangkat terintegrasi, seperti webcam laptop atau hub USB internal.

Set (0xFF)

Dibersihkan

Dibersihkan

Port secara fisik diimplementasikan oleh pengontrol host USB, tetapi tidak digunakan.

Port adalah port berlebih yang tidak tersambung ke terminal colokan port atau perangkat terintegrasi.

Dikosongkan (0x00)

Hapus

Dibersihkan

Catatan Ini adalah konfigurasi yang tidak valid untuk menentukan port sebagai tidak dapat disambungkan tetapi terlihat oleh pengguna.

Contoh berikut menunjukkan Bahasa Sumber ACPI (ASL) yang terbentuk dengan benar yang menunjukkan penggunaan objek _UPC dan _PLD untuk menjelaskan port USB:

  • Untuk menentukan port yang internal (tidak terlihat pengguna) dan dapat disambungkan ke perangkat terintegrasi, _UPC. Byte PortIsConnectable harus diatur ke 0xFF dan _PLD. Bit UserVisible harus diatur ke 0.

    Dalam contoh berikut, perangkat dikelompokkan dengan kontainer perangkat komputer.

    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})
    
  • Untuk menentukan port eksternal (terlihat pengguna) dan dapat disambungkan ke perangkat eksternal, _UPC. Byte PortIsConnectable harus diatur ke 0xFF dan _PLD. Bit UserVisible harus diatur ke 1. _UPC. Byte PortConnectorType harus diatur ke jenis konektor USB yang sesuai seperti yang ditentukan dalam Bagian 9.13 dari spesifikasi ACPI 3.0.

    Dalam contoh berikut, perangkat diberi kontainer perangkat baru dan ditampilkan sebagai perangkat fisik terpisah.

    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})
    

Konektor USB Type-C harus dijelaskan dengan benar di ACPI untuk lulus uji Usb Type-C ACPI Validation Hardware Lab Kit.

Contoh _UPC untuk konektor USB Type-C:

      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

Untuk informasi selengkapnya tentang antarmuka ACPI 6.0, lihat Konfigurasi Tingkat Lanjut dan Revisi Spesifikasi Antarmuka Daya 6.0.