Add all of the shell options from ShellBinPkg including building the shell from source.
Test: Use -DSHELL_TYPE=BUILD_SHELL command line options to build the shell from source. Run the result on Galileo Gen2. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Lee Leahy <leroy.p.le...@intel.com> --- CorebootPayloadPkg/CorebootPayloadPkg.fdf | 24 +++++--- CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc | 78 ++++++++++++++++++++++-- CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc | 78 ++++++++++++++++++++++-- 3 files changed, 162 insertions(+), 18 deletions(-) diff --git a/CorebootPayloadPkg/CorebootPayloadPkg.fdf b/CorebootPayloadPkg/CorebootPayloadPkg.fdf index e28f732..804eeed 100644 --- a/CorebootPayloadPkg/CorebootPayloadPkg.fdf +++ b/CorebootPayloadPkg/CorebootPayloadPkg.fdf @@ -153,16 +153,20 @@ INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf # # Shell # -#!if $(ARCH) == IA32 -#INF RuleOverride = BINARY USE = IA32 ShellBinPkg/UefiShell/UefiShell.inf -#!else -#INF RuleOverride = BINARY USE = X64 ShellBinPkg/UefiShell/UefiShell.inf -#!endif -# -!if $(ARCH) == IA32 -INF RuleOverride = BINARY USE = IA32 EdkShellBinPkg/FullShell/FullShell.inf -!else -INF RuleOverride = BINARY USE = X64 EdkShellBinPkg/FullShell/FullShell.inf +!if $(SHELL_TYPE) == BUILD_SHELL +INF ShellPkg/Application/Shell/Shell.inf +!endif + +!if $(SHELL_TYPE) == FULL_BIN +INF RuleOverride = BINARY USE = $(ARCH) EdkShellBinPkg/FullShell/FullShell.inf +!endif + +!if $(SHELL_TYPE) == MIN_BIN +INF RuleOverride = BINARY USE = $(ARCH) ShellBinPkg/MinUefiShell/MinUefiShell.inf +!endif + +!if $(SHELL_TYPE) == UEFI_BIN +INF RuleOverride = BINARY USE = $(ARCH) ShellBinPkg/UefiShell/UefiShell.inf !endif FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc index 42c2d20..88790e9 100644 --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc @@ -32,7 +32,12 @@ DEFINE SECURE_BOOT_ENABLE = FALSE DEFINE SOURCE_DEBUG_ENABLE = FALSE - + + # + # Shell options: [BUILD_SHELL, FULL_BIN, MIN_BIN, NONE, UEFI] + # + DEFINE SHELL_TYPE = FULL_BIN + [BuildOptions] GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG @@ -361,6 +366,71 @@ # Framebuffer Gop # CorebootPayloadPkg/FbGop/FbGop.inf - - - + + #------------------------------ + # Build the shell + #------------------------------ + +!if $(SHELL_TYPE) == BUILD_SHELL + +[PcdsFixedAtBuild] + ## This flag is used to control initialization of the shell library + # This should be FALSE for compiling the shell application itself only. + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + + # + # Shell Lib + # +[LibraryClasses] + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + +[Components.IA32] + ShellPkg/Application/Shell/Shell.inf { + + #------------------------------ + # Basic commands + #------------------------------ + + <LibraryClasses> + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + + #------------------------------ + # Networking commands + #------------------------------ + + <LibraryClasses> + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf + + #------------------------------ + # Performance command + #------------------------------ + + <LibraryClasses> + NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf + + #------------------------------ + # Support libraries + #------------------------------ + + <LibraryClasses> + DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + } + +!endif diff --git a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc index aa1b01c..ef9f349 100644 --- a/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc +++ b/CorebootPayloadPkg/CorebootPayloadPkgIa32X64.dsc @@ -32,7 +32,12 @@ DEFINE SECURE_BOOT_ENABLE = FALSE DEFINE SOURCE_DEBUG_ENABLE = FALSE - + + # + # Shell options: [BUILD_SHELL, FULL_BIN, MIN_BIN, NONE, UEFI] + # + DEFINE SHELL_TYPE = FULL_BIN + [BuildOptions] GCC:*_UNIXGCC_*_CC_FLAGS = -DMDEPKG_NDEBUG GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG @@ -363,6 +368,71 @@ # Framebuffer Gop # CorebootPayloadPkg/FbGop/FbGop.inf - - - + + #------------------------------ + # Build the shell + #------------------------------ + +!if $(SHELL_TYPE) == BUILD_SHELL + +[PcdsFixedAtBuild] + ## This flag is used to control initialization of the shell library + # This should be FALSE for compiling the shell application itself only. + gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE + + # + # Shell Lib + # +[LibraryClasses] + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + +[Components.X64] + ShellPkg/Application/Shell/Shell.inf { + + #------------------------------ + # Basic commands + #------------------------------ + + <LibraryClasses> + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + + #------------------------------ + # Networking commands + #------------------------------ + + <LibraryClasses> + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf + + #------------------------------ + # Performance command + #------------------------------ + + <LibraryClasses> + NULL|ShellPkg/Library/UefiDpLib/UefiDpLib.inf + + #------------------------------ + # Support libraries + #------------------------------ + + <LibraryClasses> + DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + ShellCEntryLib|ShellPkg/Library/UefiShellCEntryLib/UefiShellCEntryLib.inf + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + } + +!endif -- 1.9.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel