From e541f2c10ac6a83c7f4724625e61471b7e5c9511 Mon Sep 17 00:00:00 2001 From: zwei4 Date: Fri, 24 Nov 2017 11:24:24 +0800 Subject: Board Specific Code. Add BoardInitDxe lib for Minnowboard3 Next pre-product board. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: zwei4 --- .../MinnowBoard3Next/BoardInitDxe/BoardInitDxe.c | 68 ++++++++++++++++++++++ .../MinnowBoard3Next/BoardInitDxe/BoardInitDxe.h | 37 ++++++++++++ .../MinnowBoard3Next/BoardInitDxe/BoardInitDxe.inf | 52 +++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.c create mode 100644 Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.h create mode 100644 Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.inf diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.c b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.c new file mode 100644 index 0000000000..a1c2c39528 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.c @@ -0,0 +1,68 @@ +/** @file + Board specific functions in DXE phase to be set as dynamic PCD and consumed by + commmon platform code. + + Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include "BoardInitDxe.h" + +GET_BOARD_NAME mMb3NGetBoardNamePtr = Mb3NGetBoardName; + +CHAR16* +EFIAPI +Mb3NGetBoardName ( + IN UINT8 BoardId + ) +{ + STATIC CHAR16 BoardName[40]; + + DEBUG ((EFI_D_INFO, "BoardInitDxe: GetBoardName - Minnow Board v3 Next\n")); + + UnicodeSPrint (BoardName, sizeof (BoardName), L"Minnow Board v3 Next (0x%02X)", BoardId); + + if (BoardId != (UINT8) BOARD_ID_MINNOW_NEXT) { + return NULL; + } else { + return BoardName; + } +} + + +/** + Set PCDs for board specific functions. + + @param[in] ImageHandle ImageHandle of the loaded driver. + @param[in] SystemTable Pointer to the EFI System Table. + + @retval EFI_SUCCESS The handlers were registered successfully. + +**/ +EFI_STATUS +EFIAPI +Mb3NBoardInitDxeConstructor ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + UINT8 BoardId; + + BoardId = PcdGet8 (PcdBoardId); + if (BoardId != (UINT8) BOARD_ID_MINNOW_NEXT) { + return EFI_SUCCESS; + } + + PcdSet64 (PcdGetBoardNameFunc, (UINT64) mMb3NGetBoardNamePtr); + + return EFI_SUCCESS; +} + diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.h b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.h new file mode 100644 index 0000000000..74407aca8f --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.h @@ -0,0 +1,37 @@ +/** @file + The internal header file includes the common header files, defines + internal structure and functions used by ImageVerificationLib. + + Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php. + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#ifndef __MINNOW3_NEXT_BOARD_INIT_DXE_H__ +#define __MINNOW3_NEXT_BOARD_INIT_DXE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +CHAR16* +EFIAPI +Mb3NGetBoardName ( + IN UINT8 BoardId + ); + +#endif diff --git a/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.inf b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.inf new file mode 100644 index 0000000000..0b385e9e72 --- /dev/null +++ b/Platform/BroxtonPlatformPkg/Board/MinnowBoard3Next/BoardInitDxe/BoardInitDxe.inf @@ -0,0 +1,52 @@ +## @file +# Board specific functions in DXE phase to be set as dynamic PCD and consumed by +# commmon platform code. +# +# Copyright (c) 2009 - 2017, Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php. +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = Mb3NBoardInitDxe + FILE_GUID = 82919D30-DA6E-4177-8358-D490B45EFF3B + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + LIBRARY_CLASS = NULL|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER + CONSTRUCTOR = Mb3NBoardInitDxeConstructor + +[Sources] + BoardInitDxe.c + BoardInitDxe.h + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + BroxtonPlatformPkg/PlatformPkg.dec + BroxtonSiPkg/BroxtonSiPkg.dec + +[LibraryClasses] + BaseLib + UefiLib + UefiBootServicesTableLib + UefiRuntimeServicesTableLib + DebugLib + PcdLib + PrintLib + +[Protocols] + +[Guids] + +[Pcd] + gPlatformModuleTokenSpaceGuid.PcdGetBoardNameFunc + gPlatformModuleTokenSpaceGuid.PcdBoardId + -- cgit v1.2.3