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

Simon Glass sjg at chromium.org
Sun Jan 6 22:38:14 CET 2013


Hi Wolfgang,

On Sun, Jan 6, 2013 at 12:21 PM, Wolfgang Denk <wd at denx.de> wrote:
> Dear Lukasz & Simon,
>
> In message
> <CAPnjgZ3tfvRJO-16ncwE43hPptdMEtOmPEK7pfeLkrMn-rVrgw at mail.gmail.com>
> Simon Glass wrote:
>>
>> >> > -       dst = malloc(CONFIG_SYS_VIDEO_LOGO_MAX_SIZE);
>> >> > +       dst = memalign(CONFIG_SYS_CACHELINE_SIZE, len);
>> >>
>> >> Why do you need to align this one? It is just returned to the caller,
>> >> isn't it?
>> >
>> > Yes, it is returned to the caller, but afterwards lcd_display_bitmap
>> > takes this pointer (and thereof probably unaligned buffer) and works on
>> > it. (At least in the case of trats the bmp is gzipped).
>>
>> 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.
>
> Note: I added Anatolij, our video custodian to the Cc: list.

OK, well in that case we should deprecate this business of using a
separate memory buffer as a frame buffer, and make people uncompress
the BMP to the normal frame buffer. It would simplify a few things and
I doubt there would be a speed penalty (or at least it could be
corrected by decompressing directly to the frame buffer).

Regards,
Simon

>
> 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
> If you think the problem is bad now, just wait until we've solved it.
>                                                         Epstein's Law


More information about the U-Boot mailing list