Dear Tom Rini, > On 09/18/12 10:13, Marek Vasut wrote: > > Dear Tom Rini, > > > >> On Mon, Sep 17, 2012 at 01:21:27AM +0200, Marek Vasut wrote: > >>> Implement empty serial_* functions for SPL without serial > >>> support enabled. This is imperative to haave once serial multi > >>> is enabled unconditionally. > >>> > >>> Signed-off-by: Marek Vasut <ma...@denx.de> Cc: Marek Vasut > >>> <marek.va...@gmail.com> Cc: Tom Rini <tr...@ti.com> --- > >>> > >>> common/serial.c | 12 ++++++++++++ 1 file changed, 12 > >>> insertions(+) > >>> > >>> diff --git a/common/serial.c b/common/serial.c index > >>> 631af65..cef4ba8 100644 --- a/common/serial.c +++ > >>> b/common/serial.c @@ -27,6 +27,16 @@ > >>> > >>> #include <post.h> #include <linux/compiler.h> > >>> > >>> +/* Implement prototypes for SPL without serial support */ > >>> +#if defined(CONFIG_SPL_BUILD) && > >>> !defined(CONFIG_SPL_SERIAL_SUPPORT) +int serial_init(void) { > >>> return 0; } +void serial_setbrg(void) {} +int > >>> serial_getc(void) { return 0; } +int serial_tstc(void) { return > >>> 0; } +void serial_putc(const char c) {} +void serial_puts(const > >>> char *s) {} > >> > >> This isn't quite right. We need to allow for: - No output SPL, > >> strings collected (so #defined to do{} while (0)) > > > > Which is not type-checked and will drag in bugs. > > Scott has addressed this. > > >> - puts + printf SPL (CONFIG_SPL_SERIAL_SUPPORT + > >> CONFIG_SPL_LIBCOMMON_SUPPORT) - puts only SPL > >> (CONFIG_SPL_SERIAL_SUPPORT + #define puts serial_puts/putc). > >> > >> I'm not asking you to do that, but you will have to adapt to it > >> once Jose is done with it. What that means, off the top of my > >> head, is we can just drop this patch as in the first and last > >> case serial.o will be garbage-collected (or not built) and in > >> the middle case, this will be fully used. > > > > I can't drop this patch as it will break all of SPL when > > CONFIG_SERIAL_MULTI is unconditionally enabled. > > Why is it breaking _all_ of SPL? Have you run-tested this anywhere, > especially with SPL? In most cases it should be used and real > functions provided or garbage collected away.
Yes, try compiling m28evk without this patch for example, it's going to break it. Because CONFIG_SPL_SERIAL_SUPPORT is disabled, yet it uses code that contains references to puts() etc. Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot