[U-Boot] Allocating a frame buffer in memory
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Fri Apr 17 21:32:32 CEST 2009
On 13:13 Fri 10 Apr , Steven Zedeck wrote:
>
> Hi,
> I am trying to allocate a frame buffer for my LCD code. I think I understand
> how to set up the LCC controller in the Atmel AT91SAM9. So thats not the
> issue, at least not yet. I need to understand how UBoot allocates a block of
> memory for the buffer.
>
> My TFT/LCD is 320x240 and in 24 bit mode, so 3 bytes per pixel. So I think I
> need 320x240x3 total bytes. Correct?
>
> In my lib_arm/board.c file, there is the following:
> #ifdef CONFIG_LCD
> /* board init may have inited fb_base */
> if (!gd->fb_base) {
> # ifndef PAGE_SIZE
> # define PAGE_SIZE 4096
> # endif
> /*
> * reserve memory for LCD display (always full pages)
> */
> /* bss_end is defined in the board-specific linker script */
> addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);
> size = lcd_setmem (addr);
> gd->fb_base = addr;
> }
> #endif /* CONFIG_LCD */
>
> Then in lcd.c, there is lcd_setmem which displays:
> Reserving 600k for LCD Framebuffer at: 0x23E91000
>
> Even though I call lcd_setmem with an address of: 0x23F27000
>
> Which is the address that I pass to the Atmel LCD controller DMA Address ?
> I have been using this: 0x23F27000
on at91sam9 to specify the frambuffer base address you will just need to fill
gd->fb_base = AT91SAM9263_SRAM0_BASE;
or something else as done with the PSRAM for the pm9263
in your board init and specify your "vidinfo_t panel_info"
that's all (maybe you will need to check the LCD pin out configuration)
Best Regards,
J.
More information about the U-Boot
mailing list