All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Rini <trini@konsulko.com>
To: u-boot@lists.denx.de
Subject: [PATCH 03/20] imx7: Update CONFIG_SPL_STACK defaults in Kconfig
Date: Sun, 29 May 2022 12:55:04 -0400	[thread overview]
Message-ID: <20220529165521.912054-3-trini@konsulko.com> (raw)
In-Reply-To: <20220529165521.912054-1-trini@konsulko.com>

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>
---
 common/spl/Kconfig                  |  3 ++-
 configs/cl-som-imx7_defconfig       |  2 --
 configs/imx7_cm_defconfig           |  2 --
 configs/pico-dwarf-imx7d_defconfig  |  2 --
 configs/pico-hobbit-imx7d_defconfig |  2 --
 configs/pico-imx7d_bl33_defconfig   |  2 --
 configs/pico-imx7d_defconfig        |  2 --
 configs/pico-nymph-imx7d_defconfig  |  2 --
 configs/pico-pi-imx7d_defconfig     |  2 --
 doc/imx/common/imx7.txt             | 23 +++++++++++++++++++++++
 include/configs/imx7_spl.h          | 23 -----------------------
 11 files changed, 25 insertions(+), 40 deletions(-)
 create mode 100644 doc/imx/common/imx7.txt

diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 173c7e020240..8f3985d612f9 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -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
diff --git a/configs/cl-som-imx7_defconfig b/configs/cl-som-imx7_defconfig
index 67b70d9523d8..af7fb37afccd 100644
--- a/configs/cl-som-imx7_defconfig
+++ b/configs/cl-som-imx7_defconfig
@@ -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
diff --git a/configs/imx7_cm_defconfig b/configs/imx7_cm_defconfig
index 8b05ee2f6df5..351d47fe552e 100644
--- a/configs/imx7_cm_defconfig
+++ b/configs/imx7_cm_defconfig
@@ -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
diff --git a/configs/pico-dwarf-imx7d_defconfig b/configs/pico-dwarf-imx7d_defconfig
index e1d0e3438ddb..00067d2e46d9 100644
--- a/configs/pico-dwarf-imx7d_defconfig
+++ b/configs/pico-dwarf-imx7d_defconfig
@@ -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
diff --git a/configs/pico-hobbit-imx7d_defconfig b/configs/pico-hobbit-imx7d_defconfig
index 4ccbcf90a618..64c2ca4b189f 100644
--- a/configs/pico-hobbit-imx7d_defconfig
+++ b/configs/pico-hobbit-imx7d_defconfig
@@ -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
diff --git a/configs/pico-imx7d_bl33_defconfig b/configs/pico-imx7d_bl33_defconfig
index 3d342d78186b..d13336d0548c 100644
--- a/configs/pico-imx7d_bl33_defconfig
+++ b/configs/pico-imx7d_bl33_defconfig
@@ -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
diff --git a/configs/pico-imx7d_defconfig b/configs/pico-imx7d_defconfig
index df57fa13321a..a6ee5cebfe26 100644
--- a/configs/pico-imx7d_defconfig
+++ b/configs/pico-imx7d_defconfig
@@ -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
diff --git a/configs/pico-nymph-imx7d_defconfig b/configs/pico-nymph-imx7d_defconfig
index e1d0e3438ddb..00067d2e46d9 100644
--- a/configs/pico-nymph-imx7d_defconfig
+++ b/configs/pico-nymph-imx7d_defconfig
@@ -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
diff --git a/configs/pico-pi-imx7d_defconfig b/configs/pico-pi-imx7d_defconfig
index c799968944c6..b74b2582cb95 100644
--- a/configs/pico-pi-imx7d_defconfig
+++ b/configs/pico-pi-imx7d_defconfig
@@ -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
diff --git a/doc/imx/common/imx7.txt b/doc/imx/common/imx7.txt
new file mode 100644
index 000000000000..b9db10341ad8
--- /dev/null
+++ b/doc/imx/common/imx7.txt
@@ -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).
diff --git a/include/configs/imx7_spl.h b/include/configs/imx7_spl.h
index 019ed5e203a9..9fe0dbdfe976 100644
--- a/include/configs/imx7_spl.h
+++ b/include/configs/imx7_spl.h
@@ -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)
-- 
2.25.1


  parent reply	other threads:[~2022-05-29 16:55 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-29 16:55 [PATCH 01/20] Convert CONFIG_SPL_STACK to Kconfig Tom Rini
2022-05-29 16:55 ` [PATCH 02/20] imx6: Update CONFIG_SPL_STACK defaults in Kconfig Tom Rini
2022-05-29 16:55 ` Tom Rini [this message]
2022-05-29 16:55 ` [PATCH 04/20] Convert CONFIG_TPL_NAND_INIT to Kconfig Tom Rini
2022-05-29 16:55 ` [PATCH 05/20] Convert CONFIG_SPL_RELOC_TEXT_BASE et al " Tom Rini
2022-05-29 16:55 ` [PATCH 06/20] Convert CONFIG_SPL_BSS_START_ADDR " Tom Rini
2022-05-29 16:55 ` [PATCH 07/20] Convert CONFIG_SYS_SPL_MALLOC_SIZE et al " Tom Rini
2022-05-29 16:55 ` [PATCH 08/20] Remove CONFIG_SYS_SPL_LEN largely Tom Rini
2022-05-29 16:55 ` [PATCH 09/20] etamin: Remove CONFIG_SPL_CMT defines Tom Rini
2022-05-29 16:55 ` [PATCH 10/20] Convert CONFIG_SPL_GD_ADDR to Kconfig Tom Rini
2022-05-29 16:55 ` [PATCH 11/20] Drop CONFIG_SPL_SPI_FLASH_MINIMAL Tom Rini
2022-05-29 16:55 ` [PATCH 12/20] Remove CONFIG_SPL_STACK_SIZE Tom Rini
2022-05-29 16:55 ` [PATCH 13/20] Convert CONFIG_SPL_TARGET to Kconfig Tom Rini
2022-05-29 16:55 ` [PATCH 14/20] Convert CONFIG_SYS_SPL_ARGS_ADDR " Tom Rini
2022-05-29 16:55 ` [PATCH 15/20] ax25-ae350: Move CONFIG_SYS_FDT_BASE " Tom Rini
     [not found]   ` <HK0PR03MB29945ABCCE6928CEB0BA22A5C1DD9@HK0PR03MB2994.apcprd03.prod.outlook.com>
2022-06-02  1:14     ` Rick Chen
2022-05-29 16:55 ` [PATCH 16/20] Drop CONFIG_SPL_SIZE Tom Rini
2022-05-29 16:55 ` [PATCH 17/20] spl: Remove CONFIG_SPL_START_S_PATH and rework the logic behind it Tom Rini
2022-05-29 16:55 ` [PATCH 18/20] Convert CONFIG_SYS_NAND_SPL_KERNEL_OFFS to Kconfig Tom Rini
2022-05-29 16:55 ` [PATCH 19/20] Convert CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR et al " Tom Rini
2022-05-29 16:55 ` [PATCH 20/20] riotboard, syzygy_hub: Disable SPL_FALCON_BOOT_MMCSD Tom Rini
2022-06-06 21:36 ` [PATCH 01/20] Convert CONFIG_SPL_STACK to Kconfig Tom Rini
2024-01-23  3:53 ` Kever Yang
2024-01-23 17:58   ` Tom Rini
2024-01-24  1:15     ` Kever Yang
2024-01-24  1:34       ` Tom Rini
2024-01-24  7:50         ` Kever Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220529165521.912054-3-trini@konsulko.com \
    --to=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.