you`ll have to hack u-boot&kernel drivers Re: RPI5 16GB panic on boot

From: Klaus_Küchemann <maciphone2_at_googlemail.com>
Date: Sun, 02 Feb 2025 17:06:08 UTC

> Am 02.02.2025 um 10:56 schrieb Ronald Klop <ronald-lists@klop.ws>:
> 
> 
> No valid device tree blob found!
> 


For FreeBSD go the u-boot fdt-based way ! ( since all existing drivers rely on that)..
A device tree blob( dtb) is a compiled binary which is read in by u-boot , 
While a device tree source( dts) can be compiled into u-boot`kernel directly…. 

Some steps further here. I just show you the things I’ve already hacked ( in u-boot & fbsd-kernel), 
Not showing you the things which have to be future-hacked into the kernel:-),
 it’ll be a massive hack because e.g because the RP1 chip has many things  hanging behind pcie,
I have currently  pcie detected in boot but there`s something more to do/hack regarding DMA….. and so further and so on   :

…
  4.05 dt-match: compatible: brcm,bcm2712 match: brcm,bcm2712….
… 4.95 Loading 'bcm2712-rpi-cm5-cm5io.dtb' to 0x00000000 offset 0x100
  5.06 Read bcm2712-rpi-cm5-cm5io.dtb bytes    80587 hnd 0x198b
…   5.84 MESS:00:00:05.184071:0: Loaded overlay ‚dwc2‘…
  5.04 Loading 'u-boot.bin' to 0x00000000 offset 0x200000,,
  5.39 Read u-boot.bin bytes   694000 hnd 0x148d…
….
—————————
U-Boot 2025.01 (Jan 19 2025 - 06:10:39 +0100)

DRAM:  1020 MiB (effective 4 GiB)
RPI: Board rev 0x18 outside known range
RPI Unknown model (0xc04180)
Core:  25 devices, 12 uclasses, devicetree: board
MMC:   mmc@fff000: 0, mmc@1100000: 1
Loading Environment from FAT... ** Bad device specification mmc 1 **
In:    serial,usbkbd
Out:   serial,vidconsole
Err:   serial,vidconsole
Net:   No ethernet found.

starting USB...
Bus usb@480000: USB DWC2
scanning bus usb@480000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0  Cannot persist EFI variables without system partition
** Booting bootflow '<NULL>' with efi_mgr
Booting: mmc 0

———
Consoles: EFI console  
    Reading loader env vars from /efi/freebsd/loader.env
Setting currdev to disk0p1:
FreeBSD/arm64 EFI loader, Revision 3.0
(Sat Feb  1 03:46:15 UTC 2025 root@fbsd5pro)

   Command line arguments: loader.efi
   Image base: 0x3e54d000
   EFI version: 2.100
   EFI Firmware: Das U-Boot (rev 8229.256)
   Console: efi,comconsole (0)
   Load Path: /\EFI\BOOT\BOOTAA64.EFI
   Load Device: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,6d00000004000000)/eMMC(0)/eMMC(0)/HD(1,0x01,0,0x800,0x19000)
   BootCurrent: 0000
   BootOrder: 0000[*]
   BootInfo Path: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,6d00000004000000)/eMMC(0)/eMMC(0)
Ignoring Boot0000: Only one DP found
Trying ESP: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,6d00000004000000)/eMMC(0)/eMMC(0)/HD(1,0x01,0,0x800,0x19000)
Setting currdev to disk0p1:
Trying: /VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,0000000000000000)/VenHw(e61d73b9-a384-4acc-aeab-82e828f3628b,6d00000004000000)/eMMC(0)/eMMC(0)/HD(2,0x01,0,0x19800,0x9e6800)
Setting currdev to disk0p2:
Loading /boot/defaults/loader.conf
Loading /boot/defaults/loader.conf
Loading /boot/device.hints
Loading /boot/loader.conf
Loading /boot/loader.conf.local
/

————

Loading kernel…
—

Booting [/boot/kernel/kernel]...               
Using DTB provided by EFI at 0x3e6da000.
Loading splash ok
---<<BOOT>>---
GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
WARNING: Cannot find freebsd,dts-version property, cannot check DTB compliance
Copyright (c) 1992-2025 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 15.0-CURRENT #3: Sat Feb  1 16:02:48 UTC 2025
    root@fbsd5pro:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2)
WARNING: WITNESS option enabled, expect reduced performance.
VT: init without driver.
real memory  = 4290248704 (4091 MB)
avail memory = 4152508416 (3960 MB)
Starting CPU 1 (100)
Starting CPU 2 (200)
Starting CPU 3 (300)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
random: unblocking device.
random: entropy device external interface
kbd0 at kbdmux0
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
regfix0: <Fixed Regulator> on simplebus0
regfix1: <Fixed Regulator> on simplebus0
simplebus1: <Flattened device tree simple bus> on ofwbus0
ofw_clkbus0: <OFW clocks bus> on ofwbus0

———

simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0x7d542000-0x7d542eff on simplebus0
bcm2835_firmware0: <BCM2835 Firmware> on simplebus0
ofw_clkbus1: <OFW clocks bus> on bcm2835_firmware0
—

psci0: <ARM Power State Co-ordination Interface Driver> on ofwbus0
smccc0: <ARM SMCCC v1.2> on psci0

——
gic0: <ARM Generic Interrupt Controller> mem 0x107fff9000-0x107fff9fff,0x107fffa000-0x107fffbfff,0x107fffc000-0x107fffdfff,0x107fffe000-0x107fffffff irq 86 on simplebus1
gic0: pn 0x2, arch 0x2, rev 0x1, implementer 0x43b irqs 320
—
usbus1: 480Mbps High Speed USB v2.0
ugen1.1: <DWCOTG OTG Root HUB> at usbus1
uhub0 on usbus1
uhub0: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
bcm2835_cpufreq0: ARM 1500MHz, Core 500MHz, SDRAM 0MHz, Turbo OFF
CPU  0: ARM Cortex-A76 r4p1 affinity:  0  0
                   Cache Type = <IDC,64 byte CWG,64 byte ERG,64 byte D-cacheline,PIPT I-cache,64 byte I-cacheline>
 Instruction Set Attributes 0 = <DP,RDM,Atomic,CRC32,SHA2,SHA1,AES+PMULL>
 Instruction Set Attributes 1 = <RCPC-8.3,DCPoP>
 Instruction Set Attributes 2 = <>
         Processor Features 0 = <CSV3,CSV2,RAS,AdvSIMD+HP,FP+HP,EL3,EL2,EL1,EL0 32>
         Processor Features 1 = <PSTATE.SSBS>
         Processor Features 2 = <>
      Memory Model Features 0 = <TGran4,TGran64,TGran16,SNSMem,BigEnd,16bit ASID,1TB PA>
      Memory Model Features 1 = <XNX,PAN+ATS1E1,LO,HPD+TTPBHA,VH,16bit VMID,HAF+DS>
      Memory Model Features 2 = <32bit CCIDX,48bit VA,IESB,UAO,CnP>
      Memory Model Features 3 = <>
      Memory Model Features 4 = <>
             Debug Features 0 = <DoubleLock,2 CTX BKPTs,4 Watchpoints,6 Breakpoints,PMUv3p1,Debugv8p2>
             Debug Features 1 = <>
         Auxiliary Features 0 = <>
         Auxiliary Features 1 = <>
AArch32 Instruction Set Attributes 5 = <RDM,CRC32,SHA2,SHA1,AES+VMULL,SEVL>
AArch32 Media and VFP Features 0 = <FPRound,FPSqrt,FPDivide,DP VFPv3+v4,SP VFPv3+v4,AdvSIMD>
AArch32 Media and VFP Features 1 = <SIMDFMAC,FPHP Arith,SIMDHP Arith,SIMDSP,SIMDInt,SIMDLS,FPDNaN,FPFtZ>
CPU  1: ARM Cortex-A76 r4p1 affinity:  1  0
CPU  2: ARM Cortex-A76 r4p1 affinity:  2  0
CPU  3: ARM Cortex-A76 r4p1 affinity:  3  0
gic0: using for IPIs
Release APs...Trying to mount root from ufs:/dev/ufs/rootfs [rw]..
---