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: Mon, 17 Dec 2012 15:24:42 -0700 [thread overview]
Message-ID: <50CF9BAA.3050504@wwwdotorg.org> (raw)
In-Reply-To: <50CF89F7.307@ti.com>
On 12/17/2012 02:09 PM, Tom Rini wrote:
> On 12/14/12 17:45, Stephen Warren wrote:
>> On 12/14/2012 03:22 PM, Simon Glass wrote:
>>> Hi Stephen,
>> ...
>>> Perhaps I can make the point another way. Assuming that the SOC
>>> in question is ARM-based and has Linux support it either supports
>>> FDT now or presumably will fairly soon.
>
>> Sure, but I'm *explicitly* avoiding relying on DT for this,
>> because there are plenty of things that happen before DT can or
>> should be touched that might warrant serial port output.
>
> Also totally true and valid. But what I'd like to see is:
> parse_odmdata(void *ptr) {
> if (ptr->console)
> device_tree_register_uart(... fake it ...);
> }
Sorry, I'm having a hard time parsing:
> In other words, if we add the register a port call now, there's a
By "register a port call", do you mean the device_tree_register_uart()
you're proposing above, or the NS16550_set_dynamic_address() I'd
implemented in my patch?
Below, you appear to be pointing out problems with adding the "register
a port call now" which seems like you're arguing against your own example?
> history of adding just one more thing, by someone else (say am335x and
> our EVMs that differ on where primary UART is, and only need a little
> different logic to say 'oh! this one.') and making a mess of things.
> Once we deal with device trees in some manner, then we can just fake
> their existence at this point and pass in the console information from
> ODMDATA.
There are many ways besides device tree to enumerate hardware. For
example, consider PCI or USB (albeit USB isn't memory mapped). I don't
think we should tie any new U-Boot dynamic device registration API to
device tree, since that would seem to prevent (or imply against) usage
of that API with PCI for example.
Perhaps this is just bike-shedding over naming?
So, perhaps:
int device_register_uart(enum uart_type, u32 base_address)
So that all of the following cases could call that:
* DT parsing.
* PCI device enumeration.
* ODMDATA parsing.
(and where enum uart_type is some internal U-Boot identifier for the
UART drivers it supports)
Presumably the implementation would validate if the (uart_type,
base_address) combination had been seen already, and then do nothing.
that would allow for ODMDATA parsing to set up the UART, and then DT
parsing to avoid any special cases to skip handling DT nodes for serial
devices that were already registered.
next prev parent reply other threads:[~2012-12-17 22:24 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
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 [this message]
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=50CF9BAA.3050504@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