protocols, dual camera support, optional 3D graphics
          and an optional customer programmable secure boot.
 
-config RMOBILE
+config ARCH_RMOBILE
        bool "Renesas ARM SoCs"
        select CPU_V7
+       select DM
+       select DM_SERIAL
 
 config TARGET_S32V234EVB
        bool "Support s32v234evb"
 
 machine-$(CONFIG_ARCH_SUNXI)           += sunxi
 machine-$(CONFIG_ARCH_SNAPDRAGON)      += snapdragon
 machine-$(CONFIG_ARCH_SOCFPGA)         += socfpga
-machine-$(CONFIG_RMOBILE)              += rmobile
+machine-$(CONFIG_ARCH_RMOBILE)         += rmobile
 machine-$(CONFIG_ARCH_ROCKCHIP)                += rockchip
 machine-$(CONFIG_STM32)                        += stm32
 machine-$(CONFIG_TEGRA)                        += tegra
 
-if RMOBILE
+if ARCH_RMOBILE
 
 choice
        prompt "Renesus ARM SoCs board select"
 
 #ifndef __ASM_ARCH_RMOBILE_H
 #define __ASM_ARCH_RMOBILE_H
 
-#if defined(CONFIG_RMOBILE)
+#if defined(CONFIG_ARCH_RMOBILE)
 #if defined(CONFIG_SH73A0)
 #include <asm/arch/sh73a0.h>
 #elif defined(CONFIG_R8A7740)
 #else
 #error "SOC Name not defined"
 #endif
