Re: /usr/local/share/u-boot/u-boot-orangepi-plus-2e/README out of date ; orangepi-plus-2e and RPi2 v1.1 get "Kernel args: (null)"

Mark Millard via arm <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
On 2021-May-13, at 12:03, Mark Millard <marklmi at yahoo.com> wrote:

> On 2021-May-13, at 10:53, Mark Millard <marklmi at yahoo.com> wrote:
> 
>> On 2021-May-13, at 04:08, Mark Millard <marklmi at yahoo.com> wrote:
>> 
>>> On 2021-May-13, at 03:40, Emmanuel Vadot <manu at bidouilliste.com> wrote:
>>>> 
>>>> On Thu, 13 May 2021 02:57:21 -0700
>>>> Mark Millard <[email protected]> wrote:
>>>> 
>>>>>> On 2021-May-13, at 02:15, Emmanuel Vadot <manu at bidouilliste.com> wrote:
>>>>>> 
>>>>>> On Thu, 13 May 2021 01:52:08 -0700
>>>>>> Mark Millard via freebsd-arm <[email protected]> wrote:
>>>>>> 
>>>>>>> The updated armv7 U-Boot ports now install the likes of:
>>>>>>> 
>>>>>>> # ls -Tldt /usr/local/share/u-boot/u-boot-orangepi-plus-2e/*
>>>>>>> -rw-r--r--  1 root  wheel     504 May 12 07:01:10 2021 /usr/local/share/u-boot/u-boot-orangepi-plus-2e/README
>>>>>>> -rw-r--r--  1 root  wheel      66 May 12 07:01:10 2021 /usr/local/share/u-boot/u-boot-orangepi-plus-2e/metadata
>>>>>>> -rw-r--r--  1 root  wheel  490924 May 12 07:01:10 2021 /usr/local/share/u-boot/u-boot-orangepi-plus-2e/u-boot-sunxi-with-spl.bin
>>>>>>> 
>>>>>>> # ls -Tldt /usr/local/share/u-boot/u-boot-rpi2/*
>>>>>>> -rw-r--r--  1 root  wheel      767 May 12 06:39:07 2021 /usr/local/share/u-boot/u-boot-rpi2/README
>>>>>>> -rw-r--r--  1 root  wheel       44 May 12 06:39:07 2021 /usr/local/share/u-boot/u-boot-rpi2/metadata
>>>>>>> -rw-r--r--  1 root  wheel   475420 May 12 06:39:07 2021 /usr/local/share/u-boot/u-boot-rpi2/u-boot.bin
>>>>>>> 
>>>>>>> So, for example, no boot.scr files ro go with ubldr.bin
>>>>>>> any more.
>>>>>>> 
>>>>>>> But the u-boot-orangepi-plus-2e/README says . . .
>>>>>>> 
>>>>>>> QUOTE
>>>>>>> This version is patched so that:
>>>>>>> * API features are enabled.
>>>>>>> * A boot.scr (U-Boot script) that loads ubldr.bin and execute it is included
>>>>>>> END QUOTE
>>>>>>> 
>>>>>>> The u-boot-rpi2/README says . . .
>>>>>>> 
>>>>>>> QUOTE
>>>>>>> This version is patched so that:
>>>>>>> * ELF and API features are enabled.
>>>>>>> * The distroboot command knows how to load FreeBSD loader(8)
>>>>>>> * By default, it loads ubldr.bin (PIE) from file ubldr.bin on the FAT
>>>>>>> partition to address ${kernel_addr_r}, and launches it. If ubldr.bin is
>>>>>>> not found, it falls back on ubldr
>>>>>>> END QUOTE
>>>>>>> 
>>>>>> 
>>>>>> Oups, I'll update the README, thanks for noticing this.
>>>>> 
>>>>> FYI: I only looked at examples for which I've access
>>>>> to operational hardware.
>>>>> 
>>>>>>> But for the orangepi-plus-2e that I have access to I
>>>>>>> now get:
>>>>>>> 
>>>>>>> . . .
>>>>>>> Hit [Enter] to boot immediately, or any other key for command prompt.
>>>>>>> Booting [/boot/kernel/kernel]...               
>>>>>>> Using DTB provided by EFI at 0x47eea000.
>>>>>>> Kernel entry at 0xb2e00200...
>>>>>>> Kernel args: (null)
>>>>>> 
>>>>>> This is the symptoms when caches are not flushed.
>>>>>> U-Boot distroboot first scans for extlinux.conf, then uboot script and
>>>>>> then EFI. So this probably means that you still have a boot.scr on the
>>>>>> ESP, try removing that and make sure that you have the efi loader too
>>>>>> in efi/boot/bootarm.efi.
>>>>> 
>>>>> That is not the issue . . . showing more context
>>>>> from the same recorded boot attempts (blank lines
>>>>> and a huge number of escape sequences removed, and
>>>>> using ". . ." for other omitted text):
>>>>> 
>>>>> U-Boot 2021.04 (Apr 09 2021 - 19:24:51 +0000) Allwinner Technology
>>>>> CPU:   Allwinner H3 (SUN8I 1680)
>>>>> Model: Xunlong Orange Pi Plus 2E
>>>>> DRAM:  2 GiB
>>>>> . . .
>>>>> FreeBSD/arm EFI loader, Revision 1.1
>>>>> Command line arguments: l
>>>>> Image base: 0xb8dd5000
>>>>> EFI version: 2.80
>>>>> EFI Firmware: Das U-Boot (rev 8225.1024)
>>>>> Console: comconsole (0)
>>>>> Load Path: /efi\boot\bootarm.efi
>>>>> . . .
>>>>> Found EFI removable media binary efi/boot/bootarm.efi
>>>>> 1396100 bytes read in 36 ms (37 MiB/s)
>>>>> Booting /efi\boot\bootarm.efi
>>>>> Consoles: EFI console  
>>>>> |/-\|/-\|/-\|/-\|/-\|/-\|/-\    Reading loader env vars from /efi/freebsd/loader.env
>>>>> . . .
>>>>> Hit [Enter] to boot immediately, or any other key for command prompt.
>>>>> Booting [/boot/kernel/kernel]...               
>>>>> Using DTB provided by EFI at 0x47eea000.
>>>>> Kernel entry at 0xb2e00200...
>>>>> Kernel args: (null)
>>>> 
>>>> I cannot reproduce this here. Either by creating an image on the
>>>> sdcard by hand (I usually only netboot my boards so the sdcard have
>>>> only u-boot and a fat partition so u-boot can save its env) or by
>>>> taking FreeBSD-13.0-RELEASE-arm-armv7-GENERICSD.img and adding
>>>> u-boot on it.
>>>> This was tested on an orangepi-one board (so same SoC, Allwinner H3)
>>>> and on a BeagleBoneBlack.
>>>> I suggest to try with a clean install from
>>>> FreeBSD-13.0-RELEASE-arm-armv7-GENERICSD.img just to be sure.
>>> 
>>> In my context:
>>> 
>>> The RPi2 v1.1 has a microsd card with just bootcode.bin .
>>> The rest is from the USB3 SSD media. (Such worked before
>>> the U-Boot update, for example.)
>>> 
>>> The orangepi-plus-2e has a microsd card with just its
>>> (now updated) U-Boot and empty file systems. The rest
>>> is from the USB3 SSD media.
>>> 
>>> It is the same USB3 SSD boot media used for both.
>>> 
>>> It is the same media I've been using right along,
>>> just updated to remove the old U-Boot related
>>> extra materials and to copy over the new U-Boot
>>> for the RPi2 V1.1.
>>> 
>>> The media has a non-debug head [so: 14] build, based
>>> on:
>>> 
>>> merge-base: 7381bbee29df959e88ec59866cf2878263e7f3b2
>>> merge-base: CommitDate: 2021-03-12 20:29:42 +0000
>>> 7381bbee29df (freebsd/main, freebsd/HEAD, pure-src, main) cam: Run all XPT_ASYNC ccbs in a dedicated thread
>>> n245444 (--first-parent --count for merge-base)
>>> 
>>> It has been working the whole time since then until
>>> this change. It is a build with code generation
>>> tuned for cortex-A7, as is my normal for my own
>>> builds for armv7.
>>> 
>>> I need to get some sleep. So it will be some time
>>> before I try any other forms of experiments.
>> 
>> Mixed results for starting with a modified
>> FreeBSD-13.0-RELEASE-arm-armv7-GENERICSD.img microsd
>> card:
>> 
>> orangepi-plus-2e booted from the microsd card.
> 
> I took the microsd card and put it in a USB media
> reader and plugged it into the USB port and used the 
> microsd card with only U-Boot on it in the microsd
> card slot. So, in essence, a test of USB booting
> from as close to the same media content as I can
> get.
> 
> It failed in the same way as I previously reported
> for the orangepi-plus-2e (which was also a form of
> USB booting --but with my historical USB SSD media
> that has a main [so: 14] non-debug build).
> 
> The only software that I had built was the U-Boots
> themselves that I either dd'd or cp'd as appropriate.
> EFI/BOOT/* was unchanged, as was FreeBSD's kernel
> and world.
> 
> Somehow the type of the device matters (despite the
> kernel being loaded from the device without
> complaints). Apparently the RPi2 v1.1 microsd card
> is a problematical type of device, like USB is for
> the orangepi-plus-2e. A definite regression overall.
> 
>> rpi2 v1.1 failed the same way as before, including:
>> 
>> Found EFI removable media binary efi/boot/bootarm.efi
>> 1403700 bytes read in 139 ms (9.6 MiB/s)
>> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
>> Booting /efi\boot\bootarm.efi
>> Consoles: EFI console  
>> 
>> FYI, FreeBSD-13.0-RELEASE-arm64-aarch64-ROCK64.img includes
>> ubldr.bin :
>> 
>> # ls -Tld /mnt/*
>> drwxr-xr-x  1 root  wheel     4096 Apr  9 00:05:26 2021 /mnt/EFI
>> -rwxr-xr-x  1 root  wheel   103488 Apr  8 20:59:46 2021 /mnt/MLO
>> -rwxr-xr-x  1 root  wheel    26745 Mar  3 05:29:56 2021 /mnt/bcm2709-rpi-2-b.dtb
>> -rwxr-xr-x  1 root  wheel    52456 Mar  3 05:29:56 2021 /mnt/bootcode.bin
>> -rwxr-xr-x  1 root  wheel       89 Apr  8 21:10:14 2021 /mnt/config.txt
>> drwxr-xr-x  1 root  wheel     8192 Apr  9 00:05:26 2021 /mnt/dtb
>> -rwxr-xr-x  1 root  wheel     7314 Mar  3 05:29:56 2021 /mnt/fixup.dat
>> -rwxr-xr-x  1 root  wheel     3187 Mar  3 05:29:56 2021 /mnt/fixup_cd.dat
>> -rwxr-xr-x  1 root  wheel    10298 Mar  3 05:29:56 2021 /mnt/fixup_db.dat
>> -rwxr-xr-x  1 root  wheel    10298 Mar  3 05:29:56 2021 /mnt/fixup_x.dat
>> drwxr-xr-x  1 root  wheel     4096 Apr  9 00:05:32 2021 /mnt/overlays
>> -rwxr-xr-x  1 root  wheel  2952960 Mar  3 05:29:56 2021 /mnt/start.elf
>> -rwxr-xr-x  1 root  wheel   793116 Mar  3 05:29:56 2021 /mnt/start_cd.elf
>> -rwxr-xr-x  1 root  wheel  4794472 Mar  3 05:29:56 2021 /mnt/start_db.elf
>> -rwxr-xr-x  1 root  wheel  3704808 Mar  3 05:29:56 2021 /mnt/start_x.elf
>> -rwxr-xr-x  1 root  wheel   467824 Apr  8 21:09:28 2021 /mnt/u-boot.bin
>> -rwxr-xr-x  1 root  wheel   716804 Apr  8 20:59:46 2021 /mnt/u-boot.img
>> -r-xr-xr-x  1 root  wheel   462412 Apr  9 00:00:00 2021 /mnt/ubldr.bin
>> 
>> so I removed that and u-boot.img, and replaced u-boot.bin .
>> 
>>>>> and:
>>>>> 
>>>>> U-Boot 2021.04 (May 12 2021 - 13:36:42 +0000)
>>>>> DRAM:  948 MiB
>>>>> RPI 2 Model B (0xa21041)
>>>>> . . .
>>>>> FreeBSD/arm EFI loader, Revision 1.1
>>>>> Command line arguments: l
>>>>> Image base: 0x39df8000
>>>>> EFI version: 2.80
>>>>> EFI Firmware: Das U-Boot (rev 8225.1024)
>>>>> Console: comconsole (0)
>>>>> Load Path: /efi\boot\bootarm.efi
>>>>> . . .
>>>>> Found EFI removable media binary efi/boot/bootarm.efi
>>>>> 1396100 bytes read in 38 ms (35 MiB/s)
>>>>> libfdt fdt_check_header(): FDT_ERR_BADMAGIC
>>>> 
>>>> This line doesn't looks good.
>>> 
>>> Yea, I noticed it but have done no investigation
>>> as yet. (Only the RPi2 v1.1 that message. It is
>>> the one notable difference.)
>>> 
>>>>> Booting /efi\boot\bootarm.efi
>>>>> Consoles: EFI console  
>>>>> |/-\|/-\|/    Reading loader env vars from /efi/freebsd/loader.env
>>>>> . . .
>>>>> Hit [Enter] to boot immediately, or any other key for command prompt.
>>>>> Booting [/boot/kernel/kernel]...               
>>>>> Using DTB provided by EFI at 0x7ef6000.
>>>>> Kernel entry at 0x33e00200...
>>>>> Kernel args: (null)
>>>>> 
>>>>> No *.scr files, no ubldr* files. Showing
>>>>> from the efi partition mounted on a Rock64:
>>>>> 
>>>>> # find /mnt/dtb/ -print
>>>>> /mnt/dtb/
>>>>> /mnt/dtb/sun8i-h3-orangepi-plus2e.dtb
>>>>> /mnt/dtb/overlays
>>>>> /mnt/dtb/overlays/sun8i-h3-i2c0.dtbo
>>>>> /mnt/dtb/overlays/spigen-rpi2.dtbo
>>>>> 
>>>>> # find /mnt/efi/ -print
>>>>> /mnt/efi/
>>>>> /mnt/efi/boot
>>>>> /mnt/efi/boot/bootarm.efi
>>>>> 
>>>>> # ls -Tld /mnt/u*
>>>>> -rwxr-xr-x  1 root  wheel  475420 May 12 06:39:06 2021 /mnt/u-boot.bin
>>>>> 
>>>>> # ls -Tld /mnt/*.scr
>>>>> ls: /mnt/*.scr: Invalid argument
>>>>> 
>>>>> I'll not list the files from the RPi* firmware.
>>>>> 
>>>>> 
>>>>>>> and that is the last of the output.
>>>>>>> 
>>>>>>> The RPi2 v1.1 is similar:
>>>>>>> 
>>>>>>> Hit [Enter] to boot immediately, or any other key for command prompt.
>>>>>>> Booting [/boot/kernel/kernel]...               
>>>>>>> Using DTB provided by EFI at 0x7ef6000.
>>>>>>> Kernel entry at 0x33e00200...
>>>>>>> Kernel args: (null)
>>>>>>> 
>>>>>>> and that is the last of the output.
>>>> 

I do not know if the FreeBSD kernel has been depending
on some U-Boot initialization for root-on-USB and the
two no longer match or what.

But I've used a release/13.0.0.0 microsd card based
boot to get older U-Boot materials (Quarterly as it
turns out). Installing such got me back to having a
root-on-USB boot of the OPi+2e (other than the
mircosd card having the older U-Boot (2020.10 as it
turns out). Of course there is also the matching
boot.scr involved --but it also is on the USB SSD.
(Similarly reverted RPi2 U-Boot, other than needing
to switch boot.scr to match.)

After booting with the reverted U-Boot related
material:

# mount -onoatime -tmsdosfs /dev/mmcsd1s1 /mnt
# mount -onoatime /dev/mmcsd1s2a /media

# ls -Tla /mnt/
total 20
drwxr-xr-x   1 root  wheel  16384 Dec 31 16:00:00 1979 .
drwxr-xr-x  25 root  wheel    512 Dec 31 16:00:40 2009 ..

# ls -Tla /media/
total 60
drwxr-xr-x   2 root  wheel    512 May 24 15:43:19 2021 .
drwxr-xr-x  25 root  wheel    512 Dec 31 16:00:40 2009 ..
-rwxr-xr-x   1 root  wheel  52456 Apr 24 19:48:36 2021 bootcode.bin

The media is also set up for booting an RPi2 via
root-in-USB ( other than bootcode.bin ).

If FreeBSD and the more modern U-Boot were well matched
for USB support, I'd expect that this sort of thing would
work (no boot.scr needed).

For reference:

# ~/fbsd-based-on-what-freebsd-main.sh 
FreeBSD OPiP2E_RPi2v11 14.0-CURRENT FreeBSD 14.0-CURRENT mm-src-n245445-def0058cc690 GENERIC-NODBG  arm armv7 1400005 1400005
def0058cc690 (HEAD -> mm-src) mm-src snapshot for mm's patched build in git context.
merge-base: 7381bbee29df959e88ec59866cf2878263e7f3b2
merge-base: CommitDate: 2021-03-12 20:29:42 +0000
7381bbee29df (freebsd/main, freebsd/HEAD, pure-src, main) cam: Run all XPT_ASYNC ccbs in a dedicated thread
n245444 (--first-parent --count for merge-base)

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
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.