[Linaro-uefi,2/2] Platforms/AMD/Styx: build UEFI shell from source

Message ID 1462198686-26363-2-git-send-email-ard.biesheuvel@linaro.org
State Superseded
Headers show

Commit Message

Ard Biesheuvel May 2, 2016, 2:18 p.m.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc         | 27 ++++++++++++++++++++
 Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf         |  2 +-
 Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc | 27 ++++++++++++++++++++
 Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf |  2 +-
 4 files changed, 56 insertions(+), 2 deletions(-)

Comments

Ricardo Salveti May 4, 2016, 8:29 p.m. | #1
On Mon, May 2, 2016 at 11:18 AM, Ard Biesheuvel
<ard.biesheuvel@linaro.org> wrote:
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc         | 27 ++++++++++++++++++++
>  Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf         |  2 +-
>  Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc | 27 ++++++++++++++++++++
>  Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf |  2 +-
>  4 files changed, 56 insertions(+), 2 deletions(-)
>
> diff --git a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc
> index 1daf3722eda4..b141b37b99c9 100644
> --- a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc
> +++ b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc
> @@ -707,3 +707,30 @@ DEFINE TRANS_CODE = $(EL3_TO_EL2)
>    #
>    OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
>
> +  #
> +  # UEFI application (Shell Embedded Boot Loader)
> +  #
> +  ShellPkg/Application/Shell/Shell.inf {
> +    <LibraryClasses>
> +      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
> +      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
> +      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
> +      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
> +      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
> +
> +      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
> +      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
> +      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
> +
> +    <PcdsFixedAtBuild>
> +      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
> +      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
> +      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
> +  }
> diff --git a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf
> index a598b307e3fc..e3bdff5f1643 100644
> --- a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf
> +++ b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf
> @@ -214,7 +214,7 @@ READ_LOCK_STATUS   = TRUE
>    #
>    # UEFI application (Shell Embedded Boot Loader)
>    #
> -  INF ShellBinPkg/UefiShell/UefiShell.inf
> +  INF ShellPkg/Application/Shell/Shell.inf
>
>    #
>    # Bds
> diff --git a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
> index 5e68d7738749..dab5987b085c 100644
> --- a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
> +++ b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
> @@ -714,3 +714,30 @@ DEFINE TRANS_CODE = $(EL3_TO_EL2)
>    #
>    OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
>
> +  #
> +  # UEFI application (Shell Embedded Boot Loader)
> +  #
> +  ShellPkg/Application/Shell/Shell.inf {
> +    <LibraryClasses>
> +      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
> +      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
> +      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
> +      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
> +      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
> +      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
> +
> +      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
> +      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
> +      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
> +
> +    <PcdsFixedAtBuild>
> +      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
> +      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
> +      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
> +  }
> diff --git a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf
> index d91ce0304d20..6fb49c3ebe52 100644
> --- a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf
> +++ b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf
> @@ -214,7 +214,7 @@ READ_LOCK_STATUS   = TRUE
>    #
>    # UEFI application (Shell Embedded Boot Loader)
>    #
> -  INF ShellBinPkg/UefiShell/UefiShell.inf
> +  INF ShellPkg/Application/Shell/Shell.inf
>
>    #
>    # Bds
> --
> 2.7.4

After applying this patch I'm getting the following synchronous
exception on Cello, when booting Linux (built in DEBUG mode):

EFI stub: Booting Linux Kernel...

Synchronous Exception at 0x0000008390ABDAA0

  X0 0x0000008000000000   X1 0x0000008000000000   X2
0x000000003D696665   X3 0x006B6E7568636F6E
  X4 0x00000083F7882018   X5 0x8080808000000000   X6
0x0000000080808080   X7 0x0000000000000000
  X8 0x7F7F7F7F7F7F7F7F   X9 0xFF6A6D7467626E6D  X10
0x7F7F7F7F7F7F7F7F  X11 0x0101010101010101
 X12 0x0000000000000020  X13 0x0000000000000000  X14
0x0000000000000000  X15 0x0000000000000001
 X16 0x00000083FE1F6950  X17 0x0000000000000000  X18
0x0000000000000000  X19 0x0000008000000000
 X20 0x0000008391395A60  X21 0x0000000000000004  X22
0x0000008391395A60  X23 0x0000008000000000
 X24 0x00000083FE232000  X25 0x0000000000000018  X26
