[PATCHv3] Add dynamic video initialization to barebox
Juergen Beisert
jbe at pengutronix.de
Fri Nov 19 07:50:52 EST 2010
Currently barebox uses a fixed videomode setup. Everything is compiled in.
This change adds the possibility to select a videomode according to a
connected display at runtime. If more than one videomode is supported by the
platform, running the 'devinfo' command on the framebuffer device shows the
supported videomode list. After selecting the videomode, the output can be
enabled.
On my hardware I can connect a regular monitor, which supports more than one
videomode. The runtime setup sequence looks like that:
tx28:/ devinfo framebuffer0
base : 0x00000000
size : 0x00000000
driver: framebuffer
Video/Mode info:
Video output not enabled
Current video mode:
No video mode selected yet
Supported video mode(s):
'VGA'
'SVGA'
'XGA'
'SXGA'
Parameters:
cdepth = 16
mode = <NULL>
enable = <NULL>
tx28:/ framebuffer0.mode=SVGA
tx28:/ bmp splash.bmp
tx28:/ framebuffer0.enable=1
After the last command the monitor shows the splash screen.
Changes in revision 2 of this patch stack:
- enabling the video output is now always required to get a picture
- driver specific data can now be added on a per videomode base
- documentation is adapted to the new behaviour
This is revision 3 of this patch stack:
- video output is now disabled as default, until enabled with
'framebuffer0.enable=1'
- framebuffer's 'dev' and 'cdev' are now part of the 'fb_info'
- using a fixed framebuffer location is only handled in the driver
- hopefully fixed all long lines
- swapping the API in '/drivers/video/fb.c' is now done in one patch
- when adding to the final repository, still these patches should be squashed
to keep the result bisectable:
- "Bring in dynamic videomode selection at runtime"
- "Add verbose framebuffer device info"
- "Adapt the existing imx fb driver to support runtime videomode selection"
- "Adapt the existing imx-ipu fb driver to support runtime videomode selection"
- the videomode can now be setup more than once. To do so, just disable the
video output again and start with videomode configuration once more
Note: The S3C2404 and i.MX23/i.MX28 framebuffer drivers are still for reference only.
The following changes since commit 53dbaf3fc7b8371ed1e24ef96715e41d60b8ebc3:
Merge branch 'master' into next (2010-11-19 09:35:15 +0100)
are available in the git repository at:
http://git.pengutronix.de/jbe/for_barebox_next/ next_dynamic_video_v3_for_sha
Juergen Beisert (11):
Separate framebuffer platformdata and the videomode
Add more flags for sync control
Bring in dynamic videomode selection at runtime
Add verbose framebuffer device info
Adapt the existing imx fb driver to support runtime videomode selection
Adapt the existing imx-ipu fb driver to support runtime videomode selection
Remove variable size restrictions
Add doxygen documentation to the framebfuffer code
Provide more driver specific data in a videomode
Add a video driver for S3C2440 bases platforms
STM378x: Add video driver for this platform
Documentation/developers_manual.dox | 1 +
Documentation/users_manual.dox | 1 +
arch/arm/boards/eukrea_cpuimx25/eukrea_cpuimx25.c | 39 +-
arch/arm/boards/eukrea_cpuimx27/eukrea_cpuimx27.c | 41 +-
arch/arm/boards/freescale-mx35-3-stack/3stack.c | 2 +-
arch/arm/boards/guf-neso/board.c | 43 +-
arch/arm/boards/imx21ads/imx21ads.c | 48 +-
arch/arm/boards/pcm038/pcm038.c | 42 +-
arch/arm/boards/pcm043/pcm043.c | 2 +-
arch/arm/mach-imx/include/mach/imx-ipu-fb.h | 12 +-
arch/arm/mach-imx/include/mach/imxfb.h | 21 +-
arch/arm/mach-s3c24xx/include/mach/fb.h | 40 ++
arch/arm/mach-stm/include/mach/fb.h | 33 +
drivers/video/Kconfig | 23 +
drivers/video/Makefile | 2 +
drivers/video/fb.c | 452 ++++++++++++++-
drivers/video/imx-ipu-fb.c | 217 ++++---
drivers/video/imx.c | 220 ++++---
drivers/video/s3c.c | 474 +++++++++++++++
drivers/video/stm.c | 646 +++++++++++++++++++++
include/fb.h | 133 +++--
21 files changed, 2112 insertions(+), 380 deletions(-)
create mode 100644 arch/arm/mach-s3c24xx/include/mach/fb.h
create mode 100644 arch/arm/mach-stm/include/mach/fb.h
create mode 100644 drivers/video/s3c.c
create mode 100644 drivers/video/stm.c
More information about the barebox
mailing list