[U-Boot] [PATCH 49/60] ARM: tegra: convert boards to new hooks

Stephen Warren swarren at wwwdotorg.org
Tue Apr 19 22:59:29 CEST 2016


From: Stephen Warren <swarren at nvidia.com>

Implementations of the following functions are converted to use the new
standardized hooks: gpio_early_init, gpio_early_init_uart, pinmux_init,
board_init_uart_f. This simplifies the core board files.

SPL UART configuration is moved out of config headers and into board code.
This removes logic from the board configuration files.

The now-unused board_init_uart_f() implementation is deleted, simplifying
the core board files and removing code that's hard to port to future SoCs.

Whitespace was removed from tegra_board_early_init_f() to save space and
be consistent between boards.

Signed-off-by: Stephen Warren <swarren at nvidia.com>
---
 arch/arm/mach-tegra/Makefile              |   1 +
 arch/arm/mach-tegra/board.c               | 114 ------------------------------
 arch/arm/mach-tegra/board2.c              |  15 ----
 arch/arm/mach-tegra/cpu.h                 |   2 -
 arch/arm/mach-tegra/include/mach/board.h  |   7 --
 arch/arm/mach-tegra/spl.c                 |   5 --
 board/avionic-design/common/tamonten-ng.c |  22 ++++--
 board/avionic-design/common/tamonten.c    |  12 +++-
 board/compal/paz00/paz00.c                |   8 +++
 board/compulab/trimslice/trimslice.c      |  10 ++-
 board/nvidia/cardhu/cardhu.c              |  18 ++---
 board/nvidia/dalmore/dalmore.c            |  21 +++---
 board/nvidia/e2220-1170/e2220-1170.c      |  10 +--
 board/nvidia/harmony/harmony.c            |   8 +++
 board/nvidia/jetson-tk1/jetson-tk1.c      |  21 +++---
 board/nvidia/nyan-big/nyan-big.c          |  14 ++--
 board/nvidia/p2371-0000/p2371-0000.c      |  10 +--
 board/nvidia/p2371-2180/p2371-2180.c      |  10 +--
 board/nvidia/p2571/p2571.c                |  10 +--
 board/nvidia/seaboard/seaboard.c          |  12 ++--
 board/nvidia/venice2/venice2.c            |  14 ++--
 board/nvidia/whistler/whistler.c          |  10 ++-
 board/toradex/apalis_t30/apalis_t30.c     |  20 +++---
 board/toradex/colibri_t20/colibri_t20.c   |   8 +++
 board/toradex/colibri_t30/colibri_t30.c   |  14 ++--
 include/configs/apalis_t30.h              |   5 +-
 include/configs/cardhu.h                  |   6 +-
 include/configs/colibri_t20.h             |   6 +-
 include/configs/colibri_t30.h             |   5 +-
 include/configs/dalmore.h                 |   6 +-
 include/configs/e2220-1170.h              |   5 +-
 include/configs/harmony.h                 |  12 +---
 include/configs/jetson-tk1.h              |   6 +-
 include/configs/nyan-big.h                |   6 +-
 include/configs/p2371-0000.h              |   5 +-
 include/configs/p2371-2180.h              |   5 +-
 include/configs/p2571.h                   |   6 +-
 include/configs/paz00.h                   |   6 +-
 include/configs/seaboard.h                |   4 --
 include/configs/tec-ng.h                  |   5 +-
 include/configs/tec.h                     |   6 +-
 include/configs/trimslice.h               |   7 +-
 include/configs/venice2.h                 |   6 +-
 include/configs/whistler.h                |   7 +-
 44 files changed, 174 insertions(+), 336 deletions(-)

diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index f1c1f84fc933..55086c9ddfef 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -26,6 +26,7 @@ obj-y += xusb-padctl-dummy.o
 obj-$(CONFIG_DISPLAY_CPUINFO) += sys_info.o
 obj-$(CONFIG_TEGRA_GPU) += gpu.o
 obj-$(CONFIG_SPL_BUILD) += i2c_early.o
+obj-$(CONFIG_SPL_BUILD) += spl_uart.o
 
 ifndef CONFIG_SPL_BUILD
 obj-$(CONFIG_ARMV7_PSCI) += psci.o
diff --git a/arch/arm/mach-tegra/board.c b/arch/arm/mach-tegra/board.c
index 71eb1a5d1b63..a5ee5a3572b1 100644
--- a/arch/arm/mach-tegra/board.c
+++ b/arch/arm/mach-tegra/board.c
@@ -6,8 +6,6 @@
  */
 
 #include <common.h>
-#include <dm.h>
-#include <ns16550.h>
 #include <spl.h>
 #include <asm/io.h>
 #include <asm/arch/clock.h>
@@ -21,16 +19,6 @@ void save_boot_params_ret(void);
 
 DECLARE_GLOBAL_DATA_PTR;
 
-enum {
-	/* UARTs which we can enable */
-	UARTA	= 1 << 0,
-	UARTB	= 1 << 1,
-	UARTC	= 1 << 2,
-	UARTD	= 1 << 3,
-	UARTE	= 1 << 4,
-	UART_COUNT = 5,
-};
-
 static bool from_spl __attribute__ ((section(".data")));
 
 #ifndef CONFIG_SPL_BUILD
@@ -121,108 +109,6 @@ int dram_init(void)
 	return 0;
 }
 
-static int uart_configs[] = {
-#if defined(CONFIG_TEGRA20)
- #if defined(CONFIG_TEGRA_UARTA_UAA_UAB)
-	FUNCMUX_UART1_UAA_UAB,
- #elif defined(CONFIG_TEGRA_UARTA_GPU)
-	FUNCMUX_UART1_GPU,
- #elif defined(CONFIG_TEGRA_UARTA_SDIO1)
-	FUNCMUX_UART1_SDIO1,
- #else
-	FUNCMUX_UART1_IRRX_IRTX,
-#endif
-	FUNCMUX_UART2_UAD,
-	-1,
-	FUNCMUX_UART4_GMC,
-	-1,
-#elif defined(CONFIG_TEGRA30)
-	FUNCMUX_UART1_ULPI,	/* UARTA */
-	-1,
-	-1,
-	-1,
-	-1,
-#elif defined(CONFIG_TEGRA114)
-	-1,
-	-1,
-	-1,
-	FUNCMUX_UART4_GMI,	/* UARTD */
-	-1,
-#elif defined(CONFIG_TEGRA124)
-	FUNCMUX_UART1_KBC,	/* UARTA */
-	-1,
-	-1,
-	FUNCMUX_UART4_GPIO,	/* UARTD */
-	-1,
-#else	/* Tegra210 */
-	FUNCMUX_UART1_UART1,	/* UARTA */
-	-1,
-	-1,
-	FUNCMUX_UART4_UART4,	/* UARTD */
-	-1,
-#endif
-};
-
-/**
- * Set up the specified uarts
- *
- * @param uarts_ids	Mask containing UARTs to init (UARTx)
- */
-static void setup_uarts(int uart_ids)
-{
-	static enum periph_id id_for_uart[] = {
-		PERIPH_ID_UART1,
-		PERIPH_ID_UART2,
-		PERIPH_ID_UART3,
-		PERIPH_ID_UART4,
-		PERIPH_ID_UART5,
-	};
-	size_t i;
-
-	for (i = 0; i < UART_COUNT; i++) {
-		if (uart_ids & (1 << i)) {
-			enum periph_id id = id_for_uart[i];
-
-			funcmux_select(id, uart_configs[i]);
-			clock_ll_start_uart(id);
-		}
-	}
-}
-
-void board_init_uart_f(void)
-{
-	int uart_ids = 0;	/* bit mask of which UART ids to enable */
-
-#ifdef CONFIG_TEGRA_ENABLE_UARTA
-	uart_ids |= UARTA;
-#endif
-#ifdef CONFIG_TEGRA_ENABLE_UARTB
-	uart_ids |= UARTB;
-#endif
-#ifdef CONFIG_TEGRA_ENABLE_UARTC
-	uart_ids |= UARTC;
-#endif
-#ifdef CONFIG_TEGRA_ENABLE_UARTD
-	uart_ids |= UARTD;
-#endif
-#ifdef CONFIG_TEGRA_ENABLE_UARTE
-	uart_ids |= UARTE;
-#endif
-	setup_uarts(uart_ids);
-}
-
-#if !CONFIG_IS_ENABLED(OF_CONTROL)
-static struct ns16550_platdata ns16550_com1_pdata = {
-	.base = CONFIG_SYS_NS16550_COM1,
-	.reg_shift = 2,
-	.clock = CONFIG_SYS_NS16550_CLK,
-};
-
-U_BOOT_DEVICE(ns16550_com1) = {
-	"ns16550_serial", &ns16550_com1_pdata
-};
-#endif
-
 #if !defined(CONFIG_SYS_DCACHE_OFF) && !defined(CONFIG_ARM64)
 void enable_caches(void)
 {
diff --git a/arch/arm/mach-tegra/board2.c b/arch/arm/mach-tegra/board2.c
index cf17f709d480..91965cbc3176 100644
--- a/arch/arm/mach-tegra/board2.c
+++ b/arch/arm/mach-tegra/board2.c
@@ -48,10 +48,8 @@ U_BOOT_DEVICE(tegra_gpios) = {
 };
 #endif
 
-__weak void pinmux_init(void) {}
 __weak void pin_mux_usb(void) {}
 __weak void pin_mux_spi(void) {}
-__weak void gpio_early_init_uart(void) {}
 __weak void pin_mux_display(void) {}
 
 #if defined(CONFIG_TEGRA_NAND)
@@ -177,12 +175,6 @@ int board_init(void)
 	return tegra_board_init();
 }
 
-static void __gpio_early_init(void)
-{
-}
-
-void gpio_early_init(void) __attribute__((weak, alias("__gpio_early_init")));
-
 __weak void tegra_board_early_init_f(void) {}
 
 int board_early_init_f(void)
@@ -203,13 +195,6 @@ int board_early_init_f(void)
 
 	tegra_board_early_init_f();
 
-	pinmux_init();
-	board_init_uart_f();
-
-	/* Initialize periph GPIOs */
-	gpio_early_init();
-	gpio_early_init_uart();
-
 	return 0;
 }
 
diff --git a/arch/arm/mach-tegra/cpu.h b/arch/arm/mach-tegra/cpu.h
index 4cb0b43b3723..ecc627c5c09d 100644
--- a/arch/arm/mach-tegra/cpu.h
+++ b/arch/arm/mach-tegra/cpu.h
@@ -65,7 +65,5 @@ void config_cache(void);
 #if defined(CONFIG_TEGRA_SUPPORT_NON_SECURE)
 bool tegra_cpu_is_non_secure(void);
 #endif
-/* Set up early UART output */
-void board_init_uart_f(void);
 
 #endif
diff --git a/arch/arm/mach-tegra/include/mach/board.h b/arch/arm/mach-tegra/include/mach/board.h
index b12ec7eed25e..a621f37aa38a 100644
--- a/arch/arm/mach-tegra/include/mach/board.h
+++ b/arch/arm/mach-tegra/include/mach/board.h
@@ -8,12 +8,6 @@
 #ifndef _MACH_BOARD_H
 #define _MACH_BOARD_H
 
-/* Set up pinmux to make UART usable */
-void gpio_early_init_uart(void);
-
-/* Set up any early GPIOs the board might need for proper operation */
-void gpio_early_init(void);  /* overrideable GPIO config        */
-
 /*
  * Hooks to allow boards to set up the pinmux for a specific function.
  * Has to be implemented in the board files as we don't yet support pinmux
@@ -21,7 +15,6 @@ void gpio_early_init(void);  /* overrideable GPIO config        */
  * an empty stub function will be called.
  */
 
-void pinmux_init(void);      /* overridable general pinmux setup */
 void pin_mux_usb(void);      /* overridable USB pinmux setup     */
 void pin_mux_spi(void);      /* overridable SPI pinmux setup     */
 void pin_mux_nand(void);     /* overridable NAND pinmux setup    */
diff --git a/arch/arm/mach-tegra/spl.c b/arch/arm/mach-tegra/spl.c
index 35b538f0f614..1c01f6c93c46 100644
--- a/arch/arm/mach-tegra/spl.c
+++ b/arch/arm/mach-tegra/spl.c
@@ -28,11 +28,6 @@ void spl_board_init(void)
 	/* enable JTAG */
 	writel(0xC0, &apb_misc->cfg_ctl);
 
-	board_init_uart_f();
-
-	/* Initialize periph GPIOs */
-	gpio_early_init_uart();
-
 	clock_early_init();
 	tegra_spl_board_init();
 	preloader_console_init();
diff --git a/board/avionic-design/common/tamonten-ng.c b/board/avionic-design/common/tamonten-ng.c
index 9955af3f6bbb..695d0e714461 100644
--- a/board/avionic-design/common/tamonten-ng.c
+++ b/board/avionic-design/common/tamonten-ng.c
@@ -11,7 +11,9 @@
 #include <i2c.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 #include "pinmux-config-tamonten-ng.h"
 
 #define PMU_I2C_ADDRESS		0x2D
@@ -27,7 +29,20 @@
 
 #define PMU_LDO5(st, mV)	PMU_REG_LDO_100(st, mV)
 
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+#if 0
+	/*
+	 * The funcmux call that used to be in arch/arm/mach-tegra/board.c
+	 * setup_uarts() for Tegra30 UARTD triggered an error and so did
+	 * nothing. Do nothing here too.
+	 */
+	tegra30_pinmux_uartd_missing();
+#endif
+	tegra_spl_setup_uart(TEGRA_SPL_UART_D);
+}
+
+void tegra_board_early_init_f(void)
 {
 	pinmux_config_pingrp_table(tamonten_ng_pinmux_common,
 		ARRAY_SIZE(tamonten_ng_pinmux_common));
@@ -37,10 +52,7 @@ void pinmux_init(void)
 	/* Initialize any non-default pad configs (APB_MISC_GP regs) */
 	pinmux_config_drvgrp_table(tamonten_ng_padctrl,
 		ARRAY_SIZE(tamonten_ng_padctrl));
-}
 
-void gpio_early_init(void)
-{
 	/* Turn on the alive signal */
 	gpio_request(TEGRA_GPIO(V, 2), "ALIVE");
 	gpio_direction_output(TEGRA_GPIO(V, 2), 1);
@@ -85,7 +97,7 @@ void pin_mux_mmc(void)
 {
 	/*
 	 * NOTE: We don't do mmc-specific pin muxes here.
-	 * They were done globally in pinmux_init().
+	 * They were done globally in tegra_board_early_init_f().
 	 */
 
 	/* Bring up the SDIO1 power rail */
diff --git a/board/avionic-design/common/tamonten.c b/board/avionic-design/common/tamonten.c
index 7d3a5e72bc19..0b1ed37c8b52 100644
--- a/board/avionic-design/common/tamonten.c
+++ b/board/avionic-design/common/tamonten.c
@@ -17,15 +17,21 @@
 #include <asm/arch/tegra.h>
 #include <asm/arch-tegra/clk_rst.h>
 #include <mach/board.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 
-#ifdef CONFIG_BOARD_EARLY_INIT_F
-void gpio_early_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra20_pinmux_uartd_gmc();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_D);
+}
+
+void tegra_board_early_init_f(void)
 {
 	gpio_request(TEGRA_GPIO(I, 4), NULL);
 	gpio_direction_output(TEGRA_GPIO(I, 4), 1);
 }
-#endif
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/compal/paz00/paz00.c b/board/compal/paz00/paz00.c
index 8ae07d396474..e591af4f7b78 100644
--- a/board/compal/paz00/paz00.c
+++ b/board/compal/paz00/paz00.c
@@ -11,7 +11,15 @@
 #include <asm/io.h>
 #include <asm/arch/tegra.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
