Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Spesifikasi ini mendefinisikan format Debug Port Table 2 (DBG2), yang digunakan dalam firmware platform untuk menjelaskan port debug yang tersedia pada sistem. Informasi ini berlaku untuk sistem operasi berikut: Windows 8 dan yang lebih baru.
Referensi dan sumber daya yang dibahas di sini tercantum di akhir makalah ini.
Pemberitahuan Paten: Microsoft membuat hak paten tertentu tersedia untuk implementasi spesifikasi ini di bawah dua opsi:
- Janji Komunitas Microsoft, tersedia di
https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx- Perjanjian Spesifikasi Akhir Open Web Foundation Versi 1.0 ("OWF 1.0") per 1 Oktober 2012, tersedia di
http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0.
Document History
| Date | Change |
|---|---|
| 29 November 2011 | First publication. |
| 22 Mei 2012 | Pembaruan untuk Tabel 3 per platform akhir yang didukung untuk Windows 8. |
| 10 Agustus 2015 | Pemberitahuan paten yang diperbarui. |
| 6 Oktober 2015 | Menambahkan subjenis penelusuran kesalahan serial baru (Arm SBSA UART, Arm DCC) |
| 10 Desember 2015 | Menambahkan subjenis penelusuran kesalahan serial baru (BCM2835) |
| 31 Mei 2017 | Menambahkan subjenis debugging serial baru (i.MX6, Struktur Alamat Generik yang kompatibel dengan 16550) |
| 11 Juni 2020 | Menambahkan subjenis penelusuran kesalahan serial baru (SDM845v2) |
| 1 September 2020 | Dokumen yang dikonversi ke sintaks Markdown dan perubahan pemformatan. |
| 21 September 2020 | Menambahkan subjenis penelusuran kesalahan serial baru (IALPSS) |
| 17 Februari 2021 | Mendokumen semua subtipe debugging serial yang diketahui |
| 10 April 2023 | Menambahkan subjenis debugging serial baru (RISC-V) dan menambahkan informasi klarifikasi pada subjenis yang kompatibel dengan 16550 |
Introduction
Microsoft memerlukan port debug di semua sistem. Untuk menjelaskan port debug yang tersedia di platform, Microsoft menentukan tabel khusus sistem operasi (DBG2). Tabel ini menentukan satu atau beberapa port independen untuk tujuan penelusuran kesalahan. Kehadiran tabel port debug menunjukkan bahwa sistem menyertakan port debug. Tabel berisi informasi tentang konfigurasi port debug. Tabel terletak di memori sistem dengan tabel Konfigurasi Tingkat Lanjut dan Antarmuka Daya (ACPI) lainnya, dan harus dirujuk dalam Tabel Deskripsi Sistem Akar ACPI (RSDT).
Tabel DBG2 menggantikan Tabel Port Debug ACPI (DBGP) pada platform yang implementasi port debugnya tidak dapat dijelaskan menggunakan DBGP.
Debug Port Table 2 (DBG2)
Table 1. Format Debug Tabel Port 2
Tabel 1 menentukan bidang di DBG2.
| Field | Byte length | Byte offset | Description |
|---|---|---|---|
| Header | |||
| Signature | 4 | 0 | 'DBG2'. Tanda tangan untuk Debug Port Table 2. |
| Length | 4 | 4 | Panjang, dalam byte, dari seluruh Tabel Port Debug 2. |
| Revision | 1 | 8 | Untuk versi spesifikasi ini, nilai ini adalah 0. |
| Checksum | 1 | 9 | Seluruh tabel harus berjumlah nol. |
| OEM ID | 6 | 10 | ID produsen peralatan asli (OEM). |
| ID Tabel OEM | 8 | 16 | Untuk Debug Port Table 2, ID tabel adalah ID model produsen. |
| OEM Revision | 4 | 24 | Revisi OEM dari Debug Port Table 2 untuk ID Tabel OEM yang disediakan. |
| Creator ID | 4 | 28 | ID vendor utilitas yang membuat tabel. |
| Creator Revision | 4 | 32 | Revisi utilitas yang membuat tabel. |
| OffsetDbgDeviceInfo | 4 | 36 | Offset, dalam byte, dari awal tabel ini ke entri struktur Informasi Perangkat Debug pertama. |
| NumberDbgDeviceInfo | 4 | 40 | Menunjukkan jumlah entri struktur Informasi Perangkat Debug. |
| Debug Struktur Informasi Perangkat[NumberDbgDeviceInfo] | Variable | OffsetDbgDeviceInfo | Daftar struktur Informasi Perangkat Debug untuk platform ini. Format struktur ditentukan di bagian Struktur Informasi Perangkat Debug, nanti dalam dokumen ini. |
Men-debug struktur Informasi Perangkat
Table 2. Format struktur Informasi Perangkat Debug
| Field | Byte length | Byte offset | Description |
|---|---|---|---|
| Revision | 1 | 0 | Revisi struktur Informasi Perangkat Debug. Untuk versi spesifikasi ini, ini harus 0. |
| Length | 2 | 1 | Panjang, dalam byte, dari struktur ini, termasuk NamespaceString dan OEMData. |
| NumberofGenericAddressRegisters | 1 | 3 | Jumlah daftar alamat generik yang digunakan. |
| NamespaceStringLength | 2 | 4 | Panjang, dalam byte, NamespaceString, termasuk karakter NUL. |
| NamespaceStringOffset | 2 | 6 | Offset, dalam byte, dari awal struktur ini ke bidang NamespaceString[]. Nilai ini harus valid karena string ini harus ada. |
| OemDataLength | 2 | 8 | Panjang, dalam byte, dari blok data OEM. |
| OemDataOffset | 2 | 10 | Offset, dalam byte, ke bidang OemData[] dari awal struktur ini. Nilai ini akan menjadi 0 jika tidak ada data OEM yang ada. |
| Port Type | 2 | 12 | Jenis port debug untuk perangkat debug ini. Masing-masing nilai ini akan memiliki nilai subjenis yang sesuai seperti yang ditunjukkan dalam Tabel 3. |
| Port Subtype | 2 | 14 | Subjenis port debug untuk perangkat debug ini. Lihat Tabel 3. |
| Reserved | 2 | 16 | Dicadangkan, harus 0. |
| BaseAddressRegisterOffset | 2 | 18 | Offset, dalam byte, dari awal struktur ini ke bidang BaseaddressRegister[]. |
| AddressSizeOffset | 2 | 20 | Offset, dalam byte, dari awal struktur ini ke bidang AddressSize[]. |
| BaseAddressRegister[] | (NumberofGenericAddressRegisters) * 12 | BaseAddressRegisterOffset | Array alamat generik. |
| AddressSize[] | (NumberofGenericAddressRegisters) * 4 | AddressSizeOffset | Array ukuran alamat yang sesuai dengan setiap alamat generik di atas. |
| NamespaceString[] | NamespaceStringLength | NamespaceStringOffset | String ASCII yang dihentikan NUL untuk mengidentifikasi perangkat ini secara unik. String ini terdiri dari referensi yang sepenuhnya memenuhi syarat ke objek yang mewakili perangkat ini di namespace ACPI. Jika tidak ada perangkat namespace, NamespaceString[] hanya boleh berisi satu '.' karakter (periode ASCII). |
| OemData[] | OemDataLength | OemDataOffset | Data spesifik OEM opsional dengan panjang variabel. |
Table 3. Men-debug jenis port dan subjenis
| Port | Type | Subtype | Description |
|---|---|---|---|
| Reserved | 0x0000 – 0x7FFF dan 0xFFFF | All | Dicadangkan (Jangan Gunakan) |
| Serial | 0x8000 | 0x0000 | Fully 16550-compatible |
| 0x0001 | 16550 subset kompatibel dengan DBGP Revisi 1 | ||
| 0x0002 | MAX311xE SPI UART | ||
| 0x0003 | Arm PL011 UART | ||
| 0x0004 | MSM8x60 (misalnya 8960) | ||
| 0x0005 | NVIDIA 16550 | ||
| 0x0006 | TI OMAP | ||
| 0x0007 | Dicadangkan (Jangan Gunakan) | ||
| 0x0008 | APM88xxxx | ||
| 0x0009 | MSM8974 | ||
| 0x000A | SAM5250 | ||
| 0x000B | Intel USIF | ||
| 0x000C | i.MX 6 | ||
| 0x000D | (tidak digunakan lagi) Arm SBSA (hanya 2.x) UART Generik yang hanya mendukung akses 32-bit | ||
| 0x000E | Arm SBSA Generic UART | ||
| 0x000F | Arm DCC | ||
| 0x0010 | BCM2835 | ||
| 0x0011 | SDM845 dengan laju jam 1,8432 MHz | ||
| 0x0012 | Kompatibel dengan 16550 dengan parameter yang ditentukan dalam Struktur Alamat Generik | ||
| 0x0013 | SDM845 dengan laju jam 7,372 MHz | ||
| 0x0014 | Intel LPSS | ||
| 0x0015 | RISC-V konsol SBI (mekanisme SBI yang didukung) | ||
| 0x0016 – 0xFFFF | Dicadangkan (Untuk Penggunaan Di Masa Mendatang) | ||
| 1394 | 0x8001 | 0x0000 | Antarmuka Pengontrol Host Standar IEEE1394 |
| 0x0001 – 0xFFFF | Dicadangkan (Untuk Penggunaan Di Masa Mendatang) | ||
| USB | 0x8002 | 0x0000 | Pengontrol yang sesuai dengan XHCI dengan antarmuka debug |
| 0x0001 | Pengontrol yang mematuhi EHCI dengan antarmuka debug | ||
| 0x0002 – 0x0006 | Dicadangkan (Jangan Gunakan) | ||
| 0x0007 – 0xFFFF | Dicadangkan (Untuk Penggunaan Di Masa Mendatang) | ||
| Net | 0x8003 | NNNN | NNNN harus berupa ID Vendor yang ditetapkan PCI yang valid |
| 0x8004 | All | Dicadangkan (Jangan Gunakan) | |
| Reserved | 0x8005 – 0xFFFE | All | Dicadangkan (Untuk Penggunaan Di Masa Mendatang) |
Catatan tentang bidang Struktur Alamat Generik
Struktur Alamat Generik di BaseAddressRegister[0] digunakan untuk menentukan lebar bit register dan ukuran akses yang digunakan oleh beberapa subjenis serial.
Bidang ID Ruang Alamat dan Register Bit Offset harus 0.
Bidang Daftarkan Lebar Bit berisi langkah register dan harus berupa kekuatan 2 yang setidaknya sebesar ukuran akses. Pada platform 32-bit, nilai ini tidak boleh melebihi 32. Pada platform 64-bit, nilai ini tidak boleh melebihi 64.
Bidang Ukuran Akses digunakan untuk menentukan apakah akses byte, WORD, DWORD, atau QWORD akan digunakan. Akses QWORD hanya berlaku pada arsitektur 64-bit.
Catatan tentang UART berbasis 16550
Ada tiga subjenis antarmuka yang dapat digunakan untuk UART berbasis 16550. Perbedaan di antara keduanya halang namun penting.
Subjenis antarmuka 0x0 mengacu pada port serial yang menggunakan I/O port "warisan" seperti yang terlihat pada platform berbasis x86. Jenis ini harus dihindari pada platform yang menggunakan I/O yang dipetakan memori, seperti ARM atau RISC-V.
Subjenis antarmuka 0x1 mendukung UART yang dipetakan memori, tetapi hanya yang dapat dideskripsikan dalam tabel ACPI DBGP. Implementasi sistem operasi dapat memperlakukan ini setara dengan port debug yang disediakan DBGP dan hanya menghormati bidang Alamat Dasar dari Struktur Alamat Generik.
Subjenis antarmuka 0x12 adalah pilihan yang paling fleksibel dan direkomendasikan saat menjalankan sistem operasi yang kompatibel pada platform baru. Subjenis ini mendukung semua port serial yang dapat dijelaskan oleh subjenis 0x0 dan 0x1, serta yang baru, seperti yang membutuhkan ukuran akses non-tradisional dan lebar bit dalam Struktur Alamat Generik.