From 873f6f9a3fd3f26a6fece7e45d6e19930e3eabf0 Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Fri, 7 Feb 2025 16:06:08 +0100 Subject: [PATCH 1/6] board: kobol: helios4: enable ddr odt0 on write for both chip-select Enabling ODT is required to suppress reflection of the data signal on DDR write operation. SolidRun Armada 388 SoM only connects M_ODT[0] even when both chip-select are used. Enable ODT[0] for both chip-select during write only. See also commit d09f199097d3 ("board: solidrun: clearfog: enable ddr odt0 on write for both chip-select") where this was added to SolidRun Clearfog board which is using the same System on Module but unlike Helios-4 without ECC memory. Signed-off-by: Josua Mayer --- board/kobol/helios4/helios4.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/board/kobol/helios4/helios4.c b/board/kobol/helios4/helios4.c index 4c8407bb676..7714076edf1 100644 --- a/board/kobol/helios4/helios4.c +++ b/board/kobol/helios4/helios4.c @@ -73,7 +73,11 @@ static struct mv_ddr_topology_map board_topology_map = { MV_DDR_CFG_DEFAULT, /* ddr configuration data source */ NOT_COMBINED, /* ddr twin-die combined */ { {0} }, /* raw spd data */ - {0} /* timing parameters */ + {0}, /* timing parameters */ + { {0} }, /* electrical configuration */ + {0,}, /* electrical parameters */ + 0x30000, /* ODT configuration */ + 0x3, /* clock enable mask */ }; struct mv_ddr_topology_map *mv_ddr_topology_map_get(void) From f9868d71faa9f431b9ca3465358c9f70707fc9c6 Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Sat, 8 Feb 2025 13:22:43 +0100 Subject: [PATCH 2/6] configs: clearfog,helios4: disable sdhci sdma Testing has shown that loading large initramfs causes data corruption where the kernel image had been loaded to. Debian 12 installation using a 17M initramfs boots fine, but the final system with an initramfs of 27M obscurely fails to boot with bootz reporting "Bad magic!". Inspecting kernel_addr_r after this failed boot attempt does show garbage in place of the expected zimage header. The problem seems to occur on armada 388 only when sdhci sdma is enabled in defconfig. Other armada boards such as turris omnia did not enable the option. Remove sdhci sdma from defconfig for now as a workaround. Signed-off-by: Josua Mayer Reviewed-by: Stefan Roese --- configs/clearfog_defconfig | 1 - configs/clearfog_sata_defconfig | 1 - configs/clearfog_spi_defconfig | 1 - configs/helios4_defconfig | 1 - 4 files changed, 4 deletions(-) diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig index d9314ed1e15..4adf8cc84bd 100644 --- a/configs/clearfog_defconfig +++ b/configs/clearfog_defconfig @@ -61,7 +61,6 @@ CONFIG_SYS_I2C_MVTWSI=y CONFIG_I2C_EEPROM=y CONFIG_SPL_I2C_EEPROM=y CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_SDMA=y CONFIG_MMC_SDHCI_MV=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y diff --git a/configs/clearfog_sata_defconfig b/configs/clearfog_sata_defconfig index d5f90d06ca6..8154125b4ac 100644 --- a/configs/clearfog_sata_defconfig +++ b/configs/clearfog_sata_defconfig @@ -62,7 +62,6 @@ CONFIG_I2C_EEPROM=y CONFIG_SPL_I2C_EEPROM=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_SDMA=y CONFIG_MMC_SDHCI_MV=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y diff --git a/configs/clearfog_spi_defconfig b/configs/clearfog_spi_defconfig index 8868c7fde5e..e9e3e8cdec4 100644 --- a/configs/clearfog_spi_defconfig +++ b/configs/clearfog_spi_defconfig @@ -62,7 +62,6 @@ CONFIG_I2C_EEPROM=y CONFIG_SPL_I2C_EEPROM=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_SDMA=y CONFIG_MMC_SDHCI_MV=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y diff --git a/configs/helios4_defconfig b/configs/helios4_defconfig index 6927e20abd1..3fb5f677ce8 100644 --- a/configs/helios4_defconfig +++ b/configs/helios4_defconfig @@ -61,7 +61,6 @@ CONFIG_SYS_I2C_MVTWSI=y CONFIG_I2C_EEPROM=y CONFIG_SPL_I2C_EEPROM=y CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_SDMA=y CONFIG_MMC_SDHCI_MV=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_SPI_FLASH_MTD=y From f606cddb4aa320e9e43b1d4cce65bdbc11feadaf Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Wed, 26 Feb 2025 14:31:18 -0600 Subject: [PATCH 3/6] cmd: mvebu/bubt: Correct usage of IS_ENABLED() macro This file was using IS_ENABLED() to test for CONFIG flags but omitted the CONFIG_ prefix and so did not work as expected. Signed-off-by: Tom Rini Reviewed-by: Stefan Roese --- cmd/mvebu/bubt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/mvebu/bubt.c b/cmd/mvebu/bubt.c index 5e4ffc40d72..6b7d9ee061d 100644 --- a/cmd/mvebu/bubt.c +++ b/cmd/mvebu/bubt.c @@ -931,7 +931,7 @@ static int check_image_header(void) size = le32_to_cpu(hdr->blocksize); if (hdr->blockid == 0x78) { /* SATA id */ - struct blk_desc *blk_dev = IS_ENABLED(BLK) ? blk_get_devnum_by_uclass_id(UCLASS_SCSI, 0) : NULL; + struct blk_desc *blk_dev = IS_ENABLED(CONFIG_BLK) ? blk_get_devnum_by_uclass_id(UCLASS_SCSI, 0) : NULL; unsigned long blksz = blk_dev ? blk_dev->blksz : 512; offset *= blksz; } From 7216dd4ed241761f14a6350411a1bf4e46f5bda6 Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Thu, 27 Feb 2025 12:07:04 +1300 Subject: [PATCH 4/6] arm: mvebu: Fix typos in Kconfig help text Fix a couple of typos in mach-mvebu/Kconfig. Signed-off-by: Chris Packham Reviewed-by: Stefan Roese --- arch/arm/mach-mvebu/Kconfig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index adb816982f8..22180b01155 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -260,7 +260,7 @@ config DDR_LOG_LEVEL failure, RL, WL errors and other algorithm failure. At level 1, provides the D-Unit setup (SPD/Static configuration). At level 2, provides the windows margin as a results of DQS centeralization. - At level 3, rovides the windows margin of each DQ as a results of + At level 3, provides the windows margin of each DQ as a results of DQS centeralization. config DDR_IMMUTABLE_DEBUG_SETTINGS @@ -450,7 +450,7 @@ config MVEBU_EFUSE_VHV_GPIO string "VHV_Enable GPIO name for eFuse programming" depends on MVEBU_EFUSE && !ARMADA_3700 help - The eFuse programing (burning) phase requires supplying 1.8V to the + The eFuse programming (burning) phase requires supplying 1.8V to the device on the VHV power pin, while for normal operation the VHV power rail must be left unconnected. See Marvell AN-389: ARMADA VHV Power document (Doc. No. MV-S302545-00 Rev. C, August 2, 2016) for details. From a6a2f07989989a8409191a653b646ab48fa5820c Mon Sep 17 00:00:00 2001 From: Benjamin Schneider Date: Fri, 28 Feb 2025 11:22:10 -0800 Subject: [PATCH 5/6] configs: mvebu_espressobin_ultra-88f3720_defconfig: disable SATA This device uses the SCSI subsystem to interface with SATA devices. Trying to use the sata command results in an unhandled exception. This has the side effect of also causing bootflow scan to raise an unhandled exception when it attempts to probe the SATA subsystem. Disabling the sata command fixes this issue and does not remove support for any boot devices. Signed-off-by: Benjamin Schneider Reviewed-by: Stefan Roese --- configs/mvebu_espressobin_ultra-88f3720_defconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/configs/mvebu_espressobin_ultra-88f3720_defconfig b/configs/mvebu_espressobin_ultra-88f3720_defconfig index 6f1a66f5f1d..1cbeee8fcb7 100644 --- a/configs/mvebu_espressobin_ultra-88f3720_defconfig +++ b/configs/mvebu_espressobin_ultra-88f3720_defconfig @@ -34,7 +34,6 @@ CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_MTD=y CONFIG_CMD_PCI=y -CONFIG_CMD_SATA=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y CONFIG_CMD_WDT=y From 9af45190d6dbe4d7369c01c34b6fe40dc00d8663 Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Fri, 14 Mar 2025 19:29:05 -0600 Subject: [PATCH 6/6] ARM: mvebu: Correct SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR usage As the code is today, we get a warning about "select" statements on "choice" options not doing anything. However, it also works as intended because SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is the default option within that choice statement. To guard against future regressions, make the choice statement in common/spl/Kconfig have an explicit default if MVEBU_SPL_BOOT_DEVICE_MMC. Signed-off-by: Tom Rini Reviewed-by: Stefan Roese --- arch/arm/mach-mvebu/Kconfig | 1 - common/spl/Kconfig | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 22180b01155..b76510ab452 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -394,7 +394,6 @@ config MVEBU_SPL_BOOT_DEVICE_MMC imply SPL_LIBDISK_SUPPORT imply SPL_MMC select SUPPORT_EMMC_BOOT if SPL_MMC - select SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR if SPL_MMC select SPL_BOOTROM_SUPPORT config MVEBU_SPL_BOOT_DEVICE_SATA diff --git a/common/spl/Kconfig b/common/spl/Kconfig index c08045f9c8d..3282e08a754 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -537,6 +537,7 @@ if SPL_SYS_MMCSD_RAW_MODE choice prompt "Method for locating next phase of boot (e.g. U-Boot)" + default SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR if MVEBU_SPL_BOOT_DEVICE_MMC config SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR bool "MMC raw mode: by sector"