]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
vexpress64: support the Juno Development Platform
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 23 Jan 2015 13:41:10 +0000 (14:41 +0100)
committerTom Rini <trini@ti.com>
Fri, 30 Jan 2015 14:19:17 +0000 (09:19 -0500)
The Juno Development Platform is a physical Versatile Express
device with some differences from the emulated semihosting
models. The main difference is that the system is split in
a SoC and an FPGA where the SoC hosts the serial ports at
totally different adresses.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
arch/arm/Kconfig
board/armltd/vexpress64/Kconfig
board/armltd/vexpress64/MAINTAINERS
configs/vexpress_aemv8a_juno_defconfig [new file with mode: 0644]
include/configs/vexpress_aemv8a.h

index d5399f162d57a83993605ff385a44a9fa5057fcb..986b4c5d81db1009110eafb2c4606c79675c03a7 100644 (file)
@@ -736,6 +736,10 @@ config TARGET_VEXPRESS64_BASE_FVP
        select ARM64
        select SEMIHOSTING
 
+config TARGET_VEXPRESS64_JUNO
+       bool "Support Versatile Express Juno Development Platform"
+       select ARM64
+
 config TARGET_LS2085A_EMU
        bool "Support ls2085a_emu"
        select ARM64
index 80eaa3d3ab0807d56b110eb02d798f37c68c26f1..7d5e7bee8b9a9c4c9a9bfc0280a898e9dfff6986 100644 (file)
@@ -23,3 +23,16 @@ config SYS_CONFIG_NAME
        default "vexpress_aemv8a"
 
 endif
+
+if TARGET_VEXPRESS64_JUNO
+
+config SYS_BOARD
+       default "vexpress64"
+
+config SYS_VENDOR
+       default "armltd"
+
+config SYS_CONFIG_NAME
+       default "vexpress_aemv8a"
+
+endif
index 66c8dffa163420a647a5c65ae2f3d9817039a196..0ba044d7ff8711816df1ba8028de0df3aacc41bb 100644 (file)
@@ -9,3 +9,8 @@ VEXPRESS_AEMV8A_SEMI BOARD
 M:     Linus Walleij <linus.walleij@linaro.org>
 S:     Maintained
 F:     configs/vexpress_aemv8a_semi_defconfig
+
+JUNO DEVELOPMENT PLATFORM BOARD
+M:     Linus Walleij <linus.walleij@linaro.org>
+S:     Maintained
+F:     configs/vexpress_aemv8a_juno_defconfig
diff --git a/configs/vexpress_aemv8a_juno_defconfig b/configs/vexpress_aemv8a_juno_defconfig
new file mode 100644 (file)
index 0000000..d28a428
--- /dev/null
@@ -0,0 +1,5 @@
+# ARM Ltd. Juno Board Reference Design
+CONFIG_ARM=y
+CONFIG_TARGET_VEXPRESS64_JUNO=y
+CONFIG_DEFAULT_DEVICE_TREE="vexpress64"
+CONFIG_SHOW_BOOT_PROGRESS=y
index 85894bedf8bd99594d0198fbe60805c35d73538c..7fb28a54ba175f5bba12a4c7e6a20ea304202577 100644 (file)
@@ -21,7 +21,8 @@
 
 #define CONFIG_REMAKE_ELF
 
-#ifndef CONFIG_TARGET_VEXPRESS64_BASE_FVP
+#if !defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) && \
+    !defined(CONFIG_TARGET_VEXPRESS64_JUNO)
 /* Base FVP and Juno not using GICv3 yet */
 #define CONFIG_GICV3
 #endif
@@ -44,6 +45,9 @@
 /* ATF loads u-boot here for BASE_FVP model */
 #define CONFIG_SYS_TEXT_BASE           0x88000000
 #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x03f00000)
+#elif CONFIG_TARGET_VEXPRESS64_JUNO
+#define CONFIG_SYS_TEXT_BASE           0xe0000000
+#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x7fff0)
 #else
 #define CONFIG_SYS_TEXT_BASE           0x80000000
 #define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x7fff0)
 #define V2M_KMI0                       (V2M_PA_CS3 + V2M_PERIPH_OFFSET(6))
 #define V2M_KMI1                       (V2M_PA_CS3 + V2M_PERIPH_OFFSET(7))
 
+#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#define V2M_UART0                      0x7ff80000
+#define V2M_UART1                      0x7ff70000
+#else /* Not Juno */
 #define V2M_UART0                      (V2M_PA_CS3 + V2M_PERIPH_OFFSET(9))
 #define V2M_UART1                      (V2M_PA_CS3 + V2M_PERIPH_OFFSET(10))
 #define V2M_UART2                      (V2M_PA_CS3 + V2M_PERIPH_OFFSET(11))
 #define V2M_UART3                      (V2M_PA_CS3 + V2M_PERIPH_OFFSET(12))
+#endif
 
 #define V2M_WDT                                (V2M_PA_CS3 + V2M_PERIPH_OFFSET(15))
 
 #ifdef CONFIG_TARGET_VEXPRESS64_BASE_FVP
 #define GICD_BASE                      (0x2f000000)
 #define GICC_BASE                      (0x2c000000)
+#elif CONFIG_TARGET_VEXPRESS64_JUNO
+#define GICD_BASE                      (0x2C010000)
+#define GICC_BASE                      (0x2C02f000)
 #else
 #define GICD_BASE                      (0x2C001000)
 #define GICC_BASE                      (0x2C002000)
 
 /* PL011 Serial Configuration */
 #define CONFIG_PL011_SERIAL
+#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#define CONFIG_PL011_CLOCK             7273800
+#else
 #define CONFIG_PL011_CLOCK             24000000
+#endif
 #define CONFIG_PL01x_PORTS             {(void *)CONFIG_SYS_SERIAL0, \
                                         (void *)CONFIG_SYS_SERIAL1}
 #define CONFIG_CONS_INDEX              0
 #define CONFIG_CMD_ENV
 #define CONFIG_CMD_FLASH
 #define CONFIG_CMD_IMI
+#define CONFIG_CMD_LOADB
 #define CONFIG_CMD_MEMORY
 #define CONFIG_CMD_MII
 #define CONFIG_CMD_NET