Re: uBoot broken on RPI2 Model B?

Karl Denninger <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On 3/3/2023 16:12, Karl Denninger wrote:
>
> Just tried to build -13STABLE for the RPi2 and ran into this (I'm 
> using Crochet and have had to make some changes to the board-specific 
> files, but it appears the problem that results in it not working is in 
> uboot; I've made a number of changes since it looks like the system 
> now wants to boot off EFI as opposed to what worked in -12, which 
> would be ok if it can find the boot device -- I think (may be wrong here)
>
> U-Boot 2023.01 (Jan 26 2023 - 04:25:18 +0000)
>
> DRAM:  948 MiB
> RPI 2 Model B (0xa21041)
> Core:  70 devices, 13 uclasses, devicetree: board
> MMC:   mmc@7e300000: 1
> Loading Environment from FAT... ** Bad device specification mmc 0 **
> 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
> U-Boot>
>
> Needless to say if I let it try to continue it fails as it can't find 
> the SD card and "mmc dev" shows nothing present.
>
> Obviously going to dig into this further myself but I recalled 
> something about this uBoot version being broken on older Pis...
>
> The layout of the disk on the boot partition is thus:
>
> root@NewFS:/mnt # ls -la
> total 12679
> drwxr-xr-x   1 root  wheel    16384 Dec 31  1979 .
> drwxr-xr-x  35 root  wheel       42 Jan 20 10:16 ..
> drwxr-xr-x   1 root  wheel     4096 Feb 13 11:09 EFI
> -rwxr-xr-x   1 root  wheel      709 Feb 13 11:09 README
> -rwxr-xr-x   1 root  wheel    26745 Feb 13 11:09 bcm2709-rpi-2-b.dtb
> -rwxr-xr-x   1 root  wheel    52456 Feb 13 11:09 bootcode.bin
> -rwxr-xr-x   1 root  wheel      141 Feb 13 11:09 config.txt
> -rwxr-xr-x   1 root  wheel     7314 Feb 13 11:09 fixup.dat
> -rwxr-xr-x   1 root  wheel     3187 Feb 13 11:09 fixup_cd.dat
> -rwxr-xr-x   1 root  wheel    10298 Feb 13 11:09 fixup_db.dat
> -rwxr-xr-x   1 root  wheel    10298 Feb 13 11:09 fixup_x.dat
> drwxr-xr-x   1 root  wheel    20480 Feb 13 11:09 overlays
> -rwxr-xr-x   1 root  wheel    21169 Feb 13 11:09 rpi2.dtb
> -rwxr-xr-x   1 root  wheel  2952960 Feb 13 11:09 start.elf
> -rwxr-xr-x   1 root  wheel   793116 Feb 13 11:09 start_cd.elf
> -rwxr-xr-x   1 root  wheel  4794472 Feb 13 11:09 start_db.elf
> -rwxr-xr-x   1 root  wheel  3704808 Feb 13 11:09 start_x.elf
> -rwxr-xr-x   1 root  wheel   521916 Feb 13 11:09 u-boot.bin
>
> root@NewFS:/mnt # ls -laR EFI
> total 24
> drwxr-xr-x  1 root  wheel   4096 Feb 13 11:09 .
> drwxr-xr-x  1 root  wheel  16384 Dec 31  1979 ..
> drwxr-xr-x  1 root  wheel   4096 Feb 13 11:09 BOOT
>
> EFI/BOOT:
> total 140
> drwxr-xr-x  1 root  wheel    4096 Feb 13 11:09 .
> drwxr-xr-x  1 root  wheel    4096 Feb 13 11:09 ..
> -rwxr-xr-x  1 root  wheel  133812 Feb 13 11:09 bootarm.efi
>
> root@NewFS:/mnt # more config.txt
> init_uart_clock=3000000
> enable_uart=1
> kernel=u-boot.bin
> kernel7=u-boot.bin
> dtoverlay=mmc
> audio_pwm_mode=2
> dtparam=audio=on,i2c_arm=on,spi=on
>
> root@NewFS:/mnt # ls -la overlays | grep mmc
> -rwxr-xr-x  1 root  wheel    1221 Feb 13 11:09 mmc.dtbo
>
> Which I BELIEVE should work -- assuming that I can get "see" the SD 
> card from u-boot that is....
>
> Installed rpi-related packages:
>
> root@NewFS:/mnt # pkg info|grep rpi
> rpi-firmware-1.20210303.g20210303 Firmware for RaspberryPi Single 
> Board Computer
> u-boot-rpi2-2023.01            Cross-build das u-boot for model rpi2
> u-boot-rpi3-2023.01            Cross-build das u-boot for model rpi3
> u-boot-rpi4-2023.01            Cross-build das u-boot for model rpi4
>
I found a copy of the 2022-10 uboot:

U-Boot 2022.10 (Oct 24 2022 - 02:01:47 +0000)

DRAM:  948 MiB
RPI 2 Model B (0xa21041)
Core:  70 devices, 13 uclasses, devicetree: board
MMC:   mmc@7e300000: 1
Loading Environment from FAT... ** Bad device specification mmc 0 **
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

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

    Initializing modules: ZFS UFS
    Load Path: /efi\boot\bootarm.efi
    Load Device: 
/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b)/SD(1)/SD(0)/HD(1,MBR,0xb5048a37,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
Can't remove invalid handle 00000000
EFI LOAD FAILED: continuing...
MMC Device 2 not found
no mmc device at slot 2

Device 0: unknown device
Waiting for Ethernet connection... unable to connect.
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-b8-27-eb-0d-05-01
Waiting for Ethernet connection...

Hmmm... going back and looking at the 2023-01 version boot sequence 
again... same thing it appears; the u-boot DOES load the EFI loader, but 
dies there.  Am I trying to be too cute by half and should stick 
ubldr.bin in that boot partition and get rid of the EFI loader entirely?

-- 
Karl Denninger
[email protected]
/The Market Ticker/
/[S/MIME encrypted email preferred]/
smime.p7s (application/pkcs7-signature, 4.8 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.