[coreboot-gerrit] Patch set updated for coreboot: apollolake: Add ACPI device for audio controller

Saurabh Satija (saurabh.satija@intel.com) gerrit at coreboot.org
Fri Jun 17 21:06:17 CEST 2016


Saurabh Satija (saurabh.satija at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15026

-gerrit

commit e494240a597f137ace95e35a9dc452cc045a1fc1
Author: Saurabh Satija <saurabh.satija at intel.com>
Date:   Tue Mar 8 17:33:29 2016 -0800

    apollolake: Add ACPI device for audio controller
    
    Add the audio controller device to ACPI and define the _DSM handler
    to return the address of the NHLT table, if set in NVS.
    
    Change-Id: I619dbfb562b94255e42a3e5d5a3926c28b14db3e
    Signed-off-by: Saurabh Satija <saurabh.satija at intel.com>
---
 src/soc/intel/apollolake/acpi/pch_hda.asl | 93 +++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/src/soc/intel/apollolake/acpi/pch_hda.asl b/src/soc/intel/apollolake/acpi/pch_hda.asl
new file mode 100644
index 0000000..91d246f
--- /dev/null
+++ b/src/soc/intel/apollolake/acpi/pch_hda.asl
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Intel Corporation.
+ * Copyright (C) 2016 Google Inc.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.
+ */
+
+/* Audio Controller - Device 14, Function 0 */
+
+Device (HDAS)
+{
+	Name (_ADR, 0x000E0000)
+	Name (_DDN, "Audio Controller")
+	Name (UUID, ToUUID("A69F886E-6CEB-4594-A41F-7B5DCE24C553"))
+
+	/* Device is D3 wake capable */
+	Name (_S0W, 3)
+
+	/* NHLT Table Address populated from GNVS values */
+	Name (NBUF, ResourceTemplate() {
+		QWordMemory (ResourceConsumer, PosDecode, MinFixed,
+			MaxFixed, Cacheable, ReadOnly,
+			0, 0, 0, 0, 1,,, NHLT, AddressRangeACPI)
+		}
+	)
+
+	/*
+	 * Device Specific Method
+	 * Arg0 - UUID
+	 * Arg1 - Revision
+	 * Arg2 - Function Index
+	*/
+	Method (_DSM, 4) {
+		If (LEqual(Arg0, ^UUID)) {
+			/*
+			 * Function 0: Function Support Query
+			 * Returns a bitmask of functions supported.
+			 */
+			If (LEqual(Arg2, Zero)) {
+				/*
+				* NHLT Query only supported for revision 1 and
+				* if NHLT address and length are set in NVS.
+				*/
+				If (LAnd(LEqual(Arg1, One),
+					LAnd(LNotEqual(NHLA, Zero),
+					     LNotEqual(NHLL, Zero)))) {
+					Return(Buffer(One) {
+					       0x03}
+					)
+				}
+				Else {
+					Return(Buffer(One) {
+					       0x01}
+					)
+				}
+			}
+
+			/*
+			 * Function 1: Query NHLT memory address used by
+			 * Intel Offload Engine Driver to discover any non-HDA
+			 * devices that are supported by the DSP.
+			 *
+			 * Returns a pointer to NHLT table in memory.
+			 */
+			If (LEqual(Arg2, One)) {
+				CreateQWordField(NBUF, ^NHLT._MIN, NBAS)
+				    CreateQWordField(NBUF, ^NHLT._MAX, NMAS)
+				    CreateQWordField(NBUF, ^NHLT._LEN, NLEN)
+				    Store(NHLA, NBAS)
+				    Store(NHLA, NMAS)
+				    Store(NHLL, NLEN)
+				    Return(NBUF)
+			}
+		}
+
+		Return (Buffer(One) {
+		       0x00}
+		)
+	}
+}



More information about the coreboot-gerrit mailing list