Vaibhav Shankar (vaibhav.shankar(a)intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16233
-gerrit
commit 48a2f495cb818fec816f24ed882f155323604c3f
Author: Vaibhav Shankar <vaibhav.shankar(a)intel.com>
Date: Mon Aug 15 11:32:26 2016 -0700
soc/intel/apollolake: Add ASL methods for eMMC
Implement PS0 and PS3 methods to support eMMC power gate
in S0ix suspend and resume.
BUG=chrome-os-partner:53876
TEST=Suspend and Resume using 'echo freeze > /sys/power/state'.
System should resume from S0ix.
Change-Id: Ia974e9ed67ee520d16f6d6a60294bc62a120fd76
Signed-off-by: Vaibhav Shankar <vaibhav.shankar(a)intel.com>
---
src/soc/intel/apollolake/acpi/scs.asl | 81 +++++++++++++++++++++++++++
src/soc/intel/apollolake/acpi/southbridge.asl | 3 +
2 files changed, 84 insertions(+)
diff --git a/src/soc/intel/apollolake/acpi/scs.asl b/src/soc/intel/apollolake/acpi/scs.asl
new file mode 100644
index 0000000..abc08da
--- /dev/null
+++ b/src/soc/intel/apollolake/acpi/scs.asl
@@ -0,0 +1,81 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+Scope (\_SB.PCI0) {
+ /* 0xD6- is the port address */
+ /* 0x600- is the dynamic clock gating control register offset (GENR) */
+ OperationRegion (SBMM, SystemMemory,
+ OR( OR (CONFIG_IOSF_BASE_ADDRESS,
+ ShiftLeft(0xD6, 16)), 0x0600), 0x18)
+ Field (SBMM, DWordAcc, NoLock, Preserve)
+ {
+ GENR, 32,
+ Offset (0x08),
+ , 5,
+ GRR3, 1,
+ }
+
+ /* SCC power gate control method, this method must be serialized as multiple
+ * device will control the GENR register
+ */
+
+ /*
+ * Arguments: (2)
+ * Arg0: 0-AND 1-OR
+ * Arg1: Value
+ */
+ Method (SCPG, 2, Serialized)
+ {
+ Name (TMP, 0x0)
+ if (LEqual(Arg0, 0x1)) {
+ Store (^GENR, TMP)
+ Or (TMP, Arg1, ^GENR)
+
+ } ElseIf (LEqual(Arg0, 0x0)){
+ Store (^GENR, TMP)
+ And (TMP, Arg1, ^GENR)
+ }
+ }
+
+ /* eMMC */
+ Device (SDHA) {
+ Name (_ADR, 0x001C0000)
+ Name (_DDN, "Intel(R) eMMC Controller - 80865ACC")
+ Name (_UID, 1)
+ /* Method for port80 debug */
+ OperationRegion (POST, SystemIO, 0x80, 1)
+ Field (POST, ByteAcc, Lock, Preserve)
+ {
+ DBG0, 8
+ }
+
+ Method (_PS0, 0, NotSerialized)
+ {
+ /* Clear clock gate */
+ /* Clear bit 6 and 0 */
+ ^^SCPG(0,0xFFFFFFBE)
+ /* Sleep 2 ms */
+ Sleep (2)
+ }
+
+ Method (_PS3, 0, NotSerialized)
+ {
+ /* Enable power gate */
+ /* Restore clock gate */
+ /* Restore bit 6 and 0 */
+ ^^SCPG(1,0x00000041)
+ }
+ } /* Device (SDHA) */
+
+}
diff --git a/src/soc/intel/apollolake/acpi/southbridge.asl b/src/soc/intel/apollolake/acpi/southbridge.asl
index 5b29abb..391a531 100644
--- a/src/soc/intel/apollolake/acpi/southbridge.asl
+++ b/src/soc/intel/apollolake/acpi/southbridge.asl
@@ -31,5 +31,8 @@
/* LPC */
#include "lpc.asl"
+/* eMMC */
+#include "scs.asl"
+
/* PCI _OSC */
#include <soc/intel/common/acpi/pci_osc.asl>
the following patch was just integrated into master:
commit 7931c6a81df82416ead196505411c4f6ff368429
Author: Timothy Pearson <tpearson(a)raptorengineering.com>
Date: Fri Aug 19 17:29:17 2016 -0500
mb/asus/kgpe-d16: Add TPM support
The ASUS KGPE-D16 accepts an optional Infineon LPC TPM module.
Expose the TPM LPC device to the host operating system.
Change-Id: If500e9162bf1e233ccaa35db79452daa59a34f2f
Signed-off-by: Timothy Pearson <tpearson(a)raptorengineering.com>
Reviewed-on: https://review.coreboot.org/16269
Tested-by: build bot (Jenkins)
Tested-by: Raptor Engineering Automated Test Stand <noreply(a)raptorengineeringinc.com>
Reviewed-by: Martin Roth <martinroth(a)google.com>
See https://review.coreboot.org/16269 for details.
-gerrit