From: Stephen Warren <swarren@wwwdotorg.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] ns16550: allow UART address to be set dynamically
Date: Wed, 12 Dec 2012 16:52:05 -0700 [thread overview]
Message-ID: <50C918A5.6090207@wwwdotorg.org> (raw)
In-Reply-To: <CAPnjgZ3PZDVEHOPBsKD-tO8opezcTP=ZHvrSztwbTcioSJy+Fg@mail.gmail.com>
On 12/12/2012 04:38 PM, Simon Glass wrote:
> Hi Stephen,
>
> On Wed, Dec 12, 2012 at 3:23 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> A single U-Boot binary may support multiple very similar boards. These
>> boards may use different UARTs for the main debug console. Hence, it is
>> impossible to #define CONFIG_SYS_NS16550_COM1 to some static UART
>> address, since the true value may only be determined at run-time, after
>> identifying the actual hardware. Provide an API for boards to call to
>> set the actual address of the UART, e.g. from spl_board_init() or
>> board_early_init_f().
>>
>> Signed-off-by: Stephen Warren <swarren@nvidia.com>
>
> This seems reasonable in the interim while we are hard-coding things
> but needing more flexibility. How do you plan to configure the actual
> address - is it with the ODM data or FDT?
I intend to use the ODMDATA. This already includes a field that
specifies which UART to use. I'm working on some patches (to
BCT-generation tools and U-Boot) that define an ODMDATA2 value, which
will indicate the complete pinmux configuration required for the UART,
so everything can be self-contained. I'm fairly close to publishing
these patches.
> One question though - is it not possible to select the correct port
> number using environment (say) rather than changing the address of an
> existing port? After all, I think we can assume that all available
> ports are in the array. Or can we?
Right now, we only define one of CONFIG_SYS_NS16550_COMn (n==1..6). I
suppose we could define 5 of these, to represent the 5 different UARTs
on Tegra, so that all ports are always available, irrespective of what,
if anything, they're pinmuxed out to and hooked up to in HW.
The question would then become: how to tell U-Boot which to use? The
answer might be to put "eserial0" or "eserial1", etc. into the stdin
environment variable rather than plain "serial". However, the question
then becomes: what do we put into the default environment? The default
environment would then need to vary depending on which board you were
running on (since the serial port number might be different), and I
really want "env default -f -a" to leave the user with a working system.
How would that work?
next prev parent reply other threads:[~2012-12-12 23:52 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-12 23:23 [U-Boot] [PATCH] ns16550: allow UART address to be set dynamically Stephen Warren
2012-12-12 23:38 ` Simon Glass
2012-12-12 23:52 ` Stephen Warren [this message]
2012-12-13 0:38 ` Simon Glass
2012-12-13 10:29 ` Wolfgang Denk
2012-12-13 18:17 ` Stephen Warren
2012-12-13 20:36 ` Wolfgang Denk
2012-12-13 20:45 ` Stephen Warren
2012-12-13 20:53 ` Tom Rini
2012-12-13 21:07 ` Stephen Warren
2012-12-13 21:51 ` Simon Glass
2012-12-14 20:40 ` Tom Rini
2012-12-14 21:14 ` Simon Glass
2012-12-14 22:03 ` Stephen Warren
2012-12-14 22:22 ` Simon Glass
2012-12-14 22:45 ` Stephen Warren
2012-12-17 21:09 ` Tom Rini
2012-12-17 22:24 ` Stephen Warren
2012-12-17 22:37 ` Wolfgang Denk
2012-12-17 22:58 ` Stephen Warren
2012-12-18 6:39 ` Wolfgang Denk
2012-12-18 16:37 ` Stephen Warren
2012-12-18 19:15 ` Simon Glass
2012-12-17 21:09 ` Tom Rini
2012-12-14 22:35 ` Wolfgang Denk
2012-12-14 21:52 ` Stephen Warren
2012-12-14 22:31 ` Wolfgang Denk
2012-12-14 22:26 ` Wolfgang Denk
2012-12-14 23:16 ` Graeme Russ
2012-12-15 0:32 ` Wolfgang Denk
2012-12-15 1:32 ` Graeme Russ
2012-12-15 7:30 ` Wolfgang Denk
2012-12-15 9:53 ` Graeme Russ
2012-12-17 21:04 ` Tom Rini
2012-12-13 23:11 ` Wolfgang Denk
2012-12-13 23:26 ` Stephen Warren
2012-12-13 10:27 ` Wolfgang Denk
2012-12-13 13:11 ` Tom Rini
2012-12-13 14:22 ` Wolfgang Denk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50C918A5.6090207@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox