[U-Boot] Selecting from multiple device trees at runtime

Curt Brune curt at cumulusnetworks.com
Mon Jan 7 20:44:07 CET 2013



On 01/07/2013 10:36 AM, Stephen Warren wrote:
> On 01/07/2013 11:01 AM, Curt Brune wrote:
>> Hello,
>>
>> I am following up on this thread:
>> "Merging device trees at runtime for module-based systems"
>> http://lists.denx.de/pipermail/u-boot/2012-November/139618.html
>>
>> I do not have a modular based system, so I do not need the full
>> flexibility of merging DT fragments at runtime.  However, I am very
>> interested in being able to select a full DT from a list of DT's at
>> runtime.  I believe this is a degenerate case of the more general N x M
>> modular case.
>>
>> The background:  I have a number of different platforms running u-boot.
>>   They all use the same Linux kernel and initramfs, but different DT.
>>
>> What I would love is to have a single multi-file uImage I could use on
>> all my platforms.  The idea is to introduce a new image type that is a
>> list of device tree blobs.
>>
>> The uImage would contain a list of dtb's and u-boot would select the
>> correct one at runtime.  u-boot could iterate through the list
>> inspecting the "model" property of the  root node.
>
> For this scenario, why not just put each DTB file into the file-system
> under a separate name, and use U-Boot's board variable to select the
> correct one at run-time, e.g.:
>
> ext2load ${devtype} ${devnum}:${rootpart} ${kernel_addr_r} /boot/zImage
> ext2load ${devtype} ${devnum}:${rootpart} ${fdt_addr_r} \
> 	/boot/${soc}-${board}.dtb
> bootz ${kernel_addr_r} - ${fdt_addr_r}
>

That is a good idea, except for one small wrinkle I forgot to include in 
the use case -- the platforms I am using arrive from the vendors with 
u-boot installed and nothing else.  All I can count on is a u-boot in 
the NOR flash and an uninitialized mass storage device.

The uImage with all the dtb's I'm thinking of is an installer that would 
provision the mass storage device and bootstrap our software.  After 
that step I could use your idea for subsequent boots.

I would like all my vendors to adopt a u-boot feature whereby I can use 
a single installer uImage without defining how the mass storage device 
should be partitioned.

Cheers,
Curt


More information about the U-Boot mailing list