-#endif /* CONFIG_RMOBILE */
+#endif /* CONFIG_ARCH_RMOBILE */
 
 #ifndef __ASSEMBLY__
 u32 rmobile_get_cpu_type(void);
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 int board_late_init(void)
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 int dram_init(void)
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 void reset_cpu(ulong addr)
 
 #include <asm/io.h>
 #include <asm/arch/rmobile.h>
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 /* QoS version 0.311 for ES1 and version 0.321 for ES2 */
 
 enum {
        writel(0x00000001, &axi_qos->qosthres2);
        writel(0x00000001, &axi_qos->qosqon);
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 void reset_cpu(ulong addr)
 
 #include <asm/io.h>
 #include <asm/arch/rmobile.h>
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 /* QoS version 0.311 */
 enum {
        DBSC3_00, DBSC3_01, DBSC3_02, DBSC3_03, DBSC3_04,
        writel(0x00000001, &axi_qos->qosthres2);
        writel(0x00000001, &axi_qos->qosqon);
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 void reset_cpu(ulong addr)
 
 #include <asm/arch/rmobile.h>
 
 /* QoS version 0.240 for ES1 and version 0.411 for ES2 */
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 enum {
        DBSC3_00, DBSC3_01, DBSC3_02, DBSC3_03, DBSC3_04,
        DBSC3_05, DBSC3_06, DBSC3_07, DBSC3_08, DBSC3_09,
        writel(0x00000001, &axi_qos->qosthres2);
        writel(0x00000001, &axi_qos->qosqon);
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 void reset_cpu(ulong addr)
 
 #include <asm/arch/rmobile.h>
 
 /* QoS version 0.955 for ES1 and version 0.973 for ES2 */
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 enum {
        DBSC3_00, DBSC3_01, DBSC3_02, DBSC3_03, DBSC3_04,
        DBSC3_05, DBSC3_06, DBSC3_07, DBSC3_08, DBSC3_09,
        else
                qos_init_es1();
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 void reset_cpu(ulong addr)
 
 #include <asm/arch/rmobile.h>
 
 /* QoS version 0.240 for ES1 and version 0.334 for ES2 */
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 enum {
        DBSC3_00, DBSC3_01, DBSC3_02, DBSC3_03, DBSC3_04,
        DBSC3_05, DBSC3_06, DBSC3_07, DBSC3_08, DBSC3_09,
        writel(0x00000001, &axi_qos->qosthres2);
        writel(0x00000001, &axi_qos->qosqon);
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 #include <asm/io.h>
 #include <asm/arch/rmobile.h>
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 /* QoS version 0.11 */
 
 enum {
        writel(0x00000001, &axi_qos->qosthres2);
        writel(0x00000001, &axi_qos->qosqon);
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 void reset_cpu(ulong addr)
 
 #include <asm/arch/rmobile.h>
 
 /* QoS version 0.955 for ES1 and version 0.973 for ES2 */
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 enum {
        DBSC3_00, DBSC3_01, DBSC3_02, DBSC3_03, DBSC3_04,
        DBSC3_05, DBSC3_06, DBSC3_07, DBSC3_08, DBSC3_09,
        else
                qos_init_es1();
 }
-#else /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#else /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 void qos_init(void)
 {
 }
-#endif /* CONFIG_RMOBILE_EXTRAM_BOOT */
+#endif /* CONFIG_ARCH_RMOBILE_EXTRAM_BOOT */
 
 }
 
 const struct rmobile_sysinfo sysinfo = {
-       CONFIG_RMOBILE_BOARD_STRING
+       CONFIG_ARCH_RMOBILE_BOARD_STRING
 };
 
 static const struct sh_serial_platdata serial_platdata = {
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_ALT=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_ARMADILLO_800EVA=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_GOSE=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_KOELSCH=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_KZM9G=y
 CONFIG_BOOTDELAY=3
 CONFIG_SYS_PROMPT="KZM-A9-GT# "
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_LAGER=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_PORTER=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_SILK=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 CONFIG_ARM=y
-CONFIG_RMOBILE=y
+CONFIG_ARCH_RMOBILE=y
 CONFIG_TARGET_STOUT=y
 CONFIG_BOOTDELAY=3
 # CONFIG_CMD_BDI is not set
 
 #define SOFT_RST_OFF           (0 << 31)
 
 #define CLKDEV_EMMC_DATA       52000000        /* 52MHz */
-#ifdef CONFIG_RMOBILE
+#ifdef CONFIG_ARCH_RMOBILE
 #define MMC_CLK_DIV_MIN(clk)   (clk / (1 << 9))
 #define MMC_CLK_DIV_MAX(clk)   (clk / (1 << 1))
 #else
 
 
 #undef DEBUG
 #define CONFIG_R8A7794
-#define CONFIG_RMOBILE_BOARD_STRING "Alt"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Alt"
 
 #include "rcar-gen2-common.h"
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0x70000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE6304000
 #endif
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_INIT_SP_ADDR                0x7003FFFC
 #else
 #define CONFIG_SYS_INIT_SP_ADDR                0xE633FFFC
 
 
 #undef DEBUG
 #define CONFIG_R8A7740
-#define CONFIG_RMOBILE_BOARD_STRING "Armadillo-800EVA Board\n"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Armadillo-800EVA Board\n"
 #define CONFIG_SH_GPIO_PFC
 
 #include <asm/arch/rmobile.h>
 
 
 #undef DEBUG
 #define CONFIG_R8A7793
-#define CONFIG_RMOBILE_BOARD_STRING "Gose"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Gose"
 
 #include "rcar-gen2-common.h"
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0x70000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE6304000
 #endif
 
 /* STACK */
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_INIT_SP_ADDR                0x7003FFFC
 #else
 #define CONFIG_SYS_INIT_SP_ADDR                0xE633FFFC
 
 
 #undef DEBUG
 #define CONFIG_R8A7791
-#define CONFIG_RMOBILE_BOARD_STRING "Koelsch"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Koelsch"
 
 #include "rcar-gen2-common.h"
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0x70000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE6304000
 #endif
 
 /* STACK */
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_INIT_SP_ADDR                0x7003FFFC
 #else
 #define CONFIG_SYS_INIT_SP_ADDR                0xE633fffC
 
 
 #define CONFIG_SH73A0
 #define CONFIG_KZM_A9_GT
-#define CONFIG_RMOBILE_BOARD_STRING    "KMC KZM-A9-GT"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING       "KMC KZM-A9-GT"
 #define CONFIG_MACH_TYPE MACH_TYPE_KZM9G
 
 #include <asm/arch/rmobile.h>
 
 
 #undef DEBUG
 #define CONFIG_R8A7790
-#define CONFIG_RMOBILE_BOARD_STRING "Lager"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Lager"
 
 #include "rcar-gen2-common.h"
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0xB0000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE8080000
 
 
 #undef DEBUG
 #define CONFIG_R8A7791
-#define CONFIG_RMOBILE_BOARD_STRING "Porter"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Porter"
 
 #include "rcar-gen2-common.h"
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0x70000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE6304000
 #endif
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_INIT_SP_ADDR                0x7003FFFC
 #else
 #define CONFIG_SYS_INIT_SP_ADDR                0xE633fffC
 
 
 #undef DEBUG
 #define CONFIG_R8A7794
-#define CONFIG_RMOBILE_BOARD_STRING "Silk"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Silk"
 
 #include "rcar-gen2-common.h"
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0x70000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE6304000
 #endif
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_INIT_SP_ADDR                0x7003FFFC
 #else
 #define CONFIG_SYS_INIT_SP_ADDR                0xE633FFFC
 
 
 #undef DEBUG
 #define CONFIG_R8A7790
-#define CONFIG_RMOBILE_BOARD_STRING "Stout"
+#define CONFIG_ARCH_RMOBILE_BOARD_STRING "Stout"
 
 #include "rcar-gen2-common.h"
 
 /* #define CONFIG_BOARD_LATE_INIT */
 
-#if defined(CONFIG_RMOBILE_EXTRAM_BOOT)
+#if defined(CONFIG_ARCH_RMOBILE_EXTRAM_BOOT)
 #define CONFIG_SYS_TEXT_BASE   0xB0000000
 #else
 #define CONFIG_SYS_TEXT_BASE   0xE8080000
 
 };
 #endif /* CONFIG_CPU_SH3 */
 
-#if defined(CONFIG_CPU_SH4) || defined(CONFIG_RMOBILE)
+#if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_RMOBILE)
 struct tmu_regs {
        u32 reserved;
        u8  tstr;