arm: lpc32xx: switch SPL builds to driver model
authorVladimir Zapolskiy <vz@mleia.com>
Sat, 19 Dec 2015 21:29:26 +0000 (23:29 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 14 Jan 2016 02:05:22 +0000 (21:05 -0500)
For NXP LPC32xx boards the change enables SPL_DM option, this allows
to use any driver model UART driver in SPL images, hence a restriction
on HSUART in SPL image is removed and well as definitions for non-DM
NS16550 driver, its DM version is used instead.

Because SPL_DM requires malloc(), enable CONFIG_SPL_SYS_MALLOC_SIMPLE
for LPC32xx boards.

The change adds about 5KB to the resulting SPL image (for devkit3250
board SPL image is increased from 10672 to 15608 bytes).

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/arm/cpu/arm926ejs/lpc32xx/devices.c
arch/arm/include/asm/arch-lpc32xx/config.h
configs/devkit3250_defconfig
configs/work_92105_defconfig

index 6f1018607c77f0c2f7901610a9f8948f363b9a0b..b6db23e981fbd69f5f3cb91cbde60983ef4f1513 100644 (file)
@@ -43,7 +43,7 @@ void lpc32xx_uart_init(unsigned int uart_id)
               &clk->u3clk + (uart_id - 3));
 }
 
-#if !CONFIG_IS_ENABLED(OF_CONTROL) && !defined(CONFIG_SPL_BUILD)
+#if !CONFIG_IS_ENABLED(OF_CONTROL)
 static const struct ns16550_platdata lpc32xx_uart[] = {
        { UART3_BASE, 2, CONFIG_SYS_NS16550_CLK },
        { UART4_BASE, 2, CONFIG_SYS_NS16550_CLK },
index 27e60e1cea4f486adf3b327b2149e7ceb95b443b..3b7f6bdb720fe867be9f83d8388e3e962a250699 100644 (file)
 /* UART configuration */
 #if    (CONFIG_SYS_LPC32XX_UART == 1) || (CONFIG_SYS_LPC32XX_UART == 2) || \
        (CONFIG_SYS_LPC32XX_UART == 7)
-#if defined(CONFIG_SPL_BUILD)
-/* SPL images do not support LPC32xx HSUART, UART5 is selected for SPL */
-#undef CONFIG_SYS_LPC32XX_UART
-#define CONFIG_SYS_LPC32XX_UART                5
-#endif
-
 #if !defined(CONFIG_LPC32XX_HSUART)
 #define CONFIG_LPC32XX_HSUART
 #endif
 #endif
 
-#if defined(CONFIG_SPL_BUILD)
-#define CONFIG_SYS_NS16550_SERIAL
-#define CONFIG_SYS_NS16550_REG_SIZE    -4
-#define CONFIG_SYS_NS16550_CLK         get_serial_clock()
-
-#define CONFIG_SYS_NS16550_COM1                UART3_BASE
-#define CONFIG_SYS_NS16550_COM2                UART4_BASE
-#define CONFIG_SYS_NS16550_COM3                UART5_BASE
-#define CONFIG_SYS_NS16550_COM4                UART6_BASE
-#endif
-
 #if !defined(CONFIG_SYS_NS16550_CLK)
 #define CONFIG_SYS_NS16550_CLK         13000000
 #endif
 
-#if !defined(CONFIG_LPC32XX_HSUART) || defined(CONFIG_SPL_BUILD)
+#if !defined(CONFIG_LPC32XX_HSUART)
 #define CONFIG_CONS_INDEX              (CONFIG_SYS_LPC32XX_UART - 2)
 #else
 #define CONFIG_CONS_INDEX              CONFIG_SYS_LPC32XX_UART
index 0abb8e09e0831eeca21c97bc9b75cf2bca213058..ddf09fe5eb879a9dd7b02f01ff9fa9e7d2035f3f 100644 (file)
@@ -1,5 +1,7 @@
 CONFIG_ARM=y
 CONFIG_TARGET_DEVKIT3250=y
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_DM=y
 CONFIG_DM_SERIAL=y
 CONFIG_DM_GPIO=y
 CONFIG_SPL=y
index a5a108ee6e47e71eb11a9d8a947e3bc38cbc827b..1a9097a9a684ec5c41da6e701f4c607cac52b71f 100644 (file)
@@ -1,5 +1,7 @@
 CONFIG_ARM=y
 CONFIG_TARGET_WORK_92105=y
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
+CONFIG_SPL_DM=y
 CONFIG_DM_SERIAL=y
 CONFIG_DM_GPIO=y
 CONFIG_SPL=y