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

Lijian Zhao (lijian.zhao@intel.com) gerrit at coreboot.org
Mon Jun 6 23:21:05 CEST 2016


Lijian Zhao (lijian.zhao at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/15026

-gerrit

commit 98f0c48aa610931a52486cefd465512e46f0bc10
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.asl     | 23 ++++++++
 src/soc/intel/apollolake/acpi/pch_hda.asl | 89 +++++++++++++++++++++++++++++++
 2 files changed, 112 insertions(+)

diff --git a/src/soc/intel/apollolake/acpi/pch.asl b/src/soc/intel/apollolake/acpi/pch.asl
new file mode 100644
index 0000000..8bcbfd7
--- /dev/null
+++ b/src/soc/intel/apollolake/acpi/pch.asl
@@ -0,0 +1,23 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2007-2009 coresystems GmbH
+ * Copyright (C) 2015 Google Inc.
+ * Copyright (C) 2015 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.
+ *
+ * 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.
+ */
+
+/* PCH HDA */
+#include "pch_hda.asl"
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..ac027e6
--- /dev/null
+++ b/src/soc/intel/apollolake/acpi/pch_hda.asl
@@ -0,0 +1,89 @@
+/*
+ * 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, NonCacheable, 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