On Tue, May 05, 2015 at 01:21:07PM +0200, Hans de Goede wrote: > On my A10 OlinuxIno Lime I noticed a huge (5+ seconds) delay coming from > console_init_r. This turns out to be caused by the preconsole buffer flushing > to the cfb_console. The Lime only has a 16 bit memory bus and that is already > heavy used to scan out the 1920x1080 framebuffer. > > The problem is that print_pre_console_buffer() was printing the buffer once > character at a time and the cfb_console code then ends up doing a cache-flush > for touched display lines for each character. > > This commit fixes this by first building a 0 terminated buffer and then > printing it in one puts() call, avoiding unnecessary cache flushes. > > This changes the time for the flush from 5+ seconds to not noticable. > > The downside of this approach is that the pre-console buffer needs to fit > on the stack, this is not that much to ask since we are talking about plain > text here. This commit also adjusts the sunxi CONFIG_PRE_CON_BUF_SZ to > actually fit on the stack. Sunxi currently is the only user of the pre-console > code so no other boards need to be adjusted. > > Signed-off-by: Hans de Goede <hdego...@redhat.com>
Reviewed-by: Tom Rini <tr...@konsulko.com> -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot