On 19 November 2015 at 16:25, Yehuda Yitschak yehuday@marvell.com wrote:
Hello everyone
Hello Yehuda,
I am trying to invoke the EDK2 shell on Aarch64 SOC.
Here is my shell prompt
[1] Shell
[2] Boot Manager
Start: 1
First of all, please move to the Intel BDS. The ARM BDS (i.e., this menu system) is not UEFI compliant, and you will not be able to boot OS installers easily if you keep using it. Look at the repo history for ArmVExpress-FVP-AArch64.dsc for hints how to go about this.
add-symbol-file /home/yehuday/projects/uefi/edk2/Build/SOC/DEBUG_GCC48/AARCH64/ShellPkg/Application/Shell/Shell/DEBUG/Shell.dll 0x1A831000
Loading driver at 0x0001A830000 EntryPoint=0x0001A831000 Shell.efi
UEFI Interactive Shell v2.1
EDK II
UEFI v2.50 (Marvell EFI Nov 19 2015 09:40:40, 0x00000000)
Mapping table
FS0: Alias(s):F3: VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)
No SimpleTextInputEx was found. CTRL-based features are not usable.
No SimpleTextInputEx was found. CTRL-based features are not usable.
Press ESC in 5 seconds to skip startup.nsh or any other key to continue
From here on any key I press causes call to “GccSemihostCall” which invokes a HW breakpoint on AArch64.
I noticed GccSemihostCall doesn’t trigger a breakpoint in ARM arch.
I am using “ SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf”
You don't need this library on bare metal if you are not using a debugger that supports semihosting. So the simple answer is to just remove it from your .DSC and .FDF files.
Do you have any idea why I get to “GccSemihostCall”. ?
Am I missing something in my system setup. ?
The shell tries to load 'startup.nsh' from the semihosting file system, using semihosting specific breakpoint instructions.
I copied the shell related packages from ArmVirtPkg since I know it works there
Yes, that makes sense in itself, since it builds the shell from source rather than use the binary package.