[U-Boot] [PATCH 62/71] serial: spl: Implement empty functions for SPL

Tom Rini trini at ti.com
Tue Sep 18 20:08:32 CEST 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/18/12 11:01, Marek Vasut wrote:
> 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 <marex at denx.de> Cc: Marek Vasut 
>>>>> <marek.vasut at gmail.com> Cc: Tom Rini <trini at 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.

Progress!  Now, why isn't this file being garbage collected?  m28evk
is fitting into the first category I said (no output) but now it's not
discarding things that it should be discarding.

- -- 
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQIcBAEBAgAGBQJQWLifAAoJENk4IS6UOR1WyiIP/1h3r1OBQ8sxHCq6nuWT7cvQ
6taDBU6780uOY+YsbNgjlImp7lSM30HYxXou2j2kykPcRjUPMzLoYDRZio+8d8RW
ETQcMld8I/OMz52HT6lnjIaqVBOpK42vlRW86LNcxIFOasYlK4qxO3kjKmshu5aC
ct7b5xcHFaqfxLp2EjkUOgmoyPXhNTdsnDVdOTaXG7qGKAffDFCeUHTsBB3kc/S6
w5HwDNTBWZYVMWuTXKXLXh+3h4x+VL1LCxCsnu8R88cEkj7b9DkqGUsUrCDPFqc/
YAqiUqacTa0V9h9XeE/OdZUo7uS04FibPHzvho91LcnBdjOJ7jPLY7k/IJ7guhqp
aRC9UrB/AAPkpLExo32Ksx+7wAJThsfWY6DL5oI76E4FYZP2WaqygBM/WDCbcOK7
6HIGItjGwFpXBCDbawKob395Kt5gK2J43qXR2E7CR4p3ic8liMqsWu5J+TCUVF6b
jxjLZ22Bw5zolUkhUE5u+M+O/rxCjYG0HNTssC1ymYR/jU36p1m6oGqxVN8Voi0R
1ARQB2yY3uuQOqR1URZMzuA94d1Qffnhg3LwSm3cJRH825WNDkxEXq/hvK/4hLbH
DXb79+zRqv7f80jPUEk60sKFI3YzJMvRBaaxjXqOkMFywaNMQjbsnXCmvztoqRqG
A1gmJGTWixOQbrN56DjF
=wRYN
-----END PGP SIGNATURE-----


More information about the U-Boot mailing list