Rss

黑蘋果 DSDT 原理教學

(還沒寫完)
傻瓜黑蘋果教程 看了一堆 黑蘋果網站 只會叫你 照著做 也不會跟你說清楚怎做的

ACPI – the Advanced Configuration & Power Interface. ACPI是OS,BIOS和硬件之間的抽像層。它允許OS和平台獨立的發展,比如新的OS可以控制老的平台,老的OS也可以控制新的平台而不需要額外的修 改。ACPI的基本結構圖如下:

計算機領域的一個基本方法是增加一個抽像層,從而使得抽像層的上下兩層獨立的發展,ACPI事實上也是借鑒類似的思想。ACPI的抽像主要是通過ACPI表中提供的信息來實現,這些信息包括ACPI寄存器、AML代碼、配置信息等。

ACPI寄存器,描述了和ACPI相關的寄存器。OS可以直接從ACPI表中取得這些寄存器的信息,因此不必了解具體的硬件配置。

a827cad388b8f8453bf3cfd5.jpg

DSDT

獲得 DSDT 方法

$sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.aml

or

$ acpidump > acpidump.out    "ACPI BIOS tables"
$ acpixtract DSDT acpidump > DSDT.aml "把 ACPI BIOS DSDT Table 取出來"

注意 提出的 AML 是 ACPI機器語言(ACPI Machine Language (AML))
這是ACPI相容的OS支援的虛擬機器的虛擬碼(Pseudo-code),已是編譯過的Binary Hex.

必需用 isal (Intel ACPI Source Language compiler/decompiler)工具
轉換成 DSL 標準文本文件

ACPI源語言(ACPI Source Language (ASL))ASL編譯以後就是AML映像(AML images)

Scope (_SB.PCI0.LPC) { OperationRegion (LPCS, PCI_Config, 0x00, 0x0100)
                                 Field (LPCS, AnyAcc, NoLock, Preserve) { Offset (0x60), PIRA, 8, }'   }
Device (LNKA) {                     Method (_DIS, 0, NotSerialized)
{                   Or (\_SB.PCI0.LPC.PIRA, 0x80, \_SB.PCI0.LPC.PIRA) } }

比如想禁止LNKA設備,ACPI規範定義了OS必須執行此設備的_DIS函數。從硬件的角度來講,禁止LNKA設備需要將某個PCI設備的配置空間的寄 存器0×60的最高位置上。OS不需要知道硬件的細節,它解釋執行_DIS函數即可。上面的代碼就是AML代碼,由BIOS提供,語句‘Or (\_SB.PCI0.LPC.PIRA, 0×80, \_SB.PCI0.LPC.PIRA)’實際上就是給寄存器\_SB.PCI0.LPC.PIRA置上最高位, 而PIRA就是PCI設備LPC的配置空間的寄存器0×60。從此段代碼我們可以明顯的看出BIOS以AML代碼的形式隱藏(抽像)了硬件的細節,從而使 得OS看到的是一個平台無關的硬件

為何

    ACPI: RSDP (v000 GBT ) @ 0x000f6d20
    ACPI: RSDT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3000
    ACPI: FADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff3040
    ACPI: MADT (v001 GBT AWRDACPI 0x42302e31 AWRD 0x01010101) @ 0x3fff7080
    ACPI: DSDT (v001 GBT AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000  /*这一行有MSFT*/

 

DSDT Editor 下載
編譯使用Windows 下編譯比較成功

自定的 DSDT 取代原本機器上的 table    將檔案放到 /boot (Linux)  /Extra  (OS X)

回寫bios

參考連結

  1. 我有分寸*Beta
  2. http://hi.baidu.com/sinbad_li/item/7…39d8145050583e
  3. http://www.macbreaker.com/2012/03/ma…dt-editor.html
  4. http://fred-zone.blogspot.tw/2008/10…ion-table.html
  5. http://blog.csdn.net/nksmiles/article/details/7466067

Like This Post? Share It

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *