Radxa Zero 3W temperatures too high even using the heatsink created especially for the radxa 3W

Hello to everyone.

I’ve bought this heatsink for my radxa 3W :


and I’ve applied it on top of the board :

WhatsApp Image 2025-06-18 at 16.40.18.jpeg


The problem is that…it does not work,as u can see below,the temperatures are very high,anyway :

Screenshot_2025-06-18_17-02-32.jpg


where is my error ? what should I do to keep the temperatures down ?

(I’m using FreeBSD 14.2-RELEASE).
 
The DTB controls regulators and other electronics onboard. My first thought is there.
Incorrect dtb can cause overheating.

Is that idle or under load?
 
The DTB controls regulators and other electronics onboard. My first thought is there.
Incorrect dtb can cause overheating.

Is that idle or under load?

it is idle and I'm using the DTB files of Soren. I imagine that a good experiment is to install Linux on the board to see if the temperatures are so high.
 
Compared to u-boot does that run it hot too? That would be a good testing of theory. Do other installations run hot?

When you say "Sorens" are you using the test images he provided for 14-STABLE from around January. The dtb from that work?
 
This is where building u-boot on FreeBSD comes in handy. When you build the port for zero3 there will also be DTB file generated.
I have never had trouble with those.
 
For context my Zero3 E has no problems whatsoever running stress with four instances.
I have a thread somewhere with my results.
Build u-boot from ports. Scape the dtb. It's SOP.
 
I don't know. I should install Linux on another sd card and insert the sd card inside the slot.
He gave to me the image of FreeBSD 14.3-STABLE. Later I have recompiled kernel and userland to 14.2-RELEASE,but I'm using the same dtb file,that I have extracted from the kernel file that he added inside the image.
I saw hot temperatures from the first day he gave to me the image file.
 
For context my Zero3 E has no problems whatsoever running stress with four instances.
I have a thread somewhere with my results.
Build u-boot from ports. Scape the dtb. It's SOP.

Can you attach the DTB file that you are using ? I want to see if your file works better for me...thanks.
 
Build u-boot from ports. Scape the dtb. It's SOP.

In the Soren's image I'm not using u-boot,but the UEFI code of Jared. That's because I'm using an HDMI screen. Without that code I couldn't use it. What's the name of the port to install u-boot with the dtb module ?
 
Jareds booloader is made to run on quartz64. Did you build the zero3w branch?

With EDK2 you need to choose ACPI+FDT to use dtb

cd /usr/ports/sysutils/u-boot-radxa-zero3
make
find /usr/ports -name "*.dtb"
 
Jareds booloader is made to run on quartz64. Did you build the zero3w branch?

Yes.

With EDK2 you need to choose ACPI+FDT to use dtb

Chosen.

Code:
# cd /usr/ports/sysutils/u-boot-radxa-zero3
# make

I'm not able to compile u-boot,FreeBSD goes in kernel panic everytime.
What's the name of the dtb file that should be produced ? I want to try to install it via packages.
 
Soren says that the radxa 3 DTSi misses the needed stuff to make FreeBSD frequency control work, so even using powerd it will probably run full throttle all the time.

So,this is the reason why I get hot temperatures.
 
I should apply this patch :

Code:
Index: rk3566-radxa-zero-3.dtsi

===================================================================

--- rk3566-radxa-zero-3.dtsi    (revision 1731)

+++ rk3566-radxa-zero-3.dtsi    (working copy)

@@ -91,18 +91,22 @@

 

 &cpu0 {

        cpu-supply = <&vdd_cpu>;

+       clocks = <&cru ARMCLK>;

 };

 

 &cpu1 {

        cpu-supply = <&vdd_cpu>;

+       clocks = <&cru ARMCLK>;

 };

 

 &cpu2 {

        cpu-supply = <&vdd_cpu>;

+       clocks = <&cru ARMCLK>;

 };

 

 &cpu3 {

        cpu-supply = <&vdd_cpu>;

+       clocks = <&cru ARMCLK>;

 };

 

 &gpio0 {

This is what I did. Now,I would like to build all the dtsi files stored on the directory /mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree or maybe only the one I need,called "rk3566-radxa-zero-3.dtsi".

This is what i tried to do :

Code:
marietto# cd /mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree

marietto# make TARGET_ARCH=aarch64 TARGET=arm64 -DNO_CLEAN

make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 6: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 15: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 17: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 20: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 41: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 43: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 44: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 46: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 71: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 74: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 77: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 82: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 83: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 85: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 86: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 87: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 89: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 90: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 92: Variable/Value missing from "export"
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 100: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 110: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 53: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 64: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 199: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 204: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 206: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 259: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/scripts/Kbuild.include" line 278: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 123: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 124: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 125: Invalid line type
make: "/mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree/Makefile" line 163: Invalid line type
make: Fatal errors encountered -- cannot continue
make: stopped in /mnt/zroot2/zroot2/OS/BSD/FreeBSD/arm64/img/Radxa-3W/Stuff/covacat/usr/src-soren/sys/contrib/device-tree

Unfortunately this is not the right way to do this...
 
What I would do is look at FreeBSD 15.0-CURRENT. The aarch images.

Inside the /boot/dtb/ directory is all the dtb for ports tree u-boots.

ls -1 /mnt/boot/dtb/rockchip/
Code:
rk3328-nanopi-r2s.dtb
rk3328-rock-pi-e.dtb
rk3328-rock64.dtb
rk3399-firefly.dtb
rk3399-khadas-edge-captain.dtb
rk3399-khadas-edge-v.dtb
rk3399-khadas-edge.dtb
rk3399-nanopc-t4.dtb
rk3399-nanopi-r4s.dtb
rk3399-rock-4c-plus.dtb
rk3399-rock-pi-4.dtb
rk3399-rockpro64.dtb
rk3566-quartz64-a.dtb
rk3566-radxa-zero-3e.dtb
rk3566-radxa-zero-3w.dtb
rk3568-nanopi-r5s.dtb
 
To do a custom/patched dtsi you could build the FreeBSD port of sysutils/u-boot-radxa-zero3 and then patch u-boot and rebuild.

Earlier you mentioned you could not build your port on FreeBSD. That means you have something set wrong.

If you cannot compile a port than you fix that problem now. Do not pass go.

Recompiling the port with your patch might need help. You can stab it in or build an official patch.
 
marietto# make TARGET_ARCH=aarch64 TARGET=arm64 -DNO_CLEAN
This is harder to me than u-boot but doable. Compiling Device-Tree. Search for clues here on forum. covacat at cpp stuff. Ignore the unit questions in beginning.

 
Back
Top