summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKefeng Wang <kefeng.wang@linaro.org>2014-05-09 11:16:50 +0800
committerLeif Lindholm <leif.lindholm@linaro.org>2014-05-14 20:12:35 +0100
commita652c6ebdc9661c39ac605961832e82b9bc4f65f (patch)
tree4207a5a5010f4489bbd58b0701b767e72429d5e9
parent0d781852aa13c9e806ff472ba8f3a5cfb31d1bd4 (diff)
HisiPkg: D01: add UefiShell for stub kernel boot
Signed-off-by: Kefeng Wang <kefeng.wang@linaro.org>
-rw-r--r--HisiPkg/D01BoardPkg/Bds/BootMenu.c40
-rw-r--r--HisiPkg/D01BoardPkg/D01BoardPkg.fdf1
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