0x00000083F76BCB70  X27 0x0000000000000000
 X28 0x0000000000000000   FP 0x00000083FE1F6820   LR 0x000000839142334C

  V0 0x0002000000000000 0000000400000000   V1 0x0000000000000200
0C00000080040000
  V2 0x0000008200000000 0000000000000000   V3 0x0000000000000000
0040042000000000
  V4 0x0008000000000000 8010000000000000   V5 0x0006000000002000
0000000000000000
  V6 0x1024000000000010 0000000800000000   V7 0x0000020040021000
0800000000000000
  V8 0x0000000000000000 0000000000000000   V9 0x0000000000000000
0000000000000000
 V10 0x0000000000000000 4000000000000000  V11 0x0000000000000000
0000010000000000
 V12 0x0000000000000000 0000000000000000  V13 0x0000000000000000
00000000A0000000
 V14 0x0000000000000000 0000000000000000  V15 0x0000000000000000
0000000000000000
 V16 0x0000209000002000 0000000000000000  V17 0x4000080800000000
0000000000000000
 V18 0x0000000000000000 0008000000000000  V19 0x0000000000020000
1020000400000000
 V20 0x0000041000000000 0000001000000000  V21 0x0000000000000000
0000000000000000
 V22 0x0000000000000000 0000000400000000  V23 0x0000000000000000
0000002002000000
 V24 0x0000000100040000 0000010000002000  V25 0x0000800000000000
2040000400000000
 V26 0x0000000000000000 0000080000000000  V27 0x0000008000000000
0000000000008000
 V28 0x0000040000000000 0000000000000000  V29 0x0000001000000000
0000000020000000
 V30 0x0000000000000000 4000000000000000  V31 0x0208001000000000
0200100000000000

  SP 0x00000083FE1F6820  ELR 0x0000008390ABDAA0  SPSR 0x40000309  FPSR
0x00000000
 ESR 0x96000210          FAR 0x0000008000000000

 ESR : EC 0x25  IL 0x1  ISS 0x00000210

Data abort: Synchronous external abort
ASSERT [ArmCpuDxe]
/home/rsalveti/projects/96boards/cello/seattle-fw/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(184):
((BOOLEAN)(0==1))

Works fine if built in RELEASE mode.

Difference in size:
- DEBUG: 1236992
- RELEASE: 830976

Thanks,

Patch

diff --git a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc
index 1daf3722eda4..b141b37b99c9 100644
--- a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc
+++ b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.dsc
@@ -707,3 +707,30 @@  DEFINE TRANS_CODE = $(EL3_TO_EL2)
   #
   OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
 
+  #
+  # UEFI application (Shell Embedded Boot Loader)
+  #
+  ShellPkg/Application/Shell/Shell.inf {
+    <LibraryClasses>
+      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
+      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
+      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
+
+      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
+      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
+      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
+
+    <PcdsFixedAtBuild>
+      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
+      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
+      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
+  }
diff --git a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf
index a598b307e3fc..e3bdff5f1643 100644
--- a/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf
+++ b/Platforms/AMD/Styx/HuskyBoard/HuskyBoard.fdf
@@ -214,7 +214,7 @@  READ_LOCK_STATUS   = TRUE
   #
   # UEFI application (Shell Embedded Boot Loader)
   #
-  INF ShellBinPkg/UefiShell/UefiShell.inf
+  INF ShellPkg/Application/Shell/Shell.inf
 
   #
   # Bds
diff --git a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
index 5e68d7738749..dab5987b085c 100644
--- a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
+++ b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.dsc
@@ -714,3 +714,30 @@  DEFINE TRANS_CODE = $(EL3_TO_EL2)
   #
   OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
 
+  #
+  # UEFI application (Shell Embedded Boot Loader)
+  #
+  ShellPkg/Application/Shell/Shell.inf {
+    <LibraryClasses>
+      ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
+      NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
+      HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
+      PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+      BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
+
+      FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
+      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
+      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
+
+    <PcdsFixedAtBuild>
+      gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
+      gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
+      gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
+  }
diff --git a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf
index d91ce0304d20..6fb49c3ebe52 100644
--- a/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf
+++ b/Platforms/AMD/Styx/OverdriveBoard/OverdriveBoard.fdf
@@ -214,7 +214,7 @@  READ_LOCK_STATUS   = TRUE
   #
   # UEFI application (Shell Embedded Boot Loader)
   #
-  INF ShellBinPkg/UefiShell/UefiShell.inf
+  INF ShellPkg/Application/Shell/Shell.inf
 
   #
   # Bds