intel/skylake: ACPI: Clean up formatting in and fix ASL code

Clean up the formatting in various ASL files and remove
unused and/or incorrect field definitions.

Add back the methods to set the USB power in S3 field
in NVS as it is called by the chromium kernel at boot and
is currently complaining that the method is not found.

BUG=chrome-os-partner:44622
BRANCH=none
TEST=emerge-glados coreboot

Change-Id: I9726fb337bf53fa7dce72c5f30524b58abb4cab6
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 3a47eeba2792c3abed07be175034c709dbf60879
Original-Change-Id: I8e8388c9b834fd060990f8e069929ba829e29ab6
Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/295952
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/11539
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Duncan Laurie 2015-08-27 17:19:24 -07:00 committed by Patrick Georgi
parent 83bc0db777
commit f966d3b3ae
4 changed files with 212 additions and 292 deletions

View File

@ -68,7 +68,18 @@ Field (GNVS, ByteAcc, NoLock, Preserve)
/* ChromeOS specific */
Offset (0x100),
#include <vendorcode/google/chromeos/acpi/gnvs.asl>
}
/* Set flag to enable USB charging in S3 */
Method (S3UE)
{
Store (One, \S3U0)
}
/* Set flag to disable USB charging in S3 */
Method (S3UD)
{
Store (Zero, \S3U0)
}
/* Set flag to enable USB charging in S5 */

View File

