On Wed, 30 Apr 2025 at 14:00, Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > On 30.04.25 09:03, Heinrich Schuchardt wrote: > > On 4/29/25 15:27, Adriano Cordova wrote: > >> Do not try to create an initrd device path nor try to register > >> an initrd with the EFI_LOAD_FILE2_PROTOCOL if none is provided. > >> > >> Handle initrd installation in efi_binary_run_dp with > >> efi_install_initrd, imitating what is done for the fdt. > >> > >> Fixes: 36835a9105c ("efi_loader: binary_run: register an initrd") > >> Reported-by: Weizhao Ouyang <o451686...@gmail.com> > >> Signed-off-by: Adriano Cordova <adriano.cord...@canonical.com> > >> Tested-by: Weizhao Ouyang <o451686...@gmail.com> > > > > I built and installed U-Boot for the StarFive VisionFive 2 based on > > origin/master plus this series. > > > > I created a FIT images using the its file listed below. > > > > I loaded and tried to run the FIT image: > > > > StarFive # load nvme 0:1 $kernel_addr_r initrd.itb > > StarFive # bootm $kernel_addr_r > > > > and saw the following failure: > > > > ## Transferring control to EFI (at address 00000000) ... > > Card did not respond to voltage select! : -110 > > Booting /initrd.itb > > Not a PE-COFF file > > Loading image failed > > > > We use the entry point instead of the load address when transferring > > control to the EFI sub-system. > > > > This bug was introduced by ecc7fdaa9ef1 ("bootm: Add a bootm command for > > type IH_OS_EFI") and is not related to your patches but we still need to > > fix it. > > Addressed by: > bootm: pass kernel load address not entry point for IH_OS_EFI > https://patchwork.ozlabs.org/project/uboot/patch/20250430105546.327442-1-heinrich.schucha...@canonical.com/ > > > > > Afterwards I tried to boot into Ubuntu and got: > > > > Loading Linux 6.14.0-13-generic ... > > Loading initial ramdisk ... > > error: failed to install protocols. > > Loading device tree blob... > > > > Press any key to continue... > > > > It seems that U-Boot did not uninstall the LoadFile2 protocol when > > discovering that the EFI image was invalid. We should have a look at the > > error handling. > > This issue still has to be resolved. > > > > > The initrd for my test case can be created with: > > > > echo 'hello world' > hello > > echo hello | cpio -o -H newc > initrd > > > > Reviewed-by: Heinrich Schuchardt <xypron.g...@gmx.de> >
With the same remarks as Heinrich Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>