diff mbox series

[05/11] vexpress64: config header: unify environment definition

Message ID 20220304163018.3167841-6-andre.przywara@arm.com
State Awaiting Upstream
Delegated to: Tom Rini
Headers show
Series vexpress64: OF_CONTROL and ARMv8-R64 support | expand

Commit Message

Andre Przywara March 4, 2022, 4:30 p.m. UTC
The definition of the standard environment variables (kernel_addr_r and
friends) has been improved lately for the FVP model, but the Juno board
is still using some custom scheme.
Since we need to extend this to a third board soon, let's unify the
definition:
- Define the Juno addresses in the same generic way we do for the FVP
  model, and move the actual variable setting out of the board #ifdef's.
- Add the missing addresses for a PXE file and a boot script.
- Cleanup some stale comments on the way.

As the FVP model doesn't have support for distro_boot quite yet, add
a dummy definition for now, to be replaced with the real thing later.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
 include/configs/vexpress_aemv8.h | 83 +++++++++++++++++---------------
 1 file changed, 45 insertions(+), 38 deletions(-)

Comments

Tom Rini April 3, 2022, 12:14 a.m. UTC | #1
On Fri, Mar 04, 2022 at 04:30:12PM +0000, Andre Przywara wrote:

> The definition of the standard environment variables (kernel_addr_r and
> friends) has been improved lately for the FVP model, but the Juno board
> is still using some custom scheme.
> Since we need to extend this to a third board soon, let's unify the
> definition:
> - Define the Juno addresses in the same generic way we do for the FVP
>   model, and move the actual variable setting out of the board #ifdef's.
> - Add the missing addresses for a PXE file and a boot script.
> - Cleanup some stale comments on the way.
> 
> As the FVP model doesn't have support for distro_boot quite yet, add
> a dummy definition for now, to be replaced with the real thing later.
> 
> Signed-off-by: Andre Przywara <andre.przywara@arm.com>

Applied to u-boot/next, thanks!
diff mbox series

Patch

diff --git a/include/configs/vexpress_aemv8.h b/include/configs/vexpress_aemv8.h
index f0c5ceb384..983d60211a 100644
--- a/include/configs/vexpress_aemv8.h
+++ b/include/configs/vexpress_aemv8.h
@@ -102,8 +102,6 @@ 
 /* BOOTP options */
 #define CONFIG_BOOTP_BOOTFILESIZE
 
-/* Miscellaneous configurable options */
-
 /* Physical Memory Map */
 #define PHYS_SDRAM_1			(V2M_BASE)	/* SDRAM Bank #1 */
 /* Top 16MB reserved for secure world use */
@@ -119,11 +117,7 @@ 
 #define PHYS_SDRAM_2_SIZE		0x80000000
 #endif
 
-/* Enable memtest */
-
-/* Initial environment variables */
-#ifdef CONFIG_TARGET_VEXPRESS64_JUNO
-/* Copy the kernel and FDT to DRAM memory and boot */
+/* Copy the kernel, initrd and FDT from NOR flash to DRAM memory and boot. */
 #define BOOTENV_DEV_AFS(devtypeu, devtypel, instance) \
 	"bootcmd_afs="							\
 		"afs load ${kernel_name} ${kernel_addr_r} ;"\
@@ -146,6 +140,10 @@ 
 		"booti ${kernel_addr_r} ${ramdisk_param} ${fdt_addr_r}\0"
 #define BOOTENV_DEV_NAME_AFS(devtypeu, devtypel, instance) "afs "
 
+/* Boot sources for distro boot and load addresses, per board */
+
+#ifdef CONFIG_TARGET_VEXPRESS64_JUNO			/* Arm Juno board */
+
 #define BOOT_TARGET_DEVICES(func)	\
 	func(USB, usb, 0)		\
 	func(SATA, sata, 0)		\
@@ -156,40 +154,49 @@ 
 
 #include <config_distro_bootcmd.h>
 
-/*
- * Defines where the kernel and FDT exist in NOR flash and where it will
- * be copied into DRAM
- */
-#define CONFIG_EXTRA_ENV_SETTINGS	\
-				"kernel_name=norkern\0"	\
-				"kernel_alt_name=Image\0"	\
-				"kernel_addr_r=0x80080000\0" \
-				"ramdisk_name=ramdisk.img\0"	\
-				"ramdisk_addr_r=0x88000000\0"	\
-				"fdtfile=board.dtb\0" \
-				"fdt_alt_name=juno\0" \
-				"fdt_addr_r=0x80000000\0" \
-				BOOTENV
-
-#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
-
-#define VEXPRESS_KERNEL_ADDR	0x80080000
-#define VEXPRESS_FDT_ADDR	0x8fc00000
-#define VEXPRESS_BOOT_ADDR	0x8fd00000
-#define VEXPRESS_RAMDISK_ADDR	0x8fe00000
-
-#define CONFIG_EXTRA_ENV_SETTINGS	\
-				"kernel_name=Image\0"		\
-				"kernel_addr_r=" __stringify(VEXPRESS_KERNEL_ADDR) "\0"	\
-				"ramdisk_name=ramdisk.img\0"	\
-				"ramdisk_addr_r=" __stringify(VEXPRESS_RAMDISK_ADDR) "\0" \
-				"fdtfile=devtree.dtb\0"	\
-				"fdt_addr_r=" __stringify(VEXPRESS_FDT_ADDR) "\0"	\
-				"boot_name=boot.img\0" \
-				"boot_addr_r=" __stringify(VEXPRESS_BOOT_ADDR) "\0"
+#define VEXPRESS_KERNEL_ADDR		0x80080000
+#define VEXPRESS_PXEFILE_ADDR		0x8fb00000
+#define VEXPRESS_FDT_ADDR		0x8fc00000
+#define VEXPRESS_SCRIPT_ADDR		0x8fd00000
+#define VEXPRESS_RAMDISK_ADDR		0x8fe00000
+
+#define EXTRA_ENV_NAMES							\
+		"kernel_name=norkern\0"					\
+		"kernel_alt_name=Image\0"				\
+		"ramdisk_name=ramdisk.img\0"				\
+		"fdtfile=board.dtb\0"					\
+		"fdt_alt_name=juno\0"
+
+#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP			/* ARMv8-A base model */
+
+#define VEXPRESS_KERNEL_ADDR		0x80080000
+#define VEXPRESS_PXEFILE_ADDR		0x8fa00000
+#define VEXPRESS_SCRIPT_ADDR		0x8fb00000
+#define VEXPRESS_FDT_ADDR		0x8fc00000
+#define VEXPRESS_BOOT_ADDR		0x8fd00000
+#define VEXPRESS_RAMDISK_ADDR		0x8fe00000
+
+#define EXTRA_ENV_NAMES							\
+		"kernel_name=Image\0"					\
+		"ramdisk_name=ramdisk.img\0"				\
+		"fdtfile=devtree.dtb\0"					\
+		"boot_name=boot.img\0"					\
+		"boot_addr_r=" __stringify(VEXPRESS_BOOT_ADDR) "\0"
+
+#define BOOTENV
 
 #endif
 
+/* Default load addresses and names for the different payloads. */
+#define CONFIG_EXTRA_ENV_SETTINGS	\
+		"kernel_addr_r=" __stringify(VEXPRESS_KERNEL_ADDR) "\0"	       \
+		"ramdisk_addr_r=" __stringify(VEXPRESS_RAMDISK_ADDR) "\0"      \
+		"pxefile_addr_r=" __stringify(VEXPRESS_PXEFILE_ADDR) "\0"      \
+		"fdt_addr_r=" __stringify(VEXPRESS_FDT_ADDR) "\0"	       \
+		"scriptaddr=" __stringify(VEXPRESS_SCRIPT_ADDR) "\0"	       \
+		EXTRA_ENV_NAMES						       \
+		BOOTENV
+
 /* Monitor Command Prompt */
 #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
 #define CONFIG_SYS_MAXARGS		64	/* max command args */