[PATCH] sunxi: add fdtoverlay_addr_r environment variable

Andre Przywara andre.przywara at arm.com
Thu Mar 18 02:26:50 CET 2021


On Sun, 21 Feb 2021 10:44:47 +0100
Jernej Skrabec <jernej.skrabec at siol.net> wrote:

> Commit 69076dff2284 ("cmd: pxe: add support for FDT overlays") added
> support for loading DT overlay files to PXE boot. However, it needs
> additional environment variable which points to memory location which
> can be used to temporary store overlay data.
> 
> Add it and in the process unify alignment using spaces.
> 
> Signed-off-by: Jernej Skrabec <jernej.skrabec at siol.net>

Thanks, looks good. Briefly tested with manually applying a simple
overlay, loaded to that address.
Checked that the other addresses don't change.

One nit below, with that:

Reviewed-by: Andre Przywara <andre.przywara at arm.com>

> ---
>  include/configs/sunxi-common.h | 48 ++++++++++++++++++----------------
>  1 file changed, 26 insertions(+), 22 deletions(-)
> 
> diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h
> index ded5aea551d3..4814e898c6ea 100644
> --- a/include/configs/sunxi-common.h
> +++ b/include/configs/sunxi-common.h
> @@ -62,7 +62,7 @@
>  #define SDRAM_OFFSET(x) 0x2##x
>  #define CONFIG_SYS_SDRAM_BASE		0x20000000
>  #define CONFIG_SYS_LOAD_ADDR		0x22000000 /* default load address */
> -/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here 
> +/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here
>   * since it needs to fit in with the other values. By also #defining it
>   * we get warnings if the Kconfig value mismatches. */
>  #define CONFIG_SPL_STACK_R_ADDR		0x2fe00000
> @@ -72,7 +72,7 @@
>  #define CONFIG_SYS_SDRAM_BASE		0x40000000
>  #define CONFIG_SYS_LOAD_ADDR		0x42000000 /* default load address */
>  /* V3s do not have enough memory to place code at 0x4a000000 */
> -/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here 
> +/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here
>   * since it needs to fit in with the other values. By also #defining it
>   * we get warnings if the Kconfig value mismatches. */
>  #define CONFIG_SPL_STACK_R_ADDR		0x4fe00000
> @@ -259,38 +259,41 @@ extern int soft_i2c_gpio_scl;
>   * Scripts, PXE and DTBs should go afterwards, leaving the rest for the initrd.
>   * Align the initrd to a 2MB page.

This is no longer true.     ^^^^^^^^
But there is no such requirement, so we can just remove this line.

Cheers,
Andre

>   */
> -#define BOOTM_SIZE	__stringify(0xa000000)
> -#define KERNEL_ADDR_R	__stringify(SDRAM_OFFSET(0080000))
> -#define FDT_ADDR_R	__stringify(SDRAM_OFFSET(FA00000))
> -#define SCRIPT_ADDR_R	__stringify(SDRAM_OFFSET(FC00000))
> -#define PXEFILE_ADDR_R	__stringify(SDRAM_OFFSET(FD00000))
> -#define RAMDISK_ADDR_R	__stringify(SDRAM_OFFSET(FE00000))
> +#define BOOTM_SIZE        __stringify(0xa000000)
> +#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(0080000))
> +#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(FA00000))
> +#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(FC00000))
> +#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(FD00000))
> +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(FE00000))
> +#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(FF00000))
>  
>  #else
>  /*
>   * 160M RAM (256M minimum minus 64MB heap + 32MB for u-boot, stack, fb, etc.
>   * 32M uncompressed kernel, 16M compressed kernel, 1M fdt,
> - * 1M script, 1M pxe and the ramdisk at the end.
> + * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end.
>   */
>  #ifndef CONFIG_MACH_SUN8I_V3S
> -#define BOOTM_SIZE     __stringify(0xa000000)
> -#define KERNEL_ADDR_R  __stringify(SDRAM_OFFSET(2000000))
> -#define FDT_ADDR_R     __stringify(SDRAM_OFFSET(3000000))
> -#define SCRIPT_ADDR_R  __stringify(SDRAM_OFFSET(3100000))
> -#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(3200000))
> -#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(3300000))
> +#define BOOTM_SIZE        __stringify(0xa000000)
> +#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(2000000))
> +#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(3000000))
> +#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(3100000))
> +#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(3200000))
> +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(3300000))
> +#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(3400000))
>  #else
>  /*
>   * 64M RAM minus 2MB heap + 16MB for u-boot, stack, fb, etc.
>   * 16M uncompressed kernel, 8M compressed kernel, 1M fdt,
> - * 1M script, 1M pxe and the ramdisk at the end.
> + * 1M script, 1M pxe, 1M dt overlay and the ramdisk at the end.
>   */
> -#define BOOTM_SIZE     __stringify(0x2e00000)
> -#define KERNEL_ADDR_R  __stringify(SDRAM_OFFSET(1000000))
> -#define FDT_ADDR_R     __stringify(SDRAM_OFFSET(1800000))
> -#define SCRIPT_ADDR_R  __stringify(SDRAM_OFFSET(1900000))
> -#define PXEFILE_ADDR_R __stringify(SDRAM_OFFSET(1A00000))
> -#define RAMDISK_ADDR_R __stringify(SDRAM_OFFSET(1B00000))
> +#define BOOTM_SIZE        __stringify(0x2e00000)
> +#define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(1000000))
> +#define FDT_ADDR_R        __stringify(SDRAM_OFFSET(1800000))
> +#define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(1900000))
> +#define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(1A00000))
> +#define FDTOVERLAY_ADDR_R __stringify(SDRAM_OFFSET(1B00000))
> +#define RAMDISK_ADDR_R    __stringify(SDRAM_OFFSET(1C00000))
>  #endif
>  #endif
>  
> @@ -300,6 +303,7 @@ extern int soft_i2c_gpio_scl;
>  	"fdt_addr_r=" FDT_ADDR_R "\0" \
>  	"scriptaddr=" SCRIPT_ADDR_R "\0" \
>  	"pxefile_addr_r=" PXEFILE_ADDR_R "\0" \
> +	"fdtoverlay_addr_r=" FDTOVERLAY_ADDR_R "\0" \
>  	"ramdisk_addr_r=" RAMDISK_ADDR_R "\0"
>  
>  #define DFU_ALT_INFO_RAM \



More information about the U-Boot mailing list