[U-Boot] [PATCH] microblaze: usable uart16550 for big endian systems

Stephan Linz linz at li-pro.net
Sat Nov 19 13:03:57 CET 2011


As a result of the commit 6833260 the uart16550 driver
is broken for Microblaze big endian systems, because of
the missing 3 byte offset. Other than as described, the
U-Boot BSP does not treat properly the 3 byte offset.

However, with the new 32 bit access to ns16550 registers
we can enable correct register access for Microblaze big
and little endian systems in the same manner.

Signed-off-by: Stephan Linz <linz at li-pro.net>
---
 include/configs/microblaze-generic.h |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h
index 6b3fd76..cd3d2a1 100644
--- a/include/configs/microblaze-generic.h
+++ b/include/configs/microblaze-generic.h
@@ -41,7 +41,12 @@
 #elif XILINX_UART16550_BASEADDR
 # define CONFIG_SYS_NS16550		1
 # define CONFIG_SYS_NS16550_SERIAL
+# define CONFIG_SYS_NS16550_MEM32
+#if defined(__MICROBLAZEEL__)
 # define CONFIG_SYS_NS16550_REG_SIZE	-4
+#else
+# define CONFIG_SYS_NS16550_REG_SIZE	4
+#endif
 # define CONFIG_CONS_INDEX		1
 # define CONFIG_SYS_NS16550_COM1 \
 			(XILINX_UART16550_BASEADDR + 0x1000)
-- 
1.7.0.4



More information about the U-Boot mailing list