Re: Troubles booting Pi2 from USB using bootcode.bin method
Date: Fri, 29 Oct 2021 18:24:30 UTC
I should have stated earlier that the FreeBSD system on the USB3 disk orginated from FreeBSD-13.0-RELEASE-arm-armv7-GENERICSD.img using dd and then repartitioning to add a swap and separate /usr partition. On Thu, Oct 28, 2021 at 04:53:29PM -0700, Mark Millard wrote: > On 2021-Oct-28, at 15:21, Mark Millard <marklmi at yahoo.com> wrote: > > > On 2021-Oct-28, at 12:16, bob prohaska <fbsd@www.zefox.net> wrote: > > > >> To make a clean start on this thread I've turned on the UART > >> for bootcode.bin per Mark's instructions and done a few boot > >> attempts with the USB2 and USB3 mechanical disks, singly and > >> in unison. > >> > >> The bootlogs are in > >> http://www.zefox.net/~fbsd/rpi2/bootproblems/ > >> > >> An immediate curiosity is that on the first try, booting > >> with the USB3 device alone worked. I didn't record that > >> output, unfortunately. > > > > Hmm. Too bad. > > Indeed! I thought maybe the failure was fixed by turning on the UART... > >> The second attempt failed, as expected, > >> and is recorded in bootlog-fail. The third attempt booted both > >> USB2 and USB3 disks together, recorded in bootlog.success. > > > > The two logs do not have the same set of dtdebug messages > > for loading bcm2709-rpi-2-b.dtb . This is long before > > u-boot.bin is loaded and so is during the RPi* firmware > > time frame not u_Boot or FreeBSD;s loader or FreeBSD's kernel > > or FreeBSD's world. > > > > From this I infer that there are two different msdosfs's > > wtith differing content on the 2 drives and when both > > drives are in place . > > That's correct. Actually there are three, counting the microSD. > > You have not reported on the following for either drive's > > msdosfs : > > > > # strings ???/start.elf | grep "VC_BUILD_" > > The are different. On the USB3 disk, which I want to boot, I get bob@www:/boot/msdos % strings start.elf | grep "VC_BUILD_" VC_BUILD_ID_USER: dom VC_BUILD_ID_TIME: 12:12:09 VC_BUILD_ID_VARIANT: start VC_BUILD_ID_TIME: Feb 25 2021 VC_BUILD_ID_BRANCH: bcm2711_2 VC_BUILD_ID_HOSTNAME: buildbot VC_BUILD_ID_PLATFORM: raspberrypi_linux VC_BUILD_ID_VERSION: 564e5f9b852b23a330b1764bcf0b2d022a20afd0 (clean) On the USB2 disk, which seems to be needed for booting, I get oot@www:/mnt # strings start.elf | grep "VC_BUILD_" VC_BUILD_ID_USER: dom VC_BUILD_ID_TIME: 16:43:13 VC_BUILD_ID_BRANCH: master VC_BUILD_ID_VARIANT: start VC_BUILD_ID_TIME: Nov 19 2019 VC_BUILD_ID_HOSTNAME: buildbot VC_BUILD_ID_PLATFORM: raspberrypi_linux VC_BUILD_ID_VERSION: 2354eac70a98807e06bed2149bc0c5613e751c15 (clean) > > Another thing of interest would be something like (both > > msdosfs mounts): > > > > # diff -rq ... ... > > > > in order to see what files have distinctions on the > > two media. A diff of the two config.txt files would be > > relevant (no -q involvement). > > > > On the USB3 disk config.txt contains bob@www:/boot/msdos % more config.txt init_uart_clock=3000000 enable_uart=1 kernel=u-boot.bin kernel7=u-boot.bin dtoverlay=mmc enable_uart=1 uart_2ndstage=1 dtdebug=1 On the USB2 disk config.txt contains root@www:/mnt # more config.txt init_uart_clock=3000000 enable_uart=1 kernel=u-boot.bin kernel7=u-boot.bin dtoverlay=mmc > >> I'm trying to build u-boot-rpi2 and will try to update the USB3 > >> disk with it once complete. Still working on that part 8-) > >> > >> The actual boot sequence using bootcode.bin is still a bit hazy: > >> Is it microSD/dos -> USB/dos ->USB/freebsd ? > >> > > > > Based on the log file for success the ordering is > > > > bootcode.bin from the microsd card So bootcode.bin runs from the microSD, but config.txt and all else is picked up from whichever USB disk is recognized first? > > config.txt (also re-read multiple times later, not listed) > > start.elf > > fixup.dat > > bcm2709-rpi-2-b.dtb > > overlays/mmc.dtbo > > cmdline.txt (if it exists) > > u-boot.bin > > efi/boot/bootarm.efi > > efi/freebsd/loader.env > > /boot/defaults/loader.conf > > /boot/device.hints > > /boot/loader.conf > > /boot/loader.conf.local > > /boot/boot/kernel > > /boot/kernel/fi.lemon.ko > > /boot/kernel/umodem.ko > > FreeBSD world > > > > > > However the failing one has the following involved > > (I omit various lines): > > > > . . . > > Loading 'bcm2709-rpi-2-b.dtb' to 0x100 size 0x6879 > > Unknown dtparam 'pwr_led_gpio' - ignored > > dterror: no symbols found > > dtdebug: /__overrides__ node not found > > Unknown dtparam 'uart0_clkrate' - ignored > > dtdebug: Opened overlay file 'overlays/mmc.dtbo' > > brfs: File read: /mfs/sd/overlays/mmc.dtbo > > dterror: not a valid FDT - err -9 > > . . . > > > > That seqeunce makes no mention of: "using platform 'bcm2835'" > > and the like. An example is: "found override pwr_led_gpio". > > > > Again, all this looks like tehre are two msdosfs involved and > > the two are not the same by content. > > > > Another possibility is that you have more in the microsd card's > msdosfs than just bootcode.bin so that that microsd card might > be the source of alternative files. (That makes up to 3 media > that might be sources of files.) That's correct. The microSD's msdos partition contains -rwxr-xr-x 1 root wheel 52456 Oct 28 02:12 bootcode.bin -rwxr-xr-x 1 root wheel 52456 Oct 22 16:00 bootcode.bin-e -rwxr-xr-x 1 root wheel 52304 Nov 22 2019 bootcode.old -rwxr-xr-x 1 root wheel 0 Jan 16 2021 timeout drwxr-xr-x 1 root wheel 4096 Jan 16 2021 unused I'm expecting that only bootcode.bin and timeout are involved. Thanks for looking! bob prohaska