[coreboot-gerrit] Patch set updated for coreboot: soc/intel/skylake:Add _DSM method to reduce D3 cold delay for eMMC controller

V Sowmya (v.sowmya@intel.com) gerrit at coreboot.org
Mon Mar 6 17:43:48 CET 2017


V Sowmya (v.sowmya at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18532

-gerrit

commit 0073a8db671ad7219ca6ce4ea267a32c2ced770f
Author: sowmyav <v.sowmya at intel.com>
Date:   Thu Mar 2 10:09:59 2017 +0530

    soc/intel/skylake:Add _DSM method to reduce D3 cold delay for eMMC controller
    
    eMMC Controller is taking over 100ms to resume during runtime which
    results in I/O latency issues on the Skylake systems like Cave and Caroline.
    
    This patch adds _DSM method for eMMC comtroller for specifying the
    device readiness durations. Function index 9 returns package of five
    integers to set D3 cold delay to zero and ACPI constant Ones for the
    elements where overriding the default values is not desired.
    
    BUG: buganizer-35774937
    BRANCH: none
    TEST: update caroline coreboot and test i/o latency is under 100ms
    
    Change-Id: Iacc8aa8560897da8770fe559ca8cd17aaf6ebeba
    Signed-off-by: Sowmya V <v.sowmya at intel.com>
---
 src/soc/intel/skylake/acpi/scs.asl | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/src/soc/intel/skylake/acpi/scs.asl b/src/soc/intel/skylake/acpi/scs.asl
index aea4483..dd61422 100644
--- a/src/soc/intel/skylake/acpi/scs.asl
+++ b/src/soc/intel/skylake/acpi/scs.asl
@@ -20,6 +20,7 @@ Device (EMMC)
 {
 	Name (_ADR, 0x001E0004)
 	Name (_DDN, "eMMC Controller")
+	Name (UUID, ToUUID ("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))
 
 	OperationRegion (EMCR, PCI_Config, 0x00, 0x100)
 	Field (EMCR, DWordAcc, NoLock, Preserve)
@@ -30,6 +31,38 @@ Device (EMMC)
 		, 2,
 		PGEN, 1,	/* PG_ENABLE */
 	}
+	/*
+         * Device Specific Method
+         * Arg0 - UUID
+         * Arg1 - Revision
+         * Arg2 - Function Index
+         */
+        Method (_DSM, 4)
+	{
+		If (LEqual (Arg0, ^UUID)) {
+			/*
+			 * Function 9: Device Readiness Durations
+			 * Returns a package of five intergers covering
+			 * various device related delay in PCIe Base Spec.
+			*/
+			If (LEqual (Arg2, 9)) {
+				/*
+				 * Function 9 support for revision 3
+				*/
+				If (LEqual (Arg1, 3)) {
+					/*
+					 * Integer 0: set FW reset time to zero
+					 * Integer 1-4: set ACPI constant Ones
+					 * for elements where overriding the
+					 * default values is not desired.
+					*/
+					Return (package (5) {0, Ones, Ones,
+								    Ones, Ones})
+				}
+			}
+		}
+		Return (Buffer (One) { 0x00 })
+	}
 
 	Method (_PS0, 0, Serialized)
 	{



More information about the coreboot-gerrit mailing list