[coreboot-gerrit] New patch to review for coreboot: 4ce1ef5 ASRock E350M1: Provide HD Audio verb table for Realtek ALC892

Paul Menzel (paulepanter@users.sourceforge.net) gerrit at coreboot.org
Sat Mar 30 00:49:36 CET 2013


Paul Menzel (paulepanter at users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2984

-gerrit

commit 4ce1ef5b5cf64e7457e2dd86db4c1cbdea959f55
Author: Paul Menzel <paulepanter at users.sourceforge.net>
Date:   Fri Mar 29 21:41:56 2013 +0100

    ASRock E350M1: Provide HD Audio verb table for Realtek ALC892
    
    Use the same HD Audio [1] verb table for the Realtek ALC892
    audio chip [2] as the proprietary vendor BIOS version P1.60
    sets up [2], which Linux exposes under its virtual filesystem sysfs.
    
        /sys/class/sound/hwC1D0/init_pin_configs
    
    The difference between the verb table between the vendor BIOS and
    coreboot is shown in the following output [3]. (Beware of the ordering!)
    
            $ wdiff vendorbios_vt coreboot_vt # init_pin_config
            0x11 [-0x411111f0-] {+0x411110f0+}
            0x12 0x411111f0
            0x14 [-0x01014010-] {+0x01014030+}
            0x15 [-0x01011012-] {+0x01011031+}
            0x16 [-0x01016011-] {+0x01016032+}
            0x17 [-0x411111f0-] {+0x01012033+}
            0x18 [-0x01a19840-] {+0x01a19850+}
            0x19 [-0x02a19950-] {+0x02a19c80+}
            0x1a [-0x0181304f-] {+0x01813051+}
            0x1b [-0x02214120-] {+0x02214c40+}
            0x1c [-0x411111f0-] {+0x9933105f+}
            0x1d [-0x4005e601-] {+0x00000100+}
            0x1e [-0x01452130-] {+0x01441070+}
            0x1f [-0x411111f0-] {+0x41c46060+}
    
    Note, that currently no problems are know with the default verb
    table used with coreboot. Sound over HDMI works fine and stereo
    out too. More thorough tests would need to be performed to test
    each connector for the front and back panel.
    
    Additionally, I was not able to find out, where the values for
    the default verb table under coreboot come from. Searching for
    »6032« – a substring used in the default table – did not yield
    any results in coreboot and the Linux kernel (ALSA).
    
    Additionally the script `alsa-info.sh` [5] seems to be able to
    decode the table. The differences of the section
    
        HDA-Intel Codec information
    
    are pasted to the comments of the Gerrit page, where this patch
    is reviewed on.
    
    [1] http://en.wikipedia.org/wiki/Intel_High_Definition_Audio
    [2] http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PNid=24&PFid=28&Level=5&Conn=4&ProdID=284
    [3] http://www.coreboot.org/pipermail/coreboot/2013-March/075559.html
    [4] http://mailman.alsa-project.org/pipermail/alsa-devel/2013-March/060717.html
    [5] http://alsa-project.org/main/index.php/Help_To_Debug
    
    Change-Id: I03cb1ffc86554ebf55c355f5363f490a3ca58260
    Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
---
 src/mainboard/asrock/e350m1/platform_cfg.h | 39 ++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/src/mainboard/asrock/e350m1/platform_cfg.h b/src/mainboard/asrock/e350m1/platform_cfg.h
index 24a66dd..a54e561 100644
--- a/src/mainboard/asrock/e350m1/platform_cfg.h
+++ b/src/mainboard/asrock/e350m1/platform_cfg.h
@@ -227,6 +227,45 @@
  */
 #define GEC_CONFIG			0
 
+static const CODECENTRY e350m1_codec_alc892[] = /* Realtek ALC892 */
+{
+	/*
+	 * The comments after each entry are taken from the block
+	 * diagram (figure 1) in the ALC892 datasheet
+	 * (Rev. 1.3, Track ID: JATR-2265-11) on page 5 which is available for download
+	 * on the Realtek Web site.
+	 */
+
+	/* NID, PinConfig (Verbs 71F..C) */
+	{0x11, 0x411111F0}, /* S/PDIF-OUT 2 */
+	{0x12, 0x411111F0}, /* DMIC-L/R */
+	{0x14, 0x01014010}, /* FRONT (Port-D) */
+	{0x15, 0x01011012}, /* SURR (Port-A) */
+	{0x16, 0x01016011}, /* CEN/LFE (Port-G) */
+	{0x17, 0x411111F0}, /* SIDESURR (Port-H) */
+	{0x18, 0x01A19840}, /* MIC1 (Port-B) */
+	{0x19, 0x02A19950}, /* MIC2 (Port-F) */
+	{0x1A, 0x0181304F}, /* LINE1 (Port-C) */
+	{0x1B, 0x02214120}, /* LINE2 (Port-E) */
+	{0x1C, 0x411111F0}, /* CD-IN */
+	{0x1D, 0x4005E601}, /* BEEP-IN */
+	{0x1E, 0x01452130}, /* S/PDIF-OUT */
+	{0x1F, 0x411111F0}, /* S/PDIF-IN */
+	{0xff, 0xffffffff} /* end of table */
+};
+
+static const CODECTBLLIST codec_tablelist[] =
+{
+	{0x10ec0892, (CODECENTRY*)&e350m1_codec_alc892[0]},
+	{0xFFFFFFFF, (CODECENTRY*)0xFFFFFFFFL}
+};
+
+/**
+ * @def AZALIA_OEM_VERB_TABLE
+ *  Mainboard specific codec verb table list
+ */
+#define AZALIA_OEM_VERB_TABLE		(&codec_tablelist[0])
+
 /**
  * @def SIO_HWM_BASE_ADDRESS  Super IO HWM base address
  */



More information about the coreboot-gerrit mailing list