imx7: Update CONFIG_SPL_STACK defaults in Kconfig

Update the Kconfig entry to have the correct defaults for i.MX7
platforms, and move the existing large comment from imx7_spl.h to
doc/imx/common/imx7.txt so that it's not lost.

Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Tom Rini 2022-05-26 13:46:32 -04:00
parent 23780398b5
commit 8b83b53a8d
11 changed files with 25 additions and 40 deletions

View File

@ -360,7 +360,7 @@ config TPL_SYS_MALLOC_SIMPLE
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
@ -371,6 +371,7 @@ config SPL_STACK
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

View File

@ -28,8 +28,6 @@ CONFIG_BOARD_LATE_INIT=y
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

View File

@ -26,8 +26,6 @@ CONFIG_DEFAULT_FDT_FILE="ask"
# 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

View File

@ -27,8 +27,6 @@ CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
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

View File

@ -27,8 +27,6 @@ CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
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

View File

@ -28,8 +28,6 @@ CONFIG_USE_BOOTCOMMAND=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

View File

@ -27,8 +27,6 @@ CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
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

View File

@ -27,8 +27,6 @@ CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
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

View File

@ -27,8 +27,6 @@ CONFIG_BOOTCOMMAND="run findfdt; run finduuid; run distro_bootcmd"
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

23
doc/imx/common/imx7.txt Normal file
View File

@ -0,0 +1,23 @@
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).

View File

@ -11,29 +11,6 @@
#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)