From nobody Mon Apr 29 17:19:37 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1513928633531292.4503873955674; Thu, 21 Dec 2017 23:43:53 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 8B2EF222CB314; Thu, 21 Dec 2017 23:39:02 -0800 (PST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 0B24A222CB30E for ; Thu, 21 Dec 2017 23:39:00 -0800 (PST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Dec 2017 23:43:50 -0800 Received: from zwei4-mobl1.ccr.corp.intel.com ([10.239.193.54]) by fmsmga004.fm.intel.com with ESMTP; 21 Dec 2017 23:43:49 -0800 X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=david.wei@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,439,1508828400"; d="scan'208";a="14777830" From: zwei4 To: edk2-devel@lists.01.org Date: Fri, 22 Dec 2017 15:43:44 +0800 Message-Id: <20171222074344.3936-1-david.wei@intel.com> X-Mailer: git-send-email 2.14.1.windows.1 Subject: [edk2] [Patch][edk2-platforms/devel-MinnowBoard3-UDK2017] I2S Audio Configure X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Customize I2S virtual bus ID for different boards. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: zwei4 --- .../BensonGlacier/BoardInitPostMem/BoardGpios.c | 10 ------- .../BensonGlacier/BoardInitPostMem/BoardGpios.h | 10 ------- .../BensonGlacier/BoardInitPostMem/BoardInit.c | 9 ++++++ .../BoardInitPostMem/BoardInitPostMem.inf | 5 ++++ .../Board/LeafHill/BoardInitPostMem/BoardInit.c | 9 ++++++ .../LeafHill/BoardInitPostMem/BoardInitPostMem.inf | 5 ++++ .../MinnowBoard3/BoardInitPostMem/BoardGpios.c | 10 ------- .../MinnowBoard3/BoardInitPostMem/BoardGpios.h | 10 ------- .../MinnowBoard3/BoardInitPostMem/BoardInit.c | 9 ++++++ .../BoardInitPostMem/BoardInitPostMem.inf | 5 ++++ .../PlatformSetupDxe/SouthClusterConfig.vfi | 4 +-- Silicon/BroxtonSoC/BroxtonSiPkg/BroxtonSiPkg.dec | 12 ++++++++ .../Library/Private/DxeScHdaLib/DxeScHdaLib.inf | 5 ++++ .../Library/Private/DxeScHdaLib/ScHdaLib.c | 25 ++++++---------- .../BroxtonSiPkg/SouthCluster/ScInit/Dxe/ScHda.c | 33 ++++++++++++++++++= ++++ 15 files changed, 102 insertions(+), 59 deletions(-) diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostM= em/BoardGpios.c b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInit= PostMem/BoardGpios.c index df11c8bbd..f7ae62114 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dGpios.c +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dGpios.c @@ -204,16 +204,6 @@ BensonMultiPlatformGpioProgram ( GpioPadConfigTable (sizeof (mBenson_GpioInitData_W) / sizeof (mBenson_= GpioInitData_W[0]), PlatformInfoHob->PlatformGpioSetting_W); GpioPadConfigTable (sizeof (mBenson_GpioInitData_SW) / sizeof (mBenson= _GpioInitData_SW[0]), PlatformInfoHob->PlatformGpioSetting_SW); =20 - // - // Note1: This BXT BIOS WA needs to be applied after PAD programming t= o overwrite the GPIO setting to take effect. - // Note2: Enable TDO in BIOS SETUP as default for BXT Power-On only, n= eed to set to AUTO prior to deliver to customer. - // For BXT A0 Stepping only, to disable TDO GPIO to save power. - // - if (PlatformInfoHob->FABID =3D=3D FAB2) { - DEBUG ((DEBUG_INFO, "FAB ID: FAB2\n")); - GpioPadConfigTable(sizeof(mBenson_GpioInitData_FAB2)/sizeof(mBenson_= GpioInitData_FAB2[0]), mBenson_GpioInitData_FAB2); - } - if (SystemConfiguration.TDO =3D=3D 2) { //Auto if (BxtA0 =3D=3D BxtStepping()) { DEBUG ((DEBUG_INFO, " BxtA0 TDO disable\n" )); diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostM= em/BoardGpios.h b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInit= PostMem/BoardGpios.h index 5adc8e546..e4c1c2ee1 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dGpios.h +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dGpios.h @@ -345,16 +345,6 @@ BXT_GPIO_PAD_INIT mBenson_GpioInitData_Audio_SSP6 []= =3D BXT_GPIO_PAD_CONF(L"GPIO_192 DBI_SCL", M0 , HI_Z ,GPIO_D, = HI , NA , Wake_Disabled, P_2K_H, NA , NA,NA , = NA , GPIO_PADBAR+0x0028, NORTHWEST),//Feature: Codec Power Down PD Net = in Sch: SOC_CODEC_PD_N }; =20 -BXT_GPIO_PAD_INIT mBenson_GpioInitData_FAB2[] =3D -{ - // - // Group Pin#: pad_name, PMode,GPIO_Config,HostSw,G= PO_STATE,INT_Trigger, Wake_Enabled ,Term_H_L,Inverted, GPI_ROUT, IOSstae, = IOSTerm, MMIO_Offset ,Community - // - BXT_GPIO_PAD_CONF(L"GPIO_76 AVS_I2S1_WS_SYNC", M0 , GPI ,GPIO_D, = NA , Level , Wake_Disabled, P_20K_L, NA ,IOAPIC, TxDRxE, = NA, GPIO_PADBAR+0x0120, NORTHWEST),//Feature:SSIC_WWAN_Wake - BXT_GPIO_PAD_CONF(L"GPIO_6", M0 , GPI ,GPIO_D, = NA , Level , Wake_Disabled, P_20K_L, NA ,IOAPIC, TxDRxE, = NA, GPIO_PADBAR+0x0030, NORTH), //Feature:DGPU Power OK - BXT_GPIO_PAD_CONF(L"GPIO_217 CNV_BRI_RSP", M0 , GPO ,GPIO_D, = LO , NA , Wake_Disabled, P_20K_L, NA , NA, NA, = NA, GPIO_PADBAR+0x0240, NORTH), //Feature:DGPU_SEL -}; - // // GPIO 191 is only used if EPI reworks are applied on the board. This GPI= O switches between SD Card data (if set to 1) and EPI data (if set to 0). // diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostM= em/BoardInit.c b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitP= ostMem/BoardInit.c index 74245de12..aabb350e8 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dInit.c +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dInit.c @@ -135,6 +135,15 @@ BensonGlacierPostMemInitCallback ( // PcdSet8 (PcdeMMCHostMaxSpeed, (UINT8) (SystemConfiguration.ScceMMCHostMa= xSpeed)); =20 + // + // I2S NHLT Virtual Bus ID + // + PcdSet8(HdaEndpointBtRenderVirtualBusId, 0x0F); // N/A + PcdSet8(HdaEndpointBtCaptureVirtualBusId, 0x0F); // N/A + PcdSet8(HdaEndpointI2sRenderSKPVirtualBusId, 1); // I2S2 + PcdSet8(HdaEndpointI2sRenderHPVirtualBusId, 1); // I2S2 + PcdSet8(HdaEndpointI2sCaptureVirtualBusId, 1); // I2S2 + // // Add init steps here // diff --git a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostM= em/BoardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/B= oardInitPostMem/BoardInitPostMem.inf index 0f1d55563..c7499b564 100644 --- a/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dInitPostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/BensonGlacier/BoardInitPostMem/Boar= dInitPostMem.inf @@ -67,6 +67,11 @@ gPlatformModuleTokenSpaceGuid.PcdMaxPkgCState gPlatformModuleTokenSpaceGuid.PcdTi3100AudioCodecEnable gPlatformModuleTokenSpaceGuid.PcdeMMCHostMaxSpeed + gEfiBxtTokenSpaceGuid.HdaEndpointBtRenderVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointBtCaptureVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderSKPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderHPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sCaptureVirtualBusId =20 [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/Bo= ardInit.c b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/Boa= rdInit.c index ca49dfe0f..fdf2c7eaa 100644 --- a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit= .c +++ b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit= .c @@ -141,6 +141,15 @@ LeafHillPostMemInitCallback ( // PcdSet64 (PcdHdaVerbTablePtr, (UINT64) (UINTN) &HdaVerbTableAlc662); PcdSet8(HdaVerbTableEntryNum, 1); + + // + // I2S NHLT Virtual Bus ID + // + PcdSet8(HdaEndpointBtRenderVirtualBusId, 2); //I2S3 + PcdSet8(HdaEndpointBtCaptureVirtualBusId, 2); //I2S3 + PcdSet8(HdaEndpointI2sRenderSKPVirtualBusId, 5); //I2S6 + PcdSet8(HdaEndpointI2sRenderHPVirtualBusId, 5); //I2S6 + PcdSet8(HdaEndpointI2sCaptureVirtualBusId, 5); //I2S6 =20 // // Add init steps here diff --git a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/Bo= ardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPo= stMem/BoardInitPostMem.inf index 5154235f8..9b6b3c93d 100644 --- a/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit= PostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/LeafHill/BoardInitPostMem/BoardInit= PostMem.inf @@ -67,6 +67,11 @@ gPlatformModuleTokenSpaceGuid.PcdeMMCHostMaxSpeed gPlatformModuleTokenSpaceGuid.PcdHdaVerbTablePtr gPlatformModuleTokenSpaceGuid.HdaVerbTableEntryNum + gEfiBxtTokenSpaceGuid.HdaEndpointBtRenderVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointBtCaptureVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderSKPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderHPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sCaptureVirtualBusId =20 [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMe= m/BoardGpios.c b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPo= stMem/BoardGpios.c index 096d0e862..e54bd1719 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= Gpios.c +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= Gpios.c @@ -204,16 +204,6 @@ Minnow3MultiPlatformGpioProgram ( GpioPadConfigTable (sizeof (mMinnow3_GpioInitData_W) / sizeof (mMinnow= 3_GpioInitData_W[0]), PlatformInfoHob->PlatformGpioSetting_W); GpioPadConfigTable (sizeof (mMinnow3_GpioInitData_SW) / sizeof (mMinno= w3_GpioInitData_SW[0]), PlatformInfoHob->PlatformGpioSetting_SW); =20 - // - // Note1: This BXT BIOS WA needs to be applied after PAD programming t= o overwrite the GPIO setting to take effect. - // Note2: Enable TDO in BIOS SETUP as default for BXT Power-On only, n= eed to set to AUTO prior to deliver to customer. - // For BXT A0 Stepping only, to disable TDO GPIO to save power. - // - if (PlatformInfoHob->FABID =3D=3D FAB2) { - DEBUG ((DEBUG_INFO, "FAB ID: FAB2\n")); - GpioPadConfigTable(sizeof(mMinnow3_GpioInitData_FAB2)/sizeof(mMinnow= 3_GpioInitData_FAB2[0]), mMinnow3_GpioInitData_FAB2); - } - if (SystemConfiguration.TDO =3D=3D 2) { //Auto if (BxtA0 =3D=3D BxtStepping()) { DEBUG ((DEBUG_INFO, " BxtA0 TDO disable\n" )); diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMe= m/BoardGpios.h b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPo= stMem/BoardGpios.h index 77d409026..78fc533e7 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= Gpios.h +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= Gpios.h @@ -340,16 +340,6 @@ BXT_GPIO_PAD_INIT mMinnow3_GpioInitData_Audio_SSP6 []= =3D BXT_GPIO_PAD_CONF(L"GPIO_192 DBI_SCL", M0 , HI_Z ,GPIO_D, = HI , NA , Wake_Disabled, P_2K_H, NA , NA,NA , = NA , GPIO_PADBAR+0x0028, NORTHWEST),//Feature: Codec Power Down PD Net = in Sch: SOC_CODEC_PD_N }; =20 -BXT_GPIO_PAD_INIT mMinnow3_GpioInitData_FAB2[] =3D -{ - // - // Group Pin#: pad_name, PMode,GPIO_Config,HostSw,G= PO_STATE,INT_Trigger, Wake_Enabled ,Term_H_L,Inverted, GPI_ROUT, IOSstae, = IOSTerm, MMIO_Offset ,Community - // - BXT_GPIO_PAD_CONF(L"GPIO_76 AVS_I2S1_WS_SYNC", M0 , GPI ,GPIO_D, = NA , Level , Wake_Disabled, P_20K_L, NA ,IOAPIC, TxDRxE, = NA, GPIO_PADBAR+0x0120, NORTHWEST),//Feature:SSIC_WWAN_Wake - BXT_GPIO_PAD_CONF(L"GPIO_6", M0 , GPI ,GPIO_D, = NA , Level , Wake_Disabled, P_20K_L, NA ,IOAPIC, TxDRxE, = NA, GPIO_PADBAR+0x0030, NORTH), //Feature:DGPU Power OK - BXT_GPIO_PAD_CONF(L"GPIO_217 CNV_BRI_RSP", M0 , GPO ,GPIO_D, = LO , NA , Wake_Disabled, P_20K_L, NA , NA, NA, = NA, GPIO_PADBAR+0x0240, NORTH), //Feature:DGPU_SEL -}; - // // GPIO 191 is only used if EPI reworks are applied on the board. This GPI= O switches between SD Card data (if set to 1) and EPI data (if set to 0). // diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMe= m/BoardInit.c b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPos= tMem/BoardInit.c index c1ee6b9c9..666a0bfdf 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= Init.c +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= Init.c @@ -147,6 +147,15 @@ MinnowBoard3PostMemInitCallback ( PcdSet8 (PcdeMMCHostMaxSpeed, (UINT8) MaxSpeed); } =20 + // + // I2S NHLT Virtual Bus ID + // + PcdSet8(HdaEndpointBtRenderVirtualBusId, 2); // I2S3 + PcdSet8(HdaEndpointBtCaptureVirtualBusId, 2); // I2S3 + PcdSet8(HdaEndpointI2sRenderSKPVirtualBusId, 0); // I2S1 + PcdSet8(HdaEndpointI2sRenderHPVirtualBusId, 0); // I2S1 + PcdSet8(HdaEndpointI2sCaptureVirtualBusId, 0); // I2S1 + // // Add init steps here // diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMe= m/BoardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/Boa= rdInitPostMem/BoardInitPostMem.inf index 801c47f14..9cf90c637 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= InitPostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/Board= InitPostMem.inf @@ -63,6 +63,11 @@ gPlatformModuleTokenSpaceGuid.PcdLogoDisplay gPlatformModuleTokenSpaceGuid.PcdBtDevice gPlatformModuleTokenSpaceGuid.PcdeMMCHostMaxSpeed + gEfiBxtTokenSpaceGuid.HdaEndpointBtRenderVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointBtCaptureVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderSKPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderHPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sCaptureVirtualBusId =20 [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSe= tupDxe/SouthClusterConfig.vfi b/Platform/BroxtonPlatformPkg/Common/Platform= Settings/PlatformSetupDxe/SouthClusterConfig.vfi index 3dbc2f313..f45d47a82 100644 --- a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/= SouthClusterConfig.vfi +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/= SouthClusterConfig.vfi @@ -2765,8 +2765,8 @@ form formid =3D HDAUDIO_OPTIONS_FORM_ID, oneof varid =3D Setup.ScHdAudioNhltEndpointDmic, prompt =3D STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_DMIC), help =3D STRING_TOKEN(STR_HDA_NHLT_ENDPOINT_DMIC_HELP), - option text =3D STRING_TOKEN(STR_DISABLE), value =3D 0, flags = =3D RESET_REQUIRED; - option text =3D STRING_TOKEN(STR_HDA_DMIC_2CH), value =3D 1, fl= ags =3D DEFAULT |RESET_REQUIRED; + option text =3D STRING_TOKEN(STR_DISABLE), value =3D 0, flags = =3D DEFAULT | RESET_REQUIRED; + option text =3D STRING_TOKEN(STR_HDA_DMIC_2CH), value =3D 1, fl= ags =3D RESET_REQUIRED; option text =3D STRING_TOKEN(STR_HDA_DMIC_4CH), value =3D 2, fl= ags =3D RESET_REQUIRED; endoneof; =20 diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/BroxtonSiPkg.dec b/Silicon/Bro= xtonSoC/BroxtonSiPkg/BroxtonSiPkg.dec index c06b4e131..a28765f23 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/BroxtonSiPkg.dec +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/BroxtonSiPkg.dec @@ -332,6 +332,18 @@ gEfiBxtTokenSpaceGuid.PcdSetCoreCount|0|UINT32|0x10000223 gEfiBxtTokenSpaceGuid.PcdVtdGfxBaseAddress|0xFED64000|UINT32|0x10000224 gSiPkgTokenSpaceGuid.PcdForceVolatileVariable|FALSE|BOOLEAN|0x30000012 + =20 + ## I2S Audio Configuration + ## Blue Tooth Render + gEfiBxtTokenSpaceGuid.HdaEndpointBtRenderVirtualBusId|0x0F|UINT8|0x80000= 001 + ## Blue Tooth Capture + gEfiBxtTokenSpaceGuid.HdaEndpointBtCaptureVirtualBusId|0x0F|UINT8|0x8000= 0002 + ## Speaker Render + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderSKPVirtualBusId|0x0F|UINT8|0x8= 0000003 + ## Headphone Render + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderHPVirtualBusId|0x0F|UINT8|0x80= 000004 + ## Headphone Capture + gEfiBxtTokenSpaceGuid.HdaEndpointI2sCaptureVirtualBusId|0x0F|UINT8|0x800= 00005 =20 [PcdsFeatureFlag] gBxtRefCodePkgTokenSpaceGuid.PcdCeAtaSupport|FALSE|BOOLEAN|0x12 diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Library/Private/D= xeScHdaLib/DxeScHdaLib.inf b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/L= ibrary/Private/DxeScHdaLib/DxeScHdaLib.inf index 2013054fd..03be30648 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Library/Private/DxeScHda= Lib/DxeScHdaLib.inf +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Library/Private/DxeScHda= Lib/DxeScHdaLib.inf @@ -40,6 +40,11 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemRevision ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId ## CONSUMES gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorRevision ## CONSUMES + gEfiBxtTokenSpaceGuid.HdaEndpointBtRenderVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointBtCaptureVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderSKPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sRenderHPVirtualBusId + gEfiBxtTokenSpaceGuid.HdaEndpointI2sCaptureVirtualBusId =20 [Sources] ScHdaLib.c diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Library/Private/D= xeScHdaLib/ScHdaLib.c b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Librar= y/Private/DxeScHdaLib/ScHdaLib.c index e27b38dda..028f6ee62 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Library/Private/DxeScHda= Lib/ScHdaLib.c +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/Library/Private/DxeScHda= Lib/ScHdaLib.c @@ -568,7 +568,7 @@ NhltEndpointConstructor ( case HdaBtRender: DEBUG ((DEBUG_INFO, "Endpoint: HdaBtRender\n")); if (GetBxtSeries() =3D=3D BxtP) { - HdaEndpointBtRender.VirtualBusId =3D 2; + HdaEndpointBtRender.VirtualBusId =3D PcdGet8(HdaEndpointBtRenderVi= rtualBusId); DEBUG ((DEBUG_INFO, "For BXT-P, HdaEndpointBtRender.VirtualBusId C= hange to 0x%02x.\n", HdaEndpointBtRender.VirtualBusId)); } CopyMem (Endpoint, &HdaEndpointBtRender, sizeof (ENDPOINT_DESCRIPTOR= )); @@ -579,7 +579,7 @@ NhltEndpointConstructor ( case HdaBtCapture: DEBUG ((DEBUG_INFO, "Endpoint: HdaBtCapture\n")); if (GetBxtSeries() =3D=3D BxtP) { - HdaEndpointBtCapture.VirtualBusId =3D 2; + HdaEndpointBtCapture.VirtualBusId =3D PcdGet8(HdaEndpointBtCapture= VirtualBusId); DEBUG ((DEBUG_INFO, "For BXT-P, HdaEndpointBtCapture.VirtualBusId = Change to 0x%02x.\n", HdaEndpointBtCapture.VirtualBusId)); } CopyMem (Endpoint, &HdaEndpointBtCapture, sizeof (ENDPOINT_DESCRIPTO= R)); @@ -589,12 +589,9 @@ NhltEndpointConstructor ( break; case HdaI2sRenderSKP: DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sRenderSKP\n")); - // - // For BXT-P, Virtual Bus ID is 5, while it is 0 for BXTM - // if (GetBxtSeries() =3D=3D BxtP) { - HdaEndpointI2sRenderSKP.VirtualBusId =3D 5; - DEBUG ((DEBUG_INFO, "For BXT-P, Endpoint: HdaI2sRenderSKP virtual = bus ID is 5.\n")); + HdaEndpointI2sRenderSKP.VirtualBusId =3D PcdGet8(HdaEndpointI2sRen= derSKPVirtualBusId); + DEBUG ((DEBUG_INFO, "For BXT-P, Endpoint: HdaI2sRenderSKP virtual = bus ID is 0x%02x.\n", HdaEndpointI2sRenderSKP.VirtualBusId)); } CopyMem (Endpoint, &HdaEndpointI2sRenderSKP, sizeof (ENDPOINT_DESCRI= PTOR)); EndpointConfigBuffer =3D I2sConfigSKP; @@ -610,12 +607,9 @@ NhltEndpointConstructor ( break; case HdaI2sRenderHP: DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sRenderHP\n")); - // - // For BXT-P, Virtual Bus ID is 5, while it is 0 for BXTM - // if (GetBxtSeries() =3D=3D BxtP) { - HdaEndpointI2sRenderHP.VirtualBusId =3D 5; - DEBUG ((DEBUG_INFO, "For BXT-P, Endpoint: HdaI2sRenderHP virtual b= us ID is 5.\n")); + HdaEndpointI2sRenderHP.VirtualBusId =3D PcdGet8(HdaEndpointI2sRend= erHPVirtualBusId); + DEBUG ((DEBUG_INFO, "For BXT-P, Endpoint: HdaI2sRenderHP virtual b= us ID is 0x%02x.\n", HdaEndpointI2sRenderHP.VirtualBusId )); } CopyMem (Endpoint, &HdaEndpointI2sRenderHP, sizeof (ENDPOINT_DESCRIP= TOR)); EndpointConfigBuffer =3D I2sConfig; @@ -624,12 +618,9 @@ NhltEndpointConstructor ( break; case HdaI2sCaptureHP: DEBUG ((DEBUG_INFO, "Endpoint: HdaI2sCaptureHP\n")); - // - // For BXT-P, Virtual Bus ID is 5, while it is 0 for BXTM - // if (GetBxtSeries() =3D=3D BxtP) { - HdaEndpointI2sCapture.VirtualBusId =3D 5; - DEBUG ((DEBUG_INFO, "For BXT-P, Endpoint: HdaI2sCaptureHP virtual = bus ID is 5.\n")); + HdaEndpointI2sCapture.VirtualBusId =3D PcdGet8(HdaEndpointI2sCaptu= reVirtualBusId); + DEBUG ((DEBUG_INFO, "For BXT-P, Endpoint: HdaI2sCaptureHP virtual = bus ID is 0x%02x.\n", HdaEndpointI2sCapture.VirtualBusId)); } CopyMem (Endpoint, &HdaEndpointI2sCapture, sizeof (ENDPOINT_DESCRIPT= OR)); EndpointConfigBuffer =3D I2sConfig; diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/ScInit/Dxe/ScHda.= c b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/ScInit/Dxe/ScHda.c index 16efcbe85..4600b5326 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/ScInit/Dxe/ScHda.c +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/SouthCluster/ScInit/Dxe/ScHda.c @@ -266,6 +266,39 @@ ConfigureHdaAtBoot ( Status =3D GetConfigBlock ((VOID *) ScPolicy, &gHdAudioConfigGuid, (VOID= *) &HdaConfig); ASSERT_EFI_ERROR (Status); =20 + if ((HdaConfig->IoBufferOwnership =3D=3D ScHdaIoBufOwnerHdaLinkI2sPort) = || \ + (HdaConfig->IoBufferOwnership =3D=3D ScHdaIoBufOwnerI2sPort)) { =20 + HdaConfig->DspEndpointBluetooth =3D TRUE; + HdaConfig->DspEndpointI2sSkp =3D TRUE; + HdaConfig->DspEndpointI2sHp =3D TRUE; + } + =20 + DEBUG ((DEBUG_INFO, "------------------ HD-Audio Config ----------------= --\n")); + DEBUG ((DEBUG_INFO, " HDA Enable =3D %x\n", HdaConfig-= >Enable)); + DEBUG ((DEBUG_INFO, " DSP Enable =3D %x\n", HdaConfig-= >DspEnable)); + DEBUG ((DEBUG_INFO, " Pme =3D %x\n", HdaConfig-= >Pme)); + DEBUG ((DEBUG_INFO, " I/O Buffer Ownership =3D %x\n", HdaConfig-= >IoBufferOwnership)); + DEBUG ((DEBUG_INFO, " I/O Buffer Voltage =3D %x\n", HdaConfig-= >IoBufferVoltage)); + DEBUG ((DEBUG_INFO, " VC Type =3D %x\n", HdaConfig-= >VcType)); + DEBUG ((DEBUG_INFO, " DSP Feature Mask =3D %x\n", HdaConfig-= >DspFeatureMask)); + DEBUG ((DEBUG_INFO, " DSP PP Module Mask =3D %x\n", HdaConfig-= >DspPpModuleMask)); + DEBUG ((DEBUG_INFO, " ResetWaitTimer =3D %x\n", HdaConfig-= >ResetWaitTimer)); + DEBUG ((DEBUG_INFO, " VcType =3D %x\n", HdaConfig-= >VcType)); + DEBUG ((DEBUG_INFO, " HD-A Link Frequency =3D %x\n", HdaConfig-= >HdAudioLinkFrequency)); + DEBUG ((DEBUG_INFO, " iDisp Link Frequency =3D %x\n", HdaConfig-= >IDispLinkFrequency)); + DEBUG ((DEBUG_INFO, " iDisp Link T-Mode =3D %x\n", HdaConfig-= >IDispLinkTmode)); + DEBUG ((DEBUG_INFO, " DSP Endpoint DMIC =3D %x\n", HdaConfig-= >DspEndpointDmic)); + DEBUG ((DEBUG_INFO, " DSP Endpoint I2S SKP =3D %x\n", HdaConfig-= >DspEndpointI2sSkp)); + DEBUG ((DEBUG_INFO, " DSP Endpoint I2S HP =3D %x\n", HdaConfig-= >DspEndpointI2sHp)); + DEBUG ((DEBUG_INFO, " DSP Endpoint BT =3D %x\n", HdaConfig-= >DspEndpointBluetooth)); + DEBUG ((DEBUG_INFO, " DSP Feature Mask =3D %x\n", HdaConfig-= >DspFeatureMask)); + DEBUG ((DEBUG_INFO, " DSP PP Module Mask =3D %x\n", HdaConfig-= >DspPpModuleMask)); + DEBUG ((DEBUG_INFO, " CSME Memory Transfers =3D %x\n", HdaConfig-= >Mmt)); + DEBUG ((DEBUG_INFO, " Host Memory Transfers =3D %x\n", HdaConfig-= >Hmt)); + DEBUG ((DEBUG_INFO, " BIOS Configuration Lock Down =3D %x\n", HdaConfig-= >BiosCfgLockDown)); + DEBUG ((DEBUG_INFO, " Power Gating =3D %x\n", HdaConfig-= >PwrGate)); + DEBUG ((DEBUG_INFO, " Clock Gating =3D %x\n", HdaConfig-= >ClkGate)); + HdaPciBase =3D MmPciBase ( DEFAULT_PCI_BUS_NUMBER_SC, PCI_DEVICE_NUMBER_HDA, --=20 2.14.1.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel