⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 srv_exa1.asl

📁 AWARD BIOS源代码,支持的CHIPSET请看文件,有同型号的板子烧上去就可以跑
💻 ASL
字号:

DefinitionBlock (
        "SRV_exa1.aml",
        "DSDT",
        0x10,
        "OEMy",
        "SRV_xmpl",
        0x1000
        )

{// Processor Objects
Scope(\_PR) {
        Processor(CPU0,
         1,			//processor number
         0x0,		//C2 and C3 not supported in this implementation
        0
        ) {}
Processor(CPU1,
         2,			//processor number
         0x0,
        0
        ) {}
Processor(CPU2,
         3,			//processor number
         0x0,
        0
        ) {}
Processor(CPU3,
         4,			//processor number
         0x0,
        0
        ) {}
}


Method(\_PTS,1) {				//prepare to sleep
        }

Name(\_S0,Package(2){5,5})	//Value to be set in SLP_TYP register (S0)working state

Name(\_S1,Package(2){4,4})	//Value to be set in SLP_TYP register for S1 state

Name(\_S4,Package(2){Zero,Zero})		//Value to be set in SLP_TYP register for Soft Off

Name(\_S5,Package(2){Zero,Zero})		//Value to be set in SLP_TYP register for Soft Off

Method(\WAK,1){			//Method which runs after wake up.
}

Scope(\_SI) {
        Method(_MSG, 1) {
                If (Lequal(ARG0,Zero)) {Store(Zero, EC0.MSG)}//Turn message light off if no messages
                Else
                        {Store(One, EC0.MSG)}	//Turn message light on if any messages
        }

        Method(_SST, 1) {
                If (Lequal(Arg0,Zero)) {
                        Store(Zero,EC0.IND0)	//Turn both status indicators off
                        Return(0)}

                If (Lequal(Arg0,One)) {
                        Store(3, EC0.IND0)	//Turn on both indicators for working state
                        Return(0)}

                If (Lequal(Arg0,2)) {
                        Store(2,EC0.IND0)	//Turn on one indicator for s1, s2 or s3 state
                        Return(0)}

                If (Lequal(Arg0,3)) {
                        Store(3,EC0.IND0)	//Turn on both indicators for working state
                        Return(0)}

                If (Lequal(Arg0,4)) {
                        Store(Zero,EC0.IND0)	//Turn both indicators off for non-volatile sleep
                        Return(0)}
        }
}

Scope(\_TZ) {
        PowerResource(PFN0, \_S1, 0) {  //Power resource for system fan
                Method(_STA,0) {
                        Return(EC0.FAN0)}		//get fan status
                Method(_ON,0) {
                        Store(One,EC0.FAN0)}	//turn fan on
                Method(_OFF,0){
                        Store(Zero,EC0.FAN0)}   //turn fan off
        }
        PowerResource(PFN1, \_S1, 0) {  //Power resource for drive cabinet fan
                Method(_STA,0) {
                        Return(EC0.FAN1)}		//get fan status
                Method(_ON,0) {
                        Store(One,EC0.FAN1)}	//turn fan on
                Method(_OFF,0){
                        Store(Zero,EC0.FAN1)}   //turn fan off

        }

        Device(FAN0) {
                Name(_HID, "PNP0C0B")
                Name(_PR0, Package(){PFN0})
        }
        Device(FAN1) {
                Name(_HID, "PNP0C0B")
                Name(_PR0, Package(){PFN1})
        }

        ThermalZone(THM0) {

                Method(_TMP,0) {
                        RETURN(EC0.TMPV)}	//Get current temp

                Method(_AC0,0) {
                        RETURN(EC0.AC0V)}	//active cooling trip point

                Name(_AL0,Package(){FAN0})	//active cooling device list

                Method(_CRT,0) {RETURN(EC0.CRTV)}//Get critical temp trip point

        }
ThermalZone(THM1) {

                Method(_TMP,0) {
                        RETURN(EC0.TMPR)}	//Get current temp

                Method(_AC0,0) {
                        RETURN(EC0.AC0R)}	//active cooling trip point

                Name(_AL0,Package(){FAN1})	//active cooling device list

                Method(_CRT,0) {Return(EC0.CRTR)}//Get critical temp trip point

        }
}

Scope(\_GPE){
        Method(_L00) {			//GP event handle to GP_STS.00
                Notify(EC0,0)		//EC event notification
        }
}

Scope(\_SB) {
        Device(PCI0) {				// Root PCI Bus 
                Name(_HID, "PNP0A03")	//Need _HID for root device
                Name(_ADR,00000000)		//Num(00000000))	//Also need _ADR since this appears in PCI config space

                Method (_CRS,0){		//Current Resources for root bridge 0
                        Return(ZERO)
                }

                Device(PX40) {				// Map f0 space
                        Name(_ADR,0x00070000)	//Address+function.  Address is defined by
                }
        

                Device(USB0) {				// Map f2 space, USB Host controller
                        Name(_ADR, 0x00070002)	
                        OperationRegion(CFG2, PCI_Config, 0x0, 0x4)
                        Field(CFG2,DWordAcc,NoLock,Preserve){
                                USBB,8}		//USB Base address
                                
                        Method(_STA,0) {			//Status of the USB device
                                AND(USBB,0xFFE0,Local0)	//get the device base address
                                IF (Lequal(Local0,Zero)) {Return(one)}	//Return device present if no
                                        Else {Return(0x3)}	//else return present and active
                        }

                        Name(_PRW,Package(){8,		//Bit number in GPEx_EN to enable USB resume
                                        \_S1				//Reference to lowest sleeping state which can be
                        })

                }//end of usb device

                Device(PX43) {				// Map f3 space
                        Name(_ADR, 0x00070003)
                        OperationRegion(CFG3,PCI_Config,0x0,0x4)	// Map PCI Config Space
                        OperationRegion(GPOB,SystemIO,0xE0,4)//Operation Region for 


                Device(ISA) {
                        Name(_HID, "PNP0A00")

                        Device(EC0){		//Embedded Controller
                                Name(_HID, "PNP0C09")	//ID for embedded Controller
                                Method(_CRS,0) { //Current Resource for EC
                                        Name(ECBF, Buffer(144)	//18 bytes
                                                {0x47, 0x01, 0x62, 0x00, 0x62, 0x00, 0x01, 0x01,
                                                0x47, 0x01, 0x66, 0x00, 0x66, 0x00, 0x01, 0x01,
                                                0x79, 0x00})
                                        Return(ECBF)
                                }

                                OperationRegion(EC0, EmbeddedControl, 0, 0xFF)
                                        Field(EC0, AnyAcc, Lock, Preserve){
                                                IND0,2,
                                                ,6,
                                                FAN0,1,	//Main Cabinet Fan
                                                FAN1,1,	//Remote Cabinet Fan
                                                ,6,	//skips

                                                TMPV,8,	//Main Cabinet temperature
                                                AC0V,8,	//Main cabinet active cooling trip point
                                                CRTV,8,	//Main cabinet critical Value

                                                TMPR,8,	//Slave Cabinet temperature
                                                AC0R,8,	//Slave cabinet active cooling trip point
                                                CRTR,8,	//slave cabinet critical trip point

                                                HD1L,1,	//Hard Drive 1 Lock
                                                HD1S,4,	//Hard drive 1 Status
                                                PS8,1,	//Hard Drive 1 Power Status
                                                ,2,


                                                HD8L,1,	//Hard Drive 8 Lock
                                                HD8S,4,	//Hard drive 8 Status
                                                PS8,1,	//Hard Drive 8 Power Status
                                                ,2,

                                                RPWR,1,	//Remote Cabinet Power Control
                                                RPWS,1	//Remote Cabinet Power Status
                                        }

                                Method(_Q07){	//Thermal event for main Cabinet
                                        Notify(\_TZ.THM0, 0x80)
                                }

                                Method(_Q08){	//Thermal event for remote Cabinet
                                        Notify(\_TZ.THM1, 0x80)
                                }

                                Method(_Q11){	//Drive 1 remove request
                                        Notify(\_SB.PCI1.SCS0.HDD1, 0x1)//Notify OS of
                                }


                                Method(_Q18){	//Drive 8 remove request
                                        Notify(\_SB.PCI1.SCS8.HDD8, 0x1)//Notify OS of
                                }


                                Method(_Q21){	//Drive 1 insert
                                        Notify(\_SB.PCI1.SCS0.HDD1, 0x0)//Device
                                }


                                Method(_Q28){	//Drive 8 insert
                                        Notify(\_SB.PCI1.SCS1.HDD8, 0x0)//Device
                                }

                                
                        Device(RTC) {		//Real Time Clock Device
                                Name(_HID, "PNP0B00")//Hardware Device ID
                                Method(_CRS,0) {	//Current Resource
                                        Name(RTCB,Buffer(104)//13 bytes
                                                {0x47,		//IO descriptor
                                                0x0,
                                                0x70,
                                                0x00,
                                                0x70,
                                                0x00,
                                                0x0,
                                                0x4,
                                                0x22,
                                                0x0,
                                                0x1,
                                                0x79,
                                                0x0})
                                        Return(RTCB)
                                }

                        }
                Include("Coproc.asl")
                Include("DMA.asl")
                Include("INTR.asl")
                Include("Memory.asl")
                Include("Spkr.asl")
                Include("Timer.asl")

                Include("N307.asl")//Pcode for National 307 super IO

        }		// End of ISA
}			// End of PIIX4

}

                        

        DEVICE(LAN0){			//LAN device
                        Name(_ADR, 0x00060000)		//Device address on the PCI bus
                        Name(_PRW,Package(){11,		//Wake-up.  Chip set's LID bit 
                                \_S1					//Reference to lowest sleeping state where
                        })					
                }
        }				// End of PCI 0 Bus

        Device(PCI1) {				// Root PCI Bus 
                Name(_HID, "PNP0A03")	//Need _HID for root device
                Name(_ADR,0x00010000)	//Also need _ADR since this appears in PCI config space

                Method (_CRS,0){		//Current Resources for root bridge 1
                        Return(One)
                        }

                Device(SCS0){			//Fast wide SCSI device
                        NAME(_ADR, 0x00060000)		//Device address on the PCI bus

                        Device(HDD1){
                                Name(_ADR, 0x01)		//Drive's ID on SCSI bus
                                Method(_STA,0){Return(EC0.HD1S)}//Return Status Of Drive
                                Name(_IRC,Zero)
                                Method(_LCK,1){Store(Arg0,EC0.HD1L)} //Lock or unlock drive
                        }


                }

                Device(SCS1){			//Fast wide SCSI device
                        NAME(_ADR, 0x00070000)		//Device address on the PCI bus


                        Device(HDD5){
                                Name(_ADR, 0x01)		//Drive's ID on SCSI bus
                                Method(_STA,0){Return(EC0.HD5S)}//Return Status Of Drive
                                Name(_IRC,Zero)
                                Method(_LCK,1){Store(Arg0,EC0.HD5L)} //Lock or unlock drive
                        }
                }
        }				// End of PCI 1 Bus
}	
}

⌨️ 快捷键说明

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