
Dear Anatolij Gustschin,
Hi,
On Mon, 30 Apr 2012 04:25:50 +0200 Marek Vasut marex@denx.de wrote: ...
observed with cfb on beageboard and N900 when running with data cache enabled.
beagleboard ;-)
Thanks for catching that!!
...
@@ -553,6 +557,8 @@ static void video_drawchars(int xx, int yy, unsigned char *s, int count) SWAP32((video_font_draw_table32
[bits & 15][3] & eorx) ^ bgx); }
if (cfb_do_flush_cache)
flush_cache((ulong)dest0, 32);
flush_dcache_range() ?
I would have to calculate the end address, then. flush_cache() already does it for me :-)
Well ... that's correct. Maybe someone should rename it to flush_dcache_size() or something ...
...
@@ -1651,6 +1661,29 @@ static void *video_logo(void)
} #endif
+static int cfb_fb_is_in_dram(void) +{
- bd_t *bd = gd->bd;
- ulong start, end;
- int i;
- for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {
+#if defined(CONFIG_ARM) || defined(CONFIG_AVR32) || defined(COFNIG_NDS32)
|| \ +defined(CONFIG_SANDBOX) || defined(CONFIG_X86)
start = bd->bi_dram[i].start;
end = bd->bi_dram[i].start + bd->bi_dram[i].size - 1;
+#else
start = bd->bi_memstart;
end = bd->bi_memsize;
+#endif
if ((ulong)video_fb_address >= start &&
(ulong)video_fb_address < end)
return 1;
- }
- return 0;
+}
Can't you have SRAM cached too? ;-)
I do not know. But who will put the framebuffer into SRAM? It is not big enough.
Someone who has small LCD and wants to save dram bandwidth (oh, this sentence sounds stupid on its own). But maybe if you want to use LCD in SPL?
Thanks, Anatolij
Best regards, Marek Vasut