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

📄 aslbuild.mak

📁 AMI 主板的BIOS源码
💻 MAK
📖 第 1 页 / 共 5 页
字号:
!  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 + -