aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/Kconfig8
-rw-r--r--board/armltd/vexpress64/Kconfig2
-rw-r--r--configs/vexpress_juno_aarch32_defconfig34
-rw-r--r--include/configs/vexpress_aemv8a.h24
4 files changed, 59 insertions, 9 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 5df33089e7..0a6ee962d5 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -750,6 +750,7 @@ config TARGET_VEXPRESS64_BASE_FVP
config TARGET_VEXPRESS64_BASE_FVP_AARCH32
bool "Support Versatile Express ARMv8a 32-bit FVP BASE model booting from DRAM"
select CPU_V7
+ select SEMIHOSTING
help
This target is derived from TARGET_VEXPRESS64_BASE_FVP and over-rides
the default config to allow the user to load the images directly into
@@ -760,6 +761,13 @@ config TARGET_VEXPRESS64_JUNO
bool "Support Versatile Express Juno Development Platform"
select ARM64
+config TARGET_VEXPRESS64_JUNO_AARCH32
+ bool "Support Versatile Express Juno Development Platform in 32-bit mode"
+ select CPU_V7
+ help
+ This target is derived from TARGET_VEXPRESS64_JUNO, except it uses an
+ ARMv7 CPU type to support booting in Aarch32 mode.
+
config TARGET_LS2080A_EMU
bool "Support ls2080a_emu"
select ARCH_LS2080A
diff --git a/board/armltd/vexpress64/Kconfig b/board/armltd/vexpress64/Kconfig
index a81cfbf322..f6930aee47 100644
--- a/board/armltd/vexpress64/Kconfig
+++ b/board/armltd/vexpress64/Kconfig
@@ -1,4 +1,4 @@
-if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_BASE_FVP_AARCH32 || TARGET_VEXPRESS64_JUNO
+if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_BASE_FVP_AARCH32 || TARGET_VEXPRESS64_JUNO || TARGET_VEXPRESS64_JUNO_AARCH32
config SYS_BOARD
default "vexpress64"
diff --git a/configs/vexpress_juno_aarch32_defconfig b/configs/vexpress_juno_aarch32_defconfig
new file mode 100644
index 0000000000..e06c101a6f
--- /dev/null
+++ b/configs/vexpress_juno_aarch32_defconfig
@@ -0,0 +1,34 @@
+CONFIG_ARM=y
+CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_IDENT_STRING=" vexpress_aemv8a juno aarch32"
+CONFIG_BOOTDELAY=1
+# CONFIG_DISPLAY_CPUINFO is not set
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="juno32# "
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_CONSOLE is not set
+# CONFIG_CMD_IMLS is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_EDITENV is not set
+# CONFIG_CMD_ENV_EXISTS is not set
+CONFIG_CMD_MEMTEST=y
+CONFIG_MTD_NOR_FLASH=y
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_ARMFLASH=y
+# CONFIG_CMD_FPGA is not set
+# CONFIG_CMD_ITEST is not set
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_DHCP=y
+# CONFIG_CMD_NFS is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+# CONFIG_CMD_MISC is not set
+CONFIG_CMD_FAT=y
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
+CONFIG_OF_LIBFDT=y
+CONFIG_ARCH_FIXUP_FDT=n
+CONFIG_ARCH_FIXUP_FDT_MEMORY=n
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 0f5fc1ee36..55cc5d60d5 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -33,7 +33,8 @@
/* 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
+#elif defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define CONFIG_SYS_TEXT_BASE 0xe0000000
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x7fff0)
#endif
@@ -61,7 +62,8 @@
#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
+#if defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define V2M_UART0 0x7ff80000
#define V2M_UART1 0x7ff70000
#else /* Not Juno */
@@ -102,7 +104,8 @@
#ifdef CONFIG_TARGET_VEXPRESS64_BASE_FVP
#define GICD_BASE (0x2f000000)
#define GICC_BASE (0x2c000000)
-#elif CONFIG_TARGET_VEXPRESS64_JUNO
+#elif defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define GICD_BASE (0x2C010000)
#define GICC_BASE (0x2C02f000)
#endif
@@ -112,7 +115,8 @@
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (8 << 20))
/* Ethernet Configuration */
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#if defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
/* The real hardware Versatile express uses SMSC9118 */
#define CONFIG_SMC911X 1
#define CONFIG_SMC911X_32_BIT 1
@@ -127,7 +131,8 @@
#define CONFIG_CONS_INDEX 0
#define CONFIG_PL01X_SERIAL
#define CONFIG_PL011_SERIAL
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#if defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define CONFIG_PL011_CLOCK 7273800
#else
#define CONFIG_PL011_CLOCK 24000000
@@ -152,7 +157,7 @@
#define PHYS_SDRAM_1_SIZE 0x80000000 - DRAM_SEC_SIZE
#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#if defined(CONFIG_TARGET_VEXPRESS64_JUNO)
#define CONFIG_NR_DRAM_BANKS 2
#define PHYS_SDRAM_2 (0x880000000)
#define PHYS_SDRAM_2_SIZE 0x180000000
@@ -165,7 +170,8 @@
#define CONFIG_SYS_MEMTEST_END (PHYS_SDRAM_1 + PHYS_SDRAM_1_SIZE)
/* Initial environment variables */
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#if defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
/*
* Defines where the kernel and FDT exist in NOR flash and where it will
* be copied into DRAM
@@ -192,6 +198,7 @@
"androidboot.hardware=juno "\
"loglevel=9"
+
/* Copy the kernel and FDT to DRAM memory and boot */
#define CONFIG_BOOTCOMMAND "afs load ${kernel_name} ${kernel_addr} ; " \
"if test $? -eq 1; then "\
@@ -265,7 +272,8 @@
#define CONFIG_CMDLINE_EDITING
#define CONFIG_SYS_MAXARGS 64 /* max command args */
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
+#if defined(CONFIG_TARGET_VEXPRESS64_JUNO) || \
+ defined(CONFIG_TARGET_VEXPRESS64_JUNO_AARCH32)
#define CONFIG_SYS_FLASH_BASE 0x08000000
/* 255 x 256KiB sectors + 4 x 64KiB sectors at the end = 259 */
#define CONFIG_SYS_MAX_FLASH_SECT 259