Aracılığıyla paylaş


Microsoft Hata Ayıklama Bağlantı Noktası Tablo 2 (DBG2)

Bu belirtim, sistemdeki kullanılabilir hata ayıklama bağlantı noktalarını açıklamak için platform üretici yazılımında kullanılan Hata Ayıklama Bağlantı Noktası Tablo 2'nin (DBG2) biçimini tanımlar. Bu bilgiler aşağıdaki işletim sistemleri için geçerlidir: Windows 8 ve daha yenisi.

Burada ele alınan başvurular ve kaynaklar bu makalenin sonunda listelenmiştir.

Patent Bildirimi: Microsoft, bu belirtimin uygulanması için iki seçenek altında belirli patent haklarını kullanıma sunmaktadır:

  1. Microsoft'un Topluluk Sözü, adresinden edinilebilir https://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx
  2. Open Web Foundation Son Belirtim Sözleşmesi Sürüm 1.0 ("OWF 1.0"), 1 Ekim 2012 itibarıyla adresinde http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0bulunabilir.

Document History

Date Change
29 Kasım 2011, Saat 2011, Kasım 2011, Kasım 2011, Kasım 20 First publication.
22 Mayıs 2012, Mayıs 2012, Mayıs 2012, Mayıs 2012, Mayıs Windows 8 için desteklenen son platformlar başına Tablo 3 güncelleştirmeleri.
10 Ağustos 2015 Patent bildirimi güncelleştirildi.
6 Ekim 2015, Cumartesi Yeni seri hata ayıklama alt türleri eklendi (Arm SBSA UART, Arm DCC)
10 Aralık 2015, Cumartesi Yeni seri hata ayıklama alt türü eklendi (BCM2835)
31 Mayıs 2017, Mayıs 2017, Mayıs 2017, Mayıs 2017, Mayıs Yeni seri hata ayıklama alt türü eklendi (i.MX6, Genel Adres Yapısı 16550 uyumlu)
11 Haziran 2020, Saat 20:00 Yeni seri hata ayıklama alt türü eklendi (SDM845v2)
1 Eylül 2020, Cumartesi Belge Markdown söz dizimine ve biçimlendirme değişikliklerine dönüştürüldü.
21 Eylül 2020 Yeni seri hata ayıklama alt türü (IALPSS) eklendi
17 Şubat 2021, Saat 2021, Şubat 2021, Saat 20:00 Bilinen tüm seri hata ayıklama alt türlerini belgeleme
10 Nisan 2023 Yeni seri hata ayıklama alt türü (RISC-V) eklendi ve 16550 uyumlu alt türlerle ilgili açıklayıcı bilgiler eklendi

Introduction

Microsoft, tüm sistemlerde bir hata ayıklama bağlantı noktası gerektirir. Microsoft, bir platformda kullanılabilen hata ayıklama bağlantı noktalarını açıklamak için işletim sistemine özgü bir tablo (DBG2) tanımlar. Bu tablo, hata ayıklama amacıyla bir veya daha fazla bağımsız bağlantı noktası belirtir. Hata ayıklama bağlantı noktası tablosunun varlığı, sistemin bir hata ayıklama bağlantı noktası içerdiğini gösterir. Tablo, hata ayıklama bağlantı noktasının yapılandırması hakkında bilgi içerir. Tablo, diğer Gelişmiş Yapılandırma ve Güç Arabirimi (ACPI) tablolarıyla sistem belleğinde bulunur ve ACPI Kök Sistem Açıklaması Tablosu'nda (RSDT) başvurulmalıdır.

DBG2 tablosu, hata ayıklama bağlantı noktası uygulamaları DBGP kullanılarak açıklanamayan platformlarda ACPI Hata Ayıklama Bağlantı Noktası Tablosu'nu (DBGP) değiştirir.

Hata Ayıklama Bağlantı Noktası Tablosu 2 (DBG2)

Table 1. Bağlantı Noktası Tablo 2 biçiminde hata ayıklama

Tablo 1, DBG2'deki alanları tanımlar.

