[PATCH v2 1/1] configs: SiFive Unmatched: add 'nvme scan' to preboot

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Fri Feb 7 08:43:17 CET 2025


On 11/13/24 14:39, Simon Glass wrote:
> Hi Heinrich,
> 
> On Tue, 12 Nov 2024 at 03:26, Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com> wrote:
>>
>> Without 'nvme scan' the ESP on the NVMe drive is not found early.
>> EFI variables cannot be persisted.
>>
>>      Hit any key to stop autoboot:  0
>>      Cannot persist EFI variables without system partition
>>      ** Booting bootflow '<NULL>' with efi_mgr
>>      Loading Boot0000 'mmc 0' failed
>>      EFI boot manager: Cannot load any image
>>      Boot failed (err=-14)
>>      scanning bus for devices...
>>      ** Booting bootflow 'nvme#1.blk#1.bootdev.part_1' with efi
>>      Booting /\EFI\BOOT\BOOTRISCV64.EFI
>>      error: no suitable video mode found.
>>      GNU GRUB  version 2.12
>>
>> With 'nmve scan' booting works as expected.
>>
>>      Hit any key to stop autoboot:  0
>>      ** Booting bootflow '<NULL>' with efi_mgr
>>      Loading Boot0000 'mmc 0' failed
>>      Loading Boot0001 'nvme 0' failed
>>      Booting: nvme 1
>>      error: no suitable video mode found.
>>      GNU GRUB  version 2.12
>>
>> Reported by Yuri Zaporozhets <yuriz at vodafonemail.de>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>> ---
>> v2:
>>          mention board in subject
>> ---
>>   configs/sifive_unmatched_defconfig | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/configs/sifive_unmatched_defconfig b/configs/sifive_unmatched_defconfig
>> index 058e5fab683..1ea744ffa80 100644
>> --- a/configs/sifive_unmatched_defconfig
>> +++ b/configs/sifive_unmatched_defconfig
>> @@ -27,7 +27,7 @@ CONFIG_FIT=y
>>   CONFIG_SPL_LOAD_FIT_ADDRESS=0x84000000
>>   CONFIG_BOOTSTD_DEFAULTS=y
>>   CONFIG_USE_PREBOOT=y
>> -CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr};fdt addr ${fdtcontroladdr};"
>> +CONFIG_PREBOOT="setenv fdt_addr ${fdtcontroladdr};fdt addr ${fdtcontroladdr};nvme scan"
>>   CONFIG_DEFAULT_FDT_FILE="sifive/hifive-unmatched-a00.dtb"
>>   CONFIG_SYS_CBSIZE=256
>>   CONFIG_SYS_PBSIZE=276
>> --
>> 2.45.2
>>
> 
> This is handled automatically by bootstd. It uses 'hunters' to scan
> devices as it goes. So this scan would not be wanted unless the device
> is booting from nvme.
> 
> It seems that bootmgr is very-much doing its own thing in U-Boot. Can
> we make it run the hunters, instead, perhaps?
> 
> Regards,
> Simon

The bootstd runs the NVMe hunter *after* executing the EFI bootmgr bootmeth.

We must scan NVMe before running the EFI bootmgr bootmeth to find the 
ESP on it.

Best regards

Heinrich


More information about the U-Boot mailing list