[U-Boot] [PATCH RESEND] video:cache:fix: Buffer alignment and dcache flush for lcd subsystem

Anatolij Gustschin agust at denx.de
Mon Jan 7 00:09:26 CET 2013


Hello Wolfgang,

On Sun, 06 Jan 2013 21:21:00 +0100
Wolfgang Denk <wd at denx.de> wrote:
...
> > OK, so it is directly used as a frame buffer? In that case it looks
> > right to me. I doubt you want to be able to control the cache features
> > for this area, since you only write it once. But if you did, then the
> > memory would currently need to be section-aligned.
> 
> I don't think this is as it should be.  Any frame buffer that actually
> gets used as such should be located in the memory area specifically
> allocated for this purpose using lcd_setmem().  This is especially
> important when you load a splash screen image and intend to display it
> flicker-free when booting an OS.  If you use malloc() or memalign(),
> it will be memory in the malloc arena, which gets overwritten when an
> OS boots, resulting in a corrupted display.

yes, for lcd.c driver the frame buffer is allocated by lcd_setmem().
malloc() is used only to buffer uncompressed BMP data here and it will
be freed right after extracting the pixel data to the actual frame buffer.

Thanks,
Anatolij


More information about the U-Boot mailing list