Re: git: 1dec3639fd0c - main - sysutils/u-boot: Update to 2021.07

From: Karl Denninger <karl_at_denninger.net>
Date: Thu, 19 Aug 2021 22:39:37 UTC
Ok, something else funny is going on now..... and I'm not at all sure 
what, or how to diagnose further.

I grabbed the last u-Boot, which 2021.04 (April 13th) and put that on 
the disk, and restored the config.txt.

Now I get this:

U-Boot 2021.04 (Apr 13 2021 - 03:57:26 +0000)

DRAM:  948 MiB
RPI 3 Model B (0xa22082)
MMC:   mmc@7e300000: 0
Loading Environment from FAT... In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
Bus usb@7e980000: USB DWC2
scanning bus usb@7e980000 for devices... 3 USB Device(s) found
        scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Scanning disk mmc@7e300000.blk...
** Unrecognized filesystem type **  <<<<----- Huh?
Found 3 disks
No EFI system partition
BootOrder not defined
EFI boot manager: Cannot load any image
Found EFI removable media binary efi/boot/bootaa64.efi
97448 bytes read in 35 ms (2.7 MiB/s)
libfdt fdt_check_header(): FDT_ERR_BADMAGIC
Booting /efi\boot\bootaa64.efi

Except that starts, and then..

 >> FreeBSD EFI boot block
    Loader path: /boot/loader.efi

    Initializing modules: ZFS UFS
    Load Path: /efi\boot\bootaa64.efi
    Load Device: 
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(2)/SD(0)/HD(1,MBR,0x76440bf1,0x3f,0x18fe7)
    Probing 3 block devices...not supported
not supported
not supported
  done
     ZFS found no pools
     UFS found no partitions
Failed to load '/boot/loader.efi'
panic: No bootable partitions found!
## Application failed, r = 1
EFI LOAD FAILED: continuing...
MMC Device 1 not found
no mmc device at slot 1

Which implies I got the bootaa64.efi code loaded and then the EFI code 
blew up looking for a bootable filesystem.

The filesystem on the disk built by Crochet is:

root@NewFS:/work/Crochet-work-ARM64 # mdconfig *.img
md0
root@NewFS:/work/Crochet-work-ARM64 # gpart show md0
=>     63  5761655  md0  MBR  (2.7G)
        63   102375    1  fat32lba  [active]  (50M)
    102438  5659280    2  freebsd  (2.7G)

root@NewFS:/work/Crochet-work-ARM64 # gpart show md0s2
=>      0  5659280  md0s2  BSD  (2.7G)
         0  5120000      1  freebsd-ufs  (2.4G)
   5120000    65536      4  freebsd-ufs  (32M)
   5185536   473744      5  freebsd-ufs  (231M)

That ought to be good and on /dev/md0s2a I indeed have /boot/loader.efi

root@NewFS:/mnt # file boot/loader.efi
boot/loader.efi: MS-DOS executable PE32+ executable (EFI application) 
Aarch64, for MS Windows


