sunxi: low memory footprint for V3s
V3s devices won't have enough memory to load U-Boot binary at 0x4a000000, and they do not have enough memory to reserve 64MiB for malloc() (it has only 64MiB at all!) Change the DRAM mapping for it. Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
This commit is contained in:
parent
7557c42cde
commit
08a0668825
|
@ -75,8 +75,13 @@
|
|||
#else
|
||||
#define SDRAM_OFFSET(x) 0x4##x
|
||||
#define CONFIG_SYS_SDRAM_BASE 0x40000000
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x42000000 /* default load address */
|
||||
#define CONFIG_SYS_LOAD_ADDR 0x41000000 /* default load address */
|
||||
/* V3s do not have enough memory to place code at 0x4a000000 */
|
||||
#ifndef CONFIG_MACH_SUN8I_V3S
|
||||
#define CONFIG_SYS_TEXT_BASE 0x4a000000
|
||||
#else
|
||||
#define CONFIG_SYS_TEXT_BASE 0x42e00000
|
||||
#endif
|
||||
/* 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. */
|
||||
|
@ -148,8 +153,13 @@
|
|||
#define CONFIG_SYS_MMC_MAX_DEVICE 4
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_MACH_SUN8I_V3S
|
||||
/* 64MB of malloc() pool */
|
||||
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (64 << 20))
|
||||
#else
|
||||
/* 2MB of malloc() pool */
|
||||
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (2 << 20))
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Miscellaneous configurable options
|
||||
|
@ -280,7 +290,11 @@ extern int soft_i2c_gpio_scl;
|
|||
* The amount of RAM to keep free at the top of RAM when relocating u-boot,
|
||||
* to use as framebuffer. This must be a multiple of 4096.
|
||||
*/
|
||||
#ifndef CONFIG_MACH_SUN8I_V3S
|
||||
#define CONFIG_SUNXI_MAX_FB_SIZE (16 << 20)
|
||||
#else
|
||||
#define CONFIG_SUNXI_MAX_FB_SIZE (2 << 20)
|
||||
#endif
|
||||
|
||||
/* Do we want to initialize a simple FB? */
|
||||
#define CONFIG_VIDEO_DT_SIMPLEFB
|
||||
|
@ -383,27 +397,49 @@ extern int soft_i2c_gpio_scl;
|
|||
* 32M uncompressed kernel, 16M compressed kernel, 1M fdt,
|
||||
* 1M script, 1M pxe 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))
|
||||
#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.
|
||||
*/
|
||||
#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))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define MEM_LAYOUT_ENV_SETTINGS \
|
||||
"bootm_size=0xa000000\0" \
|
||||
"bootm_size=" BOOTM_SIZE "\0" \
|
||||
"kernel_addr_r=" KERNEL_ADDR_R "\0" \
|
||||
"fdt_addr_r=" FDT_ADDR_R "\0" \
|
||||
"scriptaddr=" SCRIPT_ADDR_R "\0" \
|
||||
"pxefile_addr_r=" PXEFILE_ADDR_R "\0" \
|
||||
"ramdisk_addr_r=" RAMDISK_ADDR_R "\0"
|
||||
|
||||
#ifndef CONFIG_MACH_SUN8I_V3S
|
||||
#define DFU_ALT_INFO_RAM \
|
||||
"dfu_alt_info_ram=" \
|
||||
"kernel ram " KERNEL_ADDR_R " 0x1000000;" \
|
||||
"fdt ram " FDT_ADDR_R " 0x100000;" \
|
||||
"ramdisk ram " RAMDISK_ADDR_R " 0x4000000\0"
|
||||
#else
|
||||
#define DFU_ALT_INFO_RAM \
|
||||
"dfu_alt_info_ram=" \
|
||||
"kernel ram " KERNEL_ADDR_R " 0x800000;" \
|
||||
"fdt ram " FDT_ADDR_R " 0x100000;" \
|
||||
"ramdisk ram " RAMDISK_ADDR_R " 0x1000000\0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MMC
|
||||
#define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0)
|
||||
|
|
Loading…
Reference in New Issue