+
+void tegra_spl_board_init(void)
+{
+	tegra20_pinmux_uarta_irrx_irtx();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/compulab/trimslice/trimslice.c b/board/compulab/trimslice/trimslice.c
index a1f4f2213dc8..3fd10b2be4aa 100644
--- a/board/compulab/trimslice/trimslice.c
+++ b/board/compulab/trimslice/trimslice.c
@@ -6,13 +6,21 @@
  */
 
 #include <common.h>
+#include <i2c.h>
 #include <asm/io.h>
 #include <asm/arch/tegra.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/funcmux.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
-#include <i2c.h>
+#include <mach/spl_uart.h>
+
+void tegra_spl_board_init(void)
+{
+	tegra20_pinmux_uarta_gpu();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
 
 void pin_mux_usb(void)
 {
diff --git a/board/nvidia/cardhu/cardhu.c b/board/nvidia/cardhu/cardhu.c
index b78d2bf46d24..f5c04b45664f 100644
--- a/board/nvidia/cardhu/cardhu.c
+++ b/board/nvidia/cardhu/cardhu.c
@@ -10,24 +10,26 @@
 #include <i2c.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 #include "pinmux-config-cardhu.h"
 
 #define PMU_I2C_ADDRESS		0x2D
 #define MAX_I2C_RETRY		3
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra30_pinmux_uarta_ulpi();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
+
+void tegra_board_early_init_f(void)
 {
 	pinmux_config_pingrp_table(tegra3_pinmux_common,
 		ARRAY_SIZE(tegra3_pinmux_common));
-
 	pinmux_config_pingrp_table(unused_pins_lowpower,
 		ARRAY_SIZE(unused_pins_lowpower));
-
 	/* Initialize any non-default pad configs (APB_MISC_GP regs) */
 	pinmux_config_drvgrp_table(cardhu_padctrl, ARRAY_SIZE(cardhu_padctrl));
 }
@@ -77,7 +79,7 @@ void pin_mux_mmc(void)
 {
 	/*
 	 * NOTE: We don't do mmc-specific pin muxes here.
-	 * They were done globally in pinmux_init().
+	 * They were done globally in tegra_board_early_init_f().
 	 */
 
 	/* Bring up the SDIO1 power rail */
diff --git a/board/nvidia/dalmore/dalmore.c b/board/nvidia/dalmore/dalmore.c
index ad9214d1e37a..3af42fa79ff2 100644
--- a/board/nvidia/dalmore/dalmore.c
+++ b/board/nvidia/dalmore/dalmore.c
@@ -6,28 +6,29 @@
 
 #include <common.h>
 #include <dm.h>
+#include <i2c.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 #include "pinmux-config-dalmore.h"
-#include <i2c.h>
 
 #define BAT_I2C_ADDRESS		0x48	/* TPS65090 charger */
 #define PMU_I2C_ADDRESS		0x58	/* TPS65913 PMU */
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra114_pinmux_uartd_gmi();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_D);
+}
+
+void tegra_board_early_init_f(void)
 {
 	pinmux_config_pingrp_table(tegra114_pinmux_set_nontristate,
 		ARRAY_SIZE(tegra114_pinmux_set_nontristate));
-
 	pinmux_config_pingrp_table(tegra114_pinmux_common,
 		ARRAY_SIZE(tegra114_pinmux_common));
-
 	pinmux_config_pingrp_table(unused_pins_lowpower,
 		ARRAY_SIZE(unused_pins_lowpower));
-
 	/* Initialize any non-default pad configs (APB_MISC_GP regs) */
 	pinmux_config_drvgrp_table(dalmore_padctrl,
 		ARRAY_SIZE(dalmore_padctrl));
@@ -91,7 +92,7 @@ void pin_mux_mmc(void)
 {
 	/*
 	 * NOTE: We don't do mmc-specific pin muxes here.
-	 * They were done globally in pinmux_init().
+	 * They were done globally in tegra_board_early_init_f().
 	 */
 
 	/* Bring up the SDIO3 power rail */
diff --git a/board/nvidia/e2220-1170/e2220-1170.c b/board/nvidia/e2220-1170/e2220-1170.c
index 5d2f3589b678..9ccdc28b0b32 100644
--- a/board/nvidia/e2220-1170/e2220-1170.c
+++ b/board/nvidia/e2220-1170/e2220-1170.c
@@ -9,6 +9,7 @@
 #include <i2c.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
 #include <mach/tegra_gpio.h>
 #include "../p2571/max77620_init.h"
@@ -34,20 +35,13 @@ void pin_mux_mmc(void)
 		printf("i2c_write 0 0x3c 0x27 failed: %d\n", ret);
 }
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_board_early_init_f(void)
 {
 	pinmux_clear_tristate_input_clamping();
-
 	gpio_config_table(e2220_1170_gpio_inits,
 			  ARRAY_SIZE(e2220_1170_gpio_inits));
-
 	pinmux_config_pingrp_table(e2220_1170_pingrps,
 				   ARRAY_SIZE(e2220_1170_pingrps));
-
 	pinmux_config_drvgrp_table(e2220_1170_drvgrps,
 				   ARRAY_SIZE(e2220_1170_drvgrps));
 }
diff --git a/board/nvidia/harmony/harmony.c b/board/nvidia/harmony/harmony.c
index 4f3df8fe9655..0139a2fdb239 100644
--- a/board/nvidia/harmony/harmony.c
+++ b/board/nvidia/harmony/harmony.c
@@ -12,7 +12,15 @@
 #include <asm/arch/funcmux.h>
 #include <asm/arch/tegra.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
+
+void tegra_spl_board_init(void)
+{
+	tegra20_pinmux_uartd_gmc();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_D);
+}
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/nvidia/jetson-tk1/jetson-tk1.c b/board/nvidia/jetson-tk1/jetson-tk1.c
index bac2d0c36101..cb2f8abf47bf 100644
--- a/board/nvidia/jetson-tk1/jetson-tk1.c
+++ b/board/nvidia/jetson-tk1/jetson-tk1.c
@@ -9,29 +9,32 @@
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <power/as3722.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
+#include <mach/spl_uart.h>
 #include <mach/tegra_gpio.h>
 #include "pinmux-config-jetson-tk1.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+#include <asm/arch/clock.h>
+
+void tegra_spl_board_init(void)
 {
-	pinmux_clear_tristate_input_clamping();
+	tegra124_pinmux_uartd_gpio();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_D);
+}
 
+void tegra_board_early_init_f(void)
+{
+	pinmux_clear_tristate_input_clamping();
 	gpio_config_table(jetson_tk1_gpio_inits,
 			  ARRAY_SIZE(jetson_tk1_gpio_inits));
-
 	pinmux_config_pingrp_table(jetson_tk1_pingrps,
 				   ARRAY_SIZE(jetson_tk1_pingrps));
-
 	pinmux_config_drvgrp_table(jetson_tk1_drvgrps,
 				   ARRAY_SIZE(jetson_tk1_drvgrps));
-
 	pinmux_config_mipipadctrlgrp_table(jetson_tk1_mipipadctrlgrps,
 					ARRAY_SIZE(jetson_tk1_mipipadctrlgrps));
 }
diff --git a/board/nvidia/nyan-big/nyan-big.c b/board/nvidia/nyan-big/nyan-big.c
index 1af7f535f6d4..762dc955d7c1 100644
--- a/board/nvidia/nyan-big/nyan-big.c
+++ b/board/nvidia/nyan-big/nyan-big.c
@@ -14,15 +14,19 @@
 #include <asm/io.h>
 #include <asm/arch/clock.h>
 #include <asm/arch-tegra/clk_rst.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
 #include <mach/tegra_gpio.h>
+#include <mach/spl_uart.h>
 #include "pinmux-config-nyan-big.h"
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra124_pinmux_uarta_kbc();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
+
+void tegra_board_early_init_f(void)
 {
 	gpio_config_table(nyan_big_gpio_inits,
 			  ARRAY_SIZE(nyan_big_gpio_inits));
diff --git a/board/nvidia/p2371-0000/p2371-0000.c b/board/nvidia/p2371-0000/p2371-0000.c
index a63f95f1f4f1..6152f8898c6d 100644
--- a/board/nvidia/p2371-0000/p2371-0000.c
+++ b/board/nvidia/p2371-0000/p2371-0000.c
@@ -9,6 +9,7 @@
 #include <i2c.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
 #include <mach/tegra_gpio.h>
 #include "../p2571/max77620_init.h"
@@ -34,20 +35,13 @@ void pin_mux_mmc(void)
 		printf("i2c_write 0 0x3c 0x27 failed: %d\n", ret);
 }
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_board_early_init_f(void)
 {
 	pinmux_clear_tristate_input_clamping();
-
 	gpio_config_table(p2371_0000_gpio_inits,
 			  ARRAY_SIZE(p2371_0000_gpio_inits));
-
 	pinmux_config_pingrp_table(p2371_0000_pingrps,
 				   ARRAY_SIZE(p2371_0000_pingrps));
-
 	pinmux_config_drvgrp_table(p2371_0000_drvgrps,
 				   ARRAY_SIZE(p2371_0000_drvgrps));
 }
diff --git a/board/nvidia/p2371-2180/p2371-2180.c b/board/nvidia/p2371-2180/p2371-2180.c
index c9884bd70335..8e0a5834415f 100644
--- a/board/nvidia/p2371-2180/p2371-2180.c
+++ b/board/nvidia/p2371-2180/p2371-2180.c
@@ -9,6 +9,7 @@
 #include <i2c.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
 #include <mach/tegra_gpio.h>
 #include "../p2571/max77620_init.h"
@@ -34,20 +35,13 @@ void pin_mux_mmc(void)
 		printf("i2c_write 0 0x3c 0x27 failed: %d\n", ret);
 }
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_board_early_init_f(void)
 {
 	pinmux_clear_tristate_input_clamping();
-
 	gpio_config_table(p2371_2180_gpio_inits,
 			  ARRAY_SIZE(p2371_2180_gpio_inits));
-
 	pinmux_config_pingrp_table(p2371_2180_pingrps,
 				   ARRAY_SIZE(p2371_2180_pingrps));
-
 	pinmux_config_drvgrp_table(p2371_2180_drvgrps,
 				   ARRAY_SIZE(p2371_2180_drvgrps));
 }
