Solved Panic error everytime I try to find a file over the sd card when using FreeBSD on the Radxa Zero 3W.

Hello.

I've just installed FreeBSD 14.3-RELEASE on the Radxa Zero 3W without embedding the panfrost driver inside the kernel and I'm using a dtb file without any "DRM" code inside. I say this because actually on that board I see two different kinds of errors. The errors connected to the panfrost driver and the error that you see below. To understand if they were related,I have recompiled the kernel without DRM. They are not related. I see the error below everytime I stress the sd card a little bit more. For example, if I want to find a file with the command : "find / -name FreeBSD.conf". Some seconds after having issued the command,the error below appears :


WhatsApp Image 2025-09-28 at 20.00.24.jpeg



and then,everytime I should fix it with fsck but it does not last.


Screenshot_2025-09-28_20-53-46.png


It appears everytime. Someone can figure out why it happens and how to fix it ? I see it only when I use the Radxa Zero 3W. I can't use it anymore if I don't fix it. It is not usable.
 
On the Radxa Zero 3W I use the Jared McNeill EDK2 code with the HDMI frequencies modified with the help of covacat , because without the modification my HDMI displays were fluttering.

SDIO what does it stand for ?
 
I thought SDHC sat below SDIO in heirachy. It seems I was wrong.

Notice this from that wiki:
Bus width: 4 bit
Freq: 24.000 MHz(high-speed timing)
This is what I was talking about. Even on X86 BIOS there are different speed settings for SD Cards and the bus speed. I thought it was 40MHz and 50MHz.

My point was look in the EDK2 Firmware Settings and rummage around for hardware settings. Look for SDHC/SDIO speed settings.
They may not exist on ARM64 EDK2 and may be baked into dtb. I do not know.
 
One more thing I just remembered.

Jared EDK2 for rk356x has some important settings. How you boot EDK2.
Choices include:
EDK2 + ACPI
EDK2 + Device Tree

You can fiddle with that and eliminate dtb as problem.
 
In the Soren's image I'm not using u-boot,but the UEFI code of Jared.
What I did discover is there are binary images available for Rock 3W on his github. I just missed it. I had quizzed you earlier about it.
I want to see if it works with Radxa Rock-3E too.
Too many chores to try.
There is no reason to compile if binary is available. Right? Have you tried stock version from Jareds github? Then see if HDMI mods causes disk problem.
Work the problem from the beginning. Using serial cable and no mods.
 
Didn't you previously have massive problems with HEAT on Rock-3W?? That will crash a disk in no time.

I see to remember directing you to my Rock-3E temps running stress with uboot instead of EDK2.

Yes,at the moment I'm cooling down the board using a powerful USB fan pointed directly to it :

WhatsApp Image 2025-09-28 at 23.36.14.jpeg


In addition the board is cooled down with the thermal paste....I don't think the cause is the excessive heat.
Now I'm planning to boot FreeBSD using u-boot instead of ED2K on another sd card,to see if I have the same error.

---> Have you tried stock version from Jareds github ?

Good idea. Excluding factors one by one. How much patience is needed ?
 
Experiment 1 : Installing u-boot 2025 from the ports to the sd card instead of the ED2K of Jared :

Code:
.....
s  -I . -I . -I ./board/radxa/zero3-rk3566 -I dts/upstream/src/arm64 -a of-list="rockchip/rk3566-radxa-zero-3w rockchip/rk3566-radxa-zero-3e"  -a atf-bl31-path=/usr/local/share/rkbin/rk35/rk3568_bl31_v1.44.elf -a tee-os-path= -a ti-dm-path= -a opensbi-path= -a default-dt="rockchip/rk3566-radxa-zero-3w" -a scp-path= -a rockchip-tpl-path=/usr/local/share/rkbin/rk35/rk3566_ddr_1056MHz_v1.21.bin -a spl-bss-pad= -a tpl-bss-pad=1 -a vpl-bss-pad=1 -a spl-dtb=y -a tpl-dtb= -a vpl-dtb= -a pre-load-key-path= -a of-spl-remove-props="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
Image 'simple-bin' is missing optional external blobs but is still functional: tee-os

/binman/simple-bin/fit/images/@tee-SEQ/tee-os (tee-os):
   See the documentation for your board. You may need to build Open Portable
   Trusted Execution Environment (OP-TEE) and build with TEE=/path/to/tee.bin

  ./scripts/check-of.sh .config ./scripts/of_allowlist.txt
