Hi Mike, On Tue, Aug 30, 2011 at 6:10 AM, Mike Frysinger <vap...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot