aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake/acpi/serialio.asl
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2015-08-27 16:58:23 -0700
committerPatrick Georgi <pgeorgi@google.com>2015-09-08 11:18:48 +0000
commitbf31983836e7546ce03061280a7c612d86c70fc9 (patch)
treeee28162be97c78e5d73da96d7b66ed072b1f71b1 /src/soc/intel/skylake/acpi/serialio.asl
parent86f23acee5e9945efe1aaf99dd6dc9deb6554b11 (diff)
skylake: ACPI: Remove SerialIO ACPI mode code
Skylake moves back to having SerialIO devices be enumerated as PCI devices instead of putting them all in ACPI mode. There is currently no code that populates the device_nvs fields so all the ACPI code to support that is dead. Additionally because it contains _PS0/_PS3 methods that causes the kernel to not use the standard PCIe PME handlers and results in confusing messages at boot about not being able to transition to a non-D0 state from D3. BUG=chrome-os-partner:44622 BRANCH=none TEST=build and boot on glados and ensure I2C devices work Change-Id: Id0112830211707ba3d67d4dda29dd93397b5b180 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: f7dddad9c2269abd292346e35ebd0b4ca2efe72b Original-Change-Id: Ie5e40b5d73cd3a4d19b78f0df4ca015dccb6f5f6 Original-Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/295909 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/11536 Tested-by: build bot (Jenkins) Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/skylake/acpi/serialio.asl')
-rw-r--r--src/soc/intel/skylake/acpi/serialio.asl552
1 files changed, 19 insertions, 533 deletions
diff --git a/src/soc/intel/skylake/acpi/serialio.asl b/src/soc/intel/skylake/acpi/serialio.asl
index d3dca7fb14..da388912e4 100644
--- a/src/soc/intel/skylake/acpi/serialio.asl
+++ b/src/soc/intel/skylake/acpi/serialio.asl
@@ -1,7 +1,7 @@
/*
* This file is part of the coreboot project.
*
- * 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
@@ -18,603 +18,89 @@
* Foundation, Inc.
*/
-// Intel Serial IO Devices in ACPI Mode
-
-/* Serial IO Device BAR0 and BAR1 is 4KB */
-#define SIO_BAR_LEN 0x1000
-
-/* Put SerialIO device in D0 state */
-/* Arg0 - BAR1 of device */
-/* Arg1 - Set if device is in ACPI mode */
-
-Method (LPD0, 2, Serialized)
-{
- /* PCI mode devices will be handled by OS PCI bus driver */
- If (LEqual (Arg1, 0)) {
- Return
- }
-
- OperationRegion (SPRT, SystemMemory, Add (Arg0, 0x84), 4)
- Field (SPRT, DWordAcc, NoLock, Preserve)
- {
- SPCS, 32
- }
-
- And (SPCS, 0xFFFFFFFC, SPCS)
- /* Read back after writing */
- Store (SPCS, Local0)
-}
-
-/* Put SerialIO device in D3 state */
-/* Arg0 - BAR1 of device */
-/* Arg1 - Set if device is in ACPI mode */
-
-Method (LPD3, 2, Serialized)
-{
- /* PCI mode devices will be handled by OS PCI bus driver */
- If (LEqual (Arg1, 0)) {
- Return
- }
- OperationRegion (SPRT, SystemMemory, Add (Arg0, 0x84), 4)
- Field (SPRT, DWordAcc, NoLock, Preserve)
- {
- SPCS, 32
- }
- Or (SPCS, 0x3, SPCS)
- Store (SPCS, Local0) // Read back after writing
-}
-
-/* Serial IO Resource Consumption for BAR1 */
-Device (SIOR)
-{
- Name (_HID, EISAID("PNP0C02"))
- Name (_UID, 5)
- Method(ADDB,3,Serialized) {
- Name (BUFF, ResourceTemplate()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x1000, BUF)
- })
- CreateDWordField(BUFF,BUF._BAS,ADDR)
- CreateDWordField(BUFF,BUF._LEN,LENG)
- Store(ResourceTemplate(){}, Local0)
- //Return (RBUF)
- }
-}
+/* Intel Serial IO Devices */
Device (I2C0)
{
- /* Serial IO I2C0 Controller */
- Name (_HID,"INT3442")
- Name (_UID, 1)
Name (_ADR, 0x00150000)
+ Name (_DDN, "Serial IO I2C Controller 0")
+
Name (SSCN, Package () { 432, 507, 30 })
Name (FMCN, Package () { 72, 160, 30 })
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_I2C0_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S0B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S0B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S0EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S0B1, \S0EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S0B1, \S0EN)
- }
-
}
Device (I2C1)
{
- /* Serial IO I2C1 Controller */
- Name (_HID,"INT3443")
- Name (_UID, 1)
Name (_ADR, 0x00150001)
+ Name (_DDN, "Serial IO I2C Controller 1")
+
Name (SSCN, Package () { 528, 640, 30 })
Name (FMCN, Package () { 128, 160, 30 })
Name (FPCN, Package () { 48, 64, 30})
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_I2C1_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S1B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S1B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S1EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S1B1, \S1EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S1B1, \S1EN)
- }
}
-
Device (I2C2)
{
- /* Serial IO I2C1 Controller */
- Name (_HID,"INT3444")
- Name (_UID, 1)
Name (_ADR, 0x00150002)
+ Name (_DDN, "Serial IO I2C Controller 2")
+
Name (SSCN, Package () { 432, 507, 30 })
Name (FMCN, Package () { 72, 160, 30 })
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_I2C2_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S2B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S2B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S2EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S2B1, \S2EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S2B1, \S2EN)
- }
}
Device (I2C3)
{
- /* Serial IO I2C3 Controller */
- Name (_HID,"INT3445")
- Name (_UID, 1)
Name (_ADR, 0x00150003)
+ Name (_DDN, "Serial IO I2C Controller 3")
+
Name (SSCN, Package () { 432, 507, 30 })
Name (FMCN, Package () { 72, 160, 30 })
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_I2C3_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S3B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S3B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S3EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S3B1, \S3EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S3B1, \S3EN)
- }
-
}
Device (I2C4)
{
- /* Serial IO I2C4 Controller */
- Name (_HID,"INT3446")
- Name (_UID, 1)
Name (_ADR, 0x00190002)
+ Name (_DDN, "Serial IO I2C Controller 4")
+
Name (SSCN, Package () { 432, 507, 30 })
Name (FMCN, Package () { 72, 160, 30 })
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_I2C4_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS*/
- If (LNotEqual (\S4B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S4B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S4EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S4B1, \S4EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S4B1, \S4EN)
- }
}
Device (I2C5)
{
- /* Serial IO I2C1 Controller */
- Name (_HID,"INT3447")
- Name (_UID, 1)
Name (_ADR, 0x00190002)
+ Name (_DDN, "Serial IO I2C Controller 5")
+
Name (SSCN, Package () { 432, 507, 30 })
Name (FMCN, Package () { 72, 160, 30 })
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_I2C5_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (0xFE02A000, B0AD)
- Store (SIO_BAR_LEN, B0LN)
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S5EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S5B1, \S5EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S5B1, \S5EN)
- }
}
Device (SPI0)
{
- /* Serial IO PI0 Controller */
- Name (_HID,"INT3440")
- Name (_UID, 1)
Name (_ADR, 0x001E0002)
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_SPI0_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S6B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S6B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S6EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S6B1, \S6EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S6B1, \S6EN)
- }
+ Name (_DDN, "Serial IO SPI Controller 0")
}
Device (SPI1)
{
- /* Serial IO SPI1 Controller */
- Name (_HID,"INT3441")
- Name (_UID, 1)
Name (_ADR, 0x001E0003)
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_SPI1_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S7B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S7B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S7EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S7B1, \S7EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S7B1, \S7EN)
- }
+ Name (_DDN, "Serial IO SPI Controller 1")
}
Device (UAR0)
{
- /* Serial IO UART0 Controller */
- Name (_HID,"INT3448")
- Name (_UID, 1)
Name (_ADR, 0x001E0000)
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_UART0_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\S8B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S8B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S8EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S8B1, \S8EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S8B1, \S8EN)
- }
+ Name (_DDN, "Serial IO UART Controller 0")
}
Device (UAR1)
{
- /* Serial IO UART1 Controller */
- Name (_HID,"INT3449")
- Name (_UID, 1)
Name (_ADR, 0x001E0001)
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_UART1_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- // Update BAR0 address and length if set in NVS
- If (LNotEqual (\S9B0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\S9B0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\S9EN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\S9B1, \S9EN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\S9B1, \S9EN)
- }
+ Name (_DDN, "Serial IO UART Controller 1")
}
Device (UAR2)
{
- /* Serial IO UART1 Controller */
- Name (_HID,"INT344A")
- Name (_UID, 1)
Name (_ADR, 0x00190000)
-
- /* BAR0 is assigned during PCI enumeration and saved into NVS */
- Name (RBUF, ResourceTemplate ()
- {
- Memory32Fixed (ReadWrite, 0x00000000, 0x00000000, BAR0)
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, , , )
- { LPSS_UART2_IRQ }
- })
-
- Method (_CRS, 0, NotSerialized)
- {
- /* Update BAR0 address and length if set in NVS */
- If (LNotEqual (\SAB0, Zero)) {
- CreateDwordField (^RBUF, ^BAR0._BAS, B0AD)
- CreateDwordField (^RBUF, ^BAR0._LEN, B0LN)
- Store (\SAB0, B0AD)
- Store (SIO_BAR_LEN, B0LN)
- }
-
- Return (RBUF)
- }
-
- Method (_STA, 0, NotSerialized)
- {
- If (LEqual (\SAEN, 0)) {
- Return (0x0)
- } Else {
- Return (0xF)
- }
- }
-
- Method (_PS0, 0, Serialized)
- {
- ^^LPD0 (\SAB1, \SAEN)
- }
-
- Method (_PS3, 0, Serialized)
- {
- ^^LPD3 (\SAB1, \SAEN)
- }
+ Name (_DDN, "Serial IO UART Controller 2")
}