+++ /dev/null
-/**************************************************************************;\r
-;* *;\r
-;* *;\r
-;* Intel Corporation - ACPI Reference Code for the Baytrail *;\r
-;* Family of Customer Reference Boards. *;\r
-;* *;\r
-;* *;\r
-;* Copyright (c) 2012 - 2014, Intel Corporation. All rights reserved *;\r
-;\r
-; SPDX-License-Identifier: BSD-2-Clause-Patent\r
-;\r
-;* *;\r
-;* *;\r
-;**************************************************************************/\r
-Device (PEPD)\r
-{\r
- Name (_HID, "INT3396")\r
- Name(_CID, 0x800dd041)\r
- Name (_UID, 0x1)\r
-\r
- // Indicates if the platform PEP has loaded\r
- Name(PEPP, Zero)\r
-\r
- // Devices score-boarded by the PEP, Rev0 format\r
- Name (DEVS, Package() {0})\r
-\r
- // Devices score-boarded by the PEP, Rev1 format\r
- Name(DEVX, Package()\r
- {\r
- Package () {"\\_SB.PCI0.XHC1", 0x1},\r
- Package () {"\\_SB.PCI0.EHC1", 0x1},\r
- Package () {"\\_SB.PCI0.GFX0", 0x1},\r
- Package () {"\\_SB.PCI0.GFX0.ISP0", 0x1},\r
- Package () {"\\_SB.PCI0.SEC0", 0x1},\r
- Package () {"\\_SB.I2C1", 0x1},\r
- Package () {"\\_SB.I2C2", 0x1},\r
- Package () {"\\_SB.I2C3", 0x1},\r
- Package () {"\\_SB.I2C4", 0x1},\r
- Package () {"\\_SB.I2C5", 0x1},\r
- Package () {"\\_SB.I2C6", 0x1},\r
- Package () {"\\_SB.I2C7", 0x1},\r
- Package () {"\\_SB.SDHA", 0x1},\r
- Package () {"\\_SB.SDHB", 0x1},\r
- Package () {"\\_SB.SDHC", 0x1},\r
- Package () {"\\_SB.SPI1", 0x1},\r
- Package () {"\\_SB.URT1", 0x1},\r
- Package () {"\\_SB.URT2", 0x1},\r
- })\r
- // Crashdump device package\r
- Name(CDMP, Package(2) {})\r
- // Device dependency for uPEP\r
- Name(DEVY, Package()\r
- {\r
- Package() {"\\_PR.CPU0", 0x1, Package() {Package() {0xFF, 0}}},\r
- Package() {"\\_PR.CPU1", 0x1, Package() {Package() {0xFF, 0}}},\r
- Package() {"\\_PR.CPU2", 0x1, Package() {Package() {0xFF, 0}}},\r
- Package() {"\\_PR.CPU3", 0x1, Package() {Package() {0xFF, 0}}},\r
- Package() {"\\_SB.I2C1", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.I2C2", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.I2C3", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.I2C4", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.I2C5", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.I2C6", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.I2C7", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.PCI0.GFX0", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.PCI0.SEC0", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.PCI0.XHC1", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.PCI0.GFX0.ISP0", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.LPEA", 0x1, Package() {Package() {0x0,3}, Package() {0x1,0}, Package() {0x2,3}, Package() {0x3,3}}},\r
- Package() {"\\_SB.SDHA", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.SDHB", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.SDHC", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.SPI1", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.URT1", 0x1, Package() {Package() {0xFF,3}}},\r
- Package() {"\\_SB.URT2", 0x1, Package() {Package() {0xFF,3}}}\r
- })\r
- // BCCD crashdump information\r
- Name(BCCD, Package()\r
- {\r
- Package()\r
- {\r
- "\\_SB.SDHA",\r
- Package()\r
- {\r
- Package() { Package() {0, 32, 0, 3, 0xFFFFFFFFFFFFFFFF}, Package() {0xFFFFFFFC, 0x0, 0x4}, 0}\r
- }\r
- }\r
- })\r
-\r
- Method(_STA, 0x0, NotSerialized)\r
- {\r
- Return(0xf)\r
- }\r
-\r
- Method(_DSM, 0x4, Serialized)\r
- {\r
- If(LEqual(Arg0,ToUUID("B8FEBFE0-BAF8-454b-AECD-49FB91137B21")))\r
- {\r
-\r
- // Number of fn IDs supported\r
- If(LEqual(Arg2, Zero))\r
- {\r
- Return(Buffer(One)\r
- {\r
- 0xf\r
- })\r
- }\r
-\r
- // Pep presence\r
- If(LEqual(Arg2, One))\r
- {\r
- Store(0x1, PEPP)\r
- Return(0xf)\r
- }\r
-\r
- // Mitigation devices\r
- If(LEqual(Arg2, 0x2))\r
- {\r
- If(LEqual(Arg1, 0x0))\r
- {\r
- // Rev0\r
- Return(DEVS)\r
- }\r
- If(LEqual(Arg1, 0x1))\r
- {\r
- // Rev1\r
- Return(DEVX)\r
- }\r
- }\r
-\r
- // Crashdump device data\r
- If(LEqual(Arg2, 0x3))\r
- {\r
- Store("\\_SB.SDHA", Index(CDMP,0))\r
- Store(EM1A, Index(CDMP,1))\r
- Return(CDMP)\r
- }\r
- }\r
- // New UUID for built-in uPEP\r
- If(LEqual(Arg0,ToUUID("C4EB40A0-6CD2-11E2-BCFD-0800200C9A66")))\r
- {\r
-\r
- // Number of fn IDs supported\r
- If(LEqual(Arg2, Zero))\r
- {\r
- Return(Buffer(One)\r
- {\r
- 0x7\r
- })\r
- }\r
- // LPI device dependencies\r
- If(LEqual(Arg2, 0x1))\r
- {\r
- Return(DEVY)\r
- }\r
- // Crashdump device data\r
- If(LEqual(Arg2, 0x2))\r
- {\r
- Store(EM1A, Local0)\r
- Add(Local0, 0x84, Local0)\r
- Store(Local0, Index(DerefOf(Index(DerefOf(Index(DerefOf(Index(DerefOf(Index(BCCD, Zero, )), One, )), Zero, )), Zero, )), 0x4, ))\r
- Return(BCCD)\r
- }\r
- }\r
-\r
- Return(One)\r
- }\r
-}\r
-\r
-//\r
-// eMMC 4.41\r
-//\r
-Device(SDHA)\r
-{\r
- Name (_ADR, 0)\r
- Name (_HID, "80860F14")\r
- Name (_CID, "PNP0D40")\r
- Name (_DDN, "Intel(R) eMMC Controller - 80860F14")\r
- Name (_UID, 1)\r
- Name(_DEP, Package(0x1)\r
- {\r
- PEPD\r
- })\r
-\r
- Name (RBF1, ResourceTemplate ()\r
- {\r
- Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)\r
- Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {45} // eMMC 4.41 IRQ\r
- })\r
-\r
- Method (_CRS, 0x0, NotSerialized)\r
- {\r
- // Update the Base address for BAR0 of eMMC 4.41\r
- CreateDwordField(^RBF1, ^BAR0._BAS, B0B1)\r
- CreateDwordField(^RBF1, ^BAR0._LEN, B0L1)\r
- Store(eM0A, B0B1)\r
- Store(eM0L, B0L1)\r
- Return (RBF1)\r
- }\r
- Method (_STA, 0x0, NotSerialized)\r
- {\r
- //\r
- // PCIM>> 0:ACPI mode 1:PCI mode\r
- // SD1D>> 0:eMMC 4.41 enable 1:eMMC 4.41 disable\r
- //\r
- If (LAnd(LEqual(PCIM, 0), LEqual(SD1D, 0)))\r
- {\r
- Return (0xF)\r
- }\r
- Else\r
- {\r
- Return (0x0)\r
- }\r
- }\r
-\r
-\r
- Method (_PS3, 0, NotSerialized)\r
- {\r
- OR(PSAT, 0x00000003, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- //\r
- // If not B1, still keep 2 ms w/a\r
- //\r
- If(LLess(SOCS, 0x03))\r
- {\r
- Sleep(2)\r
- }\r
- }\r
- Method (_PS0, 0, NotSerialized)\r
- {\r
- And(PSAT, 0xfffffffC, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- //\r
- // If not B1, still keep 2 ms w/a\r
- //\r
- If(LLess(SOCS, 0x03))\r
- {\r
- Sleep(2)\r
- }\r
- }\r
-\r
- OperationRegion (KEYS, SystemMemory, eM1A, 0x100)\r
- Field (KEYS, DWordAcc, NoLock, WriteAsZeros)\r
- {\r
- Offset (0x84),\r
- PSAT, 32\r
- }\r
-\r
- Method (_DIS, 0x0, NotSerialized)\r
- {\r
- //Adding dummy disable methods for device EMM0\r
- }\r
-\r
- Device (EMMD)\r
- {\r
- Name (_ADR, 0x00000008) // Slot 0, Function 8\r
- Method (_RMV, 0, NotSerialized)\r
- {\r
- Return (0x0)\r
- }\r
- }\r
-}\r
-\r
-\r
-//\r
-// eMMC 4.5\r
-//\r
-Device(SDHD)\r
-{\r
- Name (_ADR, 0)\r
- Name (_HID, "80860F14")\r
- Name (_CID, "PNP0D40")\r
- Name (_DDN, "Intel(R) eMMC Controller - 80860F14")\r
- Name (_UID, 1)\r
- Name(_DEP, Package(0x1)\r
- {\r
- PEPD\r
- })\r
-\r
- Name (RBF1, ResourceTemplate ()\r
- {\r
- Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)\r
- Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {44} // eMMC 4.5 IRQ\r
- })\r
- Method (_CRS, 0x0, NotSerialized)\r
- {\r
- CreateDwordField(^RBF1, ^BAR0._BAS, B0B1)\r
- CreateDwordField(^RBF1, ^BAR0._LEN, B0L1)\r
- Store(eM0A, B0B1)\r
- Store(eM0L, B0L1)\r
- Return (RBF1)\r
- }\r
- Method (_STA, 0x0, NotSerialized)\r
- {\r
- //\r
- // PCIM>> 0:ACPI mode 1:PCI mode\r
- // HSID>> 0:eMMC 4.5 enable 1:eMMC 4.5 disable\r
- //\r
- If (LAnd(LEqual(PCIM, 0), LEqual(HSID, 0)))\r
- {\r
- Return (0xF)\r
- }\r
- Else\r
- {\r
- Return (0x0)\r
- }\r
- }\r
-\r
-\r
- Method (_PS3, 0, NotSerialized)\r
- {\r
- OR(PSAT, 0x00000003, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- //\r
- // If not B1, still keep 2 ms w/a\r
- //\r
- If(LLess(SOCS, 0x03))\r
- {\r
- Sleep(2)\r
- }\r
- }\r
- Method (_PS0, 0, NotSerialized)\r
- {\r
- And(PSAT, 0xfffffffC, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- //\r
- // If not B1, still keep 2 ms w/a\r
- //\r
- If(LLess(SOCS, 0x03))\r
- {\r
- Sleep(2)\r
- }\r
- }\r
-\r
- OperationRegion (KEYS, SystemMemory, eM1A, 0x100)\r
- Field (KEYS, DWordAcc, NoLock, WriteAsZeros)\r
- {\r
- Offset (0x84),\r
- PSAT, 32\r
- }\r
-\r
- Method (_DIS, 0x0, NotSerialized)\r
- {\r
- //Adding dummy disable methods for device EMM0\r
- }\r
-\r
- Device (EM45)\r
- {\r
- Name (_ADR, 0x00000008) // Slot 0, Function 8\r
- Method (_RMV, 0, NotSerialized)\r
- {\r
- Return (0x0)\r
- }\r
- }\r
-}\r
-\r
-\r
-//\r
-// SDIO\r
-//\r
-Device(SDHB)\r
-{\r
- Name (_ADR, 0)\r
- Name (_HID, "INT33BB")\r
- Name (_CID, "PNP0D40")\r
- Name (_DDN, "Intel(R) SDIO Controller - 80860F15")\r
- Name (_UID, 2)\r
- Name (_HRV, 2)\r
- Name(_DEP, Package(0x01)\r
- {\r
- PEPD\r
- })\r
- Name (PSTS, 0x0)\r
-\r
- Name (RBUF, ResourceTemplate ()\r
- {\r
- Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)\r
- Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {46} // SDIO IRQ\r
- })\r
-\r
- Method (_CRS, 0x0, NotSerialized)\r
- {\r
-\r
- CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)\r
- CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)\r
- Store(SI0A, B0BA)\r
- Store(SI0L, B0LN)\r
- Return (RBUF)\r
- }\r
- Method (_STA, 0x0, NotSerialized)\r
- {\r
- If (LLessEqual(STEP, 0x04))\r
- {\r
- //A stepping\r
- Store(SDMD, _HRV)\r
- }\r
-\r
- //\r
- // PCIM>> 0:ACPI mode 1:PCI mode\r
- //\r
- If (LEqual(PCIM, 1)) {\r
- Return (0x0)\r
- }\r
-\r
- If (LOr(LEqual(SI0A, 0), LEqual(SD2D, 1)))\r
- {\r
- Return (0x0)\r
- }\r
- Return (0xF)\r
- }\r
- Method (_DIS, 0x0, NotSerialized)\r
- {\r
- //Adding dummy disable methods for device EMM0\r
- }\r
-\r
- Method (_PS3, 0, NotSerialized)\r
- {\r
- OR(PSAT, 0x00000003, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- }\r
- Method (_PS0, 0, NotSerialized)\r
- {\r
- And(PSAT, 0xfffffffC, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
-\r
- if(LEqual(\_SB.SDHB.PSTS,0x0))\r
- {\r
- if(LEqual (\_SB.GPO2.AVBL, 1))\r
- {\r
- Store( 0x01, \_SB.GPO2.WFD3 ) // WL_WIFI_REQ_ON = 1 put the device to normal state\r
- Store( 0x01, \_SB.SDHB.PSTS) // indicates that the device powered ON\r
- }\r
- }\r
-\r
-\r
- }\r
- OperationRegion (KEYS, SystemMemory, SI1A, 0x100)\r
- Field (KEYS, DWordAcc, NoLock, WriteAsZeros)\r
- {\r
- Offset (0x84),\r
- PSAT, 32\r
- }\r
-\r
-\r
- Device (BRCM)\r
- {\r
- Name (_ADR, 0x01) //SlotNumber + Function\r
- Name (_DEP, Package() {\_SB.GPO2})\r
-\r
- Method (_RMV, 0, NotSerialized)\r
- {\r
- Return (0x0)\r
- }\r
- Name (_PRW, Package() {0, 0})\r
- Name (_S4W, 2)\r
-\r
- Method (_CRS, 0, Serialized)\r
- {\r
- Name (RBUF, ResourceTemplate ()\r
- {\r
- Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake, , , ) {73}\r
- })\r
- Return (RBUF)\r
- }\r
-\r
- Method (_PS3, 0, NotSerialized)\r
- {\r
- if(LEqual (\_SB.GPO2.AVBL, 1))\r
- {\r
- Store( 0x00, \_SB.GPO2.WFD3 ) // WL_WIFI_REQ_ON = 0 puts the device in reset state\r
- Store( 0x00, \_SB.SDHB.PSTS) //Indicates that the device is powered off\r
- }\r
-\r
- }\r
- Method (_PS0, 0, NotSerialized)\r
- {\r
- if(LEqual(\_SB.SDHB.PSTS,0x0))\r
- {\r
- if(LEqual (\_SB.GPO2.AVBL, 1))\r
- {\r
- Store( 0x01, \_SB.GPO2.WFD3 ) // WL_WIFI_REQ_ON = 1 put the device to normal state\r
- Store( 0x01, \_SB.SDHB.PSTS) // indicates that the device powered ON\r
- }\r
- }\r
- }\r
- } // Device (BRCM)\r
- //\r
- // Secondary Broadcom WIFI function\r
- //\r
- Device(BRC2)\r
- {\r
- Name(_ADR, 0x2) // function 2\r
- Name(_STA, 0xf)\r
- //\r
- // The device is not removable. This must be a method.\r
- //\r
- Method(_RMV, 0x0, NotSerialized)\r
- {\r
- Return(0x0)\r
- }\r
-\r
- //\r
- // Describe a vendor-defined connection between this device and the\r
- // primary wifi device\r
- //\r
-\r
- Method(_CRS)\r
- {\r
- Name(NAM, Buffer() {"\\_SB.SDHB.BRCM"})\r
- Name(SPB, Buffer()\r
- {\r
- 0x8E, // SPB Descriptor\r
- 0x18, 0x00, // Length including NAM above\r
- 0x01, // +0x00 SPB Descriptor Revision\r
- 0x00, // +0x01 Resource Source Index\r
- 0xc0, // +0x02 Bus type - vendor defined\r
- 0x02, // +0x03 Consumer + controller initiated\r
- 0x00, 0x00, // +0x04 Type specific flags\r
- 0x01, // +0x06 Type specific revision\r
- 0x00, 0x00 // +0x07 type specific data length\r
- // +0x09 - 0xf bytes for NULL-terminated NAM\r
- // Length = 0x18\r
- })\r
-\r
- Name(END, Buffer() {0x79, 0x00})\r
- Concatenate(SPB, NAM, Local0)\r
- Concatenate(Local0, END, Local1)\r
- Return(Local1)\r
- }\r
- }\r
-\r
-}\r
-\r
-//\r
-// SD Card\r
-//\r
-Device(SDHC)\r
-{\r
- Name (_ADR, 0)\r
- Name (_HID, "80860F16")\r
- Name (_CID, "PNP0D40")\r
- Name (_DDN, "Intel(R) SD Card Controller - 80860F16")\r
- Name (_UID, 3)\r
- Name(_DEP, Package(0x01)\r
- {\r
- PEPD\r
- })\r
- Name (RBUF, ResourceTemplate ()\r
- {\r
- Memory32Fixed (ReadWrite, 0x00000000, 0x00001000, BAR0)\r
- Interrupt (ResourceConsumer, Level, ActiveLow, Exclusive, , , ) {47} // SD Card IRQ\r
- })\r
- Method (_CRS, 0x0, NotSerialized)\r
- {\r
- CreateDwordField(^RBUF, ^BAR0._BAS, B0BA)\r
- CreateDwordField(^RBUF, ^BAR0._LEN, B0LN)\r
- Store(SD0A, B0BA)\r
- Store(SD0L, B0LN)\r
- Return (RBUF)\r
- }\r
- Method (_STA, 0x0, NotSerialized)\r
- {\r
- //\r
- // PCIM>> 0:ACPI mode 1:PCI mode\r
- //\r
- If (LEqual(PCIM, 1)) {\r
- Return (0x0)\r
- }\r
-\r
- If (LOr(LEqual(SD0A, 0), LEqual(SD3D, 1)))\r
- {\r
- Return (0x0)\r
- }\r
- Return (0xF)\r
- }\r
-\r
- Method (_PS3, 0, NotSerialized)\r
- {\r
- OR(PSAT, 0x00000003, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- }\r
- Method (_PS0, 0, NotSerialized)\r
- {\r
- And(PSAT, 0xfffffffC, PSAT)\r
- OR(PSAT, 0X00000000, PSAT)\r
- }\r
- OperationRegion (KEYS, SystemMemory, SD1A, 0x100)\r
- Field (KEYS, DWordAcc, NoLock, WriteAsZeros)\r
- {\r
- Offset (0x84),\r
- PSAT, 32\r
- }\r
-\r
- Device (CARD)\r
- {\r
- Name (_ADR, 0x00000008)\r
- Method(_RMV, 0x0, NotSerialized)\r
- {\r
- // SDRM = 0 non-removable;\r
- If (LEqual(SDRM, 0))\r
- {\r
- Return (0)\r
- }\r
-\r
- Return (1)\r
- }\r
- }\r
-\r
-}\r
-\r