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)"
Date: Mon, 24 May 2021 22:53:17 UTC
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 <marklmi@yahoo.com> 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 <freebsd-arm@freebsd.org> 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)