Field Byte length Byte offset Description
Header
Signature 4 0 'DBG2'. Hata Ayıklama Bağlantı Noktası Tablo 2 için imza.
Length 4 4 Hata Ayıklama Bağlantı Noktası 2'nin tamamının bayt cinsinden uzunluğu.
Revision 1 8 Belirtimin bu sürümü için bu değer 0'dır.
Checksum 1 9 Tablonun tamamı sıfıra toplanmalıdır.
OEM ID 6 10 Orijinal ekipman üreticisi (OEM) kimliği.
OEM Tablo Kimliği 8 16 Hata Ayıklama Bağlantı Noktası Tablo 2 için, tablo kimliği üretici modeli kimliğidir.
OEM Revision 4 24 Sağlanan OEM Tablo Kimliği için Hata Ayıklama Bağlantı Noktası Tablo 2'nin OEM düzeltmesi.
Creator ID 4 28 Tabloyu oluşturan yardımcı programın satıcı kimliği.
Creator Revision 4 32 Tabloyu oluşturan yardımcı programın düzeltmesi.
OffsetDbgDeviceInfo 4 36 Bu tablonun başından ilk Hata Ayıklama Cihaz Bilgileri yapı girdisine bayt cinsinden uzaklık.
NumberDbgDeviceInfo 4 40 Hata Ayıklama Cihaz Bilgileri yapı girdilerinin sayısını gösterir.
Cihaz Bilgi Yapısında Hata Ayıklama[NumberDbgDeviceInfo] Variable OffsetDbgDeviceInfo Bu platform için Hata Ayıklama Cihaz Bilgileri yapılarının listesi. Yapı biçimi, bu belgenin devamında yer alan Cihaz Bilgileri yapısında hata ayıklama bölümünde tanımlanır.

Cihaz Bilgileri yapısında hata ayıklama

Table 2. Cihaz Bilgileri yapı biçiminde hata ayıklama

Field Byte length Byte offset Description
Revision 1 0 Hata Ayıklama Cihaz Bilgileri yapısının düzeltmesi. Belirtimin bu sürümü için bu 0 olmalıdır.
Length 2 1 NamespaceString ve OEMData dahil olmak üzere bu yapının bayt cinsinden uzunluğu.
NumberofGenericAddressRegisters 1 3 Kullanılan genel adres yazmaçlarının sayısı.
NamespaceStringLength 2 4 NUL karakterleri de dahil olmak üzere NamespaceString'in bayt cinsinden uzunluğu.
NamespaceStringOffset 2 6 Bu yapının başlangıcından NamespaceString[] alanına bayt cinsinden uzaklık. Bu dizenin mevcut olması gerektiğinden bu değer geçerli olmalıdır.
OemDataLength 2 8 OEM veri bloğunun bayt cinsinden uzunluğu.
OemDataOffset 2 10 Bu yapının başlangıcından OemData[] alanına bayt cinsinden uzaklık. Oem verileri yoksa bu değer 0 olur.
Port Type 2 12 Bu hata ayıklama cihazı için bağlantı noktası türü hatalarını ayıkla. Bu değerlerin her biri, Tablo 3'te gösterildiği gibi karşılık gelen bir alt tür değerine sahip olacaktır.
Port Subtype 2 14 Bu hata ayıklama cihazı için bağlantı noktası alt türü hatalarını ayıkla. Bkz. Tablo 3.
Reserved 2 16 Ayrılmış, 0 olmalıdır.
BaseAddressRegisterOffset 2 18 Bu yapının başlangıcından BaseaddressRegister[] alanına bayt cinsinden uzaklık.
AddressSizeOffset 2 20 Bu yapının başlangıcından AddressSize[] alanına bayt cinsinden uzaklık.
BaseAddressRegister[] (NumberofGenericAddressRegisters) * 12 BaseAddressRegisterOffset Genel adres dizisi.
AddressSize[] (NumberofGenericAddressRegisters) * 4 AddressSizeOffset Yukarıdaki her genel adrese karşılık gelen adres boyutları dizisi.
NamespaceString[] NamespaceStringLength NamespaceStringOffset Bu cihazı benzersiz olarak tanımlamak için NUL ile sonlandırılan ASCII dizesi. Bu dize, ACPI ad alanında bu cihazı temsil eden nesneye tam başvurudan oluşur. Ad alanı cihazı yoksa, NamespaceString[] yalnızca tek bir '.' içermelidir. (ASCII nokta) karakteri.
OemData[] OemDataLength OemDataOffset İsteğe bağlı, değişken uzunlukta OEM'e özgü veriler.

Table 3. Bağlantı noktası türlerinde ve alt türlerde hata ayıklama

