From e4fabbc4321dd119913865879114f33b0101c807 Mon Sep 17 00:00:00 2001 From: lushifex Date: Sat, 14 Oct 2017 11:29:37 +0800 Subject: Blue tooth device Use Pcd to select blue tooth device. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: lushifex --- .../Board/MinnowBoard3/BoardInitPostMem/BoardInit.c | 7 +++++++ .../Board/MinnowBoard3/BoardInitPostMem/BoardInitMiscs.h | 7 +++++++ .../Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf | 3 ++- .../BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c | 2 +- .../Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf | 1 + .../Acpi/AcpiTablesPCAT/PlatformSsdt/Bluetooth/LBEE5KL1DX.asl | 5 ++++- .../PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi | 2 ++ Platform/BroxtonPlatformPkg/PlatformPkg.dec | 4 +++- 8 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c index 69b7df977d..f329b5f2b0 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInit.c @@ -57,6 +57,7 @@ MinnowBoard3PostMemInitCallback ( UINT8 BoardId; UINT8 FabId; UINT8 ResetType; + UINT8 BtDevice; UINTN BufferSize; Status = PeiServicesLocatePpi ( @@ -91,6 +92,12 @@ MinnowBoard3PostMemInitCallback ( ResetType = V_RST_CNT_FULLRESET; PcdSet8 (PcdResetType, (UINT8) ResetType); + // + // Select bluetooth device. + // + BtDevice = SELECT_BLUE_TOOTH_BCM2E40; + PcdSet8 (PcdBtDevice, (UINT8) BtDevice); + // // Board specific VBT table. // diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitMiscs.h b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitMiscs.h index 2c8c7eb807..37faf87493 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitMiscs.h +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitMiscs.h @@ -23,6 +23,13 @@ // #define RES_MEM32_MIN_LEN 0x38000000 +// +// Bluetooth device identifier. +// +#define SELECT_BLUE_TOOTH_DISABLE 0x00 +#define SELECT_BLUE_TOOTH_BCM2E40 0x01 +#define SELECT_BLUE_TOOTH_BCM2EA1 0x02 + #define RES_IO_BASE 0x0D00 #define RES_IO_LIMIT 0xFFFF diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf index 1392cdd153..665a557696 100644 --- a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3/BoardInitPostMem/BoardInitPostMem.inf @@ -60,7 +60,8 @@ gPlatformModuleTokenSpaceGuid.PcdResetType gPlatformModuleTokenSpaceGuid.PcdBoardVbtFileGuid gPlatformModuleTokenSpaceGuid.PcdSueCreek - gPlatformModuleTokenSpaceGuid.PcdLogoDisplay + gPlatformModuleTokenSpaceGuid.PcdLogoDisplay + gPlatformModuleTokenSpaceGuid.PcdBtDevice [Guids] gEfiPlatformInfoGuid diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c index f0a77d15bd..d0c668ef58 100644 --- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c +++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatform.c @@ -1456,7 +1456,7 @@ AcpiPlatformEntryPoint ( mGlobalNvsArea.Area->Rtd3Support = mSystemConfiguration.Rtd3Support; mGlobalNvsArea.Area->RTD3Config0 = mSystemConfiguration.RTD3ZPODD; mGlobalNvsArea.Area->EnableModernStandby = mSystemConfiguration.ConsolidatedPR; - mGlobalNvsArea.Area->SelectBtDevice = mSystemConfiguration.SelectBtDevice; + mGlobalNvsArea.Area->SelectBtDevice = (UINT8) PcdGet8 (PcdBtDevice); mGlobalNvsArea.Area->ScHdAudioIoBufferOwnership = mSystemConfiguration.ScHdAudioIoBufferOwnership; mGlobalNvsArea.Area->XdciEnable = mSystemConfiguration.ScUsbOtg; mGlobalNvsArea.Area->PciDelayOptimizationEcr = mSystemConfiguration.PciDelayOptimizationEcr; diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf index be047c13fc..9d451f5982 100644 --- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf +++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiPlatformDxe/AcpiPlatformDxe.inf @@ -87,6 +87,7 @@ gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress gPlatformModuleTokenSpaceGuid.PcdResetType gPlatformModuleTokenSpaceGuid.PcdSueCreek + gPlatformModuleTokenSpaceGuid.PcdBtDevice [Depex] gEfiAcpiSupportProtocolGuid AND diff --git a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSsdt/Bluetooth/LBEE5KL1DX.asl b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSsdt/Bluetooth/LBEE5KL1DX.asl index 0421cf61c0..6110c56722 100644 --- a/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSsdt/Bluetooth/LBEE5KL1DX.asl +++ b/Platform/BroxtonPlatformPkg/Common/Acpi/AcpiTablesPCAT/PlatformSsdt/Bluetooth/LBEE5KL1DX.asl @@ -32,7 +32,10 @@ Scope(\_SB.PCI0.URT1) } Method (_STA, 0x0, NotSerialized) { - Return (0xF) + If (LEqual (SBTD, 1)) { + Return (0xF) + } + Return (0) } Name (_S0W, 2) // required to put the device to D2 during S0 idle diff --git a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi index 1b0e93dd98..448105c920 100644 --- a/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi +++ b/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformSetupDxe/SouthClusterConfig.vfi @@ -186,6 +186,7 @@ form formid = MISC_OPTIONS_FORM_ID, subtitle text = STRING_TOKEN(STR_NULL_STRING); subtitle text = STRING_TOKEN(STR_LPSS_DEVICE_SETTING_SUBTITLE); +suppressif TRUE; oneof varid = SETUP_DATA.SelectBtDevice, prompt = STRING_TOKEN(STR_PCH_SERIAL_IO_BLUETOOTH_DEVICE), help = STRING_TOKEN(STR_PCH_SERIAL_IO_BLUETOOTH_HELP), @@ -193,6 +194,7 @@ form formid = MISC_OPTIONS_FORM_ID, option text = STRING_TOKEN(STR_BT_BCM2E40), value = 1, flags = RESET_REQUIRED; // option text = STRING_TOKEN(STR_BT_BCM2EA1), value = 2, flags = RESET_REQUIRED; endoneof; +endif; oneof varid = Setup.I2s343A, prompt = STRING_TOKEN(STR_I2C_DEVICE_CODEC_INT343A_PROMPT), diff --git a/Platform/BroxtonPlatformPkg/PlatformPkg.dec b/Platform/BroxtonPlatformPkg/PlatformPkg.dec index 5d372b04b7..8bf6dc2d2f 100644 --- a/Platform/BroxtonPlatformPkg/PlatformPkg.dec +++ b/Platform/BroxtonPlatformPkg/PlatformPkg.dec @@ -185,7 +185,9 @@ ## This PCD used to enable or disable SueCreek gPlatformModuleTokenSpaceGuid.PcdSueCreek|FALSE|BOOLEAN|0x80000015 ## This PCD used for QR code display under EFI Shell - gPlatformModuleTokenSpaceGuid.PcdLogoDisplay|FALSE|BOOLEAN|0x80000016 + gPlatformModuleTokenSpaceGuid.PcdLogoDisplay|FALSE|BOOLEAN|0x80000016 + ## This PCD used to select bluetooth device + gPlatformModuleTokenSpaceGuid.PcdBtDevice|0x00|UINT8|0x80000017 ## MemoryCheck value for checking memory before boot OS. ## To save the boot performance, the default MemoryCheck is set to 0. -- cgit v1.2.3