[U-Boot] [BUG] efi: stalled execution state

Hello,
I am running u-boot 2019.07 with rk3328-rock64 configuration in the two following setups:
1) TFTP loaded EFI GRUB
In this setup, I deploy u-boot loader onto the empty microsd card (without any partitions), GRUB EFI binary is served by TFTP. Please, find full log attached in u-boot-tftp.txt. With this setup, u-boot works as expected: it finds the server address announced by DHCP and downloads /bootaa64.efi, then GRUB is executed and Linux OS is successfully booted!
2) TFTP loaded EFI GRUB, after microsd card EFI GRUB.
In this setup, I deploy the same u-boot loader binaries onto the microsd with preinstalled Linux OS and GRUB EFI. u-boot successfully loads GRUB EFI binary from to EFI partition and then preinstalled Linux OS is booted from microsd card.
However, If I use the command line for GRUB loaded from microsd card, and run `exit' command, then I get back to u-boot:
grub> exit ## Application terminated, r = 0 EFI LOAD FAILED: continuing...
Then, u-boot tries to find another way to boot the system and finally loads another one GRUB EFI executable obtained from TFTP server. It is the same GRUB EFI binary as in the first scenario. However, now It behaves completely different. Instead of GRUB menu I see the command line, because GRUB is failing to obtain configuration from TFTP server. Please, find the full log in u-boot-sd.txt
In the first setup, ${prefix} variable is the following:
grub> echo ${prefix} (tftp,192.168.185.80) grub>
It is correct prefix variable. While in the second setup, ${prefix} variable is empty:
grub> echo ${prefix}
grub>
I believe that there is a bug, and TFTP GRUB execution environment should not rely on previously run EFI applications.
participants (1)
-
Matwey V. Kornilov