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

Saurabh Satija (saurabh.satija@intel.com) gerrit at coreboot.org
Tue Jun 7 01:19:31 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 ebb884bccd3e2c39fb72cd7b5765cf9361b32341
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>
    Reviewed-on: https://chromium.devtools.intel.com/7141
    Reviewed-by: Petrov, Andrey <andrey.petrov at intel.com>
    Reviewed-on: https://chromium.devtools.intel.com/7573
    Tested-by: Petrov, Andrey <andrey.petrov 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..7f55125
--- /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) 2015 Intel Corporation.
+ * Copyright (C) 2015 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