dsdt.asl

来自「惠普公司bios完整源代码大机密!」· ASL 代码 · 共 533 行 · 第 1/2 页

ASL
533
字号

DefinitionBlock (
        "DSDT.AML",
        "DSDT",
        0x01,
        "HP    ",				// OEMID
        "HPBDD_IO",			//OEM06
        0x1010			//OEM10 OEMRevision
        )
{						// Start of ASL File
Scope(\_PR) {
        Processor(\_PR.CPU0,
         1,				//processor number
         0x4010, //System IO address of Pblk Registers
         0x06		//length in bytes of PBlk		      
        ) {}
}




               include ("CT_Func.asl")
Name(STAT,0x00)

Name(\_S0,Package(){Zero,Zero,Zero,Zero})// Value to be set in SLP_TYP register (S0)working state
Name(\_S1,Package(){4,4,4,4}) 	// Value to be set in SLP_TYP register for S1 state
Name(\_S3,Package(){1,1,1,1})	//OEM05
if(Not(OSFL)) {
Name(\_S4,Package(){2,2,2,2})// Value to be set in SLP_TYP register for Soft Off
}
Name(\_S5,Package(){2,2,2,2})// Value to be set in SLP_TYP register for Soft Off

OperationRegion(\DEBG, SystemIO, 0x80, 0x1)
        Field(\DEBG, ByteAcc, NoLock, Preserve) {
                DBG1, 8,
                }

OperationRegion	(KBC, SystemIO, 0x64, 0x1)
Field (KBC, ByteAcc, NoLock, Preserve) 
{
                 KCMD, 8
}

OperationRegion(EXTM, SystemMemory, 0x000ff830, 0x10)
        Field(EXTM, WordAcc, NoLock, Preserve) {	
                ROM1, 16,				//length=16bit
                RMS1, 16,				//length=16bit
                ROM2, 16,				//length=16bit
                RMS2, 16,				//length=16bit
                ROM3, 16,				//length=16bit
                RMS3, 16,				//length=16bit
                AMEM, 32,				//length=32bit
                }


OperationRegion (ELCR, SystemIO, 0x4D0, 0x02)
Field (ELCR, ByteAcc, Nolock, Preserve) {
                ELC1,   8,
                ELC2,   8
}

OperationRegion(\Stus, SystemIO, 0x4030, 0x1)	// Global Status
        Field(\Stus, ByteAcc, NoLock, Preserve)		//
        {						//
        G_St, 8,					//
        }						
OperationRegion(\WIRQ, SystemIO, 0x402a, 0x1)	// IRQ Resume Reg
        Field(\WIRQ, ByteAcc, NoLock, Preserve)		//
        {						//
        IRQR, 8,					//
        }				
OperationRegion(\SMIC, SystemIO, 0x402f, 0x1)	//
        Field(\SMIC, ByteAcc, NoLock, Preserve)		//
        {						//
        SCP_, 8,					//
        }				

OperationRegion(GPOB,SystemIO,0x404C,0x4)
        Field(GPOB,ByteAcc,NoLock,Preserve) {
                GP00,1,
                GP01,1,
                GP02,1,
                GP03,1,
                GP04,1,
                GP05,1,
                GP06,1,
                GP07,1,
                GP08,1,
                GP09,1,
                GP10,1,
                GP11,1,
                GP12,1,
                GP13,1,
                GP14,1,
                GP15,1,
                GP16,1,
                GP17,1,
                GP18,1,
                GP19,1,
                GP20,1,
                GP21,1,
                GP22,1,
                GP23,1,
                GP24,1,
                GP25,1,
                GP26,1,
                GP27,1,
                GP28,1,
                GP29,1,
                GP30,1,
                GPxx,1,				// Reserve
                }





Method(\_PTS,1)
{
        Or (Arg0, 0xF0,  Local0)
        Store (Local0, DBG1)
        IF (LNotEqual(Arg0, 0x05))		
        {					
        
                And(PWC1, 0xFC, PWC1)
                Or(PWC1, 0x02, PWC1)
                And(PWC1, 0xFC, PWC1)			//R02
                Or(PWC1, 0x01, PWC1)
        }					
        Or (Arg0, 0x50,  Local1)
        Store (Local1, SCP_)
        IF (LEqual(Arg0, 0x01))
        {
                And(GAR1, 0xFD, GAR1)
                And(GAR2, 0x02, Local0)		//R04
                Or(Local0, GAR1, GAR1)		//R04




                Store(G_St, LOCAL1)		//Read Global Status
                        While(LNotEqual(Local1, 0x00)) 
                        {
                                Store (Local1, G_St)	//Clear Global Status
                        Store (G_St, LOCAL1)	//Read Global Status
                         }

                Or(IRQR,0x80,IRQR)		//Enable IRQ Resume Reg

        And(FLG0,0x04,Local0)
        if(Lequal(Local0,0x04)) 
        {
                Sleep(3)
                Store(0xA7, KCMD)		//disable PS2 mouse
        }
        }			 
        IF (LEqual(Arg0, 0x05)) {			
                Store (Zero,GP00)			//R05
                }					
}

Method(\_WAK,1){
        Store (0xFF, DBG1)

        And(FLG0,0x04,Local0)
        if(Lequal(Local0,0x04)) 
        {
                Sleep(3)
                Store(0xA8, KCMD)		//Enable PS2 mouse
        }





        
                And(PWC1, 0xFC, PWC1)

        If(Lequal(RTCW,0x00)) {
        Notify(\_SB.PWRB,0x2)				
                }
        }

Scope(\_SI) 
{ // Start of _SI
        Method(_MSG, 1) {
                Store (Local0, Local0)
                } 			// End of Method
        Method(_SST, 1)	{
        IF (LEqual(Arg0, 0x03)) {
        }
        IF (LEqual(Arg0, 0x01)) {
        }
        IF (LEqual(Arg0, Zero)) {
        }
                Store (Local0, Local0)	
                } 			// End of Method
} // End of _SI


Scope(\_GPE) {

        Method(_L05) {Noop}	//PME
        Method(_L09) {Noop}		//USB
        Method(_L08) {Noop}		//RI


} // Scope(\_GPE)

Scope(\_SB) {

        Device(PWRB)	{
                Name (_HID, EISAID("PNP0C0C"))	// Hardware Device ID PWRBTN
                Method(_STA, 0) {
                        Return(0x0B)	// non-present, enabled, functioning
                }
        }


                        include	("memory.asl")

        Device(PCI0)	{
                Name (_HID, EISAID("PNP0A03"))	// Hardware Device ID
                Name (_ADR, 0x000000)
                        OperationRegion(GART, PCI_Config, 0x80, 0x1)
                        Scope(\) {
                                Field (\_SB.PCI0.GART, ByteAcc, NoLock, Preserve) {
                                        GAR1, 8, 	//Serial IRQ	
                                        }
                                 }
                        OperationRegion(GARA, PCI_Config, 0x88, 0x1)
                        Scope(\) {
                                Field (\_SB.PCI0.GARA, ByteAcc, NoLock, Preserve) {
                                        GAR2, 8,
                                        }
                                 }


                Method(_STA, 0) {	
                        Return(0x0F)	// present, enabled, functioning
                }

                       Method(_CRS,0)	{ 			
                           Name(BUF0,ResourceTemplate() {	
                        WORDBusNumber(		// Bus 0
                                ResourceConsumer,
                                MinNotFixed,
                                MaxNotFixed,
                                PosDecode,
                                       0x0000,
                                       0x0000,
                                       0x00FF,
                                       0x0000,
                                       0x0100
                )

                        IO(			// IO Resource for PCI Bus
                                Decode16,
                                0x0CF8,
                                0x0CF8,
                                1,
                                8
                        )

                        WORDIO(			// IO from 0x0000 - 0x0cf7
                                ResourceProducer,
                                MinFixed,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?