Re: Failed to execute custom kernels which where build on a RPi 4 operated by 13.1-RELEASE
Date: Tue, 05 Jul 2022 06:41:37 UTC
On 2022-Jul-4, at 20:14, John Kennedy <warlock@phouka.net> wrote: > On Mon, Jul 04, 2022 at 06:39:39PM -0700, Mark Millard wrote: >> ... I have yet to have my hands on a 0xb03115 RPi4B variant (so: Rev 1.5). >> It is my understanding that the RPi4B firmware vintage has to be >> recent enough to correctly handle the new PMIC used on the rev 1.5 >> variants: >> >> QUOTE (of RPi engineers on its forums on 2022-Feb-08): >> The PMIC has been changed. Needs firmware from April 21 or later > > Mark, do you know how to find that info just using FreeBSD? > Looks like there might be some uboot stuff, but I haven't managed to > catch it during a HDMI boot. > Note: I do my own builds, installs, and configuration experiments. Do not expect my example outputs below to necessarily match those for official builds. For reference from my root-on-UFS aarch64 environment that boots via U-Boot (not via EDK2 UEFI/ACPI): # df -m Filesystem 1M-blocks Used Avail Capacity Mounted on /dev/gpt/CA72USBufs 1322130 224991 991368 18% / devfs 0 0 0 100% /dev /dev/gpt/CA72USBefi 259 29 230 11% /boot/efi Your builds or standard-build details may vary for what I have as /boot/efi/. # sysctl hw.fdt # Likely a RPi* specific sysctl name? hw.fdt.serial-number: REPLACED hw.fdt.compatible: raspberrypi,4-model-b brcm,bcm2711 hw.fdt.model: Raspberry Pi 4 Model B Rev 1.4 I'm not aware of being able to identify the RPi4B EEPROM content version from FreeBSD, nor the configuration defaults that are present. But it can be important. (More notes later.) Presuming that one has not mixed and matched RPi* firmware files from different RPi* firmware builds, the start*.elf files have version identification information (that predates the tagging date when it is declared as expected to be good): # strings -a /boot/efi/start4.elf | grep VC_BUILD_ID_ VC_BUILD_ID_USER: dom VC_BUILD_ID_TIME: 18:14:56 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) So it may take some comparisons to match up with officially tagged versions or other specific versions the FreeBSD ports may sometimes use. Similarly for which FreeBSD port version it matches up with (presuming it does). I'll note that the PMIC issue is not a U-Boot issue but just a RPi* EEPROM version and RPi* firmware issue, as far as I know anyway. I'm not aware of anything useful to find in /boot/efi/armstub8-gic.bin (or armstub8.bin) for version identification. # strings -a /boot/efi/u-boot.bin | grep 'U-Boot 20' U-Boot 2022.04 (Apr 23 2022 - 03:14:35 +0000) The date here is the build date, not the version date. So it can be useful in matching up with FreeBSD port builds if you have used an official FreeBSD port build's content. This does not indicate which of the several RPi* related u-boot ports is involved. For aarch64 RPi*'s the modern one used by official builds is: sysutils/u-boot-rpi-arm64 It supports the widest range of aarch64 RPi*'s. # strings -a /boot/efi/efi/boot/bootaa64.efi | grep 'EFI loader' DFreeBSD/arm64 EFI loader, Revision 1.1 But, so far as I know, that one is nearly useless. As for the RPi4B EEPROM mentioned before: I'm not aware of a FreeBSD equivalent of either of the below for identifying the CURRENT version: # rpi-eeprom-update *** UPDATE AVAILABLE *** BOOTLOADER: update available CURRENT: Tue Jan 25 14:30:41 UTC 2022 (1643121041) LATEST: Tue Apr 26 10:24:28 UTC 2022 (1650968668) RELEASE: default (/lib/firmware/raspberrypi/bootloader/default) Use raspi-config to change the release. VL805_FW: Using bootloader EEPROM VL805: up to date CURRENT: 000138a1 LATEST: 000138a1 # rpi-eeprom-config [all] BOOT_UART=1 WAKE_ON_GPIO=1 POWER_OFF_ON_HALT=0 DHCP_TIMEOUT=45000 DHCP_REQ_TIMEOUT=4000 TFTP_FILE_TIMEOUT=30000 ENABLE_SELF_UPDATE=1 DISABLE_HDMI=0 BOOT_ORDER=0xf41 I boot a RaspiOS64 microsd card for the related activity. For reference for the default (a.k.a. critical) ones: # cd /lib/firmware/raspberrypi/ # ls -ld bootloader/default/*.bin -rw-r--r-- 1 root root 524288 Apr 29 2020 bootloader/default/pieeprom-2020-04-16.bin -rw-r--r-- 1 root root 524288 Sep 14 2020 bootloader/default/pieeprom-2020-09-03.bin -rw-r--r-- 1 root root 524288 Apr 30 2021 bootloader/default/pieeprom-2021-03-18.bin -rw-r--r-- 1 root root 524288 Apr 30 2021 bootloader/default/pieeprom-2021-04-29.bin -rw-r--r-- 1 root root 524288 Feb 8 07:07 bootloader/default/pieeprom-2022-01-25.bin -rw-r--r-- 1 root root 524288 May 3 05:21 bootloader/default/pieeprom-2022-04-26.bin -rw-r--r-- 1 root root 87940 May 3 05:21 bootloader/default/recovery.bin -rw-r--r-- 1 root root 98904 Jan 22 2020 bootloader/default/vl805-000137ad.bin -rw-r--r-- 1 root root 99224 Sep 14 2020 bootloader/default/vl805-000138a1.bin === Mark Millard marklmi at yahoo.com