[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