[U-Boot] [PATCH] tegra: Specify debugging serial port at boot.

Graeme Russ
2012-03-20T23:52:34Z

Hi Simon,

On Wed, Mar 21, 2012 at 10:33 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi Graeme,
>
> On Tue, Mar 20, 2012 at 4:28 PM, Graeme Russ <graeme.russ@gmail.com> wrote:
>> Hi Stephen, Simon,
>>
>> On Wed, Mar 21, 2012 at 8:17 AM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>> On 03/20/2012 02:13 PM, Simon Glass wrote:
>>>> Hi Stephen,
>>>>
>>>> On Tue, Mar 20, 2012 at 12:57 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>>>>> This works together with a kernel change that looks at the scratchpad
>>>>> register to determine which of the many UARTs it should use for early
>>>>> printing:
>>>>>
>>>>> http://www.spinics.net/lists/arm-kernel/msg154633.html
>>>>>
>>>>> Note that this configuration only affects the kernel's decompressor and
>>>>> earlyprintk code. Once the kernel is initialized far enough to parse the
>>>>> device tree, the console is initialized using information contained
>>>>> therein.
>>>>>
>>>>> Base on work by Doug Anderson <dianders@chromium.org>, but significantly
>>>>> rewritten.
>>>>>
>>>>> Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
>>
>>>
>>>> For the pre-console panic stuff, the point is that there may well be
>>>> one UART used for the console, but *we don't know which one it is!*.
>>>
>>> That's where we disagree.
>>>
>>> For each board, there is a single fixed UART that should be used for
>>> both pre-console panic and the "real" console later. This is fixed by
>>> the single static board design.
>>
>> I agree - The board designer should specify a 'default' debug port which
>> is used for all character output prior to the 'configured' console port
>> being initialised.
>
> We can provide that, but if it is wrong for the board we are using,
> then there will be no output. Stephen's original complaint was a brick
> if there is no valid device tree. We need this to work!
>
>>
>> In the 'normal' boot case, the default console should never have any output
>> sent to it (unless it also happens to be the 'configured' console port) as
>> Both U-Boot and Linux will use a pre console buffer to buffer any output
>> prior to the 'configured' console being available
>>
>> So I think there is a clear evidence that the 'Board panic no console'
>> and 'Specify debugging serial port at boot' are intrinsicly related - Both
>> U-Boot and Linux should be dumping their 'pre-console' messages to the
>> same port and this port should be specified by the hardware designer
>>
>> So that being the case, there should be a single CONFIG_ option which
>> both patches should be using
>
> We cannot select the UART via CONFIG - remember that all of these
> boards have the same U-Boot binary. Please read that again :-) The
> device tree is the only thing that distinguishes them. All of the
> CONFIG options are identical for all boards.

But I don't get it - In your Seaboard patch, you only use UARTD so in this
case we could CONFIG_ it?

And it's sounding like for other scenarios you are going to resign
yourself to there not being a common UART so you will send the pre-console
(panic) message to multiple UARTs - something that should be avoided at
all costs...

I know we are dealing with a corner case abnormal situation here, but
something does not smell right... Maybe I'm not understanding something
obvious yet...

Regards,

Graeme