Port Type Subtype Description
Reserved 0x0000 – 0x7FFF ve 0xFFFF All Ayrılmış (Kullanmayın)
Serial 0x8000 0x0000 Fully 16550-compatible
0x0001 DBGP Düzeltme 1 ile uyumlu 16550 alt kümesi
0x0002 MAX311xE SPI UART
0x0003 Arm PL011 UART
0x0004 MSM8x60 (örn. 8960)
0x0005 NVIDIA 16550
0x0006 TI OMAP
0x0007 Ayrılmış (Kullanmayın)
0x0008 APM88xxxx
0x0009 MSM8974
0x000A SAM5250
0x000B Intel USIF
0x000C i.MX 6
0x000D (kullanım dışı) Arm SBSA (yalnızca 2.x) Yalnızca 32 bit erişimleri destekleyen Genel UART
0x000E Arm SBSA Genel UART
0x000F Arm DCC
0x0010 BCM2835
0x0011 Saat hızı 1,8432 MHz olan SDM845
0x0012 Genel Adres Yapısı'nda tanımlanan parametrelerle 16550 uyumlu
0x0013 Saat hızı 7,372 MHz olan SDM845
0x0014 Intel LPSS
0x0015 RISC-V SBI konsolu (desteklenen herhangi bir SBI mekanizması)
0x0016 – 0xFFFF Ayrılmış (Gelecekte Kullanmak için)
1394 0x8001 0x0000 Standart Konak Denetleyicisi Arabirimini IEEE1394
0x0001 – 0xFFFF Ayrılmış (Gelecekte Kullanmak için)
USB 0x8002 0x0000 Hata ayıklama arabirimine sahip XHCI uyumlu denetleyici
0x0001 Hata ayıklama arabirimine sahip EHCI uyumlu denetleyici
0x0002 – 0x0006 Ayrılmış (Kullanmayın)
0x0007 – 0xFFFF Ayrılmış (Gelecekte Kullanmak için)
Net 0x8003 NNNN NNNN geçerli bir PCI tarafından atanan Satıcı Kimliği olmalıdır
0x8004 All Ayrılmış (Kullanmayın)
Reserved 0x8005 – 0xFFFE All Ayrılmış (Gelecekte Kullanmak için)

Genel Adres Yapısı alanlarıyla ilgili not

  • BaseAddressRegister[0] içindeki Genel Adres Yapısı, bazı seri alt türleri tarafından kullanılan yazmaç bit genişliğini ve erişim boyutunu belirtmek için kullanılır.

  • Adres Alanı Kimliği ve Yazma Bit Uzaklığı alanları 0 olmalıdır.

  • Yazmaç Bit Genişliği alanı yazmaç adımını içerir ve en az erişim boyutu kadar büyük olan 2'lik bir güç olmalıdır. 32 bit platformlarda bu değer 32'yi aşamaz. 64 bit platformlarda bu değer 64'ü aşamaz.

  • Erişim Boyutu alanı bayt, WORD, DWORD veya QWORD erişimlerinin kullanılıp kullanılmayacağını belirlemek için kullanılır. QWORD erişimleri yalnızca 64 bit mimarilerde geçerlidir.

16550 tabanlı UART'ler hakkında not

16550 tabanlı UART'ler için kullanılabilecek üç arabirim alt türü vardır. Aralarındaki farklar ince ancak önemlidir.

  • Arabirim alt türü 0x0, x86 tabanlı platformlarda görüldüğü gibi "eski" bağlantı noktası G/Ç kullanan bir seri bağlantı noktası anlamına gelir. Arm veya RISC-V gibi bellek eşlemeli G/Ç kullanan platformlarda bu tür önlenmelidir.

  • Arabirim alt türü 0x1, bellek eşlenmiş UART'leri destekler, ancak yalnızca DBGP ACPI tablosunda dağıtılabilir olanları destekler. İşletim sistemi uygulamaları bunu DBGP tarafından sağlanan bir hata ayıklama bağlantı noktasına eşdeğer olarak kabul edebilir ve Genel Adres Yapısı'nın yalnızca Temel Adres alanını kabul edebilir.

  • Arabirim alt türü 0x12 en esnek seçenektir ve yeni platformlarda uyumlu işletim sistemleri çalıştırılırken önerilir. Bu alt tür, 0x0 ve 0x1 alt türleri tarafından açıklanabilen tüm seri bağlantı noktalarının yanı sıra Genel Adres Yapısında geleneksel olmayan erişim boyutları ve bit genişlikleri gerektirenler gibi yenilerini destekler.

Resources

ACPI Specification