📄 aslbuild.mak
字号:
! endif
Name(PLCY, 0) // primary thermal policy-active
! if $(A_GET_THRM_DATA)
! if "$(A_THRM_INDEX_DATA_IO_Adr)" != ""
OperationRegion(THOR, SystemIO, 0x$(A_THRM_INDEX_DATA_IO_Adr), 0x02)
Field ( THOR, ByteAcc, NoLock, Preserve)
{
ECMI, 8, // Extended CMOS index
ECMD, 8 // Extended CMOS data
}
IndexField (ECMI, ECMD, // index/data
ByteAcc, NoLock, Preserve)
{
Offset(0x$(A_THRM_INDEX_DATA_IO_Ofs)),
! endif
TMIN,8, // TMIN
TMAX,8, // TMAX
TCRT,8, // TCRT
TSP, 8, // TSP
TC1, 8, // TC1
TC2, 8, // TC2
TSAD,8, // TSAD
} // End of Thermal data field
! else
Name(TMIN, $(A_TRP1)) // 1st Thermal limit
Name(TMAX, $(A_TRP2)) // 2nd Thermal limit
Name(TCRT, $(A_TCRT)) // Critical themperature
Name(TSP , $(A_TSP)) // Themp. sampling period
Name(TC1 , $(A_TC1)) // 1st Thermal constant
Name(TC2 , $(A_TC2)) // 2nd Thermal constant
Name(TSAD, 0x$(A_THRM_Adr)) // Tsensor SMBus address
! endif
//----------------------------------------------------------------------
// Thermal sensor module
//----------------------------------------------------------------------
Include("$(ACPI_ASL_PATH)tsensor.asl")
ThermalZone (THRM)
{
Method(_CRT) { // get critical temp
Return (KELV(TCRT))
}
Method(_TMP) { // get current temp
Return (KELV(RTMP()))
}
// Passive cooling objects
// CPU is a passive cooling device
!if "$(NCPU)" != ""
Name(_PSL, Package (){\_PR.CPU1})
! endif
Method(_TSP,0) { //sample every TSP*10 sec
Multiply(TSP, 10, Local0)
Return(Local0)
}
Method(_TC1,0){ // 1st Thermal constant
Return(TC1)
}
Method(_TC2,0){ // 2nd Thermal constant
Return(TC2)
}
Method(_PSV) { If(PLCY) // activate CPU throttling
{Return (KELV(TMIN))}
else {Return (KELV(TMAX))}
}
// Active cooling objects
// fan is an active cool device
!if $(A_FAN_MODEL_1)
Name(_AL0, Package(1){FANC})
Method(_AC0) {
If(PLCY)
{ Return (KELV(TMAX)) }
else { Return (KELV(TMIN)) }
}
! elseif $(A_FAN_MODEL_2) || $(A_FAN_MODEL_3)
Name(_AL0,Package()
{
FN00,
})
Name(_AL1,Package()
{
FN01,
})
Name(_AL2,Package()
{
FN02,
})
// OEM Specific code.
// Provide proper thermal limits for each FAN device
Method(_AC0) // Return active trip point
{
If(PLCY) {Return(Add(KELV(TMIN), 200))} // $(A_TRP1) + 20.0 C
Else {Return(Add(KELV(TMIN), 150))} // $(A_TRP1) + 15.0 C
}
Method(_AC1)
{
If(PLCY) {Return(Add(KELV(TMIN), 100))} // $(A_TRP1) + 10.0 C
Else {Return(Add(KELV(TMIN), 50))} // $(A_TRP1) + 05.0 C
}
Method(_AC2)
{
If(PLCY) {Return(Add(KELV(TMIN), 50))} // $(A_TRP1) + 05.0 C
Else {Return(Add(KELV(TMIN), 0))} // $(A_TRP1) + 00.0 C
}
! endif
Method(_SCP, 1) { // set cooling mode
Store (Arg0, PLCY)
TCHG() // Set Thigh/TLow
// Notify value same as for Thermal _L$(A_THERMAL_GPE) handler
Notify(\_TZ.THRM, 0x81) // Notify of trip point change
}
} // end of Thermal Zone
! if "$(A_THERMAL_GPE)" != ""
Scope(\_GPE){
//---------------------------------------------------------------------------
// Thermal event handler
//---------------------------------------------------------------------------
Method( _L$(A_THERMAL_GPE), 0, Serialized ) {
\_TZ.THDL() // Interrupt handler
Notify(\_TZ.THRM, 0x81) // Notify of temperature change
}
// Method( _L07, 0, Serialized) { // Clear Thermal Override. PIIX4 only
// NoOp
// }
} // End of \_GPE
! endif
} // End of \_TZ
!endif
!if "$(A_SI_ISA_IO_Adr)" != ""
OperationRegion(SIOR, SystemIO, 0x$(A_SI_ISA_IO_Adr), 0x04)
!elseif "$(A_SI_INDEX_DATA_IO_Adr)" != ""
OperationRegion(SIOR, SystemIO, 0x$(A_SI_INDEX_DATA_IO_Adr), 0x02)
Field ( SIOR, ByteAcc, NoLock, Preserve)
{
SIND,8, //field named INDX is 8 bits wide
SDTA,8 //field DATA is 8 bits wide
}
!endif
!if $(A_SI_MODEL_1)
//-----------------------------------------------------------------------
// System indication 1
//-----------------------------------------------------------------------
$(A_SI_FIELD)
{
,$(A_SI_LED_1_GPO_Offset),
LEDW,1, // LED control bit 1
}
Name(LDON, $(A_SI_LED_1_ON))
! elseif $(A_SI_MODEL_2)
//-----------------------------------------------------------------------
// System indication 2
//-----------------------------------------------------------------------
$(A_SI_FIELD)
{
,$(A_SI_WORK_GPO_Offset),
LEDW,1, // LED control bit 1
}
$(A_SI_FIELD)
{
,$(A_SI_SLEEP_GPO_Offset),
LEDS,1, // LED control bit 2
}
Name(WKON, $(A_SI_WORK_2_ON))
Name(SPON, $(A_SI_SLEEP_2_ON))
! elseif $(A_SI_MODEL_3)
//-----------------------------------------------------------------------
// System indication 3
//-----------------------------------------------------------------------
$(A_SI_FIELD)
{
,$(A_SI_LED_3_GPO_Offset),
LEDW,1, // LED control bit
}
$(A_SI_FIELD)
{
,$(A_SI_BLINK_GPO_Offset),
BLNK,1, // Steady / Blink
}
Name(LDON, $(A_SI_LED_3_ON))
Name(STDY, $(A_SI_LED_STEADY))
!endif
!if $(A_SI_OEM)
Include("$(ACPI_ASL_PATH)cust_SI.oem")
! elseif "$(A_SI_PATH)" != ""
Include("$(ACPI_ASL_PATH)SI.asl")
! else
!endif
!if $(A_PTS_WAK_OEM)
// CUSTOM PTS_WAK
// make all changes in CUST_PTS.oem
Include("$(ACPI_ASL_PATH)CUST_pts.oem")
!else
!if $(A_PM1a_Cnt_IO_TRAP) && $(A_S_PIIX4) && $(A_POS_DECODE)
// I/O Trap control code
Include("$(ACPI_ASL_PATH)iotrap.asl")
!endif
//-----------------------------------------------------------------------
// _PTS METHOD CALLED JUST BEFORE OS GO TO SLEEP
//-----------------------------------------------------------------------
Method(_PTS, 1){
Store(Arg0, DBG8)
!if $(A_S_PIIX4)
if (LEqual(Arg0,1)){
Store(1, ETRP)
}
!endif
!if $(A_S_SIS5595) || $(A_S_VIA82586)
if (LEqual(Arg0,1)){
While(WAKS)
{
Stall(80)
Store(1,WAKS)
}
}
!endif
!if $(A_N_I440BX)
// Reset CPU by resume from S2 state
// This code is for Intel 440BX based design only
Store(0, \_SB.PCI0.PCIR)
If(LEqual(Arg0,2)) {Store(1, \_SB.PCI0.PCIR)}
! endif
! if $(A_THERMAL)
Store(\GFAN._OFF, Local0) // Basically is an OS bug bypass
// Win98 keeps FAN On in suspend state
! endif
! if $(A_SLEEP_BUTTON_GENERIC)
// Set Sleep flag for Sleep Button Device
// Not(SLPS, SLPS)
Store(1, \_SB.SLPS)
! endif
! if $(A_POWER_BUTTON_GENERIC)
// Set Sleep flag for Power Button Device
// Not(PBST, PBST)
Store(1, \_SB.PBST)
! endif
!if $(A_PM1a_Cnt_IO_TRAP) && $(A_S_PIIX4) && $(A_POS_DECODE)
Add(\_SB.PCI0.PMU.PMBS(), 4, Local0)
TRAP(Arg0, 1, Local0) // Trap on access to PM_BASE+4 enable
! endif
}
//-----------------------------------------------------------------------
// _WAK METHOD CALLED RIGHT AFTER OS WAKES UP FROM SLEEP
//-----------------------------------------------------------------------
Method(_WAK, 1) {
ShiftLeft(Arg0, 4, DBG8)
!if $(A_S_PIIX4)
Store(1, GSCI)
!endif
!if $(A_S_SIS5595) || $(A_S_VIA82586) || $(A_S_ALI1543)
Store(1,BIOS)
!endif
!if $(A_PM1a_Cnt_IO_TRAP) && $(A_S_PIIX4) && $(A_POS_DECODE)
TRAP(Arg0, 0, 0) // Trap on access to PM_BASE+4 disable
! endif
!if $(A_START_UP_OEM) || $(A_THERMAL)
if (LGreater(Arg0,1))
{
!if $(A_START_UP_OEM)
// OEM start-up code.
\INI() // Run OEM start-up code
!endif
!if $(A_THERMAL)
\_TZ.TCHG() // Set Thigh/TLow
!endif
}
!endif
!if $(A_N_I440BX)
// Reset CPU by resume from S2 state
// This code is for Intel 440BX based design only
Store(0, \_SB.PCI0.PCIR)
! endif
! if $(A_SLEEP_BUTTON_GENERIC)
// Clear Sleep flag for Sleep Button Device
// Not(SLPS, SLPS)
// Store(0, SLPS)
! endif
! if $(A_THERMAL)
Notify(\_TZ.THRM, 0x81) // Notify of Thermal
! endif
}
!endif
//-----------------------------//
// For debug purpose only //
//-----------------------------//
!if $(A_S_PIIX4)
OperationRegion (SMI0, SystemIO, 0x$(PM_BASE_HIGH:h=)2f, 1)
Field (SMI0, ByteAcc,NoLock,Preserve)
{ ,1,ETRP,1,}
OperationRegion (SMI1, SystemIO, 0x$(PM_BASE_HIGH:h=)28, 1)
Field (SMI1, ByteAcc,NoLock,Preserve)
{ ,1,GSCI,1,}
!endif
!if $(A_S_SIS5595)
OperationRegion (WAKP, SystemIO, 0x$(PM_BASE_HIGH:h=)14, 1)
Field (WAKP, ByteAcc,NoLock,Preserve)
{ ,7,WAKS,1}
OperationRegion (GBLE, SystemIO, 0x$(PM_BASE_HIGH:h=)13, 1)
Field (GBLE, ByteAcc,NoLock,Preserve)
{ ,1,BIOS,1,}
!endif
!if $(A_S_VIA82586)
OperationRegion (WAKP, SystemIO, 0x$(PM_BASE_HIGH:h=)28, 1)
Field (WAKP, ByteAcc,NoLock,Preserve)
{ ,7,WAKS,1}
OperationRegion (GBLE, SystemIO, 0x$(PM_BASE_HIGH:h=)2C, 1)
Field (GBLE, ByteAcc,NoLock,Preserve)
{ ,1,BIOS,1,}
!endif
!if $(A_S_ALI1543)
OperationRegion (GBLE, SystemIO, 0x$(PM_BASE_HIGH:h=)20, 1)
Field (GBLE, ByteAcc,NoLock,Preserve)
{ ,1,BIOS,1,}
OperationRegion (PBTN, SystemIO, 0x$(PM_BASE_HIGH:h=)01, 1)
Field (PBTN, ByteAcc,NoLock,Preserve)
{ PWRB,1,}
!endif
OperationRegion (TEMP, SystemIO, 0x80, 1)
Field (TEMP, ByteAcc,NoLock,Preserve)
{ DBG8,8,}
OperationRegion (DEB0, SystemIO, 0x90, 2)
Field (DEB0, WordAcc,NoLock,Preserve)
{ DBG9,16,}
} // End of ASL File
<<
!if !exist($(ACPI_ASL_DIR)\oemdsdt.asl)
#---------------------------------------------------------------------------------------------#
# COPY TARGET INCLUDE FILES INTO THE DESTINATION (ACPI.ASL). #
#---------------------------------------------------------------------------------------------#
@$(COPY) $(PCI_DEV_PATH)\$(A_NRTH_BRG_PATH).asl $(ACPI_ASL_DIR)
@$(COPY) $(A_SOUTH_BRG_PATH)\irq-pci.asl $(ACPI_ASL_DIR)
@$(COPY) $(SYSTEM_PATH)\sysstand.asl $(ACPI_ASL_DIR)
!if $(A_PMU_ALL)
!ifndef PM_BASE_HIGH
@$(COPY) $(A_SOUTH_BRG_PATH)\pmbase.asl $(ACPI_ASL_DIR)
!endif
!endif
!if $(A_POS_DECODE)
@$(COPY) $(A_SOUTH_BRG_PATH)\eioroute.asl $(ACPI_ASL_DIR)
! if $(A_PM1a_Cnt_IO_TRAP) && $(A_S_PIIX4)
@$(COPY) $(A_SOUTH_BRG_PATH)\iotrap.asl $(ACPI_ASL_DIR)
! endif
!endif
!if $(A_SMBUS)
@$(COPY) $(A_SMB_HOST_PATH) $(ACPI_ASL_DIR)
!endif
!if !($(A_PCI_IRQ_ROUTE_STANDARD))
@$(COPY) $(CUSTOM_PATH)\cust_irq.oem $(ACPI_ASL_DIR)
!endif
!if $(A_IDE_PM)
@$(COPY) $(A_IDE_PM_PATH) $(ACPI_ASL_DIR)
!endif
@MD $(ACPI_ASL_DIR)\TEMP
# SuperIO exceptions
!if $(NAT338) || $(WIN877) || $(SMC665) || $(GM803C)
@$(COPY) $(OEMIO_PATH_SUPERIO)\$(A_OEMIO_PATH_SUPERIO)\*.asl $(ACPI_ASL_DIR)\TEMP
!elseif "$(OEMIO_PATH_SUPERIO)" != ""
# COPY SuperIO stuff
@$(COPY) $(OEMIO_PATH_SUPERIO)\$(A_OEMIO_PATH_SUPERIO)\$(A_OEMIO_PATH_SUPERIO).asl $(ACPI_ASL_DIR)\TEMP
@$(COPY) $(OEMIO_PATH_SUPERIO)\iocfg.asl $(ACPI_ASL_DIR)\TEMP
@$(COPY) $(OEMIO_PATH_SUPERIO)\iodata.asl $(ACPI_ASL_DIR)\TEMP
!endif
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\superio.asl
DELTREE -Y $(ACPI_ASL_DIR)\TEMP\*.*
!if "$(A_OEMIO_PATH_AUDIO)" != ""
@$(COPY) $(OEMIO_PATH_AUDIO)\$(A_OEMIO_PATH_AUDIO)\*.* $(ACPI_ASL_DIR)\TEMP
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\audio.asl
@DELTREE -Y $(ACPI_ASL_DIR)\TEMP\*.*
!endif
! if $(A_SI_OEM)
@$(COPY) $(A_SI_PATH) $(ACPI_ASL_DIR)\TEMP
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\cust_si.oem
! elseif "$(A_SI_PATH)" != ""
@$(COPY) $(A_SI_PATH) $(ACPI_ASL_DIR)\TEMP
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\si.asl
! endif
@DELTREE -Y $(ACPI_ASL_DIR)\TEMP\*.*
! if $(A_FAN_OEM)
@$(COPY) $(A_FAN_PATH) $(ACPI_ASL_DIR)\TEMP
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\cust_fan.oem
! elseif "$(A_FAN_PATH)" != ""
@$(COPY) $(A_FAN_PATH) $(ACPI_ASL_DIR)\TEMP
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\fan.asl
! endif
@DELTREE -Y $(ACPI_ASL_DIR)\TEMP\*.*
!if $(A_THERMAL)
@$(COPY) $(A_T_SENSOR_PATH) $(ACPI_ASL_DIR)\TEMP
@COPY $(ACPI_ASL_DIR)\TEMP\*.* $(ACPI_ASL_DIR)\tsensor.asl
!endif
@DELTREE -Y $(ACPI_ASL_DIR)\TEMP
!if $(A_START_UP_OEM)
@$(COPY) $(CUSTOM_PATH)\cust_stp.oem $(ACPI_ASL_DIR)
!endif
!if $(A_PTS_WAK_OEM)
@$(COPY) $(CUSTOM_PATH)\cust_pts.oem $(ACPI_ASL_DIR)
! endif
!if $(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -