diff options
author | Kefeng Wang <kefeng.wang@linaro.org> | 2014-05-09 11:16:50 +0800 |
---|---|---|
committer | Wei Xu <xuwei5@huawei.com> | 2014-12-10 08:33:43 +0800 |
commit | 2024a5224ad77b362f4f48761a9bc7a4b70c74f6 (patch) | |
tree | 379983980629241a2339f3eef95913908605e6f3 | |
parent | 03fd01f61963d2348a9ae8e1c5be4bcec092bcd1 (diff) |
HisiPkg: D01: add UefiShell for stub kernel boot
Signed-off-by: Kefeng Wang <kefeng.wang@linaro.org>
Signed-off-by: Wei Xu <xuwei5@huawei.com>
-rw-r--r-- | HisiPkg/D01BoardPkg/Bds/BootMenu.c | 40 | ||||
-rw-r--r-- | HisiPkg/D01BoardPkg/D01BoardPkg.fdf | 1 |
2 files changed, 41 insertions, 0 deletions
diff --git a/HisiPkg/D01BoardPkg/Bds/BootMenu.c b/HisiPkg/D01BoardPkg/Bds/BootMenu.c index 16d9f4cfc..e265c130f 100644 --- a/HisiPkg/D01BoardPkg/Bds/BootMenu.c +++ b/HisiPkg/D01BoardPkg/Bds/BootMenu.c @@ -711,6 +711,43 @@ BootEBL ( return Status;
}
+ +EFI_STATUS +BootShell ( + IN LIST_ENTRY *BootOptionsList + ) +{ + EFI_STATUS Status; + + // Start EFI Shell + Status = BdsLoadApplication (mImageHandle, L"Shell", 0, NULL); + if (Status == EFI_NOT_FOUND) { + Print (L"Error: EFI Application not found.\n"); + } else if (EFI_ERROR(Status)) { + Print (L"Error: Status Code: 0x%X\n",(UINT32)Status); + } + + return Status; +} + +EFI_STATUS +Reboot ( + IN LIST_ENTRY *BootOptionsList + ) +{ + gRT->ResetSystem(EfiResetCold, EFI_SUCCESS, 0, NULL); + return EFI_UNSUPPORTED; +} + +EFI_STATUS +Shutdown ( + IN LIST_ENTRY *BootOptionsList + ) +{ + gRT->ResetSystem(EfiResetShutdown, EFI_SUCCESS, 0, NULL); + return EFI_UNSUPPORTED; +} + EFI_STATUS BootLinuxAtagLoader ( IN LIST_ENTRY *BootOptionsList @@ -775,6 +812,9 @@ struct BOOT_MAIN_ENTRY { } BootMainEntries[] = {
{ L"Boot Manager", BootMenuManager },
{ L"EBL", BootEBL }, + { L"Shell", BootShell }, + { L"Reboot", Reboot }, + { L"Shutdown", Shutdown }, { L"GO", BootGo }, };
diff --git a/HisiPkg/D01BoardPkg/D01BoardPkg.fdf b/HisiPkg/D01BoardPkg/D01BoardPkg.fdf index 9939562a6..8f9861690 100644 --- a/HisiPkg/D01BoardPkg/D01BoardPkg.fdf +++ b/HisiPkg/D01BoardPkg/D01BoardPkg.fdf @@ -203,6 +203,7 @@ READ_LOCK_STATUS = TRUE # UEFI application (Shell Embedded Boot Loader) # INF HisiPkg/D01BoardPkg/Application/Ebl/Ebl.inf + INF ShellBinPkg/UefiShell/UefiShell.inf # # Bds |