\r
#include "BdsPlatform.h"\r
\r
-CHAR16 mFirmwareVendor[] = L"TianoCore.org";\r
WIN_NT_SYSTEM_CONFIGURATION mSystemConfigData;\r
\r
VOID\r
// BDS Platform Functions\r
//\r
VOID\r
+EFIAPI\r
PlatformBdsInit (\r
- IN EFI_BDS_ARCH_PROTOCOL_INSTANCE *PrivateData\r
+ VOID\r
)\r
/*++\r
\r
\r
Arguments:\r
\r
- PrivateData - The EFI_BDS_ARCH_PROTOCOL_INSTANCE instance\r
-\r
Returns:\r
\r
None.\r
\r
--*/\r
{\r
- //\r
- // set firmwarevendor, here can be IBV/OEM customize\r
- //\r
- gST->FirmwareVendor = AllocateRuntimeCopyPool (\r
- sizeof (mFirmwareVendor),\r
- &mFirmwareVendor\r
- );\r
- ASSERT (gST->FirmwareVendor != NULL);\r
-\r
- gST->FirmwareRevision = 0;\r
-\r
- //\r
- // Fixup Tasble CRC after we updated Firmware Vendor and Revision\r
- //\r
- gBS->CalculateCrc32 ((VOID *) gST, sizeof (EFI_SYSTEM_TABLE), &gST->Hdr.CRC32);\r
-\r
SetupVariableInit ();\r
}\r
\r
VOID\r
PlatformBdsDiagnostics (\r
IN EXTENDMEM_COVERAGE_LEVEL MemoryTestLevel,\r
- IN BOOLEAN QuietBoot\r
+ IN BOOLEAN QuietBoot,\r
+ IN BASEM_MEMORY_TEST BaseMemoryTest \r
)\r
/*++\r
\r
MemoryTestLevel - The memory test intensive level\r
\r
QuietBoot - Indicate if need to enable the quiet boot\r
- \r
+\r
+ BaseMemoryTest - A pointer to BdsMemoryTest() \r
+\r
Returns:\r
\r
None.\r
// from the graphic lib\r
//\r
if (QuietBoot) {\r
- EnableQuietBoot (&gEfiDefaultBmpLogoGuid);\r
+ EnableQuietBoot (PcdGetPtr(PcdLogoFile));\r
//\r
// Perform system diagnostic\r
//\r
- Status = BdsMemoryTest (MemoryTestLevel);\r
+ Status = BaseMemoryTest (MemoryTestLevel);\r
if (EFI_ERROR (Status)) {\r
DisableQuietBoot ();\r
}\r
//\r
// Perform system diagnostic\r
//\r
- Status = BdsMemoryTest (MemoryTestLevel);\r
+ Status = BaseMemoryTest (MemoryTestLevel);\r
}\r
\r
-VOID\r
-PlatformBdsPolicyBehavior (\r
- IN EFI_BDS_ARCH_PROTOCOL_INSTANCE *PrivateData,\r
- IN OUT LIST_ENTRY *DriverOptionList,\r
- IN OUT LIST_ENTRY *BootOptionList\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
+/**\r
The function will excute with as the platform policy, current policy\r
is driven by boot mode. IBV/OEM can customize this code for their specific\r
policy action.\r
- \r
-Arguments:\r
\r
- PrivateData - The EFI_BDS_ARCH_PROTOCOL_INSTANCE instance\r
- \r
- DriverOptionList - The header of the driver option link list\r
- \r
- BootOptionList - The header of the boot option link list\r
- \r
-Returns:\r
+ @param DriverOptionList The header of the driver option link list\r
+ @param BootOptionList The header of the boot option link list\r
+ @param ProcessCapsules A pointer to ProcessCapsules()\r
+ @param BaseMemoryTest A pointer to BaseMemoryTest()\r
\r
- None.\r
- \r
---*/\r
+**/\r
+VOID\r
+EFIAPI\r
+PlatformBdsPolicyBehavior (\r
+ IN OUT LIST_ENTRY *DriverOptionList,\r
+ IN OUT LIST_ENTRY *BootOptionList,\r
+ IN PROCESS_CAPSULES ProcessCapsules,\r
+ IN BASEM_MEMORY_TEST BaseMemoryTest\r
+ )\r
{\r
- EFI_STATUS Status;\r
- UINT16 Timeout;\r
+ EFI_STATUS Status;\r
+ UINT16 Timeout;\r
+ EFI_BOOT_MODE BootMode;\r
\r
//\r
// Init the time out value\r
//\r
- Timeout = BdsLibGetTimeout ();\r
+ Timeout = PcdGet16 (PcdPlatformBootTimeOut);\r
\r
//\r
// Load the driver option as the driver option list\r
//\r
// Get current Boot Mode\r
//\r
- Status = BdsLibGetBootMode (&PrivateData->BootMode);\r
+ Status = BdsLibGetBootMode (&BootMode);\r
\r
//\r
// Go the different platform policy with different boot mode\r
// Notes: this part code can be change with the table policy\r
//\r
- switch (PrivateData->BootMode) {\r
+ switch (BootMode) {\r
\r
case BOOT_ASSUMING_NO_CONFIGURATION_CHANGES:\r
case BOOT_WITH_MINIMAL_CONFIGURATION:\r
// console directly.\r
//\r
BdsLibConnectAllDefaultConsoles ();\r
- PlatformBdsDiagnostics ((EXTENDMEM_COVERAGE_LEVEL)IGNORE, TRUE);\r
+ PlatformBdsDiagnostics ((EXTENDMEM_COVERAGE_LEVEL)IGNORE, TRUE, BaseMemoryTest);\r
\r
//\r
// Perform some platform specific connect sequence\r
// Boot with the specific configuration\r
//\r
PlatformBdsConnectConsole (gPlatformConsole);\r
- PlatformBdsDiagnostics (EXTENSIVE, FALSE);\r
+ PlatformBdsDiagnostics (EXTENSIVE, FALSE, BaseMemoryTest);\r
BdsLibConnectAll ();\r
ProcessCapsules (BOOT_ON_FLASH_UPDATE);\r
break;\r
// and show up the front page\r
//\r
PlatformBdsConnectConsole (gPlatformConsole);\r
- PlatformBdsDiagnostics (EXTENSIVE, FALSE);\r
+ PlatformBdsDiagnostics (EXTENSIVE, FALSE, BaseMemoryTest);\r
\r
//\r
// In recovery boot mode, we still enter to the\r
PlatformBdsNoConsoleAction ();\r
}\r
\r
- PlatformBdsDiagnostics ((EXTENDMEM_COVERAGE_LEVEL)IGNORE, TRUE);\r
+ PlatformBdsDiagnostics ((EXTENDMEM_COVERAGE_LEVEL)IGNORE, TRUE, BaseMemoryTest);\r
\r
//\r
// Perform some platform specific connect sequence\r
}\r
\r
VOID\r
+EFIAPI\r
PlatformBdsBootSuccess (\r
IN BDS_COMMON_OPTION *Option\r
)\r
}\r
\r
VOID\r
+EFIAPI\r
PlatformBdsBootFail (\r
IN BDS_COMMON_OPTION *Option,\r
IN EFI_STATUS Status,\r
return EFI_SUCCESS;\r
}\r
\r
-EFI_STATUS\r
+/**\r
+ This function locks platform flash that is not allowed to be updated during normal boot path.\r
+ The flash layout is platform specific.\r
+\r
+ **/\r
+VOID\r
EFIAPI\r
PlatformBdsLockNonUpdatableFlash (\r
VOID\r
)\r
{\r
- return EFI_SUCCESS;\r
+ return;\r
+}\r
+\r
+/**\r
+ Lock the ConsoleIn device in system table. All key\r
+ presses will be ignored until the Password is typed in. The only way to\r
+ disable the password is to type it in to a ConIn device.\r
+\r
+ @param Password Password used to lock ConIn device.\r
+\r
+ @retval EFI_SUCCESS lock the Console In Spliter virtual handle successfully.\r
+ @retval EFI_UNSUPPORTED Password not found\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+LockKeyboards (\r
+ IN CHAR16 *Password\r
+ )\r
+{\r
+ return EFI_UNSUPPORTED;\r
}\r