]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
vexpress64: fvp dram: add DRAM configuration
authorRyan Harkin <ryan.harkin@linaro.org>
Fri, 9 Oct 2015 16:18:02 +0000 (17:18 +0100)
committerTom Rini <trini@konsulko.com>
Sun, 11 Oct 2015 21:11:47 +0000 (17:11 -0400)
Create an additional FVP configuration to boot images pre-loaded into
DRAM.

Sometimes it's preferential to boot the model by loading the files
directly into DRAM via model parameters, rather than using
SemiHosting.

An example of model parmaters that are used to pre-load the files
into DRAM:
    --data cluster0.cpu0=Image@0x80080000 \
    --data cluster0.cpu0=fvp-base-gicv2-psci.dtb@0x83000000 \
    --data cluster0.cpu0=uInitrd@0x84000000

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
[trini: Update board/armltd/vexpress64/Kconfig logic]
Signed-off-by: Tom Rini <trini@konsulko.com>
arch/arm/Kconfig
board/armltd/vexpress64/Kconfig
board/armltd/vexpress64/MAINTAINERS
configs/vexpress_aemv8a_dram_defconfig [new file with mode: 0644]
include/configs/vexpress_aemv8a.h

index 3a336e6fdfe16078ee6ebbe29ab17f9ebb1ac3f8..798135574a799cb279f5f068406b34d0c4725bb8 100644 (file)
@@ -567,6 +567,15 @@ config TARGET_VEXPRESS64_BASE_FVP
        select ARM64
        select SEMIHOSTING
 
+config TARGET_VEXPRESS64_BASE_FVP_DRAM
+       bool "Support Versatile Express ARMv8a FVP BASE model booting from DRAM"
+       select ARM64
+       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
+         DRAM using model parameters rather than by using semi-hosting to load
+         the files from the host filesystem.
+
 config TARGET_VEXPRESS64_JUNO
        bool "Support Versatile Express Juno Development Platform"
        select ARM64
index 9014418433401de164bcd7673bbc6a312786c75b..e05f353b80b1b91159a1abb55700b8264142ba1b 100644 (file)
@@ -1,4 +1,4 @@
-if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_JUNO
+if TARGET_VEXPRESS64_BASE_FVP || TARGET_VEXPRESS64_JUNO || TARGET_VEXPRESS64_BASE_FVP_DRAM
 
 config SYS_BOARD
        default "vexpress64"
index 0ba044d7ff8711816df1ba8028de0df3aacc41bb..15b0a08646496064531b4903174aac91898af4df 100644 (file)
@@ -10,6 +10,11 @@ M:   Linus Walleij <linus.walleij@linaro.org>
 S:     Maintained
 F:     configs/vexpress_aemv8a_semi_defconfig
 
+VEXPRESS_AEMV8A_DRAM BOARD
+M:     Ryan Harkin <ryan.harkin@linaro.org>
+S:     Maintained
+F:     configs/vexpress_aemv8a_dram_defconfig
+
 JUNO DEVELOPMENT PLATFORM BOARD
 M:     Linus Walleij <linus.walleij@linaro.org>
 S:     Maintained
diff --git a/configs/vexpress_aemv8a_dram_defconfig b/configs/vexpress_aemv8a_dram_defconfig
new file mode 100644 (file)
index 0000000..e9fc870
--- /dev/null
@@ -0,0 +1,19 @@
+CONFIG_ARM=y
+CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM=y
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_DEFAULT_DEVICE_TREE="vexpress64"
+# 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_LOADS is not set
+# CONFIG_CMD_FLASH is not set
+# CONFIG_CMD_FPGA is not set
+# CONFIG_CMD_ITEST is not set
+# CONFIG_CMD_SETEXPR is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_CMD_MISC is not set
+CONFIG_DM=y
+CONFIG_DM_SERIAL=y
+CONFIG_SYS_PROMPT="VExpress64# "
index c54baf8c7bbe1978df215d59523cd374d9a0f1d4..c1e2e111c94186e1645ad3d4c8cf22233f356145 100644 (file)
@@ -30,7 +30,8 @@
 #define CONFIG_BOOTP_VCI_STRING                "U-boot.armv8.vexpress_aemv8a"
 
 /* Link Definitions */
-#ifdef CONFIG_TARGET_VEXPRESS64_BASE_FVP
+#if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
+       defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM)
 /* 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)
 #define GICR_BASE                      (0x2f100000)
 #else
 
-#ifdef CONFIG_TARGET_VEXPRESS64_BASE_FVP
+#if defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP) || \
+       defined(CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM)
 #define GICD_BASE                      (0x2f000000)
 #define GICC_BASE                      (0x2c000000)
 #elif CONFIG_TARGET_VEXPRESS64_JUNO
 
 #define CONFIG_BOOTDELAY               1
 
+#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM
+#define CONFIG_EXTRA_ENV_SETTINGS      \
+                               "kernel_addr=0x80080000\0"      \
+                               "initrd_addr=0x84000000\0"      \
+                               "fdt_addr=0x83000000\0"         \
+                               "fdt_high=0xffffffffffffffff\0" \
+                               "initrd_high=0xffffffffffffffff\0"
+
+#define CONFIG_BOOTARGS                "console=ttyAMA0 earlyprintk=pl011,"\
+                               "0x1c090000 debug user_debug=31 "\
+                               "androidboot.hardware=fvpbase "\
+                               "root=/dev/vda2 rw "\
+                               "rootwait "\
+                               "loglevel=9"
+
+#define CONFIG_BOOTCOMMAND     "booti $kernel_addr $initrd_addr $fdt_addr"
+
+#define CONFIG_BOOTDELAY               1
+
 #else
 #error "Unknown board variant"
 #endif