sunxi: arm64: Add addresses for compressed kernel load
authorArnaud Ferraris <arnaud.ferraris@gmail.com>
Sat, 20 Feb 2021 12:14:15 +0000 (13:14 +0100)
committerAndre Przywara <andre.przywara@arm.com>
Fri, 16 Apr 2021 00:12:59 +0000 (01:12 +0100)
The "booti" command to load arm64 Linux kernels supports automatic
decompression of zipped kernel images, but relies on some environment
variables to point to usable buffer RAM.

Add those variables and let them point to some default values, that
should cover most use-cases.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
include/configs/sunxi-common.h

index d81c0f4..9e37e99 100644 (file)
@@ -243,6 +243,8 @@ extern int soft_i2c_gpio_scl;
  */
 #define BOOTM_SIZE        __stringify(0xa000000)
 #define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(0080000))
  */
 #define BOOTM_SIZE        __stringify(0xa000000)
 #define KERNEL_ADDR_R     __stringify(SDRAM_OFFSET(0080000))
+#define KERNEL_COMP_ADDR_R __stringify(SDRAM_OFFSET(4000000))
+#define KERNEL_COMP_SIZE  __stringify(0xb000000)
 #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 FDT_ADDR_R        __stringify(SDRAM_OFFSET(FA00000))
 #define SCRIPT_ADDR_R     __stringify(SDRAM_OFFSET(FC00000))
 #define PXEFILE_ADDR_R    __stringify(SDRAM_OFFSET(FD00000))
@@ -288,6 +290,18 @@ extern int soft_i2c_gpio_scl;
        "fdtoverlay_addr_r=" FDTOVERLAY_ADDR_R "\0" \
        "ramdisk_addr_r=" RAMDISK_ADDR_R "\0"
 
        "fdtoverlay_addr_r=" FDTOVERLAY_ADDR_R "\0" \
        "ramdisk_addr_r=" RAMDISK_ADDR_R "\0"
 
+#ifdef CONFIG_ARM64
+
+#define MEM_LAYOUT_ENV_EXTRA_SETTINGS \
+       "kernel_comp_addr_r=" KERNEL_COMP_ADDR_R "\0" \
+       "kernel_comp_size=" KERNEL_COMP_SIZE "\0"
+
+#else
+
+#define MEM_LAYOUT_ENV_EXTRA_SETTINGS ""
+
+#endif
+
 #define DFU_ALT_INFO_RAM \
        "dfu_alt_info_ram=" \
        "kernel ram " KERNEL_ADDR_R " 0x1000000;" \
 #define DFU_ALT_INFO_RAM \
        "dfu_alt_info_ram=" \
        "kernel ram " KERNEL_ADDR_R " 0x1000000;" \
@@ -438,6 +452,7 @@ extern int soft_i2c_gpio_scl;
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONSOLE_ENV_SETTINGS \
        MEM_LAYOUT_ENV_SETTINGS \
 #define CONFIG_EXTRA_ENV_SETTINGS \
        CONSOLE_ENV_SETTINGS \
        MEM_LAYOUT_ENV_SETTINGS \
+       MEM_LAYOUT_ENV_EXTRA_SETTINGS \
        DFU_ALT_INFO_RAM \
        "fdtfile=" FDTFILE "\0" \
        "console=ttyS0,115200\0" \
        DFU_ALT_INFO_RAM \
        "fdtfile=" FDTFILE "\0" \
        "console=ttyS0,115200\0" \