[U-Boot] [RFC] Remove static display data
Simon Glass
sjg at chromium.org
Mon Jul 29 18:50:49 CEST 2013
Hi Eric,
On Sun, Jul 28, 2013 at 1:22 PM, Eric Nelson <
eric.nelson at boundarydevices.com> wrote:
> Hi Simon,
>
>
> On 07/28/2013 11:09 AM, Simon Glass wrote:
>
>> Hi Eric,
>>
>> On Sun, Jul 28, 2013 at 10:57 AM, Eric Nelson
>> <eric.nelson at boundarydevices.**com <eric.nelson at boundarydevices.com>
>> <mailto:eric.nelson@**boundarydevices.com<eric.nelson at boundarydevices.com>>>
>> wrote:
>>
>> On our boards, we store the environment in SPI-NOR, but in a separate
>> 8k block.
>>
>> I presume the "bound" fdt will be stored immediately after U-Boot,
>> which will move around a bit as the code changes.
>>
>> Yes - it would be nice to have an option to put the FDT anywhere, but
>> that is not supported at present. Even better if SPL could load it.
>> Better again if U-Boot plus its FDTs could be a FIT image and SPL could
>> load that and select the correct FDT.
>>
>>
> That's a whole bunch of TLAs :)
>
Sorry, I mean:
FDT - flat device tree
SPL - secondary program loader - the little thing that loads U-Boot
FIT - flat image tree - a type of file that can hold multiple
kernels/FDTs/ramdisks that can be selected at boot
> I don't see any major blockers in any of these, though our immediate
> goals are much more modest:
> - put display configuration into a read/write spot, and
> - allow users to specify resolutions for HDMI and timing
> information for new panels
>
> If we can just parse block(s) of DT text, then update or append
> that to the kernel FDT, I think we can meet our needs.
Sounds good.
>
>
>
>>
>> The FDT is normally stored immediately after U-Boot, but I
>> suppose we
>> could add an option for the FDT to live elsewhere, or perhaps be
>> loaded
>> from flash live the environment. Actually the latter is already
>> possible
>> by reading the new FDT into RAM in your boot script, and making
>> U-Boot
>> use it, something like:
>>
>> sf probe
>> sf read <addr> ...
>> fdt addr -c <addr>
>>
>> At the moment, we intend to normally load the FDT from the same media
>> as the kernel for a couple of reasons:
>>
>> - It's not needed at all for non-Linux uses (we support
>> Windows
>> Embedded, QNX, et cetera)
>>
>> - We'll likely need separate FDTs for different boards which
>> can execute the same U-Boot binary (Nitrogen6x, SABRE Lite)
>> unless we can figure out a way to place small conditionals
>> in the FDT
>>
>> We attach a kernel FDT to the kernel image. Passing U-Boot's FDT to the
>> kernel is an option that I haven't explored, and is probably only
>> possible if it can be updated.
>>
>>
> I'm coming at this from the other direction: I've only seen how to
> load FDT from secondary storage and hand it to the kernel with bootm.
>
That's easy - just put it in a FIT. Then you can package the kernel and
various FDTs into that FIT, use bootm to load it.
If you do enable CONFIG_OF_CONTROL, then also enable CONFIG_FIT_BEST_MATCH
- it will choose the correct one for the kernel based on U-Boot's
compatible information. Then the FDT selection becomes automatic.
>
> Regards,
>
>
> Eric
>
Regards,
Simon
More information about the U-Boot
mailing list