Date: Mon, 24 May 2021 15:53:17 -0700 From: Mark Millard via arm <arm@freebsd.org> To: Emmanuel Vadot <manu@bidouilliste.com> Cc: "freebsd-arm@freebsd.org" <arm@freebsd.org> Subject: 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)" Message-ID: <99906599-273E-4216-A41E-DE642F33E392@yahoo.com> In-Reply-To: <3C04FB55-4A26-48C8-833F-E4AC84DC4F78@yahoo.com> References: <40298C05-5F50-4437-B15B-7A02EA070EAE.ref@yahoo.com> <40298C05-5F50-4437-B15B-7A02EA070EAE@yahoo.com> <20210513111517.86336633bae9568d8599f229@bidouilliste.com> <B1C79772-0C68-479B-9A27-6F8CF5037724@yahoo.com> <20210513124050.47714a83f876d67a80e28080@bidouilliste.com> <CF0EE6DE-6E9D-4011-892F-6F546325AEC9@yahoo.com> <F28E5A50-5AFD-4D02-B8D1-62AD3E26EFDC@yahoo.com> <3C04FB55-4A26-48C8-833F-E4AC84DC4F78@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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: >=20 >> On 2021-May-13, at 04:08, Mark Millard <marklmi at yahoo.com> wrote: >>=20 >>> On 2021-May-13, at 03:40, Emmanuel Vadot <manu at bidouilliste.com> = wrote: >>>>=20 >>>> On Thu, 13 May 2021 02:57:21 -0700 >>>> Mark Millard <marklmi@yahoo.com> wrote: >>>>=20 >>>>>> On 2021-May-13, at 02:15, Emmanuel Vadot <manu at = bidouilliste.com> wrote: >>>>>>=20 >>>>>> On Thu, 13 May 2021 01:52:08 -0700 >>>>>> Mark Millard via freebsd-arm <freebsd-arm@freebsd.org> wrote: >>>>>>=20 >>>>>>> The updated armv7 U-Boot ports now install the likes of: >>>>>>>=20 >>>>>>> # 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 >>>>>>>=20 >>>>>>> # 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 >>>>>>>=20 >>>>>>> So, for example, no boot.scr files ro go with ubldr.bin >>>>>>> any more. >>>>>>>=20 >>>>>>> But the u-boot-orangepi-plus-2e/README says . . . >>>>>>>=20 >>>>>>> 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 >>>>>>>=20 >>>>>>> The u-boot-rpi2/README says . . . >>>>>>>=20 >>>>>>> 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 >>>>>>>=20 >>>>>>=20 >>>>>> Oups, I'll update the README, thanks for noticing this. >>>>>=20 >>>>> FYI: I only looked at examples for which I've access >>>>> to operational hardware. >>>>>=20 >>>>>>> But for the orangepi-plus-2e that I have access to I >>>>>>> now get: >>>>>>>=20 >>>>>>> . . . >>>>>>> Hit [Enter] to boot immediately, or any other key for command = prompt. >>>>>>> Booting [/boot/kernel/kernel]... =20 >>>>>>> Using DTB provided by EFI at 0x47eea000. >>>>>>> Kernel entry at 0xb2e00200... >>>>>>> Kernel args: (null) >>>>>>=20 >>>>>> 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. >>>>>=20 >>>>> 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): >>>>>=20 >>>>> 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 >>>>> . . . >>>>> =08FreeBSD/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 =20 >>>>> |=08/=08-=08\=08|=08/=08-=08\=08|=08/=08-=08\=08|=08/=08-=08\=08|=08= /=08-=08\=08|=08/=08-=08\=08|=08/=08-=08\=08 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]... =20 >>>>> Using DTB provided by EFI at 0x47eea000. >>>>> Kernel entry at 0xb2e00200... >>>>> Kernel args: (null) >>>>=20 >>>> 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. >>>=20 >>> In my context: >>>=20 >>> 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.) >>>=20 >>> 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. >>>=20 >>> It is the same USB3 SSD boot media used for both. >>>=20 >>> 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. >>>=20 >>> The media has a non-debug head [so: 14] build, based >>> on: >>>=20 >>> 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) >>>=20 >>> 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. >>>=20 >>> I need to get some sleep. So it will be some time >>> before I try any other forms of experiments. >>=20 >> Mixed results for starting with a modified >> FreeBSD-13.0-RELEASE-arm-armv7-GENERICSD.img microsd >> card: >>=20 >> orangepi-plus-2e booted from the microsd card. >=20 > I took the microsd card and put it in a USB media > reader and plugged it into the USB port and used the=20 > 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. >=20 > 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). >=20 > 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. >=20 > 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. >=20 >> rpi2 v1.1 failed the same way as before, including: >>=20 >> 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 =20 >>=20 >> FYI, FreeBSD-13.0-RELEASE-arm64-aarch64-ROCK64.img includes >> ubldr.bin : >>=20 >> # 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 >>=20 >> so I removed that and u-boot.img, and replaced u-boot.bin . >>=20 >>>>> and: >>>>>=20 >>>>> U-Boot 2021.04 (May 12 2021 - 13:36:42 +0000) >>>>> DRAM: 948 MiB >>>>> RPI 2 Model B (0xa21041) >>>>> . . . >>>>> =08FreeBSD/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 >>>>=20 >>>> This line doesn't looks good. >>>=20 >>> Yea, I noticed it but have done no investigation >>> as yet. (Only the RPi2 v1.1 that message. It is >>> the one notable difference.) >>>=20 >>>>> Booting /efi\boot\bootarm.efi >>>>> Consoles: EFI console =20 >>>>> |=08/=08-=08\=08|=08/=08-=08\=08|=08/=08 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]... =20 >>>>> Using DTB provided by EFI at 0x7ef6000. >>>>> Kernel entry at 0x33e00200... >>>>> Kernel args: (null) >>>>>=20 >>>>> No *.scr files, no ubldr* files. Showing >>>>> from the efi partition mounted on a Rock64: >>>>>=20 >>>>> # 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 >>>>>=20 >>>>> # find /mnt/efi/ -print >>>>> /mnt/efi/ >>>>> /mnt/efi/boot >>>>> /mnt/efi/boot/bootarm.efi >>>>>=20 >>>>> # ls -Tld /mnt/u* >>>>> -rwxr-xr-x 1 root wheel 475420 May 12 06:39:06 2021 = /mnt/u-boot.bin >>>>>=20 >>>>> # ls -Tld /mnt/*.scr >>>>> ls: /mnt/*.scr: Invalid argument >>>>>=20 >>>>> I'll not list the files from the RPi* firmware. >>>>>=20 >>>>>=20 >>>>>>> and that is the last of the output. >>>>>>>=20 >>>>>>> The RPi2 v1.1 is similar: >>>>>>>=20 >>>>>>> Hit [Enter] to boot immediately, or any other key for command = prompt. >>>>>>> Booting [/boot/kernel/kernel]... =20 >>>>>>> Using DTB provided by EFI at 0x7ef6000. >>>>>>> Kernel entry at 0x33e00200... >>>>>>> Kernel args: (null) >>>>>>>=20 >>>>>>> and that is the last of the output. >>>>=20 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=20 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) =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?99906599-273E-4216-A41E-DE642F33E392>