mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-01 21:23:51 -09:00
board: bsh: imx8mn-bsh-smm-s2: fix U-Boot startup
Commite3329a1e82("configs/imx8mn_bsh_smm_s2[_pro]: bump Linux to 6.12.23 and U-Boot to 2025.04") broke the U-Boot boot process on the BSH SMM S2 board. I didn’t notice it because I mistakenly tested the patch on the SMM S2PRO board, which boots from eMMC instead of NAND. Next time, I won’t forget to test on both boards :). Fixes:e3329a1e82("configs/imx8mn_bsh_smm_s2[_pro]: bump Linux to 6.12.23 and U-Boot to 2025.04") Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
c9355a3869
commit
43dcaa19a0
@@ -0,0 +1,45 @@
|
||||
From f7cddc4c6f4e4da57c6500cd0d88ea06e937b239 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Trimarchi <michael@amarulasolutions.com>
|
||||
Date: Thu, 15 May 2025 17:09:51 +0200
|
||||
Subject: [PATCH] arm: imx: imx8m: soc: fix the macro name
|
||||
|
||||
The function arch_spl_mmc_get_uboot_raw_sector() was never compiled,
|
||||
even when the option CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION was
|
||||
enabled. So rename the macro SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION to
|
||||
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION.
|
||||
|
||||
Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options")
|
||||
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
|
||||
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
||||
Upstream: https://source.denx.de/u-boot/u-boot/-/commit/f7cddc4c6f4e4da57c6500cd0d88ea06e937b239
|
||||
---
|
||||
arch/arm/mach-imx/imx8m/soc.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
|
||||
index 567e8e9e81a0..806adcf145fa 100644
|
||||
--- a/arch/arm/mach-imx/imx8m/soc.c
|
||||
+++ b/arch/arm/mach-imx/imx8m/soc.c
|
||||
@@ -791,7 +791,7 @@ int boot_mode_getprisec(void)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP)
|
||||
-#ifdef SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
|
||||
+#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
|
||||
#define IMG_CNTN_SET1_OFFSET GENMASK(22, 19)
|
||||
unsigned long arch_spl_mmc_get_uboot_raw_sector(struct mmc *mmc,
|
||||
unsigned long raw_sect)
|
||||
@@ -826,7 +826,7 @@ unsigned long arch_spl_mmc_get_uboot_raw_sector(struct mmc *mmc,
|
||||
|
||||
return raw_sect;
|
||||
}
|
||||
-#endif /* SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION */
|
||||
+#endif /* CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION */
|
||||
#endif
|
||||
|
||||
bool is_usb_boot(void)
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
From 4c82eeab9840983693791117aa75f7bd7fbc805b Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Thu, 15 May 2025 17:09:52 +0200
|
||||
Subject: [PATCH] arm: imx: imx8m: soc: replace ifdef by IS_ENABLED()
|
||||
|
||||
Standardize on using the IS_ENABLED macro.
|
||||
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Reviewed-by: Peng Fan <peng.fan@nxp.com>
|
||||
Upstream: https://source.denx.de/u-boot/u-boot/-/commit/4c82eeab9840983693791117aa75f7bd7fbc805b
|
||||
---
|
||||
arch/arm/mach-imx/imx8m/soc.c | 40 +++++++++++++++++------------------
|
||||
1 file changed, 20 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
|
||||
index 806adcf145fa..3cdb71a25284 100644
|
||||
--- a/arch/arm/mach-imx/imx8m/soc.c
|
||||
+++ b/arch/arm/mach-imx/imx8m/soc.c
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
-#if defined(CONFIG_IMX_HAB)
|
||||
+#if IS_ENABLED(CONFIG_IMX_HAB)
|
||||
struct imx_fuse const imx_sec_config_fuse = {
|
||||
.bank = 1,
|
||||
.word = 3,
|
||||
@@ -52,7 +52,7 @@ struct imx_fuse const imx_field_return_fuse = {
|
||||
|
||||
int timer_init(void)
|
||||
{
|
||||
-#ifdef CONFIG_XPL_BUILD
|
||||
+#if IS_ENABLED(CONFIG_XPL_BUILD)
|
||||
struct sctr_regs *sctr = (struct sctr_regs *)SYSCNT_CTRL_BASE_ADDR;
|
||||
unsigned long freq = readl(&sctr->cntfid0);
|
||||
|
||||
@@ -110,7 +110,7 @@ void set_wdog_reset(struct wdog_regs *wdog)
|
||||
setbits_le16(&wdog->wcr, WDOG_WDT_MASK | WDOG_WDZST_MASK);
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_ARMV8_PSCI
|
||||
+#if IS_ENABLED(CONFIG_ARMV8_PSCI)
|
||||
#define PTE_MAP_NS PTE_BLOCK_NS
|
||||
#else
|
||||
#define PTE_MAP_NS 0
|
||||
@@ -700,11 +700,11 @@ int arch_cpu_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-#if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP)
|
||||
+#if IS_ENABLED(CONFIG_IMX8MN) || IS_ENABLED(CONFIG_IMX8MP)
|
||||
struct rom_api *g_rom_api = (struct rom_api *)0x980;
|
||||
#endif
|
||||
|
||||
-#if defined(CONFIG_IMX8M)
|
||||
+#if IS_ENABLED(CONFIG_IMX8M)
|
||||
#include <spl.h>
|
||||
int imx8m_detect_secondary_image_boot(void)
|
||||
{
|
||||
@@ -790,8 +790,8 @@ int boot_mode_getprisec(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP)
|
||||
-#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
|
||||
+#if IS_ENABLED(CONFIG_IMX8MN) || IS_ENABLED(CONFIG_IMX8MP)
|
||||
+#if IS_ENABLED(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION)
|
||||
#define IMG_CNTN_SET1_OFFSET GENMASK(22, 19)
|
||||
unsigned long arch_spl_mmc_get_uboot_raw_sector(struct mmc *mmc,
|
||||
unsigned long raw_sect)
|
||||
@@ -834,7 +834,7 @@ bool is_usb_boot(void)
|
||||
return get_boot_device() == USB_BOOT;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_OF_SYSTEM_SETUP
|
||||
+#if IS_ENABLED(CONFIG_OF_SYSTEM_SETUP)
|
||||
bool check_fdt_new_path(void *blob)
|
||||
{
|
||||
const char *soc_path = "/soc@0";
|
||||
@@ -880,7 +880,7 @@ add_status:
|
||||
return 0;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IMX8MQ
|
||||
+#if IS_ENABLED(CONFIG_IMX8MQ)
|
||||
bool check_dcss_fused(void)
|
||||
{
|
||||
struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
|
||||
@@ -1026,7 +1026,7 @@ int disable_vpu_nodes(void *blob)
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
-#ifdef CONFIG_IMX8MN_LOW_DRIVE_MODE
|
||||
+#if IS_ENABLED(CONFIG_IMX8MN_LOW_DRIVE_MODE)
|
||||
static int low_drive_gpu_freq(void *blob)
|
||||
{
|
||||
static const char *nodes_path_8mn[] = {
|
||||
@@ -1311,7 +1311,7 @@ int ft_system_setup(void *blob, struct bd_info *bd)
|
||||
"/cpus/cpu@3",
|
||||
};
|
||||
|
||||
-#ifdef CONFIG_IMX8MQ
|
||||
+#if IS_ENABLED(CONFIG_IMX8MQ)
|
||||
int i = 0;
|
||||
int rc;
|
||||
int nodeoff;
|
||||
@@ -1387,7 +1387,7 @@ usb_modify_speed:
|
||||
if (is_imx8md())
|
||||
disable_cpu_nodes(blob, nodes_path, 2, 4);
|
||||
|
||||
-#elif defined(CONFIG_IMX8MM)
|
||||
+#elif IS_ENABLED(CONFIG_IMX8MM)
|
||||
if (is_imx8mml() || is_imx8mmdl() || is_imx8mmsl())
|
||||
disable_vpu_nodes(blob);
|
||||
|
||||
@@ -1396,10 +1396,10 @@ usb_modify_speed:
|
||||
else if (is_imx8mms() || is_imx8mmsl())
|
||||
disable_cpu_nodes(blob, nodes_path, 3, 4);
|
||||
|
||||
-#elif defined(CONFIG_IMX8MN)
|
||||
+#elif IS_ENABLED(CONFIG_IMX8MN)
|
||||
if (is_imx8mnl() || is_imx8mndl() || is_imx8mnsl())
|
||||
disable_gpu_nodes(blob);
|
||||
-#ifdef CONFIG_IMX8MN_LOW_DRIVE_MODE
|
||||
+#if IS_ENABLED(CONFIG_IMX8MN_LOW_DRIVE_MODE)
|
||||
else {
|
||||
int ldm_gpu = low_drive_gpu_freq(blob);
|
||||
|
||||
@@ -1415,7 +1415,7 @@ usb_modify_speed:
|
||||
else if (is_imx8mns() || is_imx8mnsl() || is_imx8mnus())
|
||||
disable_cpu_nodes(blob, nodes_path, 3, 4);
|
||||
|
||||
-#elif defined(CONFIG_IMX8MP)
|
||||
+#elif IS_ENABLED(CONFIG_IMX8MP)
|
||||
if (is_imx8mpul()) {
|
||||
/* Disable GPU */
|
||||
disable_gpu_nodes(blob);
|
||||
@@ -1471,7 +1471,7 @@ void reset_cpu(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(CONFIG_ARCH_MISC_INIT)
|
||||
+#if IS_ENABLED(CONFIG_ARCH_MISC_INIT)
|
||||
int arch_misc_init(void)
|
||||
{
|
||||
if (IS_ENABLED(CONFIG_FSL_CAAM)) {
|
||||
@@ -1487,8 +1487,8 @@ int arch_misc_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
-#if defined(CONFIG_XPL_BUILD)
|
||||
-#if defined(CONFIG_IMX8MQ) || defined(CONFIG_IMX8MM) || defined(CONFIG_IMX8MN)
|
||||
+#if IS_ENABLED(CONFIG_XPL_BUILD)
|
||||
+#if IS_ENABLED(CONFIG_IMX8MQ) || IS_ENABLED(CONFIG_IMX8MM) || IS_ENABLED(CONFIG_IMX8MN)
|
||||
bool serror_need_skip = true;
|
||||
|
||||
void do_error(struct pt_regs *pt_regs)
|
||||
@@ -1523,7 +1523,7 @@ void do_error(struct pt_regs *pt_regs)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-#if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP)
|
||||
+#if IS_ENABLED(CONFIG_IMX8MN) || IS_ENABLED(CONFIG_IMX8MP)
|
||||
enum env_location arch_env_get_location(enum env_operation op, int prio)
|
||||
{
|
||||
enum boot_device dev = get_boot_device();
|
||||
@@ -1571,7 +1571,7 @@ enum env_location arch_env_get_location(enum env_operation op, int prio)
|
||||
|
||||
#endif
|
||||
|
||||
-#ifdef CONFIG_IMX_BOOTAUX
|
||||
+#if IS_ENABLED(CONFIG_IMX_BOOTAUX)
|
||||
const struct rproc_att hostmap[] = {
|
||||
/* aux core , host core, size */
|
||||
{ 0x00000000, 0x007e0000, 0x00020000 },
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
From 8acea298bb82c38b20855cd46a46b9e418dc1fb0 Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Tue, 20 May 2025 10:54:16 +0200
|
||||
Subject: [PATCH] spl: Kconfig: support U-Boot load from raw NAND
|
||||
|
||||
Commit 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options") breaks
|
||||
the boot of the BSH SMM S2 board. As stated in the commit itself, "Some
|
||||
boards use this value even though MMC is not enabled in SPL, for example
|
||||
imx8mn_bsh_smm_s2".
|
||||
|
||||
Support load of the U-Boot image from raw NAND sector. This is equivalent
|
||||
to load from MMC raw sector.
|
||||
|
||||
Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options")
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Upstream: https://source.denx.de/u-boot/u-boot/-/commit/8acea298bb82c38b20855cd46a46b9e418dc1fb0
|
||||
---
|
||||
common/spl/Kconfig | 15 +++++++++++++++
|
||||
1 file changed, 15 insertions(+)
|
||||
|
||||
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
|
||||
index aa3a85eea54d..77cf04d38ed0 100644
|
||||
--- a/common/spl/Kconfig
|
||||
+++ b/common/spl/Kconfig
|
||||
@@ -974,6 +974,21 @@ config SPL_NAND_SUPPORT
|
||||
This enables the drivers in drivers/mtd/nand/raw as part of an SPL
|
||||
build.
|
||||
|
||||
+config SPL_NAND_RAW_U_BOOT_USE_SECTOR
|
||||
+ bool "NAND raw mode: by sector"
|
||||
+ depends on SPL_NAND_SUPPORT
|
||||
+ select SPL_LOAD_BLOCK
|
||||
+ help
|
||||
+ Use sector number for specifying U-Boot location on NAND in
|
||||
+ raw mode.
|
||||
+
|
||||
+config SPL_NAND_RAW_U_BOOT_SECTOR
|
||||
+ hex "Address on the NAND to load U-Boot from"
|
||||
+ depends on SPL_NAND_RAW_U_BOOT_USE_SECTOR
|
||||
+ help
|
||||
+ Address on the NAND to load U-Boot from, when the NAND is being used
|
||||
+ in raw mode. Units: NAND disk sectors (1 sector = 512 bytes).
|
||||
+
|
||||
config SPL_NAND_RAW_ONLY
|
||||
bool "Support to boot only raw u-boot.bin images"
|
||||
depends on SPL_NAND_SUPPORT
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From 24d98fa63bbcb21988e4e822f11686319502fb1f Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Tue, 20 May 2025 10:54:17 +0200
|
||||
Subject: [PATCH] imx: spl_imx_romapi: support raw NAND sector
|
||||
|
||||
Commit 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options") breaks
|
||||
the boot of the BSH SMM S2 board. As stated in the dropped comment, "Some
|
||||
boards use this value even though MMC is not enabled in SPL, for example
|
||||
imx8mn_bsh_smm_s2".
|
||||
|
||||
Support load of the U-Boot image from raw NAND sector.
|
||||
|
||||
Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options")
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Upstream: https://source.denx.de/u-boot/u-boot/-/commit/24d98fa63bbcb21988e4e822f11686319502fb1f
|
||||
---
|
||||
arch/arm/mach-imx/spl_imx_romapi.c | 8 +++-----
|
||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-imx/spl_imx_romapi.c b/arch/arm/mach-imx/spl_imx_romapi.c
|
||||
index 3982f4cca184..b7008df8e35a 100644
|
||||
--- a/arch/arm/mach-imx/spl_imx_romapi.c
|
||||
+++ b/arch/arm/mach-imx/spl_imx_romapi.c
|
||||
@@ -35,12 +35,10 @@ ulong __weak spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev)
|
||||
{
|
||||
u32 sector = 0;
|
||||
|
||||
- /*
|
||||
- * Some boards use this value even though MMC is not enabled in SPL, for
|
||||
- * example imx8mn_bsh_smm_s2
|
||||
- */
|
||||
-#ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
|
||||
+#if IS_ENABLED(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR)
|
||||
sector = CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR;
|
||||
+#elif IS_ENABLED(CONFIG_SPL_NAND_RAW_U_BOOT_USE_SECTOR)
|
||||
+ sector = CONFIG_SPL_NAND_RAW_U_BOOT_SECTOR;
|
||||
#endif
|
||||
|
||||
return image_offset + sector * 512 - 0x8000;
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From dce71922df352b0eb1b6cc3d40c374ad80a7d6c5 Mon Sep 17 00:00:00 2001
|
||||
From: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Date: Tue, 20 May 2025 10:54:18 +0200
|
||||
Subject: [PATCH] configs: imx8mn_bsh_smm_s2: load U-Boot from raw NAND
|
||||
|
||||
Commit 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options") breaks
|
||||
the boot of the BSH SMM S2 board. Add options to load U-Boot from raw NAND
|
||||
sector.
|
||||
|
||||
Fixes: 2a00d73d081a ("spl: mmc: Try to clean up raw-mode options")
|
||||
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
|
||||
Upstream: https://source.denx.de/u-boot/u-boot/-/commit/dce71922df352b0eb1b6cc3d40c374ad80a7d6c5
|
||||
---
|
||||
configs/imx8mn_bsh_smm_s2_defconfig | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/configs/imx8mn_bsh_smm_s2_defconfig b/configs/imx8mn_bsh_smm_s2_defconfig
|
||||
index 9ffcd3b221c3..1c11d4705419 100644
|
||||
--- a/configs/imx8mn_bsh_smm_s2_defconfig
|
||||
+++ b/configs/imx8mn_bsh_smm_s2_defconfig
|
||||
@@ -47,6 +47,8 @@ CONFIG_SPL_DMA=y
|
||||
CONFIG_SPL_I2C=y
|
||||
CONFIG_SPL_MTD=y
|
||||
CONFIG_SPL_NAND_SUPPORT=y
|
||||
+CONFIG_SPL_NAND_RAW_U_BOOT_USE_SECTOR=y
|
||||
+CONFIG_SPL_NAND_RAW_U_BOOT_SECTOR=0x300
|
||||
CONFIG_SPL_NAND_BASE=y
|
||||
CONFIG_SPL_NAND_IDENT=y
|
||||
CONFIG_SPL_POWER=y
|
||||
--
|
||||
2.43.0
|
||||
|
||||
Reference in New Issue
Block a user