Re: u-boot debug, was: Re: U-boot on RPI3, sees disk but won't boot it
- In reply to: Mark Millard : "Re: u-boot debug, was: Re: U-boot on RPI3, sees disk but won't boot it"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 11 Oct 2022 16:27:54 UTC
[This was composed yesterday but accidentally not sent.] On 2022-Oct-10, at 19:37, Mark Millard <marklmi@yahoo.com> wrote: > [Summary of armv7 experiments: it looks like the RPi2B v1.1 armv7 > support is broken on FreeBSD's main [so: 14].] Turns out to be that main's EFI loader is the source of the failure. Using the EFI loader from 13.1-STABLE instead works just fine with the otherwise-main context. > On 2022-Oct-10, at 00:08, Mark Millard <marklmi@yahoo.com> wrote: > >> On 2022-Oct-9, at 21:44, Mark Millard <marklmi@yahoo.com> wrote: >> >>> On 2022-Oct-9, at 19:29, Mark Millard <marklmi@yahoo.com> wrote: >>> >>>> On 2022-Oct-9, at 17:28, bob prohaska <fbsd@www.zefox.net> wrote: >>>>> . . . >>>>> Is it possible to boot ARMv7 on a Pi3 or Pi4? >>>> >>>> There is no ARMv7 EDK2 so far as I know. So the ARMv7 U-Boot would >>>> need to be in use U-Boot and the ARMv7 RPi* firmware files would >>>> need to be present. >>>> >>>> https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/ (the end of >>>> the BETA) is from this year. Prior to that the official support was >>>> all ARMv7 or ARMv6 based. >>>> >>>>> That would let me >>>>> set up a single SATA drive that could be tested on any host in >>>>> my collection with any candidate USB-SATA bridge. >>>> >>>> As I understand, such could work. But I've not tested such >>>> combinations. I doubt that those FreeBSD folks that developed >>>> the RPi4B support did much testing of armv7 use then or since. >>>> >>>> I'm not sure how much RAM would be put to use on a RPi4B with >>>> more than 2 GiBytes of RAM. >>> >>> My experiments indicate that the armv7 u-boot ( u-boot-rpi2 ) >>> does not deal with the RPi4B's USB: >>> >>> U-Boot 2022.04 (May 13 2022 - 23:52:35 +0000) >>> >>> DRAM: alloc space exhausted >>> 947 MiB >>> RPI 4 Model B (0xd03114) >>> Core: 195 devices, 9 uclasses, devicetree: board >>> MMC: mmc@7e300000: 3, emmc2@7e340000: 0 >>> Loading Environment from FAT... Card did not respond to voltage select! : -110 >>> In: serial >>> Out: serial >>> Err: serial >>> Net: No ethernet found. >>> starting USB... >>> No working controllers found >>> Hit any key to stop autoboot: 0 >>> Card did not respond to voltage select! : -110 >>> MMC Device 1 not found >>> no mmc device at slot 1 >>> MMC Device 2 not found >>> no mmc device at slot 2 >>> starting USB... >>> No working controllers found >>> USB is stopped. Please issue 'usb start' first. >>> starting USB... >>> No working controllers found >>> . . . >>> >>> Also, if I had a EtherNet dongle plugged in, it did not >>> even get that far. Note the "No ethernet found" as well >>> (no dongle present). >>> >> >> My experiments with: >> >> A) An RPi2B v1.1 (so actual armv7) >> and: >> B) An RPi3B (so aarch64, but a pre-RPi4B design) >> >> are incomplete but both work the same for as far >> as I got them to go. I got them to: >> >> >> . . . >> Using DTB provided by EFI at 0x7ef6000. >> Kernel entry at 0x36a00200... >> Kernel args: (null) >> >> >> and there is no more output. >> >> This means that the following all happened: >> >> A) RPi* firmware got U-Boot started. >> B) U-Boot got the FreeBSD loader started. >> C) The FreeBSD loader got as far as those messages >> after loading the kernel. >> >> Beyond that I do not know what is going on. >> >> Still, unlike the RPi4B, the RPi3B looks to be handled >> by the armv7 context (at least for as far as I got). >> >> > > Well, I tried: > > FreeBSD-14.0-CURRENT-arm-armv7-GENERICSD-20220930-42dc8696df5-258315.img > > and I get the same sort of hangup on both the RPi2B v1.1 and the > RPi3B when booting with the FreeBSD loader, kernel, and world on > the USB media. I've tried 2 types of USB media, both got the same > result. (microsd card media is involved in the early stages.) > > So I tried using just microsd card media produced with dd: > > A) The RPi2B v1.1 hangs the same sort of way again. > > There is no .dtb for the RPi3B unless added to the > microsd card. So adding it and trying: > > B) The RPi3B hangs the same sort of way again. > > So it looks like RPi2B v1.1 armv7 support is broken on FreeBSD. > > As I remember, HPS's patch is not in place yet in stable/13 . > So, armv7 FreeBSD main booting the RPi3B, other than the EFI loader being from 13.1-stable . The FreeBSD EFI loader, kernel, and world being on a USB3 NVMe SSD (used via a USB2 port): . . . CPU: ARM Cortex-A53 r0p4 (ECO: 0x00000080) CPU Features: Multiprocessing, Thumb2, Security, Virtualization, Generic Timer, VMSAv7, PXN, LPAE, Coherent Walk Optional instructions: SDIV/UDIV, UMULL, SMULL, SIMD(ext) LoUU:2 LoC:3 LoUIS:2 . . . # uname -apKU # Note: Output line split manually for better readability FreeBSD OPiP2E_RPI2v1p1 14.0-CURRENT FreeBSD 14.0-CURRENT #48 main-n258174-89a2ef4d5226-dirty: Sat Sep 24 19:37:56 PDT 2022 root@CA72_16Gp_ZFS:/usr/obj/BUILDs/main-CA7-nodbg-clang/usr/main-src/arm.armv7/sys/GENERIC-NODBG-CA7 arm armv7 1400070 1400070 So, while U-Boot prevents RPi4B's from booting via armv7 FreeBSD, RPi3B's can boot okay (absent other FreeBSD issues, anyway). The microsd card has all the required RPi* firmware ( including the bcm2710-rpi-3-b.dtb ) and has u-boot.bin . The microsd card does not have EFI/BOOT/bootarm.efi . Note: For my media, u-boot.bin is my patched version, including the Makefile needing the following to cause the patch file to be used: # git -C /usr/ports diff sysutils/u-boot-rpi2/ diff --git a/sysutils/u-boot-rpi2/Makefile b/sysutils/u-boot-rpi2/Makefile index 90c4e4d91827..9eca905f87c6 100644 --- a/sysutils/u-boot-rpi2/Makefile +++ b/sysutils/u-boot-rpi2/Makefile @@ -1,5 +1,6 @@ MASTERDIR= ${.CURDIR}/../u-boot-master +EXTRA_PATCHES= ${.CURDIR}/files/ PATCHFILES+= 939129/raw WWW= https://wiki.freebsd.org/FreeBSD/arm/Raspberry%20Pi Also, I happen to use the RPi* firmware vintage: # strings /boot/efi/start.elf | grep VC_BUILD_ID_ VC_BUILD_ID_USER: dom VC_BUILD_ID_TIME: 18:17:07 VC_BUILD_ID_VARIANT: start VC_BUILD_ID_TIME: Aug 3 2021 VC_BUILD_ID_BRANCH: bcm2711_2 VC_BUILD_ID_HOSTNAME: buildbot VC_BUILD_ID_PLATFORM: raspberrypi_linux VC_BUILD_ID_VERSION: 40787ee5905644f639a2a0f6e00ae12e517a2211 (clean) (The most recent that my limited tests showed as FreeBSD handling without crashing for the few models that I have access to, at least back when I did those tests.) === Mark Millard marklmi at yahoo.com