-----Original Message----- From: Heyi Guo [mailto:heyi.guo@linaro.org] Sent: Monday, November 23, 2015 05:43 To: Yehuda Yitschak; Ard Biesheuvel Cc: Linaro-uefi@lists.linaro.org; Ryan Harkin Subject: Re: [Linaro-uefi] GccSemihostCall on Aarch64
Hi Yehuda,
One possible reason that you cannot input in BDS is of UEFI timer issue; please check your uefi timer can interrupt normally.
I guess the timer is fine since I am able to fully operate the shell when I use ARM BDS and SimpleText The problem starts when I switch to the more powerful console. I don't even see the initial BDS prints The last visible print is : add-symbol-file /home/yehuday/projects/uefi/edk2/Build/SOC/DEBUG_GCC48/AARCH64/MdeModulePkg/Universal/Disk/Uni codeCollation/EnglishDxe/EnglishDxe/DEBUG/EnglishDxe.dll 0x1F83E240 Loading driver at 0x0001F83E000 EntryPoint=0x0001F83E280 EnglishDxe.efi
All other console DXEs are loaded before so I guess the problem start when DXE switches to BDS.
And I think the SerialPortExtLib you're using is OK; I'm also using this library instance.
Regards,
Heyi
On 11/22/2015 10:22 PM, Yehuda Yitschak wrote:
Hi Heyi
-----Original Message----- From: Heyi Guo [mailto:heyi.guo@linaro.org] Sent: Friday, November 20, 2015 07:09 To: Ard Biesheuvel; Yehuda Yitschak Cc: Linaro-uefi@lists.linaro.org Subject: Re: [Linaro-uefi] GccSemihostCall on Aarch64
On 11/19/2015 11:51 PM, Ard Biesheuvel wrote:
On 19 November 2015 at 16:42, Yehuda Yitschak
wrote:
Hi Ard
Thanks for the prompt reply.
-----Original Message----- From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] Sent: Thursday, November 19, 2015 17:31 To: Yehuda Yitschak Cc: Linaro-uefi@lists.linaro.org Subject: Re: [Linaro-uefi] GccSemihostCall on Aarch64
On 19 November 2015 at 16:25, Yehuda Yitschak
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.
I tried but I hit a wall during DXE phase. The BDS DXE failed to load complaining on a missing architectural protocol I never got to figure which
one.
I will try again using the suggested DSC. thanks
> add-symbol-file >
/home/yehuday/projects/uefi/edk2/Build/SOC/DEBUG_GCC48/AARCH64/S
hellPk > g/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.
Is this warning an issue.? Do you know how to resolve it if necessary ?
Not a clue, sorry. But I suppose a missing protocol like that could explain the Intel BDS issue as well.
I think you are using EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf as your terminal driver. You can try using below drivers for a more powerful terminal:
INF
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf INF
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
INF
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleD
xe.inf INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf INF EmbeddedPkg/SerialDxe/SerialDxe.inf
Heyi
You are right, I am using
"EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf"
I switched to Intel BDS and moved to the console implementations above
but the terminal simply freezes when the Bds should start.
Could it be since I am using a NULL extended serial port "
SerialPortExtLib|EmbeddedPkg/Library/SerialPortExtLibNull/SerialPortExtLib Null.inf" ?
I also tried using the Intel BDS with the SimpleTextInOutSerial but the console behaves strange. It prints too many spaces and line feeds I
can't get a proper view on the screen.
Is this a valid combination at all ?
> 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.
Okay. I just reused "...2nd-level.dsc" and still didn't filter the unnecessary stuff since frankly I don't yet understand what most packages do
> 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.
That make sense now. I should have mentioned I am connected with a
HW debugger so a HLT instruction just stops the execution.
> 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.
Linaro-uefi mailing list Linaro-uefi@lists.linaro.org https://lists.linaro.org/mailman/listinfo/linaro-uefi