Re: [REGRESSION] boot fails for EFI boot stub loaded by u-boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

On Wed, 18 Oct 2023 at 12:17, Heinrich Schuchardt
<heinrich.schuchardt@xxxxxxxxxxxxx> wrote:
>
> On 10/18/23 10:34, Ard Biesheuvel wrote:
> > (cc Heinrich)
> >
> > Hello Ben,
> >
> > Thanks for the report.
> >
> > On Wed, 18 Oct 2023 at 03:19, Ben Schneider <ben@xxxxxxxxx> wrote:
> >>
> >> Hi Ard,
> >>
> >> I have an ESPRESSObin Ultra (aarch64) that uses U-Boot as its bootloader. It shipped from the manufacturer with with v5.10, and I've been trying to upgrade. U-Boot supports booting Image directly via EFI (https://u-boot.readthedocs.io/en/latest/usage/cmd/bootefi.html), and I have been using it that way to successfully boot the system up to and including v6.0.19. However, v6.1 and v6.5 kernels fail to boot.
> >>
> >> When booting successfully, the following messages are displayed:
> >>
> >> EFI stub: Booting Linux Kernel...EFI stub: ERROR: FIRMWARE BUG: efi_loaded_image_t::image_base has bogus value
> >> EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 64k boundary
> >> EFI stub: Using DTB from configuration table
> >> EFI stub: ERROR: Failed to install memreserve config table!
> >> EFI stub: Exiting boot services...
> >> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
> >>
> >> I suspect many of the above error messages are simply attributable to using U-Boot to load an EFI stub and can be safely ignored given that the system boots and runs fine.
>
> These messages are not typical for launching a kernel via the EFI stub
> from U-Boot. It should look like this:

The alignment one might be true depending on the U-Boot version that's used.
The alignment was fixed on commit ebdea88d57d5e ("efi_loader: Fix
loaded image alignment")
The rest indeed make little sense for now

>
> => load mmc 0:1 $fdt_addr_r boot/dtb
> 28846 bytes read in 6 ms (4.6 MiB/s)
> => load mmc 0:1 $kernel_addr_r boot/vmlinuz
> 53686664 bytes read in 2223 ms (23 MiB/s)
> => setenv bootargs root=/dev/mmcblk0p1 efi=debug earlyprintk
> initrd=boot/initrd.img
> => bootefi $kernel_addr_r $fdt_addr_r
> Card did not respond to voltage select! : -110
> Failed to load EFI variables
> Booting /boot\vmlinuz
> EFI stub: Booting Linux Kernel...
> EFI stub: EFI_RNG_PROTOCOL unavailable
> EFI stub: Loaded initrd from command line option
> EFI stub: Using DTB from configuration table
> EFI stub: Exiting boot services...
> [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
>

[...]

Cheers
/Ilias




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux