[U-Boot] [RFC] Remove static display data

Simon Glass sjg at chromium.org
Sun Jul 28 20:09:47 CEST 2013


Hi Eric,

On Sun, Jul 28, 2013 at 10:57 AM, Eric Nelson <
eric.nelson at boundarydevices.com> wrote:

> Hi Simon,
>
>
> On 07/27/2013 12:05 PM, Simon Glass wrote:
>
>> Hi Eric,
>>
>> On Fri, Jul 26, 2013 at 6:42 PM, Eric Nelson
>> <eric.nelson at boundarydevices.**com <eric.nelson at boundarydevices.com>
>> <mailto:eric.nelson@**boundarydevices.com<eric.nelson at boundarydevices.com>>>
>> wrote:
>>
>>     Thanks for the thoughtful response, Stefano.
>>     On 07/26/2013 07:42 AM, Stefano Babic wrote:
>>
>>         Hi Eric,
>>
>>         On 26/07/2013 16:04, Eric Nelson wrote:
>>
>>
>>             The real question we have regarding DT is the timing. We're
>>             shipping
>>             DT files on secondary storage (SATA/SD card), and want/need
>>             something
>>             local (i.e. env in SPI-NOR) to present a U/I if either no
>>             storage
>>             available or if something goes wrong.
>>
>>         ok, understood.
>>
>>             A secondary need/desire is to have something simple for
>>             configuring
>>             a new display. The process of tuning some of the parameters
>> (esp
>>             margins) can sometimes be iterative because the data sheets
>>             aren't
>>             always clear and clock options are often imprecise. Since this
>>             iteration and configuration is often done by EEs in a lab who
>>             don't have an easy way to recompile a DTS, our inclination is
>>             to do something locally.
>>
>>         ok, I understand the point. Maybe it should be even more simple
>>         for the
>>         EEs if the would be such kind of special u-boot commands, able
>>         to set
>>         the timing and reload the framebuffer.
>>
>>         Can be a solution using the u-boot's fdt library enough ? With
>>         "fdt get"
>>         and "fdt set" it  is possible to read and modify a DT in memory,
>> and
>>         then the modified DT can be stored back - avoiding to compile
>>         directly
>>         the DTS.
>>
>>     Perhaps. We're still n00bs when it comes to DT, so we may have
>>     to wait until we're further up the learning curve.
>>
>>     It also seems that a bound U-Boot+DT isn't really any better
>>     than re-compiling U-Boot itself. If we need to flash everything,
>>     then there's not much benefit of the change.
>>
>> If you use environment, where is that stored? Presumably you need to
>> reflash in that case also?
>>
>>
> 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.


>
>
>  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.


>
>
>  In general FDT is pretty easy to set up - when you define
>> CONFIG_OF_CONTROL you need to use u-boot-dtb.bin instead of u-boot.bin,
>> but other than that it should work OK.
>>
>>
> At the moment, I think somehow saving a fragment of DT information
> in the environment and using it to "fix up" the FDT loaded from
> boot medium is probably the right approach.
>
> This is likely to be more verbose that the approach Anatolij
> suggested ("videomode" environment variable), but has the benefit
> of only needing one set of documentation.
>
> Our previous work in this area (for i.MX51 and 53) had a command
> 'lcdpanel' which allowed for a process of <up-arrow>edit<enter>
> to change and test a display setting:
>
>         http://boundarydevices.com/u-**boot-display-support-on-i-**mx51/<http://boundarydevices.com/u-boot-display-support-on-i-mx51/>
>
> But pasting a multi-line block isn't meaningfully more difficult.
>
> Regards,
>
>
> Eric
>

Regards,
Simon


More information about the U-Boot mailing list