===>  Staging for u-boot-radxa-zero3-2025.04
===>   u-boot-radxa-zero3-2025.04 depends on file: /usr/local/lib/libcrypto.so.12 - found
===>   Generating temporary packing list
/bin/mkdir -p /usr/ports/sysutils/u-boot-radxa-zero3/work/stage//usr/local/share/u-boot/u-boot-radxa-zero3
install  -m 0644 /usr/ports/sysutils/u-boot-radxa-zero3/work/u-boot-2025.04/idbloader.img /usr/ports/sysutils/u-boot-radxa-zero3/work/stage//usr/local/share/u-boot/u-boot-radxa-zero3
install  -m 0644 /usr/ports/sysutils/u-boot-radxa-zero3/work/u-boot-2025.04/u-boot.itb /usr/ports/sysutils/u-boot-radxa-zero3/work/stage//usr/local/share/u-boot/u-boot-radxa-zero3
install  -m 0644 /usr/ports/sysutils/u-boot-radxa-zero3/pkg-descr /usr/ports/sysutils/u-boot-radxa-zero3/work/stage//usr/local/share/u-boot/u-boot-radxa-zero3/README
====> Compressing man pages (compress-man)
===>  Installing for u-boot-radxa-zero3-2025.04
===>  Checking if u-boot-radxa-zero3 is already installed
===>   Registering installation for u-boot-radxa-zero3-2025.04
Installing u-boot-radxa-zero3-2025.04...

marietto# cd ./work/stage/usr/local/share/u-boot/u-boot-radxa-zero3/

marietto# ls
README        idbloader.img    u-boot.itb

marietto# gpart show

=>     40  2874920  da1  GPT  (119G) [CORRUPT]
       40    65496       - free -  (32M)
    65536   102400    1  efi  (50M)
   167936   524288    2  freebsd-swap  (256M)
   692224  2182656    3  freebsd-ufs  (1.0G)
  2874880       80       - free -  (40K)

marietto# ls
README        idbloader.img    u-boot.itb

marietto# dd if=idbloader.img of=/dev/da1 oflag=direct seek=64
392+0 records in
392+0 records out
200704 bytes transferred in 1.964037 secs (102190 bytes/sec)

marietto# dd if=u-boot.itb of=/dev/da1 oflag=direct seek=16384
2455+0 records in
2455+0 records out
1256960 bytes transferred in 10.535400 secs (119308 bytes/sec)

Unfortunately my "AOC" HDMI large screen does not turn on using those bootloaders even if they are new. Is this "normal" ?
 
sdta_vfs_vop_vop_sp<don't take pictures like this> looks like something DTrace (SDT probe) related in VFS code.
Perhaps, that would give you some clue.
 
sdta_vfs_vop_vop_sp<don't take pictures like this> looks like something DTrace (SDT probe) related in VFS code.
Perhaps, that would give you some clue.

I didn't understand anything. Can you elaborate your sentence using terms understandable by everyone ? In other words,what could be the cause of the error,in your opinion ? could it be related to the panfrost driver ? VOP = Visual Output Processor ?
 
Have you tried stock version from Jareds github? Then see if HDMI mods causes disk problem.

Experiment 2 : I've just installed the stock version from the Jared repo,without applying the HDMI frequencies mod of Cova. Then I have turned on the board and I've issued the command that crashes FreeBSD :

Code:
# find / -name FreeBSD.conf

and immediately,boom,the error happened.
 
----> There is no reason to compile if binary is available. Right ?

You need to compile the code to have the file "ZERO-3W_EFI.img",that's not present on the github.
 
This is interesting. I've mounted this image file,downloaded from the PersonalBSD website :

Code:
marietto# mdconfig -a -t vnode -f FreeBSD-aarch64-14.0-CURRENT-GENERIC-RK356X-20230516.img -u 0

Then I've copied the kernel and the modules to the sd card where I have installed the stock version of the Jared Mcneill UEFI code,to see if the error also happens with a different kernel. When I have issued the command : "find / -name FreeBSD.conf", it crashed more than usual :


WhatsApp Image 2025-09-29 at 23.09.12.jpeg



but this time the error is more informative...
 
The first kernel given to me by Soren does not crash :

WhatsApp Image 2025-09-29 at 23.58.13.jpeg



WhatsApp Image 2025-09-29 at 23.59.16.jpeg


It does not need to load any module. Maybe there is a bug when it loads a specific module...
 
One more thing I just remembered.

Jared EDK2 for rk356x has some important settings. How you boot EDK2.
Choices include:
EDK2 + ACPI
EDK2 + Device Tree

You can fiddle with that and eliminate dtb as problem.

Solution :

System Table Selection = ACPI
CPU Clock = Default (not Max).
CPU Clock Rate Mhz = 816

and the virtual fs does not crash anymore.
 
Back
Top