From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Zedeck Date: Mon, 5 Oct 2009 07:09:52 -0700 (PDT) Subject: [U-Boot] Preserving frame buffer memory between uboot and Linux In-Reply-To: <20091002220952.01285832E408@gemini.denx.de> References: <25722060.post@talk.nabble.com> <20091002220952.01285832E408@gemini.denx.de> Message-ID: <25751508.post@talk.nabble.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de wd wrote: > > Dear Steven Zedeck, > > In message <25722060.post@talk.nabble.com> you wrote: >> >> We have a situation when we want to display an image towards the end of >> Uboot's execution, before we boot Linux. I have that already. >> >> However, my issue is that while Linux boots it mallocs a new frame buffer >> and reinitializes the LCD controller with a new memory address. At the >> moment in Uboot the frame buffer is at 0x23F39000. In Linux I see it >> being >> mapped to 0x23980000. >> >> Is there a way to force Linux to use the already-allocated frame buffer >> memory so the image doesn't go away? > > In mainline: not, or not yet at least. > > In our linux-2.6-denx repo you can find these commits: > > commit 01baab26e52bc66cb1781ab970fba932b592f2ee > Author: Anatolij Gustschin > Date: Wed May 28 23:45:21 2008 +0200 > > Fix to enable console cursor drawing capability if > CONFIG_FB_PRE_INIT_FB defined > > Background: > By defining the CONFIG_FB_PRE_INIT_FB option in the > Linux kernel configuration the framebuffer state > set by the boot loader before booting the Linux kernel > will be preserved in order to avoid display flicker and > splash screen destruction. To ensure this, this option > also disabled framebuffer console cursor drawing capability > entirely. This was pretty invasive restriction and didn't > allow using console cursor drawing later in applications > which need the visible cursor. > > Now this patch is introduced to get rid of this restriction. > If CONFIG_FB_PRE_INIT_FB is defined in the Linux kernel > configuration, the framebuffer state will still be preserved > (as set by the boot loader) and also framebuffer console > cursor drawing will be disabled. If an application needs > visible cursor, it should enable cursor drawing by writing > escape sequence ESC[?25h to the console device. > E.g. echo -e "\33[?25h" > /dev/tty0 > > Signed-off-by: Anatolij Gustschin > ... > commit 6c3b5cdbc84b43190996124debc8fb29c9bf90ed > Author: Anatolij Gustschin > Date: Tue Jan 15 00:28:23 2008 +0100 > > Add CONFIG_FB_PRE_INIT_FB option > > CONFIG_FB_PRE_INIT_FB option allows to inherit > display controller configuration and framebuffer > contents from the state set by the bootloader. > > Signed-off-by: Anatolij Gustschin > > They do exactly what you are looking for. I remember that someone > tried to clean this up and poush it into mainline, but IIRC this > attempt failed because the PTB considered this an exotic requirement > from those insane embedded folks which was not needed on any real > systems. > >> I am running on an Atmel AT91SAM9RL with Uboot 2008.10 and 2.6.28 Linux. > > Hope this helps. > > Best regards, > > Wolfgang Denk > > -- > DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de > Four thousand throats may be cut in one night by a running man. > -- Klingon Soldier, "Day of the Dove", stardate unknown > _______________________________________________ > U-Boot mailing list > U-Boot at lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > > Wolfgang, Thanks for the reply. I did a search on our entire Linux code base for CONFIG_FB_PRE_INIT_FB and it only appears in one file drivers/video/mb862xx/mb862xxfb.c I don't understand how to set this variable in my specific configuration file. I did, however, see this in atmel_lcdfb.c: map = platform_get_resource(pdev, IORESOURCE_MEM,1); if (map) { /* use a pre-allocated memory buffer (/ . . . /* Don't clear the frame buffer -- someone may have set up a splash image. */ . . } Isn't this what I need to be concerned about? If so, what do I need to do un Uboot to make this take effect? Thanks, Steve -- View this message in context: http://www.nabble.com/Preserving-frame-buffer-memory-between-uboot-and-Linux-tp25722060p25751508.html Sent from the Uboot - Users mailing list archive at Nabble.com.