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

Anatolij Gustschin agust at denx.de
Fri Jul 26 09:50:49 CEST 2013


Hello Robert,

On Thu, 25 Jul 2013 11:21:10 -0700
Robert Winkler <robert.winkler at boundarydevices.com> wrote:

> Hello all,
> 
> We're trying to figure out how best to get rid of static code like this:
> 
> http://git.denx.de/?p=u-boot.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=8f0f9b8de2e8e77fcbf477728ea063a213941dd0;hb=HEAD#l526
> 
> and turn it into run time data.
> 
> Our idea is to use an environment variable so adding support for new
> screens and iterating on minor settings is quick and easy and then we can
> remove the static arrays like the one above and in wandboard.c and other
> places.

We have some code and users to define timing parameters in an environment
variable "videomode". video_get_params() is used to read the parameters
into a structure "struct ctfb_res_modes".

> One way to do this is to create a data structure that can subsume the
> functionalities of of display_info_t and the various structures in lcd.h
> and elsewhere that can be used throughout U-Boot both with CONFIG_LCD and
> CONFIG_CFB_CONSOLE.  Combined with the EDID functionality already in U-Boot
> this would allow code to easily select the "best" display supported by the
> monitor or closest to what the user wanted (given in the environment
> variable).  This data structure would then be passed to Linux on boot up.
>
> I realize that there's already the FDT and CONFIG_OF_CONTROL functionality
> and device trees sort of cover the passing to Linux part so maybe before
> handing it off, converting the relevant data into a device tree that Linux
> can already use/parse would work.

Devicetree bindings for describing display timings info exist in recent
Linux kernel versions (since v3.9 I think) and are documented under
Documentation/devicetree/bindings/video/display-timing.txt. In Linux
there are also DT helpers to parse display timings nodes and read the
timing values into fb_videomode structure (of_get_display_timings,
of_get_fb_videomode). Code for adding such display timings nodes to
the device tree under U-Boot doesn't exist yet.

> Is anyone working on something like this?  Am I missing something that's
> already in place to accomplish this?

Maybe you can use "videomode" Variable and video_get_params().

Thanks,

Anatolij


More information about the U-Boot mailing list