From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 273EAC433F5 for ; Sun, 29 May 2022 16:55:38 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A04B184281; Sun, 29 May 2022 18:55:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=konsulko.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id 8CB0284271; Sun, 29 May 2022 18:55:32 +0200 (CEST) Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 11EAC83B15 for ; Sun, 29 May 2022 18:55:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=konsulko.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=tom.rini@gmail.com Received: by mail-qt1-f174.google.com with SMTP id x7so9448934qta.6 for ; Sun, 29 May 2022 09:55:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CXI57rqfyrcpJhjKClBNc2RKUpFrovOIi/a0V2JbP+Q=; b=MyP2XtNBNF4U7QVON4nhQ77qEdGf/v6lcLzswFMEvSzABIOddgnRZuVrDyZO663xLu QA1g0rlcaqqRRrIPPO6/WlAxYEyT3auHaI2SbBxC0r4MMYkkvWtccC9m/3Z6lnG6O/Hd vdrYE+lC2gF3rOBhpxI0TGKJdknQ9d2HjyDh5SOTNkjhq5zMG/j6xF7z8nixsNBzlnTS sXRuBHnQZBzTaE6RBv5FuEjZgMNunWaWRJODiCDmtavG1QjBFmxyn09SbxIJIEIYYR+u xWqWCmAwTB2GyTaVk9du/sMCgzPZz1kDoVEhnEykJv/96lp2KdkQQeg4jfRcuEqQGBuy Vb1g== X-Gm-Message-State: AOAM531d/O2ne0/fjXBgv5meEMuaCSXQZ4VgJ8jh3ISSb3Fj6zSeVwCl bBFHD7+suvIDSwInl85PGoKaSO9XuA== X-Google-Smtp-Source: ABdhPJyXRp7hOxO1wPLzNPsvbs47YwDv7mNpMfEHEM+jYz7YCVk419KTejulXCOrJFeRUIhn4GWoiQ== X-Received: by 2002:ac8:7c52:0:b0:302:58ff:e237 with SMTP id o18-20020ac87c52000000b0030258ffe237mr3280913qtv.312.1653843327557; Sun, 29 May 2022 09:55:27 -0700 (PDT) Received: from localhost.localdomain (2603-6081-7b00-25fd-0000-0000-0000-1003.res6.spectrum.com. [2603:6081:7b00:25fd::1003]) by smtp.gmail.com with ESMTPSA id o15-20020ac841cf000000b002f90517bc25sm6130409qtm.41.2022.05.29.09.55.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 May 2022 09:55:27 -0700 (PDT) From: Tom Rini 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 Message-Id: <20220529165521.912054-3-trini@konsulko.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220529165521.912054-1-trini@konsulko.com> References: <20220529165521.912054-1-trini@konsulko.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean 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 --- 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