Atmel website | ARM Community | AVR freaks | Technical Support
Banner
 FAQ •  Search •  Register •  Login 

All times are UTC + 1 hour [ DST ]




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Linux Logo Question Linux 2.6.30 on AT91SAM9G45EKES
PostPosted: Wed Dec 01, 2010 9:10 pm 
Offline

Joined: Sat Sep 11, 2010 1:32 am
Posts: 23
My code works as follows to display plenty of user feedback during boot:

1) My Atmel Bootstrap loads an 8bit BMP 480x272 out of Serial Flash and Splashes the screen in 32 bit TFT mode then loads U-Boot
2) U-Boot adds a small progress bar to this screen by customizing the function 'void show_boot_progress (int val)'
3) The Linux Kernel loads and as soon as it allocates the memory for the frame buffer (for the first time), it copies the BMP from my Bootstrap LCD buffer in PHYS DRAM to the new allocated frame buffer in VIRT DRAM. Any new allocates of the frame buffer just zero the new frame buffer memory.
4) The Linux Kernel loads and splashes a Custom Penguin with our Company Logo (logo_linux_clut224.c). Then 10 minutes later, it clears the screen.
5) Ultimately, we will have Qt Embedded load a desktop / first application

My Question is: Where is the Kernel source code is the logo actually being drawn because it appears to clear the entire screen while splashing the logo and I would rather the logo overlay a small part of my splash screen drawn by the Bootstrap. I have been trying to track it down by stepping through the kernel init code but another thread appears to be drawing the logo as the kernel init ends up just letting everything else run at one point.

After this, I wouldn't mind having my progress bar update through the boot process but that will be much more difficult.

Thanks, Gary


Top
 Profile  
 
 Post subject: Re: Linux Logo Question Linux 2.6.30 on AT91SAM9G45EKES
PostPosted: Thu Dec 02, 2010 3:39 pm 
Offline

Joined: Sat Sep 11, 2010 1:32 am
Posts: 23
Just to complete and close this thread:

I deactivated the conosle frame buffer but left the config logo and frame buffer active in the make menuconfig for the kernel. This removed the logo and also kept the screen from blanking in 10 minutes.

I then added the following lines of code to bring back the logo overlay:

#if !defined(CONFIG_FRAMEBUFFER_CONSOLE) && defined(CONFIG_LOGO)
if (fb_prepare_logo(info, FB_ROTATE_UR))
{
fb_show_logo(info, FB_ROTATE_UR);
}
#endif

to the bottom of the function:
static int __init atmel_lcdfb_probe(struct platform_device *pdev)

in the file:
atmel_lcdfb.c

Now, my splash screen simply has the Penguin overlayed on top as Linux boots. I want production folks and customers to visually see where the system is during the boot progress to help debug things. I still have a blink as the kernel re-initializes the LCD driver but I will add some code to check to see if it is already initialized and if it is, skip the re-init. Then, I will start a new thread when I figure out how to show a progress bar during the boot process.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC + 1 hour [ DST ]


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: