Hi Da, On Mon, 24 Jul 2023 at 10:49, Da Xue <da@libre.computer> wrote: > > On Mon, Jul 24, 2023 at 11:48 AM Da Xue <d...@lessconfused.com> wrote: > > > > I forgot to attach some additional details: > > > > ``` > > sudo fdisk -l /dev/sda > > Disk /dev/sda: 58.24 GiB, 62534975488 bytes, 122138624 sectors > > Disk model: STORAGE DEVICE > > Units: sectors of 1 * 512 = 512 bytes > > Sector size (logical/physical): 512 bytes / 512 bytes > > I/O size (minimum/optimal): 512 bytes / 512 bytes > > Disklabel type: dos > > Disk identifier: 0x00000000 > > > > Device Boot Start End Sectors Size Id Type > > /dev/sda1 * 2048 524287 522240 255M ef EFI (FAT-12/16/32) > > ``` > > > > The image was generated via buildroot using genimage: > > > > ``` > > image boot.vfat { > > vfat { > > file EFI/BOOT/BOOTAA64.EFI { > > image = "Image" > > } > > extraargs = "-F32" # tried with and without this flag, > > same issue. > > } > > size = 255M > > } > > > > image sdcard.img { > > hdimage { > > } > > partition bootloader { > > in-partition-table = false > > offset = 512 > > image = "u-boot.bin" > > } > > partition rootfs { > > partition-type = 0xEF > > bootable = "true" > > image = "boot.vfat" > > offset = 1M > > } > > } > > ``` > > > > bootflow -la without the debug messages: > > > > ``` > > => bootflow scan -la > > Scanning for bootflows in all bootdevs > > Seq Method State Uclass Part Name Filename > > --- ----------- ------ -------- ---- ------------------------ > > ---------------- > > Scanning global bootmeth 'efi_mgr': > > 0 efi_mgr base (none) 0 <NULL> <NULL> > > Scanning bootdev 'mmc@74000.bootdev': > > 1 efi media mmc 0 mmc@74000.bootdev.whole <NULL> > > 2 extlinux media mmc 0 mmc@74000.bootdev.whole <NULL> > > 3 script media mmc 0 mmc@74000.bootdev.whole <NULL> > > Scanning bootdev 'mmc@72000.bootdev': > > 4 efi media mmc 0 mmc@72000.bootdev.whole <NULL> > > 5 extlinux media mmc 0 mmc@72000.bootdev.whole <NULL> > > 6 script media mmc 0 mmc@72000.bootdev.whole <NULL> > > 7 efi file mmc 1 mmc@72000.bootdev.part_1 > > efi/boot/bootaa64.efi > > 8 extlinux fs mmc 1 mmc@72000.bootdev.part_1 > > /boot/extlinux/extlinux.conf > > 9 script fs mmc 1 mmc@72000.bootdev.part_1 > > /boot/boot.scr > > a efi media mmc 2 mmc@72000.bootdev.part_2 <NULL> > > b extlinux media mmc 2 mmc@72000.bootdev.part_2 <NULL> > > c script media mmc 2 mmc@72000.bootdev.part_2 <NULL> > > d efi media mmc 3 mmc@72000.bootdev.part_3 <NULL> > > e extlinux media mmc 3 mmc@72000.bootdev.part_3 <NULL> > > f script media mmc 3 mmc@72000.bootdev.part_3 <NULL> > > 10 efi media mmc 4 mmc@72000.bootdev.part_4 <NULL> > > 11 extlinux media mmc 4 mmc@72000.bootdev.part_4 <NULL> > > 12 script media mmc 4 mmc@72000.bootdev.part_4 <NULL> > > 13 efi media mmc 5 mmc@72000.bootdev.part_5 <NULL> > > 14 extlinux media mmc 5 mmc@72000.bootdev.part_5 <NULL> > > 15 script media mmc 5 mmc@72000.bootdev.part_5 <NULL> > > 16 efi media mmc 6 mmc@72000.bootdev.part_6 <NULL> > > 17 extlinux media mmc 6 mmc@72000.bootdev.part_6 <NULL> > > 18 script media mmc 6 mmc@72000.bootdev.part_6 <NULL> > > 19 efi media mmc 7 mmc@72000.bootdev.part_7 <NULL> > > 1a extlinux media mmc 7 mmc@72000.bootdev.part_7 <NULL> > > 1b script media mmc 7 mmc@72000.bootdev.part_7 <NULL> > > 1c efi media mmc 8 mmc@72000.bootdev.part_8 <NULL> > > 1d extlinux media mmc 8 mmc@72000.bootdev.part_8 <NULL> > > 1e script media mmc 8 mmc@72000.bootdev.part_8 <NULL> > > 1f efi media mmc 9 mmc@72000.bootdev.part_9 <NULL> > > 20 extlinux media mmc 9 mmc@72000.bootdev.part_9 <NULL> > > 21 script media mmc 9 mmc@72000.bootdev.part_9 <NULL> > > 22 efi media mmc a mmc@72000.bootdev.part_a <NULL> > > 23 extlinux media mmc a mmc@72000.bootdev.part_a <NULL> > > 24 script media mmc a mmc@72000.bootdev.part_a <NULL> > > 25 efi media mmc b mmc@72000.bootdev.part_b <NULL> > > 26 extlinux media mmc b mmc@72000.bootdev.part_b <NULL> > > 27 script media mmc b mmc@72000.bootdev.part_b <NULL> > > 28 efi media mmc c mmc@72000.bootdev.part_c <NULL> > > 29 extlinux media mmc c mmc@72000.bootdev.part_c <NULL> > > 2a script media mmc c mmc@72000.bootdev.part_c <NULL> > > 2b efi media mmc d mmc@72000.bootdev.part_d <NULL> > > 2c extlinux media mmc d mmc@72000.bootdev.part_d <NULL> > > 2d script media mmc d mmc@72000.bootdev.part_d <NULL> > > 2e efi media mmc e mmc@72000.bootdev.part_e <NULL> > > 2f extlinux media mmc e mmc@72000.bootdev.part_e <NULL> > > 30 script media mmc e mmc@72000.bootdev.part_e <NULL> > > 31 efi media mmc f mmc@72000.bootdev.part_f <NULL> > > 32 extlinux media mmc f mmc@72000.bootdev.part_f <NULL> > > 33 script media mmc f mmc@72000.bootdev.part_f <NULL> > > 34 efi media mmc 10 mmc@72000.bootdev.part_10 <NULL> > > 35 extlinux media mmc 10 mmc@72000.bootdev.part_10 <NULL> > > 36 script media mmc 10 mmc@72000.bootdev.part_10 <NULL> > > 37 efi media mmc 11 mmc@72000.bootdev.part_11 <NULL> > > 38 extlinux media mmc 11 mmc@72000.bootdev.part_11 <NULL> > > 39 script media mmc 11 mmc@72000.bootdev.part_11 <NULL> > > 3a efi media mmc 12 mmc@72000.bootdev.part_12 <NULL> > > 3b extlinux media mmc 12 mmc@72000.bootdev.part_12 <NULL> > > 3c script media mmc 12 mmc@72000.bootdev.part_12 <NULL> > > 3d efi media mmc 13 mmc@72000.bootdev.part_13 <NULL> > > 3e extlinux media mmc 13 mmc@72000.bootdev.part_13 <NULL> > > 3f script media mmc 13 mmc@72000.bootdev.part_13 <NULL> > > 40 efi media mmc 14 mmc@72000.bootdev.part_14 <NULL> > > 41 extlinux media mmc 14 mmc@72000.bootdev.part_14 <NULL> > > 42 script media mmc 14 mmc@72000.bootdev.part_14 <NULL> > > 43 efi media mmc 15 mmc@72000.bootdev.part_15 <NULL> > > 44 extlinux media mmc 15 mmc@72000.bootdev.part_15 <NULL> > > 45 script media mmc 15 mmc@72000.bootdev.part_15 <NULL> > > 46 efi media mmc 16 mmc@72000.bootdev.part_16 <NULL> > > 47 extlinux media mmc 16 mmc@72000.bootdev.part_16 <NULL> > > 48 script media mmc 16 mmc@72000.bootdev.part_16 <NULL> > > 49 efi media mmc 17 mmc@72000.bootdev.part_17 <NULL> > > 4a extlinux media mmc 17 mmc@72000.bootdev.part_17 <NULL> > > 4b script media mmc 17 mmc@72000.bootdev.part_17 <NULL> > > 4c efi media mmc 18 mmc@72000.bootdev.part_18 <NULL> > > 4d extlinux media mmc 18 mmc@72000.bootdev.part_18 <NULL> > > 4e script media mmc 18 mmc@72000.bootdev.part_18 <NULL> > > 4f efi media mmc 19 mmc@72000.bootdev.part_19 <NULL> > > 50 extlinux media mmc 19 mmc@72000.bootdev.part_19 <NULL> > > 51 script media mmc 19 mmc@72000.bootdev.part_19 <NULL> > > 52 efi media mmc 1a mmc@72000.bootdev.part_1a <NULL> > > 53 extlinux media mmc 1a mmc@72000.bootdev.part_1a <NULL> > > 54 script media mmc 1a mmc@72000.bootdev.part_1a <NULL> > > 55 efi media mmc 1b mmc@72000.bootdev.part_1b <NULL> > > 56 extlinux media mmc 1b mmc@72000.bootdev.part_1b <NULL> > > 57 script media mmc 1b mmc@72000.bootdev.part_1b <NULL> > > 58 efi media mmc 1c mmc@72000.bootdev.part_1c <NULL> > > 59 extlinux media mmc 1c mmc@72000.bootdev.part_1c <NULL> > > 5a script media mmc 1c mmc@72000.bootdev.part_1c <NULL> > > 5b efi media mmc 1d mmc@72000.bootdev.part_1d <NULL> > > 5c extlinux media mmc 1d mmc@72000.bootdev.part_1d <NULL> > > 5d script media mmc 1d mmc@72000.bootdev.part_1d <NULL> > > No more bootdevs > > --- ----------- ------ -------- ---- ------------------------ > > ---------------- > > (94 bootflows, 0 valid) > > ``` > > > > ls return 1 > > > > ``` > > => ls mmc 1 /efi/boot > > ./ > > ../ > > 51806720 BOOTAA64.EFI > > > > 1 file(s), 2 dir(s) > > > > => echo $? > > 0 > > => ls mmc 1 /efi/boot/bootaa64.efi > > => echo $? > > 1 > > => ls mmc 1 /EFI/boot/BOOTAA64.EFI > > => echo $? > > 1 > > => ls mmc 1 / > > EFI/ > > > > 0 file(s), 1 dir(s) > > > > => ls mmc 1 /EFI/ > > ./ > > ../ > > BOOT/ > > > > 0 file(s), 3 dir(s) > > > > => ls mmc 1 /EFI/BOOT/BOOTAA64.EFI > > => echo $? > > 1 > > => ls mmc 1 /EFI/BOOT > > ./ > > ../ > > 51806720 BOOTAA64.EFI > > The issue ended up being the memory allocation. The file was too big > (50MB). `bootflow scan -lae mmc1` > > In boot/bootmeth_efi.c, bootmeth_alloc_file is set to a pre-defined > 32MB so bootefi cannot boot anything larger than that even if you have > CONFIG_SYS_MALLOC_LEN set to something larger. > > Hope this helps someone.
Thank you for this. I sent a series[1] to drop the memory allocation, which should resolve this. If you have time to test it, please do! Regards, Simon [1] https://patchwork.ozlabs.org/project/uboot/list/?series=365943 > > > > > 1 file(s), 2 dir(s) > > > > => ls mmc 1 /EFI/BOOT/nonexist > > => echo $? > > 1 > > ``` > > > > On Mon, Jul 24, 2023 at 11:35 AM Da Xue <da@libre.computer> wrote: > > > > > > Hi, > > > > > > I switch to bootstd and I am experiencing an issue with bootstd not > > > detected EFI bootable file in /EFI/BOOT/BOOTAA64.EFI in certain image, > > > buildroot specifically. The same setup works fine with distro_bootcmd. > > > I have attached the logs. I have tried the following: > > > > > > 1) Directory and filename case upper and lower > > > 2) FAT32 and FAT16 filesystem > > > 3) Changing the size of the filesystem > > > > > > I noticed some particular weirdness with u-boot's return code for > > > functions dealing with fs_exists that might be related. > > > > > > 1) FAT/FAT32 driver uses fs_ls_generic. When you do `ls mmc 1 > > > /filename`, it returns 1 if the file exists and returns 1 when the > > > file doesn't exist. > > > 2) This issue follows fs_exists. Is this a bug or intended behavior? > > > > > > Best, > > > Da