summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Chou <thomas@wytron.com.tw>2015-11-19 21:48:04 +0800
committerTom Rini <trini@konsulko.com>2015-11-20 20:41:29 -0500
commit77d7b5cd40c41c6502c5e6256c7a47bd1d7c3388 (patch)
tree12802ed8f7da6ef761dc7c2044de15aeac754089
parentb1e361b6055246da496886e8ee7e0add94635f39 (diff)
ns16550: change map_sysmem to map_physmem
Change map_sysmem() to map_physmem(,,MAP_NOCACHE). Though map_sysmem() can be used to map system memory, it might be wrong to use it for I/O ports. The map_physmem() serves the same purpose to translate physical address to virtual address with the additional flag to take care of cache property. Most drivers use map_physmem() since I/O ports access should be uncached. As ns16550 is a driver, it should use map_physmem() rather than map_sysmem(). Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r--drivers/serial/ns16550.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 6433844f18..8d028de46a 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -8,7 +8,6 @@
#include <dm.h>
#include <errno.h>
#include <fdtdec.h>
-#include <mapmem.h>
#include <ns16550.h>
#include <serial.h>
#include <watchdog.h>
@@ -97,7 +96,7 @@ static void ns16550_writeb(NS16550_t port, int offset, int value)
unsigned char *addr;
offset *= 1 << plat->reg_shift;
- addr = map_sysmem(plat->base, 0) + offset;
+ addr = map_physmem(plat->base, 0, MAP_NOCACHE) + offset;
/*
* As far as we know it doesn't make sense to support selection of
* these options at run-time, so use the existing CONFIG options.
@@ -111,7 +110,7 @@ static int ns16550_readb(NS16550_t port, int offset)
unsigned char *addr;
offset *= 1 << plat->reg_shift;
- addr = map_sysmem(plat->base, 0) + offset;
+ addr = map_physmem(plat->base, 0, MAP_NOCACHE) + offset;
return serial_in_shift(addr, plat->reg_shift);
}