From: Paul Burton <paul.burton@imgtec.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 3/5] dm: ns16550: Don't map_physmem for I/O ports
Date: Tue, 17 May 2016 13:48:36 +0100 [thread overview]
Message-ID: <20160517124836.GA26037@NP-P-BURTON> (raw)
In-Reply-To: <CAPnjgZ3ROiGfdvGXpmziScp59wLmNByFaMHdqgX9Oo+qT64gOQ@mail.gmail.com>
On Tue, May 17, 2016 at 06:11:22AM -0600, Simon Glass wrote:
> Hi Paul,
>
> On 16 May 2016 at 11:44, Paul Burton <paul.burton@imgtec.com> wrote:
> > If the UART is to be accessed using I/O port accessors (inb & outb) then
> > using map_physmem doesn't make sense, since it operates in a different
> > memory space. Remove the call to map_physmem when
> > CONFIG_SYS_NS16550_PORT_MAPPED is defined, allowing I/O port addresses
> > to not be mangled by the incorrect mapping.
> >
> > Signed-off-by: Paul Burton <paul.burton@imgtec.com>
> > ---
> >
> > Changes in v2:
> > - New patch, part of a simplified approach tackling only a single Malta UART.
> >
> > drivers/serial/ns16550.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> > index 28da9dd..e58e6aa 100644
> > --- a/drivers/serial/ns16550.c
> > +++ b/drivers/serial/ns16550.c
> > @@ -100,7 +100,11 @@ static void ns16550_writeb(NS16550_t port, int offset, int value)
> > unsigned char *addr;
> >
> > offset *= 1 << plat->reg_shift;
> > +#ifdef CONFIG_SYS_NS16550_PORT_MAPPED
> > + addr = (unsigned char *)plat->base + offset;
> > +#else
> > addr = map_physmem(plat->base, 0, MAP_NOCACHE) + offset;
> > +#endif
>
> Please don't add CONFIG #ifdefs in these functions. Perhaps it needs
> to be another parameter? Possibly a flag. But with driver-model we
> need to be able to support both options in the core code.
Hi Simon,
Are you sure systems rely on using I/O ports with map_physmem? The only
other systems that define CONFIG_SYS_NS16550_PORT_MAPPED are x86 ones,
in include/configs/x86-common.h, and so far as I can tell they don't use
device model which suggests this code has simply been untested before. I
don't see why you would use map_physmem on an I/O port address that is
then going to be passed to inb/outb & I think the code here is simply
wrong to do so.
> This driver is a real mess. I'm hoping we can simplify it once we have
> everything on driver model.
Agreed, that would be wonderful.
Thanks,
Paul
next prev parent reply other threads:[~2016-05-17 12:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-16 17:44 [U-Boot] [PATCH v2 0/5] Malta UART using device model & device tree Paul Burton
2016-05-16 17:44 ` [U-Boot] [PATCH v2 1/5] fdt: Support for ISA busses Paul Burton
2016-05-17 12:11 ` Simon Glass
2016-05-16 17:44 ` [U-Boot] [PATCH v2 2/5] fdt: Document the rest of struct of_bus Paul Burton
2016-05-17 12:11 ` Simon Glass
2016-05-16 17:44 ` [U-Boot] [PATCH v2 3/5] dm: ns16550: Don't map_physmem for I/O ports Paul Burton
2016-05-16 18:58 ` Daniel Schwierzeck
2016-05-17 12:11 ` Simon Glass
2016-05-17 12:48 ` Paul Burton [this message]
2016-05-17 15:51 ` Daniel Schwierzeck
2016-05-17 15:54 ` Simon Glass
2016-05-17 15:58 ` Paul Burton
2016-05-17 16:00 ` Simon Glass
2016-05-18 10:04 ` Daniel Schwierzeck
2016-05-18 14:52 ` Simon Glass
2016-05-21 16:50 ` Daniel Schwierzeck
2016-05-24 15:34 ` Paul Burton
2016-05-16 17:44 ` [U-Boot] [PATCH v2 4/5] malta: Tidy up UART address selection Paul Burton
2016-05-16 18:57 ` Daniel Schwierzeck
2016-05-16 17:44 ` [U-Boot] [PATCH v2 5/5] malta: Use device model & tree for UART Paul Burton
2016-05-16 18:56 ` Daniel Schwierzeck
2016-05-17 6:40 ` Paul Burton
2016-05-17 10:57 ` Daniel Schwierzeck
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=20160517124836.GA26037@NP-P-BURTON \
--to=paul.burton@imgtec.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.