@ -19,32 +19,15 @@
* Foundation, Inc.
*/
// Intel LPC Bus Device - 0:1f.0
Device (LPCB)
{
Name (_ADR, 0x001f0000)
Name (_DDN, "LPC Bus Device")
OperationRegion(LPC0, PCI_Config, 0x00, 0x100)
Field (LPC0, AnyAcc, NoLock, Preserve)
{
Offset (0x02),
PDID, 16, // Device ID
Offset (0x40),
PMBS, 16, // PMBASE
Offset (0x48),
GPBS, 16, // GPIOBASE
Offset (0x80), // IO Decode Ranges
IOD0, 8,
IOD1, 8,
}
Device (DMAC) // DMA Controller
Device (DMAC)
{
Name (_HID, EISAID ("PNP0200"))
Name (_DDN, "DMA Controller")
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x00, 0x00, 0x01, 0x20)
@ -55,9 +38,10 @@ Device (LPCB)
})
}
Device (FWH) // Firmware Hub
Device (FWH)
{
Name (_HID, EISAID ("INT0800"))
Name (_DDN, "Firmware Hub")
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadOnly, 0xff000000, 0x01000000)
@ -67,28 +51,21 @@ Device (LPCB)
Device (HPET)
{
Name (_HID, EISAID ("PNP0103"))
Name (BUF0, ResourceTemplate()
Name (_DDN, "High Precision Event Timer")
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed(ReadOnly, HPET_BASE_ADDRESS, 0x400, FED0)
Memory32Fixed (ReadWrite, HPET_BASE_ADDRESS, 0x400)
})
Method (_STA, 0) // Device Status
Method (_STA, 0)
{
Return (0xf)
}
Method (_CRS, 0, Serialized) // Current resources
{
CreateDWordField (BUF0, ^FED0._BAS, HPT0)
/* TODO: Base address configured need to pass as GNVS */
Store(HPET_BASE_ADDRESS, HPT0)
Return(BUF0)
}
}
Device(PIC) // 8259 Interrupt Controller
Device (PIC)
{
Name (_HID, EISAID ("PNP0000"))
Name (_DDN, "8259 Interrupt Controller")
Name (_CRS, ResourceTemplate()
{
IO (Decode16, 0x20, 0x20, 0x01, 0x02)
@ -112,9 +89,10 @@ Device (LPCB)
})
}
Device(MATH) // FPU
Device (MATH)
{
Name (_HID, EISAID ("PNP0C04"))
Name (_DDN, "Floating Point Unit")
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
@ -122,12 +100,12 @@ Device (LPCB)
})
}
Device(LDRC) // LPC device: Resource consumption
Device (LDRC)
{
Name (_HID, EISAID ("PNP0C02"))
Name (_UID, 2)
Name (RBUF, ResourceTemplate()
Name (_DDN, "Legacy Device Resources")
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO
IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO
@ -141,27 +119,24 @@ Device (LPCB)
IO (Decode16, ACPI_BASE_ADDRESS, ACPI_BASE_ADDRESS,
0x1, 0xff)
})
Method (_CRS, 0, NotSerialized)
{
Return (RBUF)
}
}
Device (RTC) // Real Time Clock
Device (RTC)
{
Name (_HID, EISAID ("PNP0B00"))
Name (_DDN, "Real Time Clock")
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x70, 0x70, 1, 8)
//IRQNoFlags() { 8 }
})
}
Device (TIMR) // Intel 8254 timer
Device (TIMR)
{
Name (_HID, EISAID ("PNP0100"))
Name (_CRS, ResourceTemplate() {
Name (_DDN, "8254 Timer")
Name (_CRS, ResourceTemplate ()
{
IO (Decode16, 0x40, 0x40, 0x01, 0x04)
IO (Decode16, 0x50, 0x50, 0x10, 0x04)
IRQNoFlags () {0}

View File

@ -19,11 +19,7 @@
* Foundation, Inc.
*/
Method(_PRT)
{
If (PICM) {
Return (Package() {
/* PCI Bridge */
Name (PICP, Package () {
/* D31: cAVS, SMBus, GbE, Nothpeak */
Package () { 0x001FFFFF, 0, 0, 16 },
Package () { 0x001FFFFF, 1, 0, 17 },
@ -53,7 +49,7 @@ Method(_PRT)
Package () { 0x0019FFFF, 0, 0, 32 },
Package () { 0x0019FFFF, 1, 0, 33 },
Package () { 0x0019FFFF, 2, 0, 34 },
/* D22: CSME (HECI, IDE-R, Keyboard and Text redirection */
/* D22: CSME (HECI, IDE-R, KT redirection */
Package () { 0x0016FFFF, 0, 0, 16 },
Package () { 0x0016FFFF, 1, 0, 17 },
Package () { 0x0016FFFF, 2, 0, 18 },
@ -63,24 +59,18 @@ Method(_PRT)
Package () { 0x0015FFFF, 1, 0, 17 },
Package () { 0x0015FFFF, 2, 0, 18 },
Package () { 0x0015FFFF, 3, 0, 19 },
/* D20: xHCI, OTG,
* Thermal Subsystem, Camera IO Host Controller
*/
/* D20: xHCI, OTG, Thermal, Camera */
Package () { 0x0014FFFF, 0, 0, 16 },
Package () { 0x0014FFFF, 1, 0, 17 },
Package () { 0x0014FFFF, 2, 0, 18 },
Package () { 0x0014FFFF, 3, 0, 19 },
/* D19: Integrated Sensor Hub */
Package () { 0x0013FFFF, 0, 0, 20 },
/* Host Bridge */
/* P.E.G. Root Port D1F0 */
Package () { 0x0001FFFF, 0, 0, 16 },
Package () { 0x0001FFFF, 1, 0, 17 },
Package () { 0x0001FFFF, 2, 0, 18 },
Package () { 0x0001FFFF, 3, 0, 19 },
/* P.E.G. Root Port D1F1 */
/* P.E.G. Root Port D1F2 */
/* SA IGFX Device */
Package () { 0x0002FFFF, 0, 0, 16 },
/* SA Thermal Device */
@ -90,54 +80,60 @@ Method(_PRT)
/* SA GMM Device */
Package () { 0x0008FFFF, 0, 0, 16 },
})
} Else {
Return (Package() {
/* D31 */
Package() { 0x001fffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x001fffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x001fffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x001fffff, 3, \_SB.PCI0.LNKD, 0 },
/* D29 */
Package() { 0x001dffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x001dffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x001dffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x001dffff, 3, \_SB.PCI0.LNKD, 0 },
/* D28 */
Package() { 0x001cffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x001cffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x001cffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x001cffff, 3, \_SB.PCI0.LNKD, 0 },
/* D27 */
Package() { 0x001bffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x001bffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x001bffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x001bffff, 3, \_SB.PCI0.LNKD, 0 },
/* D23 */
Package() { 0x0017ffff, 0, \_SB.PCI0.LNKA, 0 },
/* D22 */
Package() { 0x0016ffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x0016ffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x0016ffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x0016ffff, 3, \_SB.PCI0.LNKD, 0 },
/* D20 */
Package() { 0x0014ffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x0014ffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x0014ffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x0014ffff, 3, \_SB.PCI0.LNKD, 0 },
/* Host bridge */
Package() { 0x0001ffff, 0, \_SB.PCI0.LNKA, 0 },
Package() { 0x0001ffff, 1, \_SB.PCI0.LNKB, 0 },
Package() { 0x0001ffff, 2, \_SB.PCI0.LNKC, 0 },
Package() { 0x0001ffff, 3, \_SB.PCI0.LNKD, 0 },
/* SA IGFX Device */
Package() { 0x0002ffff, 0, \_SB.PCI0.LNKA, 0 },
/* SA Thermal Device */
Package() { 0x0004ffff, 0, \_SB.PCI0.LNKA, 0 },
/* SA Skycam Device */
Package() { 0x0005ffff, 0, \_SB.PCI0.LNKA, 0 },
/* SA GMM Device */
Package() { 0x0008ffff, 0, \_SB.PCI0.LNKA, 0 },
})
}
}
Name (PICN, Package () {
/* D31: cAVS, SMBus, GbE, Nothpeak */
Package () { 0x001FFFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x001FFFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x001FFFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x001FFFFF, 3, \_SB.PCI0.LNKD, 0 },
/* D29: PCI Express Port 9-16 */
Package () { 0x001DFFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x001DFFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x001DFFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x001DFFFF, 3, \_SB.PCI0.LNKD, 0 },
/* D28: PCI Express Port 1-8 */
Package () { 0x001CFFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x001CFFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x001CFFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x001CFFFF, 3, \_SB.PCI0.LNKD, 0 },
/* D27: PCI Express Port 17-20 */
Package () { 0x001BFFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x001BFFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x001BFFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x001BFFFF, 3, \_SB.PCI0.LNKD, 0 },
/* D23 */
Package () { 0x0017FFFF, 0, \_SB.PCI0.LNKA, 0 },
/* D22: CSME (HECI, IDE-R, KT redirection */
Package () { 0x0016FFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x0016FFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x0016FFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x0016FFFF, 3, \_SB.PCI0.LNKD, 0 },
/* D20: xHCI, OTG, Thermal, Camera */
Package () { 0x0014FFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x0014FFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x0014FFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x0014FFFF, 3, \_SB.PCI0.LNKD, 0 },
/* P.E.G. Root Port D1F0 */
Package () { 0x0001FFFF, 0, \_SB.PCI0.LNKA, 0 },
Package () { 0x0001FFFF, 1, \_SB.PCI0.LNKB, 0 },
Package () { 0x0001FFFF, 2, \_SB.PCI0.LNKC, 0 },
Package () { 0x0001FFFF, 3, \_SB.PCI0.LNKD, 0 },
/* SA IGFX Device */
Package () { 0x0002FFFF, 0, \_SB.PCI0.LNKA, 0 },
/* SA Thermal Device */
Package () { 0x0004FFFF, 0, \_SB.PCI0.LNKA, 0 },
/* SA Skycam Device */
Package () { 0x0005FFFF, 0, \_SB.PCI0.LNKA, 0 },
/* SA GMM Device */
Package () { 0x0008FFFF, 0, \_SB.PCI0.LNKA, 0 },
})
Method (_PRT)
{
If (PICM) {
Return (^PICP)
} Else {
Return (^PICN)
}
}

View File

@ -2,7 +2,7 @@
* This file is part of the coreboot project.
*
* Copyright (C) 2007-2009 coresystems GmbH
* Copyright (C) 2014 Google Inc.
* Copyright (C) 2015 Google Inc.
* Copyright (C) 2015 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify
@ -24,104 +24,54 @@
#define BASE_32GB 0x800000000
#define SIZE_16GB 0x400000000
Name (_HID, EISAID ("PNP0A08")) // PCIe
Name (_CID, EISAID ("PNP0A03")) // PCI
Name (_HID, EISAID ("PNP0A08")) /* PCIe */
Name (_CID, EISAID ("PNP0A03")) /* PCI */
Name (_ADR, 0)
Name (_BBN, 0)
Device (MCHC)
{
Name (_ADR, 0x00000000) // 0:0.0
Name (_ADR, 0x00000000)
OperationRegion (MCHP, PCI_Config, 0x00, 0x100)
Field (MCHP, DWordAcc, NoLock, Preserve)
{
Offset(0x40), // EPBAR (0:0:0:40)
EPEN, 1, // Enable
Offset(0x40), /* EPBAR (0:0:0:40) */
EPEN, 1, /* Enable */
, 11,
EPBR, 20, // EPBAR [31:12]
EPBR, 20, /* EPBAR [31:12] */
Offset(0x48), // MCHBAR (0:0:0:48)
MHEN, 1, // Enable
Offset(0x48), /* MCHBAR (0:0:0:48) */
MHEN, 1, /* Enable */
, 14,
MHBR, 17, // MCHBAR [31:15]
MHBR, 17, /* MCHBAR [31:15] */
Offset(0x54), // DEVEN (0:0:0:54)
D0EN, 1, // DEV0 Enable
D1F2, 1, // DEV1 FUN2 Enable
D1F1, 1, // DEV1 FUN1 Enable
D1F0, 1, // DEV1 FUN0 Enable
Offset(0x60), // PCIEXBAR (0:0:0:60)
PXEN, 1, // Enable
PXSZ, 2, // PCI Express Size
Offset(0x60), /* PCIEXBAR (0:0:0:60) */
PXEN, 1, /* Enable */
PXSZ, 2, /* PCI Express Size */
, 23,
PXBR, 6, // PCI Express BAR [31:26]
PXBR, 6, /* PCI Express BAR [31:26] */
Offset(0x68), // DMIBAR (0:0:0:68)
DIEN, 1, // Enable
Offset(0x68), /* DMIBAR (0:0:0:68) */
DIEN, 1, /* Enable */
, 11,
DIBR, 20, // DMIBAR [31:12]
DIBR, 20, /* DMIBAR [31:12] */
Offset (0x70), // ME Base Address
Offset (0x70), /* ME Base Address */
MEBA, 64,
Offset(0x80), // PAM0 Register (0:0:0:80)
PMLK, 1, // PAM Lock bit.
, 3,
PM0H, 2, // PAM 0, High Nibble
, 2,
Offset(0x81), // PAM1 Register (0:0:0:81)
PM1L, 2, // PAM1, Low Nibble
, 2,
PM1H, 2, // PAM1, High Nibble
, 2,
Offset(0x82), // PAM2 Register (0:0:0:82)
PM2L, 2, // PAM2, Low Nibble
, 2,
PM2H, 2, // PAM2, High Nibble
, 2,
Offset(0x83), // PAM3 Register (0:0:0:83)
PM3L, 2, // PAM3, Low Nibble
, 2,
PM3H, 2, // PAM3, High Nibble
, 2,
Offset(0x84), // PAM4 Register (0:0:0:84)
PM4L, 2, // PAM4, Low Nibble
, 2,
PM4H, 2, // PAM4, High Nibble
, 2,
Offset(0x85), // PAM5 Register (0:0:0:85)
PM5L, 2, // PAM5, Low Nibble
, 2,
PM5H, 2, // PAM5, High Nibble
, 2,
Offset(0x86), // PAM6 Register (0:0:0:86)
PM6L, 2, // PAM6, Low Nibble
, 2,
PM6H, 2, // PAM6, High Nibble
, 2,
Offset (0xa0), // Top of Used Memory
Offset (0xa0), /* Top of Used Memory */
TOM, 64,
Offset (0xa8), // Top of Upper Used Memory
Offset (0xa8), /* Top of Upper Used Memory */
TUUD, 64,
Offset (0xbc), // Top of Low Used Memory
Offset (0xbc), /* Top of Low Used Memory */
TLUD, 32,
}
}
// Current Resource Settings
Method (_CRS, 0, Serialized)
{
Name (MCRS, ResourceTemplate ()
@ -131,14 +81,16 @@ Method (_CRS, 0, Serialized)
0x0000, 0x0000, 0x00ff, 0x0000, 0x0100,,, PB00)
/* IO Region 0 */
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode,
EntireRange,
0x0000, 0x0000, 0x0cf7, 0x0000, 0x0cf8,,, PI00)
/* PCI Config Space */
Io (Decode16, 0x0cf8, 0x0cf8, 0x0001, 0x0008)
/* IO Region 1 */
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode,
EntireRange,
0x0000, 0x0d00, 0xffff, 0x0000, 0xf300,,, PI01)
/* VGA memory (0xa0000-0xbffff) */
@ -278,13 +230,10 @@ Method (_CRS, 0, Serialized)
Store (^MCHC.TUUD, Local0)
If (LLessEqual (Local0, BASE_32GB))
{
If (LLessEqual (Local0, BASE_32GB)) {
Store (BASE_32GB, MMIN)
Store (SIZE_16GB, MLEN)
}
else
{
} Else {
Store (0, MMIN)
Store (0, MLEN)
}
@ -302,8 +251,7 @@ Name (DM_B, 0) /* to store DMI BAR */
/* Get MCH BAR */
Method (GMHB, 0, Serialized)
{
if (LEqual (MH_B,0))
{
If (LEqual (MH_B, 0)) {
ShiftLeft (\_SB.PCI0.MCHC.MHBR, 15, MH_B)
}
Return (MH_B)
@ -312,8 +260,7 @@ Method (GMHB,0,Serialized)
/* Get EP BAR */
Method (GEPB, 0, Serialized)
{
if (LEqual (EP_B,0))
{
If (LEqual (EP_B, 0)) {
ShiftLeft (\_SB.PCI0.MCHC.EPBR, 12, EP_B)
}
Return (EP_B)
@ -322,8 +269,7 @@ Method (GEPB,0,Serialized)
/* Get PCIe BAR */
Method (GPCB, 0, Serialized)
{
if (LEqual (PC_B,0))
{
If (LEqual (PC_B, 0)) {
ShiftLeft (\_SB.PCI0.MCHC.PXBR, 26, PC_B)
}
Return (PC_B)
@ -332,8 +278,7 @@ Method (GPCB,0,Serialized)
/* Get PCIe Length */
Method (GPCL, 0, Serialized)
{
if (LEqual (PC_L,0))
{
If (LEqual (PC_L, 0)) {
ShiftRight (0x10000000, \_SB.PCI0.MCHC.PXSZ, PC_L)
}
Return (PC_L)
@ -342,8 +287,7 @@ Method (GPCL,0,Serialized)
/* Get DMI BAR */
Method (GDMB, 0, Serialized)
{
if (LEqual (DM_B,0))
{
If (LEqual (DM_B, 0)) {
ShiftLeft (\_SB.PCI0.MCHC.DIBR, 12, DM_B)
}
Return (DM_B)
@ -398,8 +342,8 @@ Device (PDRC)
/* Local APIC range(0xFEE0_0000 to 0xFEEF_FFFF) */
Memory32Fixed (ReadOnly, 0xFEE00000, 0x100000, LIOH)
/* Reserve HPET address decode range */
Memory32Fixed (ReadWrite, 0, 0, HPET)
/* HPET address decode range */
Memory32Fixed (ReadWrite, HPET_BASE_ADDRESS, 0x400)
/* Debug Base Address
* Base Address for ACPI debug output memory buffer
@ -407,7 +351,6 @@ Device (PDRC)
Memory32Fixed (ReadWrite, 0, 0, DBAD)
})
// Current Resource Settings
Method (_CRS, 0, Serialized)
{
CreateDwordField (BUF0, ^MCHB._BAS, MBR0)
@ -425,11 +368,6 @@ Device (PDRC)
CreateDwordField (BUF0, ^PCIX._LEN, XSZ0)
Store (\_SB.PCI0.GPCL (), XSZ0)
CreateDwordField (BUF0, ^HPET._BAS, HBAS)
CreateDwordField (BUF0, ^HPET._LEN, HLEN)
Store (0xfed00000, HBAS)
Store (0x400, HLEN)
Return (BUF0)
}
}