DSDT

    內容表格
    沒有標頭

    版本為 02:39, 27 Nov 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

     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),
    裡面寫有ACPI控制方法和控制物 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看到的是一個平台無關的硬件




    DSDT Editor
    解釋




    編譯成


    參考連結

    1. 我有分寸*Beta

    2. http://hi.baidu.com/sinbad_li/item/7...39d8145050583e

    Powered by MindTouch Core