Revision: 18065
http://sourceforge.net/p/edk2/code/18065
Author: timhe
Date: 2015-07-27 00:58:07 +0000 (Mon, 27 Jul 2015)
Log Message:
-----------
Add the code to support compatible platform.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tim He <[email protected]>
Reviewed-by: David Wei <[email protected]>
Modified Paths:
--------------
branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdD.env
branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdR.env
branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64D.env
branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64R.env
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Guid/PlatformInfo.h
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Library/SpiFlash.H
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardClkGens/BoardClkGens.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardGpios/BoardGpios.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardOemIds/BoardOemIds.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardSsidSvid/BoardSsidSvid.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformInitPei/PlatformEarlyInit.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPei/Platform.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscBaseBoardManufacturerFunction.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscChassisManufacturerFunction.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSubclassDriverEntryPoint.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSystemManufacturerFunction.c
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/SmBiosMiscDxe.inf
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdD.env
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdD.env 2015-07-27 00:49:00 UTC
(rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdD.env 2015-07-27 00:58:07 UTC
(rev 18065)
@@ -36,4 +36,4 @@
BOARD_ID = BLAKCRB
VERSION_MAJOR = 0082
-VERSION_MINOR = 01
+VERSION_MINOR = 02
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdR.env
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdR.env 2015-07-27 00:49:00 UTC
(rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdR.env 2015-07-27 00:58:07 UTC
(rev 18065)
@@ -36,4 +36,4 @@
BOARD_ID = BLAKCRB
VERSION_MAJOR = 0082
-VERSION_MINOR = 01
+VERSION_MINOR = 02
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64D.env
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64D.env 2015-07-27
00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64D.env 2015-07-27
00:58:07 UTC (rev 18065)
@@ -35,5 +35,5 @@
BUILD_TYPE = D
VERSION_MAJOR = 0082
-VERSION_MINOR = 01
+VERSION_MINOR = 02
BOARD_ID = BBAYCRB
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64R.env
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64R.env 2015-07-27
00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/BiosIdx64R.env 2015-07-27
00:58:07 UTC (rev 18065)
@@ -35,5 +35,5 @@
BUILD_TYPE = R
VERSION_MAJOR = 0082
-VERSION_MINOR = 01
+VERSION_MINOR = 02
BOARD_ID = BBAYCRB
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Guid/PlatformInfo.h
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Guid/PlatformInfo.h
2015-07-27 00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Guid/PlatformInfo.h
2015-07-27 00:58:07 UTC (rev 18065)
@@ -185,7 +185,8 @@
BOARD_ID_BB_RVP = 0x20, // Bayley Bay Board
BOARD_ID_BS_RVP = 0x30, // Bakersport Board
BOARD_ID_CVH = 0x90, // Crestview Hills
- BOARD_ID_MINNOW2 = 0xA0 // Minnow2
+ BOARD_ID_MINNOW2 = 0xA0, // Minnow2
+ BOARD_ID_MINNOW2_COMPATIBLE = 0xB0 // Minnow2
} BOARD_ID_LIST;
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Library/SpiFlash.H
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Library/SpiFlash.H
2015-07-27 00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/Include/Library/SpiFlash.H
2015-07-27 00:58:07 UTC (rev 18065)
@@ -75,7 +75,7 @@
#define SF_DEVICE_ID0_W25XXX 0x30
#define SF_DEVICE_ID1_W25X32 0x16
#define SF_DEVICE_ID1_W25X64 0x17
-#define SF_DEVICE_ID0_W25QXX 0x60
+#define SF_DEVICE_ID0_W25QXX 0x40
#define SF_DEVICE_ID1_W25Q16 0x15
#define SF_DEVICE_ID1_W25Q32 0x16
#define SF_DEVICE_ID1_W25Q64 0x17
@@ -161,7 +161,7 @@
#define SF_VENDOR_ID_WINBOND 0xEF
#define SF_DEVICE_ID0_W25XXX 0x30
-#define SF_DEVICE_ID0_W25QXX 0x60
+
#define SF_DEVICE_ID1_W25X80 0x14
#define SF_DEVICE_ID1_W25X16 0x15
#define SF_DEVICE_ID1_W25X32 0x16
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardClkGens/BoardClkGens.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardClkGens/BoardClkGens.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardClkGens/BoardClkGens.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -379,6 +379,7 @@
switch (PlatformInfoHob->BoardId) {
case BOARD_ID_MINNOW2:
+ case BOARD_ID_MINNOW2_COMPATIBLE:
default:
switch(PlatformInfoHob->PlatformFlavor) {
case FlavorTablet:
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardGpios/BoardGpios.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardGpios/BoardGpios.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardGpios/BoardGpios.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -159,7 +159,7 @@
switch (PlatformInfoHob->BoardId) {
case BOARD_ID_MINNOW2: // Minnow2
-
+ case BOARD_ID_MINNOW2_COMPATIBLE:
Status = (**PeiServices).LocatePpi (
PeiServices,
&gEfiPeiReadOnlyVariable2PpiGuid,
@@ -518,6 +518,7 @@
//
switch (PlatformInfoHob->BoardId) {
case BOARD_ID_MINNOW2:
+ case BOARD_ID_MINNOW2_COMPATIBLE:
DEBUG ((EFI_D_INFO, "Start to config Minnow2 GPIO pins\n"));
InternalGpioConfig(GPIO_SCORE_OFFSET,
sizeof(mMinnow2_GpioInitData_SC)/sizeof(mMinnow2_GpioInitData_SC[0]),
(GPIO_CONF_PAD_INIT *) (UINTN) PlatformInfoHob->PlatformGpioData_SC);
InternalGpioConfig(GPIO_NCORE_OFFSET,
sizeof(mMinnow2_GpioInitData_NC)/sizeof(mMinnow2_GpioInitData_NC[0]),
(GPIO_CONF_PAD_INIT *) (UINTN) PlatformInfoHob->PlatformGpioData_NC);
@@ -532,7 +533,7 @@
// configure the CFIO Pnp settings
//
if (PlatformInfoHob->CfioEnabled) {
- if (PlatformInfoHob->BoardId == BOARD_ID_MINNOW2){
+ if (PlatformInfoHob->BoardId == BOARD_ID_MINNOW2 ||
PlatformInfoHob->BoardId == BOARD_ID_MINNOW2_COMPATIBLE){
InternalGpioConfig(GPIO_SCORE_OFFSET,
sizeof(mNB_BB_FAB3_GpioInitData_SC_TRI)/sizeof(mNB_BB_FAB3_GpioInitData_SC_TRI[0]),
(GPIO_CONF_PAD_INIT *) (UINTN)PlatformInfoHob->PlatformGpioData_SC_TRI);
}
}
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardOemIds/BoardOemIds.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardOemIds/BoardOemIds.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardOemIds/BoardOemIds.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -43,6 +43,7 @@
switch (PlatformInfoHob->BoardId) {
case BOARD_ID_MINNOW2:
+ case BOARD_ID_MINNOW2_COMPATIBLE:
default:
OemId = EFI_ACPI_OEM_ID_DEFAULT;
OemTableId = EFI_ACPI_OEM_TABLE_ID_DEFAULT;
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardSsidSvid/BoardSsidSvid.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardSsidSvid/BoardSsidSvid.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardSsidSvid/BoardSsidSvid.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -41,9 +41,10 @@
//
switch (PlatformInfoHob->BoardId) {
case BOARD_ID_MINNOW2:
- default:
- SsidSvidValue =
SUBSYSTEM_SVID_SSID;//SUBSYSTEM_SVID_SSID_DEFAULT;
- break;
+ case BOARD_ID_MINNOW2_COMPATIBLE:
+ default:
+ SsidSvidValue = SUBSYSTEM_SVID_SSID;//SUBSYSTEM_SVID_SSID_DEFAULT;
+ break;
}
PlatformInfoHob->SsidSvid = SsidSvidValue;
return EFI_SUCCESS;
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformInitPei/PlatformEarlyInit.c
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformInitPei/PlatformEarlyInit.c
2015-07-27 00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformInitPei/PlatformEarlyInit.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -914,6 +914,7 @@
PlatformInfo->BoardId == BOARD_ID_BB_RVP ||
PlatformInfo->BoardId == BOARD_ID_BS_RVP ||
PlatformInfo->BoardId == BOARD_ID_MINNOW2 ||
+ PlatformInfo->BoardId == BOARD_ID_MINNOW2_COMPATIBLE||
PlatformInfo->BoardId == BOARD_ID_CVH) {
ConfigureLpssAndSccGpio(&SystemConfiguration, PlatformInfo);
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPei/Platform.c
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPei/Platform.c
2015-07-27 00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/PlatformPei/Platform.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -201,6 +201,57 @@
);
+/**
+
+ Detemine compatible board
+ @return 0: Not compatible board
+ 1: Compatible board
+
+**/
+UINT32
+DetermineCompatibleBoard (
+ void
+ )
+{
+ UINTN PciD31F0RegBase = 0;
+ UINT32 GpioValue = 0;
+ UINT32 TmpVal = 0;
+ UINT32 MmioConf0 = 0;
+ UINT32 MmioPadval = 0;
+ UINT32 PConf0Offset = 0x200; //GPIO_S5_4 pad_conf0 register offset
+ UINT32 PValueOffset = 0x208; //GPIO_S5_4 pad_value register offset
+ UINT32 SSUSOffset = 0x2000;
+ UINT32 IoBase = 0;
+
+ DEBUG ((EFI_D_ERROR, "DetermineCompatibleBoard() Entry\n"));
+ PciD31F0RegBase = MmPciAddress (0,
+ 0,
+ PCI_DEVICE_NUMBER_PCH_LPC,
+ PCI_FUNCTION_NUMBER_PCH_LPC,
+ 0
+ );
+ IoBase = MmioRead32 (PciD31F0RegBase + R_PCH_LPC_IO_BASE) &
B_PCH_LPC_IO_BASE_BAR;
+
+ MmioConf0 = IoBase + SSUSOffset + PConf0Offset;
+ MmioPadval = IoBase + SSUSOffset + PValueOffset;
+ //0xFED0E200/0xFED0E208 is pad_Conf/pad_val register address of GPIO_S5_4
+ DEBUG ((EFI_D_ERROR, "MmioConf0[0x%x], MmioPadval[0x%x]\n", MmioConf0,
MmioPadval));
+
+ MmioWrite32 (MmioConf0, 0x2003CC00);
+
+ TmpVal = MmioRead32 (MmioPadval);
+ TmpVal &= ~0x6; //Clear bit 1:2
+ TmpVal |= 0x2; // Set the pin as GPI
+ MmioWrite32 (MmioPadval, TmpVal);
+
+ GpioValue = MmioRead32 (MmioPadval);
+
+ DEBUG ((EFI_D_ERROR, "Gpio_S5_4 value is 0x%x\n", GpioValue));
+ return (GpioValue & 0x1);
+}
+
+
+
EFI_STATUS
FtpmPolicyInit (
IN CONST EFI_PEI_SERVICES **PeiServices,
@@ -863,6 +914,7 @@
UINTN DataSize;
EFI_PLATFORM_INFO_HOB TmpHob;
EFI_PEI_READ_ONLY_VARIABLE2_PPI *PeiVar;
+ UINT32 CompatibleBoard = 0;
Status = (**PeiServices).LocatePpi (
PeiServices,
@@ -891,10 +943,16 @@
return Status;
}
+ CompatibleBoard = DetermineCompatibleBoard();
+ if (1 == CompatibleBoard) {
+ PlatformInfoHob->BoardId = BOARD_ID_MINNOW2_COMPATIBLE;
+ DEBUG ((EFI_D_INFO, "I'm MinnowBoard Compatible!\n"));
+ } else {
+ PlatformInfoHob->BoardId = BOARD_ID_MINNOW2;
+ DEBUG ((EFI_D_INFO, "I'm MinnowBoard Max!\n"));
+ }
+
- PlatformInfoHob->BoardId = BOARD_ID_MINNOW2;
- DEBUG ((EFI_D_INFO, "I'm Minnow2!\n"));
-
PlatformInfoHob->MemCfgID = 0;
PlatformInfoHob->BoardRev = FabId + 1; // FabId = 0 means FAB1
(BoardRev = 1), FabId = 1 means FAB2 (BoardRev = 2)...
PlatformInfoHob->PlatformFlavor = FlavorMobile;
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscBaseBoardManufacturerFunction.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscBaseBoardManufacturerFunction.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscBaseBoardManufacturerFunction.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -29,8 +29,11 @@
#include <Library/NetLib.h>
#include "Library/DebugLib.h"
#include <Uefi/UefiBaseType.h>
+#include <Guid/PlatformInfo.h>
+extern EFI_PLATFORM_INFO_HOB *mPlatformInfo;
+
/**
This function makes boot time changes to the contents of the
MiscBaseBoardManufacturer (Type 2).
@@ -66,16 +69,21 @@
CHAR16 *MacStr;
EFI_HANDLE *Handles;
UINTN BufferSize;
+ CHAR16 Buffer[40];
ForType2InputData = (EFI_MISC_BASE_BOARD_MANUFACTURER *)RecordData;
//
// First check for invalid parameters.
//
- if (RecordData == NULL) {
+ if (RecordData == NULL || mPlatformInfo == NULL) {
return EFI_INVALID_PARAMETER;
}
+ if (BOARD_ID_MINNOW2_COMPATIBLE == mPlatformInfo->BoardId) {
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"Compatible Vendor");
+ HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_BASE_BOARD_MANUFACTURER),
Buffer, NULL);
+ }
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_MANUFACTURER);
Manufacturer = SmbiosMiscGetString (TokenToGet);
ManuStrLen = StrLen(Manufacturer);
@@ -83,6 +91,10 @@
return EFI_UNSUPPORTED;
}
+ if (BOARD_ID_MINNOW2_COMPATIBLE == mPlatformInfo->BoardId) {
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"MinnowBoard Compatible Platform");
+ HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_BASE_BOARD_PRODUCT_NAME1),
Buffer, NULL);
+ }
TokenToGet = STRING_TOKEN (STR_MISC_BASE_BOARD_PRODUCT_NAME1);
Product = SmbiosMiscGetString (TokenToGet);
ProductStrLen = StrLen(Product);
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscChassisManufacturerFunction.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscChassisManufacturerFunction.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscChassisManufacturerFunction.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -34,9 +34,12 @@
#include "CommonHeader.h"
-
#include "MiscSubclassDriver.h"
+#include <Guid/PlatformInfo.h>
+
+extern EFI_PLATFORM_INFO_HOB *mPlatformInfo;
+
/**
This function makes boot time changes to the contents of the
MiscChassisManufacturer (Type 3).
@@ -64,16 +67,21 @@
EFI_SMBIOS_HANDLE SmbiosHandle;
SMBIOS_TABLE_TYPE3 *SmbiosRecord;
EFI_MISC_CHASSIS_MANUFACTURER *ForType3InputData;
+ CHAR16 Buffer[40];
ForType3InputData = (EFI_MISC_CHASSIS_MANUFACTURER *)RecordData;
//
// First check for invalid parameters.
//
- if (RecordData == NULL) {
+ if (RecordData == NULL || mPlatformInfo == NULL) {
return EFI_INVALID_PARAMETER;
}
+ if (BOARD_ID_MINNOW2_COMPATIBLE == mPlatformInfo->BoardId) {
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"Compatible Vendor");
+ HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_CHASSIS_MANUFACTURER),
Buffer, NULL);
+ }
TokenToGet = STRING_TOKEN (STR_MISC_CHASSIS_MANUFACTURER);
Manufacturer = SmbiosMiscGetString (TokenToGet);
ManuStrLen = StrLen(Manufacturer);
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSubclassDriverEntryPoint.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSubclassDriverEntryPoint.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSubclassDriverEntryPoint.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -35,14 +35,15 @@
#include "CommonHeader.h"
-
#include "MiscSubclassDriver.h"
#include <Protocol/HiiString.h>
+#include <Guid/PlatformInfo.h>
+
EFI_HII_HANDLE mHiiHandle;
EFI_HII_STRING_PROTOCOL *mHiiString;
+EFI_PLATFORM_INFO_HOB *mPlatformInfo=NULL;
-
EFI_STRING
EFIAPI
SmbiosMiscGetString (
@@ -131,7 +132,19 @@
UINTN Index;
EFI_STATUS EfiStatus;
EFI_SMBIOS_PROTOCOL *Smbios;
+ EFI_PEI_HOB_POINTERS GuidHob;
+
+
+ GuidHob.Raw = GetHobList ();
+ if (GuidHob.Raw != NULL) {
+ if ((GuidHob.Raw = GetNextGuidHob (&gEfiPlatformInfoGuid, GuidHob.Raw)) !=
NULL) {
+ mPlatformInfo = GET_GUID_HOB_DATA (GuidHob.Guid);
+ }
+ }
+
+ DEBUG ((EFI_D_ERROR, "PlatformInfoHob->BoardId [0x%x]\n",
mPlatformInfo->BoardId));
+
//
// Retrieve the pointer to the UEFI HII String Protocol
//
Modified:
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSystemManufacturerFunction.c
===================================================================
---
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSystemManufacturerFunction.c
2015-07-27 00:49:00 UTC (rev 18064)
+++
branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/MiscSystemManufacturerFunction.c
2015-07-27 00:58:07 UTC (rev 18065)
@@ -30,7 +30,12 @@
#include <Library/NetLib.h>
#include "Library/DebugLib.h"
#include <Uefi/UefiBaseType.h>
+#include <Guid/PlatformInfo.h>
+
+extern EFI_PLATFORM_INFO_HOB *mPlatformInfo;
+
+
/**
Publish the smbios type 1.
@@ -70,77 +75,86 @@
EFI_SMBIOS_PROTOCOL *Smbios;
CHAR16 Buffer[40];
- CHAR16 *MacStr;
- EFI_HANDLE *Handles;
- UINTN BufferSize;
+ CHAR16 *MacStr;
+ EFI_HANDLE *Handles;
+ UINTN BufferSize;
+ CHAR16 PlatformNameBuffer[40];
ForType1InputData = (EFI_MISC_SYSTEM_MANUFACTURER *)Context;
//
// First check for invalid parameters.
//
- if (Context == NULL) {
+ if (Context == NULL || mPlatformInfo == NULL) {
return EFI_INVALID_PARAMETER;
}
Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID *)
&Smbios);
ASSERT_EFI_ERROR (Status);
+
+ if (BOARD_ID_MINNOW2_COMPATIBLE == mPlatformInfo->BoardId) {
+ // Detect the board is compatible board platform
+ UnicodeSPrint (PlatformNameBuffer, sizeof
(PlatformNameBuffer),L"%s",L"Minnowboard Compatible ");
+ } else {
+ UnicodeSPrint (PlatformNameBuffer, sizeof
(PlatformNameBuffer),L"%s",L"Minnowboard Max ");
+ }
+
//
// Silicon Steppings
//
switch (PchStepping()) {
case PchA0:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX A0
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"A0
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"A0");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "A0 Stepping Detected\n"));
break;
case PchA1:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX A1
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"A1
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"A1");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "A1 Stepping Detected\n"));
break;
case PchB0:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX B0
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"B0
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"B0");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "B0 Stepping Detected\n"));
break;
case PchB1:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX B1
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"B1
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"B1");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "B1 Stepping Detected\n"));
break;
case PchB2:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX B2
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"B2
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"B2");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "B2 Stepping Detected\n"));
break;
case PchB3:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX B3
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"B3
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"B3");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "B3 Stepping Detected\n"));
break;
case PchC0:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX C0
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"C0
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"C0");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
DEBUG ((EFI_D_ERROR, "C0 Stepping Detected\n"));
break;
case PchD0:
- UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"MinnowBoard MAX D0
PLATFORM");
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"%s%s", PlatformNameBuffer, L"D0
PLATFORM");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_PRODUCT_NAME),
Buffer, NULL);
UnicodeSPrint (Buffer, sizeof (Buffer),L"%s",L"D0");
HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_VERSION), Buffer,
NULL);
@@ -151,7 +165,10 @@
break;
}
-
+ if (BOARD_ID_MINNOW2_COMPATIBLE == mPlatformInfo->BoardId) {
+ UnicodeSPrint (Buffer, sizeof (Buffer),L"Compatible Vendor");
+ HiiSetString(mHiiHandle,STRING_TOKEN(STR_MISC_SYSTEM_MANUFACTURER),
Buffer, NULL);
+ }
TokenToGet = STRING_TOKEN (STR_MISC_SYSTEM_MANUFACTURER);
Manufacturer = SmbiosMiscGetString (TokenToGet);
ManuStrLen = StrLen(Manufacturer);
Modified: branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/SmBiosMiscDxe.inf
===================================================================
--- branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/SmBiosMiscDxe.inf
2015-07-27 00:49:00 UTC (rev 18064)
+++ branches/UDK2014.SP1/Vlv2TbltDevicePkg/SmBiosMiscDxe/SmBiosMiscDxe.inf
2015-07-27 00:58:07 UTC (rev 18065)
@@ -114,6 +114,7 @@
PchPlatformLib
I2cLib
NetLib
+ HobLib
[Guids]
gEfiProcessorSubClassGuid
------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits