[v3,04/10] vexpress64: fvp dram: add DRAM configuration

Message ID 1443721416-725-5-git-send-email-ryan.harkin@linaro.org
State New
Headers show

Commit Message

Ryan Harkin Oct. 1, 2015, 5:43 p.m.
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

Signedoff-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
CC: David Feng <fenghua@phytium.com.cn>
CC: Bhupesh Sharma <bhupesh.sharma@freescale.com>
CC: Linus Walleij <linus.walleij@linaro.org>
---
 arch/arm/Kconfig                       |  4 ++++
 configs/vexpress_aemv8a_dram_defconfig | 19 +++++++++++++++++++
 include/configs/vexpress_aemv8a.h      | 25 +++++++++++++++++++++++--
 3 files changed, 46 insertions(+), 2 deletions(-)

Comments

Ryan Harkin Oct. 1, 2015, 5:49 p.m. | #1
I'm sorry about this, it's becoming embarassing:  I've dropped the
maintainer hunk this time.

I'll stop posting until my jetlag subsides and make sure I've covered all
the bases.

Apologies.

On 1 October 2015 at 18:43, Ryan Harkin <ryan.harkin@linaro.org> wrote:

> 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
>
> Signedoff-by: Ryan Harkin <ryan.harkin@linaro.org>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
> CC: David Feng <fenghua@phytium.com.cn>
> CC: Bhupesh Sharma <bhupesh.sharma@freescale.com>
> CC: Linus Walleij <linus.walleij@linaro.org>
> ---
>  arch/arm/Kconfig                       |  4 ++++
>  configs/vexpress_aemv8a_dram_defconfig | 19 +++++++++++++++++++
>  include/configs/vexpress_aemv8a.h      | 25 +++++++++++++++++++++++--
>  3 files changed, 46 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 0b07e08..bc16546 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -563,6 +563,10 @@ 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
> +
>  config TARGET_VEXPRESS64_JUNO
>         bool "Support Versatile Express Juno Development Platform"
>         select ARM64
> diff --git a/configs/vexpress_aemv8a_dram_defconfig
> b/configs/vexpress_aemv8a_dram_defconfig
> new file mode 100644
> index 0000000..e9fc870
> --- /dev/null
> +++ b/configs/vexpress_aemv8a_dram_defconfig
> @@ -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# "
> diff --git a/include/configs/vexpress_aemv8a.h
> b/include/configs/vexpress_aemv8a.h
> index 53b0f74..0228732 100644
> --- a/include/configs/vexpress_aemv8a.h
> +++ b/include/configs/vexpress_aemv8a.h
> @@ -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)
> @@ -101,7 +102,8 @@
>  #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
> @@ -231,6 +233,25 @@
>
>  #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
> --
> 2.1.0
>
>

Patch hide | download patch | download mbox

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0b07e08..bc16546 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -563,6 +563,10 @@  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
+
 config TARGET_VEXPRESS64_JUNO
 	bool "Support Versatile Express Juno Development Platform"
 	select ARM64
diff --git a/configs/vexpress_aemv8a_dram_defconfig b/configs/vexpress_aemv8a_dram_defconfig
new file mode 100644
index 0000000..e9fc870
--- /dev/null
+++ b/configs/vexpress_aemv8a_dram_defconfig
@@ -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# "
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index 53b0f74..0228732 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -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)
@@ -101,7 +102,8 @@ 
 #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
@@ -231,6 +233,25 @@ 
 
 #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