diff --git a/board/nvidia/p2571/p2571.c b/board/nvidia/p2571/p2571.c
index ae9b6aa2e54c..ee82cc9e6fd7 100644
--- a/board/nvidia/p2571/p2571.c
+++ b/board/nvidia/p2571/p2571.c
@@ -9,6 +9,7 @@
 #include <i2c.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
 #include <mach/tegra_gpio.h>
 #include "max77620_init.h"
@@ -34,20 +35,13 @@ void pin_mux_mmc(void)
 		printf("i2c_write 0 0x3c 0x27 failed: %d\n", ret);
 }
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_board_early_init_f(void)
 {
 	pinmux_clear_tristate_input_clamping();
-
 	gpio_config_table(p2571_gpio_inits,
 			  ARRAY_SIZE(p2571_gpio_inits));
-
 	pinmux_config_pingrp_table(p2571_pingrps,
 				   ARRAY_SIZE(p2571_pingrps));
-
 	pinmux_config_drvgrp_table(p2571_drvgrps,
 				   ARRAY_SIZE(p2571_drvgrps));
 }
diff --git a/board/nvidia/seaboard/seaboard.c b/board/nvidia/seaboard/seaboard.c
index cc017554548a..1a430461aa02 100644
--- a/board/nvidia/seaboard/seaboard.c
+++ b/board/nvidia/seaboard/seaboard.c
@@ -13,17 +13,21 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/funcmux.h>
 #include <mach/board.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 
