[U-Boot] [PATCH 9/9] malta: Use device model & tree for UART
Paul Burton
paul.burton at imgtec.com
Fri Jan 29 14:54:55 CET 2016
Make use of device model & device tree to probe the UART driver. This is
the initial step in bringing Malta up to date with driver model, and
allows for cleaner handling of the different I/O addresses for different
system controllers by specifying the ISA bus address instead of a
translated memory address.
The device tree includes the other 2 UARTs found on a Malta system too,
in order that they can be used easily by tweaking the chosen node.
Signed-off-by: Paul Burton <paul.burton at imgtec.com>
---
arch/mips/Kconfig | 5 +++++
arch/mips/dts/Makefile | 2 +-
arch/mips/dts/mti,malta.dts | 50 +++++++++++++++++++++++++++++++++++++++++++++
board/imgtec/malta/malta.c | 13 ------------
configs/malta_defconfig | 1 +
configs/maltael_defconfig | 1 +
include/configs/malta.h | 8 +-------
7 files changed, 59 insertions(+), 21 deletions(-)
create mode 100644 arch/mips/dts/mti,malta.dts
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 585887c..aaaf3c0 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -23,7 +23,12 @@ config TARGET_QEMU_MIPS
config TARGET_MALTA
bool "Support malta"
+ select DM
+ select DM_SERIAL
select DYNAMIC_IO_PORT_BASE
+ select OF_CONTROL
+ select OF_EMBED
+ select OF_ISA_BUS
select SUPPORTS_BIG_ENDIAN
select SUPPORTS_LITTLE_ENDIAN
select SUPPORTS_CPU_MIPS32_R1
diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 47b6eb5..24b5e5a 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-2.0+
#
-dtb-y +=
+dtb-$(CONFIG_TARGET_MALTA) += mti,malta.dtb
targets += $(dtb-y)
diff --git a/arch/mips/dts/mti,malta.dts b/arch/mips/dts/mti,malta.dts
new file mode 100644
index 0000000..30a8b50
--- /dev/null
+++ b/arch/mips/dts/mti,malta.dts
@@ -0,0 +1,50 @@
+/dts-v1/;
+
+/memreserve/ 0x00000000 0x00001000; /* Exception vectors */
+/memreserve/ 0x000f0000 0x00010000; /* PIIX4 ISA memory */
+
+/ {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "mti,malta";
+
+ chosen {
+ stdout-path = &uart0;
+ };
+
+ isa {
+ compatible = "isa";
+ #address-cells = <2>;
+ #size-cells = <1>;
+ ranges = <1 0 0 0x1000>;
+
+ uart1: serial at 2f8 {
+ compatible = "ns16550a";
+
+ reg = <1 0x2f8 0x40>;
+ reg-shift = <0>;
+
+ clock-frequency = <1843200>;
+ };
+
+ uart0: serial at 3f8 {
+ compatible = "ns16550a";
+
+ reg = <1 0x3f8 0x40>;
+ reg-shift = <0>;
+
+ clock-frequency = <1843200>;
+
+ u-boot,dm-pre-reloc;
+ };
+ };
+
+ uart2: serial at 1f000900 {
+ compatible = "ns16550a";
+
+ reg = <0x1f000900 0x40>;
+ reg-shift = <3>;
+
+ clock-frequency = <3686400>;
+ };
+};
diff --git a/board/imgtec/malta/malta.c b/board/imgtec/malta/malta.c
index e31331a..dc6a510 100644
--- a/board/imgtec/malta/malta.c
+++ b/board/imgtec/malta/malta.c
@@ -12,7 +12,6 @@
#include <pci_gt64120.h>
#include <pci_msc01.h>
#include <rtc.h>
-#include <serial.h>
#include <asm/addrspace.h>
#include <asm/io.h>
@@ -161,18 +160,6 @@ int misc_init_r(void)
return 0;
}
-struct serial_device *default_serial_console(void)
-{
- switch (malta_sys_con()) {
- case SYSCON_GT64120:
- return &eserial1_device;
-
- default:
- case SYSCON_MSC01:
- return &eserial2_device;
- }
-}
-
void pci_init_board(void)
{
pci_dev_t bdf;
diff --git a/configs/malta_defconfig b/configs/malta_defconfig
index 2ebd58b..16839e1 100644
--- a/configs/malta_defconfig
+++ b/configs/malta_defconfig
@@ -7,3 +7,4 @@ CONFIG_TARGET_MALTA=y
# CONFIG_CMD_NFS is not set
CONFIG_SYS_NS16550=y
CONFIG_USE_PRIVATE_LIBGCC=y
+CONFIG_DEFAULT_DEVICE_TREE="mti,malta"
diff --git a/configs/maltael_defconfig b/configs/maltael_defconfig
index d24d217..f42af8e 100644
--- a/configs/maltael_defconfig
+++ b/configs/maltael_defconfig
@@ -8,3 +8,4 @@ CONFIG_SYS_LITTLE_ENDIAN=y
# CONFIG_CMD_NFS is not set
CONFIG_SYS_NS16550=y
CONFIG_USE_PRIVATE_LIBGCC=y
+CONFIG_DEFAULT_DEVICE_TREE="mti,malta"
diff --git a/include/configs/malta.h b/include/configs/malta.h
index aecc8ce..5311d24 100644
--- a/include/configs/malta.h
+++ b/include/configs/malta.h
@@ -13,6 +13,7 @@
#define CONFIG_MALTA
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_DISPLAY_BOARDINFO
+#define CONFIG_OF_LIBFDT
#define CONFIG_MEMSIZE_IN_BYTES
@@ -77,13 +78,6 @@
*/
#define CONFIG_BAUDRATE 115200
-#define CONFIG_SYS_NS16550_SERIAL
-#define CONFIG_SYS_NS16550_REG_SIZE 1
-#define CONFIG_SYS_NS16550_CLK (115200 * 16)
-#define CONFIG_SYS_NS16550_COM1 0xb80003f8
-#define CONFIG_SYS_NS16550_COM2 0xbb0003f8
-#define CONFIG_CONS_INDEX 1
-
/*
* Flash configuration
*/
--
2.7.0
More information about the U-Boot
mailing list