config SPL_SHARES_INIT_SP_ADDR
bool "SPL and U-Boot use the same initial stack pointer location"
depends on (ARM || ARCH_JZ47XX || MICROBLAZE || RISCV) && SPL_FRAMEWORK
- default n if ARCH_SUNXI || ARCH_MX6
+ default n if ARCH_SUNXI || ARCH_MX6 || ARCH_MX7
default y
help
In many cases, we can use the same initial stack pointer address for
hex "Initial stack pointer location"
depends on (ARM || ARCH_JZ47XX || MICROBLAZE || RISCV) && SPL_FRAMEWORK
depends on !SPL_SHARES_INIT_SP_ADDR
+ default 0x946bb8 if ARCH_MX7
default 0x93ffb8 if ARCH_MX6 && MX6_OCRAM_256KB
default 0x91ffb8 if ARCH_MX6 && !MX6_OCRAM_256KB
help
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
CONFIG_SPL_BOARD_INIT=y
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x80
CONFIG_SPL_I2C=y
CONFIG_SPL_SPI_LOAD=y
# CONFIG_BOARD_EARLY_INIT_F is not set
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
CONFIG_DEFAULT_FDT_FILE="imx7d-pico-dwarf.dtb"
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
CONFIG_DEFAULT_FDT_FILE="imx7d-pico-hobbit.dtb"
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
CONFIG_BOOTCOMMAND="run distro_bootcmd"
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
CONFIG_DEFAULT_FDT_FILE="ask"
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
CONFIG_DEFAULT_FDT_FILE="imx7d-pico-dwarf.dtb"
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
CONFIG_DEFAULT_FDT_FILE="imx7d-pico-pi.dtb"
CONFIG_SPL_MAX_SIZE=0xe000
CONFIG_SPL_BSS_MAX_SIZE=0x100000
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK=0x946bb8
CONFIG_SPL_I2C=y
CONFIG_SPL_USB_HOST=y
CONFIG_SPL_USB_GADGET=y
--- /dev/null
+U-Boot for Freescale i.MX7
+
+SPL Stack size and location notes
+---------------------------------
+See figure 6-22 in i.MX 7Dual/Solo Reference manuals:
+ - IMX7D/S OCRAM free area RAM (OCRAM) is from 0x00910000 to
+ 0x00946C00.
+ - Set the stack at the end of the free area section, at 0x00946BB8.
+ - The BOOT ROM loads what they consider the firmware image
+ which consists of a 4K header in front of us that contains the IVT, DCD
+ and some padding. However, the manual also states that the ROM uses the
+ OCRAM_EPCD and OCRAM_PXP areas for itself. While the SPL is free to use
+ this range for stack and malloc, the SPL itself must fit below 0x920000,
+ or the image will be truncated in at least some boot modes like USB SDP.
+ Thus our max size is really 0x00920000 - 0x00912000. If necessary,
+ CONFIG_SPL_TEXT_BASE could be moved to 0x00911000 to gain 4KB of space
+ for the SPL, but 56KB should be more than enough for the SPL.
+ - Pad SPL to 68KB (4KB header + 56KB max size + 8KB extra padding)
+ The extra padding could be removed, but this value was used historically
+ based on an incorrect CONFIG_SPL_MAX_SIZE definition.
+ This allows to write the SPL/U-Boot combination generated with
+ u-boot-with-spl.imx directly to a boot media (given that boot media specific
+ offset is configured properly).
#define __IMX7_SPL_CONFIG_H
#ifdef CONFIG_SPL
-/*
- * see figure 6-22 in i.MX 7Dual/Solo Reference manuals:
- * - IMX7D/S OCRAM free area RAM (OCRAM) is from 0x00910000 to
- * 0x00946C00.
- * - Set the stack at the end of the free area section, at 0x00946BB8.
- * - The BOOT ROM loads what they consider the firmware image
- * which consists of a 4K header in front of us that contains the IVT, DCD
- * and some padding. However, the manual also states that the ROM uses the
- * OCRAM_EPCD and OCRAM_PXP areas for itself. While the SPL is free to use
- * this range for stack and malloc, the SPL itself must fit below 0x920000,
- * or the image will be truncated in at least some boot modes like USB SDP.
- * Thus our max size is really 0x00920000 - 0x00912000. If necessary,
- * CONFIG_SPL_TEXT_BASE could be moved to 0x00911000 to gain 4KB of space
- * for the SPL, but 56KB should be more than enough for the SPL.
- */
-/*
- * Pad SPL to 68KB (4KB header + 56KB max size + 8KB extra padding)
- * The extra padding could be removed, but this value was used historically
- * based on an incorrect CONFIG_SPL_MAX_SIZE definition.
- * This allows to write the SPL/U-Boot combination generated with
- * u-boot-with-spl.imx directly to a boot media (given that boot media specific
- * offset is configured properly).
- */
/* MMC support */
#if defined(CONFIG_SPL_MMC)