On 8/19/2021 15:29, Karl Denninger wrote:
> On 8/19/2021 15:23, Emmanuel Vadot wrote:
>> On Sun, 18 Jul 2021 15:48:55 +0200
>> "Herbert J. Skuhra" <herbert@gojira.at> wrote:
>>
>>> On Mon, 12 Jul 2021 13:44:43 +0200, "Herbert J. Skuhra" wrote:
>>>
>>>> This happens even with the official builds!
>>>>
>>>> FreeBSD-13.0-STABLE-arm64-aarch64-RPI-20210701-6aee7855180-246143.img.xz 
>>>>
>>>> ==> OK (U-Boot 2021.04)
>>>> FreeBSD-13.0-STABLE-arm64-aarch64-RPI-20210708-f6d448caf69-246212.img.xz 
>>>>
>>>> ==> Not OK. (U-Boot 2021.07)
>>>>
>>>> I am using U-Boot 2021.04 again because I still don't know how to boot
>>>> from mmc device 2 automatically.
>>> With the below patch my RPI 3 Model B (0xa02082) boots again:
>>>
>>> --- include/configs/rpi.h.orig  2021-07-18 15:37:55.743031000 +0200
>>> +++ include/configs/rpi.h       2021-07-18 15:38:51.159286000 +0200
>>> @@ -173,7 +173,8 @@
>>>   #if CONFIG_IS_ENABLED(CMD_MMC)
>>>          #define BOOT_TARGET_MMC(func) \
>>>                  func(MMC, mmc, 0) \
>>> -               func(MMC, mmc, 1)
>>> +               func(MMC, mmc, 1) \
>>> +               func(MMC, mmc, 2)
>>>   #else
>>>
>>>
>>> (sysutils/u-boot-rpi3 / U-Boot 2021.07)
>>>
>>   Can you submit that upstream ?
>>   We've tried over the past years to have no local patches for u-boot.
>>   Also can you try removing the overlays loaded by the firmware (in
>> config.txt), I think that the mmc overlays might renumber the mmc
>> device and upstream u-boot might not be happy about this.
>>
>>   Thanks,
>
> Ok, so removing the overlay is easy -- I commented out the MMC overlay 
> line and now u-boot starts but....
>
> U-Boot 2021.07 (Jul 10 2021 - 02:42:14 +0000)
>
> DRAM:  948 MiB
> RPI 3 Model B (0xa22082)
> MMC:   mmc@7e202000: 0, mmcnr@7e300000: 1
> Loading Environment from FAT... Card did not respond to voltage 
> select! : -110
> In:    serial
> Out:   vidconsole
> Err:   vidconsole
> Net:   No ethernet found.
> starting USB...
> Bus usb@7e980000: usb dr_mode not found
> USB DWC2
> scanning bus usb@7e980000 for devices... 3 USB Device(s) found
>        scanning usb for storage devices... 0 Storage Device(s) found
> Hit any key to stop autoboot:  0
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Scanning disk mmc@7e202000.blk...
> ** Unrecognized filesystem type **
> Card did not respond to voltage select! : -110
> Scanning disk mmcnr@7e300000.blk...
> Disk mmcnr@7e300000.blk not ready
> Found 3 disks
> No EFI system partition
> BootOrder not defined
> EFI boot manager: Cannot load any image
> Found EFI removable media binary efi/boot/bootaa64.efi
> 97448 bytes read in 8 ms (11.6 MiB/s)
> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
> Booting /efi\boot\bootaa64.efi
>
>
> and then.
>
> >> FreeBSD EFI boot block
>    Loader path: /boot/loader.efi
>
>    Initializing modules: ZFS UFS
>    Load Path: /efi\boot\bootaa64.efi
>    Load Device: 
> /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(0)/SD(0)/HD(1,MBR,0x76440bf1,0x3f,0x18fe7)
>    Probing 3 block devices...not supported
> not supported
> not supported
>  done
>     ZFS found no pools
>     UFS found no partitions
> Failed to load '/boot/loader.efi'
> panic: No bootable partitions found!
> ## Application failed, r = 1
> EFI LOAD FAILED: continuing...
> Card did not respond to voltage select! : -110
>
> Device 0: unknown device
> Waiting for Ethernet connection... unable to connect.
> missing environment variable: pxeuuid
> missing environment variable: bootfile
> Retrieving file: pxelinux.cfg/01-b8-27-eb-17-6d-54
> Waiting for Ethernet connection... unable to connect.
> missing environment variable: bootfile
> Retrieving file: pxelinux.cfg/00000000
> Waiting for Ethernet connection... unable to connect.
> missing environment variable: bootfile
> Retrieving file: pxelinux.cfg/0000000
>
> So it looks like removing the overlay changes it in that I now get the 
> loader, but then it fails AFTER THAT.
>
> Current config.txt:
>
> arm_64bit=1
> dtparam=audio=on,i2c_arm=on,spi=on
> # dtoverlay=mmc
> dtoverlay=pwm
> dtoverlay=disable-bt
> device_tree_address=0x4000
> kernel=u-boot.bin
>
>
-- 
Karl Denninger
karl@denninger.net <mailto:karl@denninger.net>
/The Market Ticker/
/[S/MIME encrypted email preferred]/