-/* TODO: Remove this code when the SPI switch is working */
-#if (CONFIG_MACH_TYPE != MACH_TYPE_VENTANA)
-void gpio_early_init_uart(void)
+void tegra_spl_board_init(void)
 {
+	tegra20_pinmux_uartd_gmc();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_D);
+
+#if (CONFIG_MACH_TYPE != MACH_TYPE_VENTANA)
 	/* Enable UART via GPIO_PI3 (port 8, bit 3) so serial console works */
 	gpio_request(TEGRA_GPIO(I, 3), "uart_en");
 	gpio_direction_output(TEGRA_GPIO(I, 3), 0);
-}
 #endif
+}
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/nvidia/venice2/venice2.c b/board/nvidia/venice2/venice2.c
index 9b02afd16040..6ed5f4af8cd4 100644
--- a/board/nvidia/venice2/venice2.c
+++ b/board/nvidia/venice2/venice2.c
@@ -8,15 +8,19 @@
 #include <common.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
 #include <mach/tegra_gpio.h>
+#include <mach/spl_uart.h>
 #include "pinmux-config-venice2.h"
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra124_pinmux_uarta_kbc();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
+
+void tegra_board_early_init_f(void)
 {
 	pinmux_set_tristate_input_clamping();
 
diff --git a/board/nvidia/whistler/whistler.c b/board/nvidia/whistler/whistler.c
index b2c71a361afd..757bef019718 100644
--- a/board/nvidia/whistler/whistler.c
+++ b/board/nvidia/whistler/whistler.c
@@ -7,13 +7,21 @@
 
 #include <common.h>
 #include <dm.h>
+#include <i2c.h>
 #include <asm/io.h>
 #include <asm/arch/tegra.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/funcmux.h>
 #include <asm/gpio.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
-#include <i2c.h>
+#include <mach/spl_uart.h>
+
+void tegra_spl_board_init(void)
+{
+	tegra20_pinmux_uarta_uaa_uab();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
 
 #ifdef CONFIG_TEGRA_MMC
 /*
diff --git a/board/toradex/apalis_t30/apalis_t30.c b/board/toradex/apalis_t30/apalis_t30.c
index 06fddec6e0fe..3db9308323fd 100644
--- a/board/toradex/apalis_t30/apalis_t30.c
+++ b/board/toradex/apalis_t30/apalis_t30.c
@@ -7,12 +7,14 @@
  */
 
 #include <common.h>
+#include <dm.h>
+#include <i2c.h>
 #include <asm/arch-tegra/tegra.h>
 #include <asm/gpio.h>
 #include <asm/io.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
-#include <dm.h>
-#include <i2c.h>
+#include <mach/spl_uart.h>
 
 #include "pinmux-config-apalis_t30.h"
 
@@ -28,18 +30,18 @@ int arch_misc_init(void)
 	return 0;
 }
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra30_pinmux_uarta_ulpi();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
+
+void tegra_board_early_init_f(void)
 {
 	pinmux_config_pingrp_table(tegra3_pinmux_common,
 				   ARRAY_SIZE(tegra3_pinmux_common));
-
 	pinmux_config_pingrp_table(unused_pins_lowpower,
 				   ARRAY_SIZE(unused_pins_lowpower));
-
 	/* Initialize any non-default pad configs (APB_MISC_GP regs) */
 	pinmux_config_drvgrp_table(apalis_t30_padctrl,
 				   ARRAY_SIZE(apalis_t30_padctrl));
diff --git a/board/toradex/colibri_t20/colibri_t20.c b/board/toradex/colibri_t20/colibri_t20.c
index 87dfcd5f3f19..44851536e6c8 100644
--- a/board/toradex/colibri_t20/colibri_t20.c
+++ b/board/toradex/colibri_t20/colibri_t20.c
@@ -14,7 +14,9 @@
 #include <asm/arch/funcmux.h>
 #include <asm/arch-tegra/tegra.h>
 #include <mach/board.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 
 #define PMU_I2C_ADDRESS		0x34
 #define MAX_I2C_RETRY		3
@@ -22,6 +24,12 @@
 #define PMU_SUPPLYENE_SYSINEN	(1<<5)
 #define PMU_SUPPLYENE_EXITSLREQ	(1<<1)
 
+void tegra_spl_board_init(void)
+{
+	tegra20_pinmux_uarta_sdio1();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
+
 int arch_misc_init(void)
 {
 	/* Disable PMIC sleep mode on low supply voltage */
diff --git a/board/toradex/colibri_t30/colibri_t30.c b/board/toradex/colibri_t30/colibri_t30.c
index 1be24b86fdc4..62a151a9dcb7 100644
--- a/board/toradex/colibri_t30/colibri_t30.c
+++ b/board/toradex/colibri_t30/colibri_t30.c
@@ -12,7 +12,9 @@
 #include <asm/gpio.h>
 #include <asm/io.h>
 #include <asm/arch-tegra/tegra.h>
+#include <mach/board_init.h>
 #include <mach/pinmux.h>
+#include <mach/spl_uart.h>
 #include "pinmux-config-colibri_t30.h"
 
 int arch_misc_init(void)
@@ -24,11 +26,13 @@ int arch_misc_init(void)
 	return 0;
 }
 
-/*
- * Routine: pinmux_init
- * Description: Do individual peripheral pinmux configs
- */
-void pinmux_init(void)
+void tegra_spl_board_init(void)
+{
+	tegra30_pinmux_uarta_ulpi();
+	tegra_spl_setup_uart(TEGRA_SPL_UART_A);
+}
+
+void tegra_board_early_init_f(void)
 {
 	pinmux_config_pingrp_table(tegra3_pinmux_common,
 				   ARRAY_SIZE(tegra3_pinmux_common));
diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h
index 32e9ba38d9df..d104aa9ccae9 100644
--- a/include/configs/apalis_t30.h
+++ b/include/configs/apalis_t30.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2014-2015 Marcel Ziswiler
+ * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
  *
  * Configuration settings for the Toradex Apalis T30 modules.
  *
@@ -18,10 +19,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Toradex Apalis T30"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_APALIS_T30
 
 /* I2C */
diff --git a/include/configs/cardhu.h b/include/configs/cardhu.h
index acfe96895fbb..cb90f3ccaa86 100644
--- a/include/configs/cardhu.h
+++ b/include/configs/cardhu.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2012, NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2010-2016, NVIDIA CORPORATION.  All rights reserved.
  *
  * SPDX-License-Identifier:	GPL-2.0
  */
@@ -21,10 +21,6 @@
 	"board_name=cardhu-a04\0" \
 	"fdtfile=tegra30-cardhu-a04.dtb\0"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_CARDHU
 
 /* I2C */
diff --git a/include/configs/colibri_t20.h b/include/configs/colibri_t20.h
index e97e5a10dc26..93ed102a734c 100644
--- a/include/configs/colibri_t20.h
+++ b/include/configs/colibri_t20.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2012 Lucas Stach
+ * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
  *
  * Configuration settings for the Toradex Colibri T20 modules.
  *
@@ -16,11 +17,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T20"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_TEGRA_UARTA_SDIO1
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_COLIBRI_T20
 
 /* I2C */
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
index 47914c767987..e5aaab742388 100644
--- a/include/configs/colibri_t30.h
+++ b/include/configs/colibri_t30.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2013-2015 Stefan Agner
+ * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
  *
  * Configuration settings for the Toradex Colibri T30 modules.
  *
@@ -18,10 +19,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Toradex Colibri T30"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_COLIBRI_T30
 
 /* I2C */
diff --git a/include/configs/dalmore.h b/include/configs/dalmore.h
index f74ced1b4395..43b81b63932d 100644
--- a/include/configs/dalmore.h
+++ b/include/configs/dalmore.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2013, NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2010-2016, NVIDIA CORPORATION.  All rights reserved.
  *
  * SPDX-License-Identifier:	GPL-2.0
  */
@@ -14,10 +14,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Dalmore"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTD
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTD_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_DALMORE
 
 /* I2C */
diff --git a/include/configs/e2220-1170.h b/include/configs/e2220-1170.h
index 33ebb7c7afaa..6f4bfb2eb40b 100644
--- a/include/configs/e2220-1170.h
+++ b/include/configs/e2220-1170.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2013-2015
+ * (C) Copyright 2013-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0+
@@ -15,9 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA E2220-1170"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/harmony.h b/include/configs/harmony.h
index 0a3cb18a2ec4..ab1de5c23ad5 100644
--- a/include/configs/harmony.h
+++ b/include/configs/harmony.h
@@ -1,5 +1,5 @@
 /*
- *  (C) Copyright 2010-2012
+ *  (C) Copyright 2010-2016
  *  NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+
@@ -14,16 +14,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Harmony"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTD
-
-/* UARTD: keyboard satellite board UART, default */
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTD_BASE
-#ifdef CONFIG_TEGRA_ENABLE_UARTA
-/* UARTA: debug board UART */
-#define CONFIG_SYS_NS16550_COM2		NV_PA_APB_UARTA_BASE
-#endif
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_HARMONY
 
 /* SD/MMC */
diff --git a/include/configs/jetson-tk1.h b/include/configs/jetson-tk1.h
index 59dbb208cdd8..2ee15fa8775c 100644
--- a/include/configs/jetson-tk1.h
+++ b/include/configs/jetson-tk1.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2013-2014
+ * (C) Copyright 2013-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0
@@ -18,10 +18,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Jetson TK1"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTD
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTD_BASE
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/nyan-big.h b/include/configs/nyan-big.h
index 0b6173be9b81..6d037ba4e460 100644
--- a/include/configs/nyan-big.h
+++ b/include/configs/nyan-big.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2014
+ * (C) Copyright 2014-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0+
@@ -15,10 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Google/NVIDIA Nyan-big"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_DISPLAY_BOARDINFO_LATE
 
 /* I2C */
diff --git a/include/configs/p2371-0000.h b/include/configs/p2371-0000.h
index 9ca29f8b4ee1..0a066b7a1c70 100644
--- a/include/configs/p2371-0000.h
+++ b/include/configs/p2371-0000.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2013-2015
+ * (C) Copyright 2013-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0+
@@ -15,9 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA P2371-0000"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/p2371-2180.h b/include/configs/p2371-2180.h
index c55f07ede277..3337080efe3f 100644
--- a/include/configs/p2371-2180.h
+++ b/include/configs/p2371-2180.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2013-2015
+ * (C) Copyright 2013-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0+
@@ -15,9 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA P2371-2180"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/p2571.h b/include/configs/p2571.h
index d35e25524f9a..d8a5fdf15aca 100644
--- a/include/configs/p2571.h
+++ b/include/configs/p2571.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2013-2015
+ * (C) Copyright 2013-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0+
@@ -15,10 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA P2571"
 
-/* Board-specific serial config */
-#define CONFIG_SERIAL_MULTI
-#define CONFIG_TEGRA_ENABLE_UARTA
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/paz00.h b/include/configs/paz00.h
index 6acecb1e27a1..18a7d5229f39 100644
--- a/include/configs/paz00.h
+++ b/include/configs/paz00.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010-2012 NVIDIA CORPORATION.  All rights reserved.
+ * Copyright (c) 2010-2016 NVIDIA CORPORATION.  All rights reserved.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -16,10 +16,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Compal Paz00"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_PAZ00
 
 /* SD/MMC */
diff --git a/include/configs/seaboard.h b/include/configs/seaboard.h
index 09509b45f993..a301b8fbf47d 100644
--- a/include/configs/seaboard.h
+++ b/include/configs/seaboard.h
@@ -22,10 +22,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Seaboard"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTD
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTD_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_SEABOARD
 
 /* I2C */
diff --git a/include/configs/tec-ng.h b/include/configs/tec-ng.h
index 019e32ce867d..699eee3ab141 100644
--- a/include/configs/tec-ng.h
+++ b/include/configs/tec-ng.h
@@ -1,6 +1,7 @@
 /*
  * (C) Copyright 2013
  * Avionic Design GmbH <www.avionic-design.de>
+ * Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
  *
  * SPDX-License-Identifier:	GPL-2.0+
  */
@@ -13,10 +14,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Avionic Design Tamonten™ NG Evaluation Carrier"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTD
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTD_BASE
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/tec.h b/include/configs/tec.h
index a9472146b092..458d4bf093cb 100644
--- a/include/configs/tec.h
+++ b/include/configs/tec.h
@@ -1,5 +1,5 @@
 /*
- *  (C) Copyright 2010,2011
+ *  (C) Copyright 2010-2016
  *  NVIDIA Corporation <www.nvidia.com>
  *  (C) Copyright 2011-2012
  *  Avionic Design GmbH <www.avionic-design.de>
@@ -15,10 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Avionic Design Tamonten Evaluation Carrier"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTD	/* UARTD: debug UART */
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTD_BASE
-
 /* SD/MMC */
 #define CONFIG_MMC
 #define CONFIG_GENERIC_MMC
diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h
index ca188bec24c1..e504ee6a4c2b 100644
--- a/include/configs/trimslice.h
+++ b/include/configs/trimslice.h
@@ -1,5 +1,5 @@
 /*
- *  (C) Copyright 2010-2012
+ *  (C) Copyright 2010-2016
  *  NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+
@@ -14,11 +14,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"Compulab Trimslice"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_TEGRA_UARTA_GPU
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_TRIMSLICE
 
 /* SPI */
diff --git a/include/configs/venice2.h b/include/configs/venice2.h
index 75f7268d10c2..06c2bf292658 100644
--- a/include/configs/venice2.h
+++ b/include/configs/venice2.h
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2013-2014
+ * (C) Copyright 2013-2016
  * NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:     GPL-2.0+
@@ -15,10 +15,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Venice2"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 /* I2C */
 #define CONFIG_SYS_I2C_TEGRA
 #define CONFIG_CMD_I2C
diff --git a/include/configs/whistler.h b/include/configs/whistler.h
index ff859644c36a..d42c26f336c9 100644
--- a/include/configs/whistler.h
+++ b/include/configs/whistler.h
@@ -1,5 +1,5 @@
 /*
- *  (C) Copyright 2010-2012
+ *  (C) Copyright 2010-2016
  *  NVIDIA Corporation <www.nvidia.com>
  *
  * SPDX-License-Identifier:	GPL-2.0+
@@ -14,11 +14,6 @@
 /* High-level configuration options */
 #define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Whistler"
 
-/* Board-specific serial config */
-#define CONFIG_TEGRA_ENABLE_UARTA
-#define CONFIG_TEGRA_UARTA_UAA_UAB
-#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
-
 #define CONFIG_MACH_TYPE		MACH_TYPE_WHISTLER
 
 /* I2C */
-- 
2.8.1




More information about the U-Boot mailing list