D.2 BoardInit
D.2.1 BoardInitSupportLib
#ifndef _BOARD_INIT_LIB_H_
#define _BOARD_INIT_LIB_H_
#include <PiPei.h>
#include <Uefi.h>
EFI_STATUS
EFIAPI
BoardDetect (
  VOID
  );
EFI_STATUS
EFIAPI
BoardDebugInit (
  VOID
  );
EFI_BOOT_MODE
EFIAPI
BoardBootModeDetect (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitBeforeMemoryInit (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitAfterMemoryInit (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitBeforeTempRamExit (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitAfterTempRamExit (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitBeforeSiliconInit (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitAfterSiliconInit (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitAfterPciEnumeration (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitReadyToBoot (
  VOID
  );
EFI_STATUS
EFIAPI
BoardInitEndOfFirmware (
  VOID
  );
#endif
D.2.2 MultiBoardInitSupportLib
#ifndef _MULTI_BOARD_INIT_SUPPORT_LIB_H_
#define _MULTI_BOARD_INIT_SUPPORT_LIB_H_
#include <Library/BoardInitLib.h>
typedef
EFI_STATUS
(EFIAPI *BOARD_DETECT) (
  VOID
  );
typedef
EFI_STATUS
(EFIAPI *BOARD_INIT) (
  VOID
  );
typedef
EFI_BOOT_MODE
(EFIAPI *BOARD_BOOT_MODE_DETECT) (
  VOID
  );
typedef struct {
  BOARD_DETECT  BoardDetect;
} BOARD_DETECT_FUNC;
typedef struct {
  BOARD_INIT              BoardDebugInit;
  BOARD_BOOT_MODE_DETECT  BoardBootModeDetect;
  BOARD_INIT              BoardInitBeforeMemoryInit;
  BOARD_INIT              BoardInitAfterMemoryInit;
  BOARD_INIT              BoardInitBeforeTempRamExit;
  BOARD_INIT              BoardInitAfterTempRamExit;
} BOARD_PRE_MEM_INIT_FUNC;
typedef struct {
  BOARD_INIT              BoardInitBeforeSiliconInit;
  BOARD_INIT              BoardInitAfterSiliconInit;
} BOARD_POST_MEM_INIT_FUNC;
typedef struct {
  BOARD_INIT              BoardInitAfterPciEnumeration;
  BOARD_INIT              BoardInitReadyToBoot;
  BOARD_INIT              BoardInitEndOfFirmware;
} BOARD_NOTIFICATION_INIT_FUNC;
EFI_STATUS
EFIAPI
RegisterBoardDetect (
  IN BOARD_DETECT_FUNC  *BoardDetect
  );
EFI_STATUS
EFIAPI
RegisterBoardPreMemoryInit (
  IN BOARD_PRE_MEM_INIT_FUNC  *BoardPreMemoryInit
  );
EFI_STATUS
EFIAPI
RegisterBoardPostMemoryInit (
  IN BOARD_POST_MEM_INIT_FUNC  *BoardPostMemoryInit
  );
EFI_STATUS
EFIAPI
RegisterBoardNotificationInit (
  IN BOARD_NOTIFICATION_INIT_FUNC  *BoardNotificationInit
  );
#endif