SiFive Unmatched: Linux kernel doesn't start (U-Boot 2024.07)

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Nov 9 23:23:55 CET 2024


On 09.11.24 18:34, Simon Glass wrote:
> +Heinrich Schuchardt
>
> On Wed, 6 Nov 2024 at 17:53, Yuri Zaporozhets <yuriz at vodafonemail.de> wrote:
>>
>> Hi all,
>>
>> To all owners & active users of the SiFive Unmatched board: do you have success
>> running any recent upstream U-Boot on your system?
>>
>> I use the default U-Boot from Ubuntu 24.04, and it boots GRUB and Linux
>> kernel just fine. Today I flashed the unmodified U-Boot 2024.07 (compiled with

2024.10 has been released, we are currently working on 2025.01.

>> "make sifive_unmatched_defconfig" and OpenSBI 1.5), and the Ubuntu kernel
>> (6.8) doesn't boot at all. The last message I see on the console is:
>>
>> EFI stub: Exiting boot services...
>>
>> Adding "earlycon=sbi debug" doesn't change anything.
>>
>> The same behavior is also when GRUB is excluded from the process:
>>
>> => nvme scan
>> => load nvme 0:5 $kernel_addr_r /boot/vmlinuz
>> 38603264 bytes read in 47 ms (783.3 MiB/s)
>> => bootefi $kernel_addr_r

I would use

setenv bootargs earlycon=sbi efi=debug

to get early output.

>> Booting /\boot\vmlinuz
>> EFI stub: Booting Linux Kernel...
>> EFI stub: EFI_RNG_PROTOCOL unavailable
>> EFI stub: Using DTB from configuration table
>> EFI stub: Exiting boot services...
>>
>> Is some additional patch needed to run U-Boot on Unmatched?

I just built:

U-Boot 204.07 using OpenSBI origin/master (commit 701948bdec90e290) and
U-Boot origin/master (commit f448c4517b55f401)
using OpenSBI origin/master (commit 701948bdec90e290).

With both I had no problem booting into my Ubuntu 24.04.1 (Noble)
installation via GRUB on the Unmatched board.

=> load nvme 0:1 $kernel_addr_r boot/vmlinuz
38595584 bytes read in 48 ms (766.8 MiB/s)
=> bootefi $kernel_addr_r

runs up to the point were it finds out that there is no initrd.

If you want to boot via UEFI but without GRUB, please, use the eficonfig
or the efidebug command to define a boot option including an initrd.
Preferably also specify the device-tree that matches the kernel.

You could also use booti to boot via the legacy entry point of the
kernel, i.e. without UEFI.

Best regards

Heinrich


More information about the U-Boot mailing list