* How to build U-Boot with a custom out-of-tree device tree
@ 2026-04-18 14:40 Johannes Krottmayer
2026-04-18 16:56 ` E Shattow
0 siblings, 1 reply; 2+ messages in thread
From: Johannes Krottmayer @ 2026-04-18 14:40 UTC (permalink / raw)
To: u-boot
[-- Attachment #1.1: Type: text/plain, Size: 922 bytes --]
Hello,
This question is generic and also valid for none RISC-V boards.
I think it's maybe already asked, but didn't find any useful
information this time. My question is, is it possible to pass
a specific device tree blob to the build system from U-Boot?
Example: RISC-V board Starfive VisionFive 2 8GiB variant
The default in-source-tree device tree from the VisionFive 2 has
only 4GiB RAM. I own the 8GiB (RAM-IC BiWin BMWZCX32H2A-64G-X)
variant. So therefore can I pass the device tree blob directly
to U-Boot's build system without modifying CONFIG_DEFAULT_DEVICE_TREE
in the device configuration? Exists there an environment variable?
Want to use U-Boot's EFI subsystem as loader for bare-metal
environments. And I think when I want to get the memory map
via EFI there will with the default device tree only <4GiB free
usable memory shown, although there are 8GiB.
Thanks in advance!
Kind regards,
Johannes K.
[-- Attachment #1.2: publickey - krotti83@proton.me - 0x1A5D6E0E.asc --]
[-- Type: application/pgp-keys, Size: 888 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 322 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: How to build U-Boot with a custom out-of-tree device tree
2026-04-18 14:40 How to build U-Boot with a custom out-of-tree device tree Johannes Krottmayer
@ 2026-04-18 16:56 ` E Shattow
0 siblings, 0 replies; 2+ messages in thread
From: E Shattow @ 2026-04-18 16:56 UTC (permalink / raw)
To: Johannes Krottmayer, u-boot
On 4/18/26 07:40, Johannes Krottmayer wrote:
> Hello,
>
> This question is generic and also valid for none RISC-V boards.
> I think it's maybe already asked, but didn't find any useful
> information this time. My question is, is it possible to pass
> a specific device tree blob to the build system from U-Boot?
>
> Example: RISC-V board Starfive VisionFive 2 8GiB variant
>
> The default in-source-tree device tree from the VisionFive 2 has
> only 4GiB RAM. I own the 8GiB (RAM-IC BiWin BMWZCX32H2A-64G-X)
> variant. So therefore can I pass the device tree blob directly
> to U-Boot's build system without modifying CONFIG_DEFAULT_DEVICE_TREE
> in the device configuration? Exists there an environment variable?
>
> Want to use U-Boot's EFI subsystem as loader for bare-metal
> environments. And I think when I want to get the memory map
> via EFI there will with the default device tree only <4GiB free
> usable memory shown, although there are 8GiB.
>
> Thanks in advance!
>
> Kind regards,
>
> Johannes K.
What you're asking about VisionFive 2 can be done simply. It is arranged
so that arch/riscv/dts/starfive-visionfive2-u-boot.dtsi is named in
starfive_visionfive2_defconfig DEVICE_TREE_INCLUDES and then that acts
with dts syntax to include the binman specific
starfive_visionfive2-binman.dtsi
Additionally there is the automatic dts inclusion mechanism from
scripts/Makefile.lib approximately source line 230 you can see the
precedence there; An example of this, look at some of my patch series
when I posted before the necessary files to support the series had
landed in devicetree-rebasing, my approach was to create empty
directory/files as necessary in the devicetree-rebasing subtree but to
create the special "<"
whatever-we're-currently-doing-in-the-build-system-u-boot.dtsi which
happens to be the board variant specific empty file I created in
devicetree-rebasing subtree and with our -u-boot.dtsi automatic
inclusion prefix. It's simple, it just is not easy for me to explain
clearly so I hope you may follow what I am describing.
As long as there is a directory and/or file (may be empty, cannot be
missing entirely) in the subtree for devicetree-rebasing, and suitable
variant board is named in the OF_LIST, then the build will recurse into
the upstream-rebasing for those file targets.
For local testing one approach I've had good success with is to replace
the dts/upstream/src/riscv/starfive directory with a symbolic link to a
local checkout of the linux repository arch/riscv/boot/dts/starfive and
I make my changes in linux repository, then simply recompile U-Boot. I
wish this were a U-Boot compile time option to refer to a local Linux
repository; I looked into making this change but it's very specific to
devicetree-rebasing with many hardcoded assumptions.
-E
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-04-18 16:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-18 14:40 How to build U-Boot with a custom out-of-tree device tree Johannes Krottmayer
2026-04-18 16:56 ` E Shattow
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox