
Hi Mike,
On Tue, Aug 30, 2011 at 6:10 AM, Mike Frysinger vapier@gentoo.org wrote:
On Monday, August 29, 2011 15:42:23 Simon Glass wrote:
On Mon, Aug 29, 2011 at 12:20 PM, Mike Frysinger wrote:
On Monday, August 29, 2011 13:21:57 Simon Glass wrote:
if (gd->con_buf_idx < CONFIG_SYS_TMP_CON_BUF_SZ)
buffer[gd->con_buf_idx++] = c;
seems like a circular buffer would make more sense ... usually the part of the log you want is the last chunk and not the first
Well you would need an 'overflow' flag and then based on that you would need to do two printf()'s when dumping the buffer - One from the 'index to end' which is the 'top' of the buffer and one from 'start to index' which is the bottom.
Yes I agree, although if you have more than 1KB of data it might be a bug.
I personally don't see the need - I expect the amount of pre-console output would be faily limited considering that the board should do everything it can to initialise console as early as possible.
give people a foot and they'll take 1MiB :p
it's fairly easy as well: #define CIRC_BUF_IDX(idx) ((idx) & (CONFIG_SYS_TMP_CON_BUF_SZ-1)) buffer[CIRC_BUF_IDX(gd->conf_buf_idx++)] = c;
But does that work for non power-of-two buffer sizes...
Buffer size = 100 = 1100100 (size - 1) = 1100011 idx = 100 = 1100100 idx & (size - 1) = 1100000
Nope :(
Regards,
Graeme