[U-Boot] [PATCH 8/8] tegra2: Create SPI/UART switch code

Simon Glass sjg at chromium.org
Thu Oct 20 22:44:26 CEST 2011


Hi Mike,

On Thu, Oct 20, 2011 at 1:34 PM, Mike Frysinger <vapier at gentoo.org> wrote:
> On Thursday 20 October 2011 16:23:33 Simon Glass wrote:
>> On Thu, Oct 20, 2011 at 1:09 PM, Mike Frysinger wrote:
>> > On Thursday 20 October 2011 15:03:29 Simon Glass wrote:
>> >> --- a/board/nvidia/seaboard/seaboard.c
>> >> +++ b/board/nvidia/seaboard/seaboard.c
>> >>
>> >> +/* TODO: Remove this code when the SPI switch is working */
>> >> +#ifndef CONFIG_SPI_UART_SWITCH
>> >
>> > eh ?  isn't it working after these patches ?
>>
>> No, we need to resolve the NS16550 buffering issue, and also work out
>> how to get that driver to indicate when it needs to 'claim' the pins
>> from SPI.
>>
>> I have a working implementation, and patches for it. Basically I call
>> uart_enable() from the NS16550 driver before writing any serial data
>> out or when wanting to read serial data. But it is ugly and I am torn
>> between simple ugliness and complex pervasiveness.
>>
>> Advice welcome.
>
> hmmmmmmmmmm.  this is probably crazy, but ... if you enable multi serial,
> enable the ns16550 driver, and then write another "serial" driver that merely
> makes the relevant pinmux calls before tailing into the ns16550, and then set
> your stdout/stdin/stderr to that glue driver ...
> -mike
>

Gosh, that is baroque. Still it is an unusual hardware situation.

Given the current mess around the eserial structure definition macros
I would need to copy that again and create a set of _putc(), _puts()
functions for each UART I think. It could be done once serial is
cleaned up, but really don't want to undertake it now. In any case we
need buffering for all this to work so I might as well wait until this
is resolved:

http://patchwork.ozlabs.org/patch/120013/

Regards,
Simon


More information about the U-Boot mailing list