summaryrefslogtreecommitdiff
path: root/Board/EM/Isct/AcpiTables
diff options
context:
space:
mode:
Diffstat (limited to 'Board/EM/Isct/AcpiTables')
-rw-r--r--Board/EM/Isct/AcpiTables/Isct.asl778
-rw-r--r--Board/EM/Isct/AcpiTables/Isct.cif12
-rw-r--r--Board/EM/Isct/AcpiTables/Isct.mak115
-rw-r--r--Board/EM/Isct/AcpiTables/Isct.sd190
-rw-r--r--Board/EM/Isct/AcpiTables/Isct.sdl99
-rw-r--r--Board/EM/Isct/AcpiTables/Isct.unibin0 -> 10436 bytes
6 files changed, 1194 insertions, 0 deletions
diff --git a/Board/EM/Isct/AcpiTables/Isct.asl b/Board/EM/Isct/AcpiTables/Isct.asl
new file mode 100644
index 0000000..a98416b
--- /dev/null
+++ b/Board/EM/Isct/AcpiTables/Isct.asl
@@ -0,0 +1,778 @@
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2012, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************
+
+//**********************************************************************
+// $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.asl 7 7/11/14 9:52a Mirayang $
+//
+// $Revision: 7 $
+//
+// $Date: 7/11/14 9:52a $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.asl $
+//
+// 7 7/11/14 9:52a Mirayang
+// Remove override.
+//
+// 6 7/08/14 5:09a Mirayang
+// EIP142924 iSCT 5.0 for Shark Bay Platform
+//
+// 5 5/14/13 6:29a Bensonlai
+// [TAG] EIP123328
+// [Category] Spec Update
+// [Severity] Normal
+// [Description] [SBY] Intel Smart Connect Technology 4.x BIOS Reference
+// Code
+//
+// 4 3/27/13 9:13a Bensonlai
+// [TAG] EIP118307
+// [Category] New Feature
+// [Description] Implementation of the ISCT Platform Design
+// Specification 0.8.
+// [Files] Isct.asl, IsctAcpi.c, IsctAcpi.mak
+//
+// 3 1/14/13 12:03a Bensonlai
+// [TAG] EIP112064
+// [Category] Bug Fix
+// [Severity] Normal
+// [Symptom] [ISCT] GWLS,SWLS,GWWS and SWWS are fail while set wake up
+// timer to RTC
+// [Solution] Implement the GWLS,SWLS,GWWS and SWWS while set wake up
+// timer to RTC
+// [Files] Isct.asl
+//
+// 2 1/13/13 5:14a Bensonlai
+// [TAG] EIP112064
+// [Category] Bug Fix
+// [Severity] Normal
+// [Symptom] [ISCT] GWLS,SWLS,GWWS and SWWS are fail while set wake up
+// timer to RTC
+// [Solution] Implement the GWLS,SWLS,GWWS and SWWS while set wake up
+// timer to RTC
+// [Files] Isct.asl
+//
+// 1 9/02/12 11:18p Bensonlai
+// Intel Smart Connect Technology initially releases.
+//
+//
+//**********************************************************************
+//<AMI_FHDR_START>
+//
+// Name: Isct.asl
+//
+// Description: This file provides the ACPI methods for the iSCT agent to use.
+//
+//<AMI_FHDR_END>
+//**********************************************************************
+
+DefinitionBlock (
+ "IsctAcpi.aml",
+ "SSDT",
+ 1,
+ "Intel_",
+ "IsctTabl",
+ 0x1000
+ )
+
+{
+ External(ICNF) //Isct Configuration
+ External(\_SB.PCI0.LPCB.H_EC.IBT1) // Isct Byte1 for EC
+ External(\_SB.PCI0.LPCB.H_EC.IBT2) // Isct Byte2 for EC
+ External(\_SB.PCI0.LPCB.H_EC.ECMD, MethodObj) // EC Command method
+ External(\_SB.PCI0.LPCB.H_EC.WTMS) // EC Wake Timer Settings
+ External(\_SB.PCI0.LPCB.H_EC.AWT0) // EC Wake Timer Value (BIT7-0)
+ External(\_SB.PCI0.LPCB.H_EC.AWT1) // EC Wake Timer Value (BIT15-8)
+ External(\_SB.PCI0.LPCB.H_EC.AWT2) // EC Wake Timer Value (BIT23-16)
+ External(\_SB.PCI0.LPCB.H_EC.LSTE) // Lid State (Lid Open = 1)
+ External(\_SB.IFFS.FFSS)
+
+ External(\_SB.PCI0.GFX0.TCHE) // Technology enabled indicator
+ External(\_SB.PCI0.GFX0.STAT) // State Indicator
+ External(\_SB.PCI0.GFX0.ASLE) // Reg 0xE4, ASLE interrupt register
+ External(\_SB.PCI0.GFX0.ASLC) // ASLE interrupt command/status
+ External(\_SB.PCI0.GFX0.PARD, MethodObj) // Check if the driver is ready to handle ASLE interrupts
+ External(\ADBG, MethodObj) // Print message to ACPI Debug Buffer
+
+ Scope (\_SB)
+ {
+ Device (IAOE)
+ {
+ OperationRegion(ISCT,SystemMemory,0xFFFF0008,0xAA58)
+ Field(ISCT,AnyAcc,Lock,Preserve)
+ {
+ WKRS, 8, // (0) ISCT Wake Reason
+ AOCE, 8, // (1) ISCT is Enabled
+ FFSE, 8, // (2) IFFS Enabled
+ ITMR, 8, // (3) ISCT Timer Type: 0 = EC, 1 = RTC
+ ECTM, 32, // (4) ISCT EC Timer
+ RCTM, 32, // (8) ISCT RTC Timer
+ GNPT, 32, // (12)ISCT GlobalNvs Ptr
+ ATOW, 8, // (16)ISCT timer over write, 1 = overwrited as ISCT timer
+ }
+ Name (_HID, "INT33A0")
+ Name (_CID, "PNP0C02")
+ Name (_UID, 0x00)
+
+ Name (IBT1, 0) // Isct Byte1 for EC (local)
+ Name (IBT2, 0) // Isct Byte2 for EC (local)
+ Name (INSB, 0) // Isct Notification Status Bit
+ Name (WTMS, 0) // EC Wake Timer Settings (local)
+ Name (AWT0, 0) // EC Wake Timer Value (BIT7-0) (local)
+ Name (AWT1, 0) // EC Wake Timer Value (BIT15-8) (local)
+ Name (AWT2, 0) // EC Wake Timer Value (BIT23-16) (local)
+ Name (PTSL, 0) // Platform Sleep Level
+ Name (SLPD, 0) // Sleep duration for when using NetDetect (dummy)
+ Name (IMDS, 0) // Isct Mode Select Bits
+ // Bits: Description
+ // 0 Reserved
+ // 1 ISCT Wake Mode Select: 0 = Normal ISCT Wake Mode, 1 = Extended ISCT Wake Mode
+ // 2 Wake From S4: 0 = No Wake from S4, 1 = Wake from S4
+ // 3-7 Reserved
+ Name (IWDT, 0) // Isct Wake Duration Time
+
+ /**
+ GABS - Get ISCT BIOS Enablign Setting
+ Input: None
+ Return:
+ Bits Description
+ - 0 ISCT Configured: 0 = Disabled, 1 = Enabled
+ - 1 ISCT Notification Control: 0 = Unsupported, 1 = Supported
+ - 2 ISCT WLAN Power Control : 0 = Unsupported, 1 = Supported
+ - 3 ISCT WWAN Power Control : 0 = Unsupported, 1 = Supported
+ - 4 Must be set to 1 (BIOS Program Timer)
+ - 5 Sleep duration value format: 0 = Actual time, 1 = Duration in Seconds
+ - 6 RF Kill Switch Type: 0 = Software, 1 = Hardware
+ - 7 Wake from S4: 0 = Unsupported, 1 = Supported
+ **/
+ Method (GABS, 0, NotSerialized) {
+ Return (ICNF)
+ }
+
+ //
+ // GAOS - Get ISCT Function Status
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 ISCT Mode: 0 = Disabled, 1 = Enabled
+ // 1 ISCT Wake Mode Select: 0 = ISCT Wake Mode, 1 = Extended ISCT Wake
+ // 2 - 7 Reserved
+ //
+ Method (GAOS, 0, NotSerialized)
+ {
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ // Get Isct Mode Enable and Get Isct Wake Mode Select
+ //
+ Return(Or(And(IBT1, 0x01), And(IMDS, 0x06)))
+ }
+ Else
+ {
+ //
+ //Get Isct Mode Enable
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT1, Local0)
+ }
+ Else
+ {
+ Store(IBT1, Local0)
+ }
+ And(Local0, 0x01, Local0)
+ //
+ // Get Isct Wake Mode Select
+ //
+ Or(Local0, And(IMDS, 0x02), Local0)
+ Return (Local0)
+ }
+ }
+
+ /**
+ SAOS - Set ISCT Function Status
+ Input:
+ Bits Description
+ - 0 ISCT Mode: 0 = Disabled, 1 = Enabled
+ - 1 ISCT Wake Mode Select: 0 = Normal ISCT Wake Mode, 1 = Extended ISCT Wake Mode
+ - 2 Wake From S4: 0 = No Wake from S4, 1 = Wake from S4
+ - 3 - 7 Reserved
+ **/
+ Method (SAOS, 1, NotSerialized)
+ {
+ //
+ // If Graphics Driver supports disable display notification in ISCT mode
+ //
+ If (And(\_SB.PCI0.GFX0.TCHE, 0x100))
+ {
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ //
+ // If iSCT Mode and agent is disabling iSCT Mode and the iSCT Wake Reason indicates display off
+ // Then notify graphics driver to turn on display
+ //
+ If (LAnd(LAnd(And(IBT1, 0x01), LNot(And(Arg0, 0x01))), And(\_SB.IAOE.WKRS, 0x10))) {
+ If (LNot(\_SB.PCI0.GFX0.PARD()))
+ {
+ Store(And(\_SB.PCI0.GFX0.STAT, Not(0x03)), \_SB.PCI0.GFX0.STAT) // STAT[1:0] = 00, Normal Resume to S0
+
+ Store(Or(\_SB.PCI0.GFX0.ASLC, 0x100), \_SB.PCI0.GFX0.ASLC) // ASLC[8] = 1, ISCT State Change Request
+
+ Store(0x01, \_SB.PCI0.GFX0.ASLE) // Generate ASLE interrupt
+ }
+ }
+ } else {
+ If(CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1)) {
+ //
+ // If ISCT Mode and Wake Reason was ISCT wake (EC Timer or Network PME) and agent is disabling ISCT Mode
+ // Then notify graphics driver to turn on display
+ //
+ If (LAnd(LAnd(And(\_SB.PCI0.LPCB.H_EC.IBT1, 0x01), LOr(And(\_SB.IAOE.WKRS, 0x02), And(\_SB.IAOE.WKRS, 0x10))), LNot(And(Arg0, 0x01)))) {
+ If (LNot(\_SB.PCI0.GFX0.PARD()))
+ {
+ Store(And(\_SB.PCI0.GFX0.STAT, Not(0x03)), \_SB.PCI0.GFX0.STAT) // STAT[1:0] = 00, Normal Resume to S0
+
+ Store(Or(\_SB.PCI0.GFX0.ASLC, 0x100), \_SB.PCI0.GFX0.ASLC) // ASLC[8] = 1, ISCT State Change Request
+
+ Store(0x01, \_SB.PCI0.GFX0.ASLE) // Generate ASLE interrupt
+ }
+ }
+ }
+ }
+ }
+
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ //
+ // Set Isct Wake Mode Selection and Wake from S4
+ //
+ Store(And(Arg0, 0x06), IMDS)
+ /// @note: Low Power Fan control for Extended Wake
+ //
+ // Set Isct Mode Enable
+ //
+ Or(And(IBT1, 0xFE), And(Arg0, 0x01), IBT1)
+ }
+ Else
+ {
+ //
+ //Set Isct Mode Enable
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT1, Local0)
+ }
+ Else
+ {
+ Store(IBT1, Local0)
+ }
+ And(Local0, 0xFE, Local0)
+ Or(Local0, And(Arg0, 0x01), Local0)
+ //
+ // Set Isct Wake Mode Select
+ //
+ Store(And(Arg0, 0x02), IMDS)
+ //TBD: Low Power Fan control
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(Local0, \_SB.PCI0.LPCB.H_EC.IBT1)
+ //Send EC IsctUpdateCommand - 0x2B
+ \_SB.PCI0.LPCB.H_EC.ECMD (0x2B)
+ }
+ Else
+ {
+ Store(Local0, IBT1)
+ }
+ }
+ }
+
+ //
+ // GANS - Get ISCT Notification Status
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 ISCT Notification : 0 = Disabled, 1 = Enabled
+ // 1 - 7 Reserved
+ //
+ Method (GANS, 0, NotSerialized)
+ {
+ Return (INSB)
+ }
+
+ //
+ // SANS - Set ISCT Notification Status
+ // Input:
+ // Bits Description
+ // 0 ISCT Notification : 0 = Disabled, 1 = Enabled
+ // 1 - 7 Reserved
+ //
+ Method (SANS, 1, NotSerialized)
+ {
+ Store(And(Arg0, 0x01), INSB)
+ }
+
+ //
+ // GWLS - Get WLAN Module Status
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 Reserved(set to 0)
+ // 1 WLAN Module Powered in S3: 0 = Disabled, 1 = Enabled
+ // 2 WLAN Module Powered in S4: 0 = Disabled, 1 = Enabled
+ // 3 WLAN Module Powered in S5: 0 = Disabled, 1 = Enabled
+ // 4 - 7 Reserved
+ //
+ Method (GWLS, 0, NotSerialized)
+ {
+ If(LEqual(And(ICNF, 0x04), Zero))
+ {
+ Return (Zero)
+ }
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ Store(One, Local0)
+ Store(IBT1, Local1)
+ Or(Local0, And(Local1, 0x0E), Local0)
+ Return (Local0)
+ }
+ Else
+ {
+ //
+ // Set WLAN Wireless Disable Bit to 1 if EC
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT2))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT2, Local0)
+ Or(Local0, 1, Local0)
+ }
+
+ //
+ // Get WLAN Powered States
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT1, Local1)
+ }
+ Else
+ {
+ Store(IBT1, Local1)
+ }
+ Or(Local0, And(Local1, 0x0E), Local0)
+
+ Return (Local0)
+ }
+ }
+ //
+ // SWLS - Set WLAN Module Status
+ // Input:
+ // Bits Description
+ // 0 N/A (WLAN Wireless Disable is Read only) Always set to 0
+ // 1 WLAN Module Powered in S3: 0 = Disabled, 1 = Enabled
+ // 2 WLAN Module Powered in S4: 0 = Disabled, 1 = Enabled
+ // 3 WLAN Module Powered in S5: 0 = Disabled, 1 = Enabled
+ // 4 - 7 Reserved
+ //
+ Method (SWLS, 1, NotSerialized)
+ {
+ If(LEqual(And(ICNF, 0x04), Zero))
+ {
+ Return
+ }
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ Store(IBT1, Local0)
+
+ //
+ // Set new Power States
+ //
+ And(Local0, 0xF1, Local0)
+ Or(Local0, And(Arg0, 0x0E), Local0)
+ If(CondRefOf(\_SB.IFFS.FFSS))
+ {
+ If(LAnd(And(\_SB.IFFS.FFSS, 0x03), And(Arg0,0x02)))
+ {
+ Or(Local0, 0x04, Local0)
+ }
+ }
+ Store(Local0, IBT1)
+ }
+ Else
+ {
+ //
+ // Read ISCTByte1 from EC
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT1, Local0)
+ }
+ Else
+ {
+ Store(IBT1, Local0)
+ }
+
+ //
+ // Set new Power States
+ //
+ And(Local0, 0xF1, Local0)
+ Or(Local0, And(Arg0, 0x0E), Local0)
+
+ //
+ // If RapidStart is enabled and WLAN powered in S3, enable power in S4
+ //
+ If(CondRefOf(\_SB.IFFS.FFSS))
+ {
+ If(LAnd(And(\_SB.IFFS.FFSS, 0x03), And(Arg0,0x02)))
+ {
+ Or(Local0, 0x04, Local0)
+ }
+ }
+
+ //
+ // Save ISCTByte1 to EC
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(Local0, \_SB.PCI0.LPCB.H_EC.IBT1)
+ //Send EC IsctUpdateCommand - 0x2B
+ \_SB.PCI0.LPCB.H_EC.ECMD (0x2B)
+ }
+ Else
+ {
+ Store(Local0, IBT1)
+ }
+ }
+ }
+
+ //
+ // GWWS - Get WWAN Module Status
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 WWAN Wireless Disable (W_DISABLE#) :0 = Disabled, 1 = Enabled
+ // 1 WWAN Module Powered in S3: 0 = Disabled, 1 = Enabled
+ // 2 WWAN Module Powered in S4: 0 = Disabled, 1 = Enabled
+ // 3 WWAN Module Powered in S5: 0 = Disabled, 1 = Enabled
+ // 4 - 7 Reserved
+ //
+ Method (GWWS, 0, NotSerialized)
+ {
+ If(LEqual(And(ICNF, 0x08), Zero))
+ {
+ Return (Zero)
+ }
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ Store(One, Local0)
+ Store(IBT1, Local1)
+ Or(Local0, ShiftRight(And(Local1, 0x70), 3), Local0)
+ Return (Local0)
+ }
+ Else
+ {
+ //
+ // Set WWAN Wireless Disable Bit to 1 if EC
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT2))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT2, Local0)
+ ShiftRight(Or(Local0, 2), 1, Local0)
+ }
+
+ //
+ // Get WWAN Powered States
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT1, Local1)
+ }
+ Else
+ {
+ Store(IBT1, Local1)
+ }
+ Or(Local0, ShiftRight(And(Local1, 0x70), 3), Local0)
+
+ Return (Local0)
+ }
+ }
+
+ //
+ // SWWS - Set WWAN Module Status
+ // Input:
+ // Bits Description
+ // 0 N/A (WWAN Wireless Disable is Read only) Always set to 0
+ // 1 WWAN Module Powered in S3: 0 = Disabled, 1 = Enabled
+ // 2 WWAN Module Powered in S4: 0 = Disabled, 1 = Enabled
+ // 3 WWAN Module Powered in S5: 0 = Disabled, 1 = Enabled
+ // 4 - 7 Reserved
+ //
+ Method (SWWS, 1, NotSerialized)
+ {
+ If(LEqual(And(ICNF, 0x08), Zero))
+ {
+ Return
+ }
+ //
+ // Check for RTC Timer, else EC timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ Store(IBT1, Local0)
+ //
+ // Set new Power States
+ //
+ And(Local0, 0x8F, Local0)
+ Or(Local0, ShiftLeft(And(Arg0, 0x0E), 3), Local0)
+
+ //
+ // If RapidStart is enabled and WWAN powered in S3, enable power in S4
+ //
+ If(CondRefOf(\_SB.IFFS.FFSS))
+ {
+ If(LAnd(And(\_SB.IFFS.FFSS, 0x03), And(Arg0,2)))
+ {
+ Or(Local0, ShiftLeft(0x04, 3), Local0)
+ }
+ }
+ Store(Local0, IBT1)
+ }
+ Else
+ {
+ //
+ // Read ISCTByte1 from EC
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(\_SB.PCI0.LPCB.H_EC.IBT1, Local0)
+ }
+ Else
+ {
+ Store(IBT1, Local0)
+ }
+
+ //
+ // Set new Power States
+ //
+ And(Local0, 0x8F, Local0)
+ Or(Local0, ShiftLeft(And(Arg0, 0x0E), 3), Local0)
+
+ //
+ // If RapidStart is enabled and WWAN powered in S3, enable power in S4
+ //
+ If(CondRefOf(\_SB.IFFS.FFSS))
+ {
+ If(LAnd(And(\_SB.IFFS.FFSS, 0x03), And(Arg0,2)))
+ {
+ Or(Local0, ShiftLeft(0x04, 3), Local0)
+ }
+ }
+
+ //
+ // Save ISCTByte1 to EC
+ //
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.IBT1))
+ {
+ Store(Local0, \_SB.PCI0.LPCB.H_EC.IBT1)
+ //Send EC IsctUpdateCommand - 0x2B
+ \_SB.PCI0.LPCB.H_EC.ECMD (0x2B)
+ }
+ Else
+ {
+ Store(Local0, IBT1)
+ }
+ }
+ }
+
+ //
+ // SASD - Set Intel Smart Connect Technology Sleep Duration
+ // Input:
+ // Bits Description
+ // 0 - 30 Sleep Duration
+ // 31 : 0 = Sleep Duration in seconds
+ // 1 = Actual time
+ //
+ Method (SASD, 1, NotSerialized)
+ {
+ //
+ // Arg0 = 0 - NetDetect support
+ // > 0 - EC / RTC Based Timer
+ // Bit31 : 0 - Sleep Duration in seconds
+ // 1 - Actual Time
+ //
+ If(LAnd(And(ICNF, 0x10), LGreater(Arg0, 0)))
+ {
+ //
+ // See if RTC (1) or EC (0) Timer
+ //
+ If (LEqual(ITMR, 1))
+ {
+ Store(Arg0, RCTM)
+ }
+ Else
+ {
+ Store(Arg0, ECTM)
+ }
+
+ If (LAnd(CondRefOf(\_SB.PCI0.LPCB.H_EC.WTMS), LEqual(PTSL, 0x03)))
+ {
+ Store(And(ECTM, 0xFF), \_SB.PCI0.LPCB.H_EC.AWT0)
+ Store(ShiftRight(And(ECTM, 0xFF00), 8), \_SB.PCI0.LPCB.H_EC.AWT1)
+ Store(ShiftRight(And(ECTM, 0xFF0000), 16), \_SB.PCI0.LPCB.H_EC.AWT2)
+ //
+ // Enable EC timer - BIT7
+ // Enable wake from S3 on timer exiry - BIT0
+ //
+ Store(\_SB.PCI0.LPCB.H_EC.WTMS, Local0)
+ Store(Or(0x81,Local0), \_SB.PCI0.LPCB.H_EC.WTMS)
+ }
+ Else
+ {
+ Store(And(ECTM, 0xFF), AWT0)
+ Store(ShiftRight(And(ECTM, 0xFF00), 8), AWT1)
+ Store(ShiftRight(And(ECTM, 0xFF0000), 16), AWT2)
+ Store(WTMS, Local0)
+ Store(Or(0x81,Local0), WTMS)
+ }
+ }
+ Else
+ {
+ If (LEqual(ITMR, 1))
+ {
+ Store(0, RCTM)
+ } else {
+ If(CondRefOf(\_SB.PCI0.LPCB.H_EC.WTMS))
+ {
+ Store(0, ECTM)
+ Store(0, \_SB.PCI0.LPCB.H_EC.WTMS)
+ }
+ }
+
+ Store(Arg0, SLPD)
+ }
+ } // Method (SASD)
+
+ //
+ // GPWR - Get Wake Reason
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 User Pressed Power Button: 0 = False, 1 = True
+ // 1 EC / RTC caused wake (requested by iSCT agent): 0 = False, 1 = True
+ // 2 RTC Timer caused wake: 0 = False, 1 = True
+ // 3 Wake due to PME (Not Network Wake): 0 = False, 1 = True
+ // 4 Internal BIOS bit PME (Known Network Wake): 0 = False, 1 = True (Reserved for Agent- Must be 0)
+ // 5 - 7 Reserved
+ //
+ Method (GPWR, 0, NotSerialized)
+ {
+ //
+ // Return Wake Reason
+ //
+ If(And(WKRS,0x2F))
+ {
+ //
+ // Mask out the Internal BIOS Network PME bit and the reserved bits.
+ //
+ Return(And(WKRS, 0x2F))
+ }
+ Else
+ {
+ Return(0)
+ }
+ } // Method (GPWR)
+
+ //
+ // GPCS - Get Platform Component State
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 LID State: 0 - Closed, 1 - Open
+ // 1 - 7 Reserved
+ //
+ Method (GPCS, 0, NotSerialized)
+ {
+ //
+ // See if EC (0) or RTC (1) Timer
+ //
+ If (LEqual(ITMR, 0))
+ {
+ If (CondRefOf(\_SB.PCI0.LPCB.H_EC.LSTE))
+ {
+ Return(And(\_SB.PCI0.LPCB.H_EC.LSTE,0x01))
+ }
+ }
+ Else
+ {
+ Return(1)
+ }
+ } // Method (GPCS)
+
+ //
+ // GAWD - Get Isct Wake Duration
+ // Input: None
+ // Return:
+ // Bits Description
+ // 0 - 7 Isct Wake Duration
+ //
+ Method (GAWD, 0, NotSerialized)
+ {
+ Return (IWDT)
+ }
+
+ //
+ // SAWD - Set Isct Wake Duration
+ // Input:
+ // Bits Description
+ // 0 - 7 Isct Wake Duration
+ //
+ Method (SAWD, 1, NotSerialized)
+ {
+ Store (Arg0, IWDT)
+ //TBD Set EC Watchdog Timer
+ }
+
+ } // Device (IAOE)
+ } // Scope (\_SB)
+} // End SSDT
+
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2012, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************
+
diff --git a/Board/EM/Isct/AcpiTables/Isct.cif b/Board/EM/Isct/AcpiTables/Isct.cif
new file mode 100644
index 0000000..4a8df02
--- /dev/null
+++ b/Board/EM/Isct/AcpiTables/Isct.cif
@@ -0,0 +1,12 @@
+<component>
+ name = "IsctAcpiTables"
+ category = ModulePart
+ LocalRoot = "Board\EM\Isct\AcpiTables"
+ RefName = "IsctAcpiTables"
+[files]
+"Isct.sdl"
+"Isct.mak"
+"Isct.sd"
+"Isct.uni"
+"Isct.asl"
+<endComponent>
diff --git a/Board/EM/Isct/AcpiTables/Isct.mak b/Board/EM/Isct/AcpiTables/Isct.mak
new file mode 100644
index 0000000..8b49139
--- /dev/null
+++ b/Board/EM/Isct/AcpiTables/Isct.mak
@@ -0,0 +1,115 @@
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (C)Copyright 1985-2012, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#**********************************************************************
+#**********************************************************************
+
+#**********************************************************************
+# $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.mak 2 5/27/13 10:54p Bensonlai $
+#
+# $Revision: 2 $
+#
+# $Date: 5/27/13 10:54p $
+#**********************************************************************
+# Revision History
+# ----------------
+# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.mak $
+#
+# 2 5/27/13 10:54p Bensonlai
+# [TAG] EIP125007
+# [Category] Improvement
+# [Description] [ISCT] Change IASL compiler path
+#
+# 1 9/02/12 11:18p Bensonlai
+# Intel Smart Connect Technology initially releases.
+#
+#
+#**********************************************************************
+#<AMI_FHDR_START>
+#
+# Name: Isct.mak
+#
+# Description: Make file to build Isct ASL components
+#
+#
+#<AMI_FHDR_END>
+#**********************************************************************
+all : BuildIsct
+
+BuildIsct : $(BUILD_DIR)\Isct.ffs
+
+#---------------------------------------------------------------------------
+# Generic AcpiPlatform dependencies
+#---------------------------------------------------------------------------
+$(BUILD_DIR)\Isct.mak : $(INTEL_ISCT_DIR)\Isct.cif $(BUILD_RULES)
+ $(CIF2MAK) $(INTEL_ISCT_DIR)\Isct.cif $(CIF2MAK_DEFAULTS)
+
+#---------------------------------------------------------------------------
+# Create ISCT Setup Screens
+#---------------------------------------------------------------------------
+SetupSdbs : $(BUILD_DIR)\Isct.mak ISCTSDB
+
+ISCTSDB :
+ $(MAKE) /$(MAKEFLAGS) $(BUILD_DEFAULTS)\
+ /f $(BUILD_DIR)\Isct.mak all \
+ TYPE=SDB NAME=Isct STRING_CONSUMERS=$(INTEL_ISCT_DIR)\Isct.sd
+
+#-----------------------------------------------------------------------
+# ASL compiler definition
+#-----------------------------------------------------------------------
+!IF "$(ACPIPLATFORM_ASL_COMPILER)"==""
+!ERROR It is an invalid path, please check your ASL compiler path.
+!ENDIF
+
+IASL = $(ACPIPLATFORM_ASL_COMPILER)
+#-----------------------------------------------------------------------
+$(BUILD_DIR)\Isct.aml : $(ISCT_ASL_FILE)
+ @cl /C /EP $(ISCT_ASL_FILE) > $(BUILD_DIR)\Isct.asl
+ $(IASL) -p $(BUILD_DIR)\Isct.aml $(BUILD_DIR)\Isct.asl
+
+$(BUILD_DIR)\Isct.sec: $(BUILD_DIR)\Isct.aml
+ $(GENSECTION) -I $*.aml -O $@ -S EFI_SECTION_RAW
+
+#Note. Expand the package with Isct tables.
+# DXE phase will load the tables
+# and update Aml contents if provided in IsctAcpi.c
+
+$(BUILD_DIR)\Isct.ffs: $(BUILD_DIR)\Isct.sec
+ $(GENFFSFILE) -B $(BUILD_DIR) -V -o $@ -P1 <<$(BUILD_DIR)\Isct.pkg
+
+PACKAGE.INF
+[.]
+BASE_NAME = Isct
+FFS_FILEGUID = FA2DDC38-3F19-4218-B53E-D9D79D626767
+FFS_FILETYPE = EFI_FV_FILETYPE_FREEFORM
+FFS_ATTRIB_CHECKSUM = TRUE
+
+IMAGE_SCRIPT =
+{
+ Compress (dummy) {
+ $(PROJECT_DIR)\$(BUILD_DIR)\Isct.sec
+ }
+}
+<<KEEP
+
+#*************************************************************************
+#*************************************************************************
+#** **
+#** (C)Copyright 1985-2012, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#*************************************************************************
+#*************************************************************************
diff --git a/Board/EM/Isct/AcpiTables/Isct.sd b/Board/EM/Isct/AcpiTables/Isct.sd
new file mode 100644
index 0000000..9278d87
--- /dev/null
+++ b/Board/EM/Isct/AcpiTables/Isct.sd
@@ -0,0 +1,190 @@
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2012, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************
+
+//**********************************************************************
+// $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.sd 2 8/02/13 3:30a Joshchou $
+//
+// $Revision: 2 $
+//
+// $Date: 8/02/13 3:30a $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.sd $
+//
+// 2 8/02/13 3:30a Joshchou
+// [TAG] None
+// [Category] Improvement
+// [Description] Hide the item of timer choice on the platforms which
+// don't have EC
+//
+// 1 9/02/12 11:18p Bensonlai
+// Intel Smart Connect Technology initially releases.
+//
+//
+//**********************************************************************
+//<AMI_FHDR_START>
+//
+// Name: Isct.sd
+//
+// Description: Create the setup item for Isct.
+//
+//<AMI_FHDR_END>
+//**********************************************************************
+
+#ifdef SETUP_DATA_DEFINITION
+//---------------------------------------------------------------------------
+// Put NVRAM data definitions here.
+// For example: UINT8 Data1;
+// These definitions will be converted by the build process
+// to a definitions of SETUP_DATA fields.
+//---------------------------------------------------------------------------
+ UINT8 IsctConfiguration;
+ UINT8 ISCTNOTIFICATION;
+ UINT8 ISCTWLAN;
+ UINT8 ISCTWWAN;
+ UINT8 ISCTRFKillSwitch;
+ UINT8 IsctTimerChoice;
+#endif
+
+#if defined(VFRCOMPILE) && !defined(CONTROLS_ARE_DEFINED)
+#define CONTROL_DEFINITION
+#endif
+//---------------------------------------------------------------------------
+
+//---------------------------------------------------------------------------
+#ifdef CONTROL_DEFINITION
+
+#define ISCT_ONEOF_CONFIGURATION\
+ oneof varid = SETUP_DATA.IsctConfiguration,\
+ prompt = STRING_TOKEN(STR_ISCT_CONFIGURATION_PROMPT),\
+ help = STRING_TOKEN(STR_ISCT_CONFIGURATION_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED, key = 0;\
+ endoneof;
+
+#define ISCT_ONEOF_NOTIFICATION\
+ oneof varid = SETUP_DATA.ISCTNOTIFICATION,\
+ prompt = STRING_TOKEN(STR_ISCT_NOTIFICATION_PROMPT),\
+ help = STRING_TOKEN(STR_ISCT_NOTIFICATION_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ endoneof;
+
+#define ISCT_ONEOF_WLAN\
+ oneof varid = SETUP_DATA.ISCTWLAN,\
+ prompt = STRING_TOKEN(STR_ISCT_WLAN_PROMPT),\
+ help = STRING_TOKEN(STR_ISCT_WLAN_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ endoneof;
+
+#define ISCT_ONEOF_WWAN\
+ oneof varid = SETUP_DATA.ISCTWWAN,\
+ prompt = STRING_TOKEN(STR_ISCT_WWAN_PROMPT),\
+ help = STRING_TOKEN(STR_ISCT_WWAN_HELP),\
+ option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ endoneof;
+
+#define ISCT_ONEOF_RFKILLSWITCH\
+ oneof varid = SETUP_DATA.ISCTRFKillSwitch,\
+ prompt = STRING_TOKEN(STR_ISCT_RF_KILL_SWITCH_PROMPT),\
+ help = STRING_TOKEN(STR_ISCT_RF_KILL_SWITCH_HELP),\
+ option text = STRING_TOKEN(STR_ISCT_SOFTWARE), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_ISCT_HARDWARE), value = 1, flags = RESET_REQUIRED, key = 0;\
+ endoneof;
+
+#define ISCT_ONEOF_TIMERCHIOICE\
+ oneof varid = SETUP_DATA.IsctTimerChoice,\
+ prompt = STRING_TOKEN(STR_ISCT_TIMER_SELECTION_PROMPT),\
+ help = STRING_TOKEN(STR_ISCT_TIMER_SELECTION_HELP),\
+ option text = STRING_TOKEN(STR_ISCT_EC_TIMER), value = 0, flags = DEFAULT | RESET_REQUIRED, key = 0;\
+ option text = STRING_TOKEN(STR_ISCT_RTC_TIMER), value = 1, flags = MANUFACTURING | RESET_REQUIRED, key = 0;\
+ endoneof;
+
+#endif // CONTROL_DEFINITION
+
+#ifdef CONTROLS_WITH_DEFAULTS
+ ISCT_ONEOF_CONFIGURATION
+ ISCT_ONEOF_NOTIFICATION
+ ISCT_ONEOF_WLAN
+ ISCT_ONEOF_WWAN
+ ISCT_ONEOF_RFKILLSWITCH
+ ISCT_ONEOF_TIMERCHIOICE
+#endif // CONTROLS_WITH_DEFAULTS
+
+//---------------------------------------------------------------------------
+// ADVANCED - CRB Configuration Form
+//---------------------------------------------------------------------------
+#ifdef ADVANCED_FORM_SET
+
+ #ifndef SUPPRESS_GRAYOUT_ENDIF //old Core
+ #define SUPPRESS_GRAYOUT_ENDIF endif;
+ #endif
+
+ #ifdef FORM_SET_GOTO
+ // Define goto commands for the forms defined in this file
+ goto ISCTCONFIGURATION_FORM_ID,
+ prompt = STRING_TOKEN(STR_ISCTCONFIGURATION_FORM),
+ help = STRING_TOKEN(STR_ISCTCONFIGURATION_HELP);
+ #endif
+
+ #ifdef FORM_SET_FORM
+ // Define forms
+ #ifndef ISCTCONFIGURATION_FORM_SETUP
+ #define ISCTCONFIGURATION_FORM_SETUP
+
+ form formid = AUTO_ID(ISCTCONFIGURATION_FORM_ID),
+ title = STRING_TOKEN(STR_ISCTCONFIGURATION_FORM);
+
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ ISCT_ONEOF_CONFIGURATION
+ endif;
+
+ SEPARATOR
+
+ grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER;
+ suppressif ideqval SETUP_DATA.IsctConfiguration == 0;
+ ISCT_ONEOF_NOTIFICATION
+ ISCT_ONEOF_WLAN
+ ISCT_ONEOF_WWAN
+ ISCT_ONEOF_RFKILLSWITCH
+ #if defined (PCH_SKU) && (PCH_SKU == 1)
+ #if defined (LVC_BOARD) && (LVC_BOARD == 0)
+ ISCT_ONEOF_TIMERCHIOICE
+ #endif
+ #endif
+ SUPPRESS_GRAYOUT_ENDIF
+
+ endform; // ISCT_FORM_ID
+
+ #endif // ISCTCONFIGURATION_FORM_SETUP
+ #endif // FORM_SET_FORM
+
+#endif // ADVANCED_FORM_SET
+
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2012, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
diff --git a/Board/EM/Isct/AcpiTables/Isct.sdl b/Board/EM/Isct/AcpiTables/Isct.sdl
new file mode 100644
index 0000000..7e60112
--- /dev/null
+++ b/Board/EM/Isct/AcpiTables/Isct.sdl
@@ -0,0 +1,99 @@
+#**********************************************************************
+#**********************************************************************
+#** **
+#** (C)Copyright 1985-2012, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#**********************************************************************
+#**********************************************************************
+
+#**********************************************************************
+# $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.sdl 1 9/02/12 11:18p Bensonlai $
+#
+# $Revision: 1 $
+#
+# $Date: 9/02/12 11:18p $
+#**********************************************************************
+# Revision History
+# ----------------
+# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ISCT/IsctAcpiTables/Isct.sdl $
+#
+# 1 9/02/12 11:18p Bensonlai
+# Intel Smart Connect Technology initially releases.
+#
+#
+#**********************************************************************
+#<AMI_FHDR_START>
+#
+# Name: Isct.sdl
+#
+# Description: SDL file for Isct
+#
+#
+#<AMI_FHDR_END>
+#**********************************************************************
+
+TOKEN
+ Name = "ISCT_SUPPORT"
+ Value = "1"
+ Help = "Always On Always Connected"
+ TokenType = Boolean
+ TargetMAK = Yes
+ TargetH = Yes
+ Master = Yes
+End
+
+TOKEN
+ Name = "ISCT_ASL_FILE"
+ Value = "$(INTEL_ISCT_DIR)\Isct.asl"
+ TokenType = Expression
+ TargetMAK = Yes
+End
+
+PATH
+ Name = "INTEL_ISCT_DIR"
+End
+
+MODULE
+ Help = "Includes Isct.mak to Project"
+ File = "Isct.mak"
+End
+
+ELINK
+ Name = "$(BUILD_DIR)\Isct.sdb"
+ Parent = "SETUP_SDBS"
+ Priority = 40
+ InvokeOrder = AfterParent
+End
+
+ELINK
+ Name = "$(INTEL_ISCT_DIR)\Isct.sd"
+ Parent = "SETUP_DEFINITIONS"
+ Priority = 40
+ InvokeOrder = AfterParent
+End
+
+ELINK
+ Name = "$(BUILD_DIR)\Isct.ffs"
+ Parent = "FV_MAIN"
+ InvokeOrder = AfterParent
+End
+
+#*************************************************************************
+#*************************************************************************
+#** **
+#** (C)Copyright 1985-2012, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#*************************************************************************
+#*************************************************************************
diff --git a/Board/EM/Isct/AcpiTables/Isct.uni b/Board/EM/Isct/AcpiTables/Isct.uni
new file mode 100644
index 0000000..f295d22
--- /dev/null
+++ b/Board/EM/Isct/AcpiTables/Isct.uni
Binary files differ