From b19512f1cf28b853d308079c421e9c4c564b2242 Mon Sep 17 00:00:00 2001 From: Chris Packham Date: Sun, 29 May 2022 11:13:17 +1200 Subject: [PATCH] Convert CONFIG_FIXED_SDHCI_ALIGNED_BUFFER to Kconfig MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit CONFIG_FIXED_SDHCI_ALIGNED_BUFFER is needed on some Marvell SoCs when booting from MMC. All existing usages of this have the same value so make this the default and have the Kconfig option depend on SPL && MVEBU_SPL_BOOT_DEVICE_MMC. Signed-off-by: Chris Packham Reviewed-by: Marek Behún Reviewed-by: Stefan Roese --- drivers/mmc/Kconfig | 13 +++++++++++++ include/configs/clearfog.h | 9 --------- include/configs/controlcenterdc.h | 7 ------- include/configs/db-88f6820-gp.h | 7 ------- include/configs/helios4.h | 9 --------- include/configs/turris_omnia.h | 7 ------- 6 files changed, 13 insertions(+), 39 deletions(-) diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 5e2921ce41..c8f9709d2d 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -484,6 +484,19 @@ config SPL_MMC_SDHCI_ADMA This enables support for the ADMA (Advanced DMA) defined in the SD Host Controller Standard Specification Version 3.00 in SPL. +config FIXED_SDHCI_ALIGNED_BUFFER + hex "SDRAM address for fixed buffer" + depends on SPL && MVEBU_SPL_BOOT_DEVICE_MMC + default 0x00180000 + help + On the Marvell Armada 38x when the SPL runs it located in internal + SRAM which is the L2 cache locked to memory. When the MMC buffers + are located on the stack (or bss), the SDIO controller (SDHCI) can't + write into this L2 cache memory. + + This specifies the address of a fixed buffer located in SDRAM that + will be used for all SDHCI transfers in the SPL. + config MMC_SDHCI_ASPEED bool "Aspeed SDHCI controller" depends on ARCH_ASPEED diff --git a/include/configs/clearfog.h b/include/configs/clearfog.h index 4aaeba3602..8497fe28ef 100644 --- a/include/configs/clearfog.h +++ b/include/configs/clearfog.h @@ -40,15 +40,6 @@ "fdt_high=0x10000000\0" \ "initrd_high=0x10000000\0" -/* SPL */ - -#if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC) || defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SATA) -/* SPL related MMC defines */ -#ifdef CONFIG_SPL_BUILD -#define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */ -#endif -#endif - /* * mv-common.h should be defined after CMD configs since it used them * to enable certain macros diff --git a/include/configs/controlcenterdc.h b/include/configs/controlcenterdc.h index 571fdb3b07..8b0d260310 100644 --- a/include/configs/controlcenterdc.h +++ b/include/configs/controlcenterdc.h @@ -34,13 +34,6 @@ #define SPL_BOOT_SDIO_MMC_CARD 2 #define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SPI_NOR_FLASH -#if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD -/* SPL related MMC defines */ -#ifdef CONFIG_SPL_BUILD -#define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */ -#endif -#endif - /* * Environment Configuration */ diff --git a/include/configs/db-88f6820-gp.h b/include/configs/db-88f6820-gp.h index acc09da89d..e01dd49253 100644 --- a/include/configs/db-88f6820-gp.h +++ b/include/configs/db-88f6820-gp.h @@ -39,13 +39,6 @@ #define SPL_BOOT_SDIO_MMC_CARD 2 #define CONFIG_SPL_BOOT_DEVICE SPL_BOOT_SPI_NOR_FLASH -#if CONFIG_SPL_BOOT_DEVICE == SPL_BOOT_SDIO_MMC_CARD -/* SPL related MMC defines */ -#ifdef CONFIG_SPL_BUILD -#define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */ -#endif -#endif - /* * mv-common.h should be defined after CMD configs since it used them * to enable certain macros diff --git a/include/configs/helios4.h b/include/configs/helios4.h index c8aa564097..23eb0d4375 100644 --- a/include/configs/helios4.h +++ b/include/configs/helios4.h @@ -40,15 +40,6 @@ "fdt_high=0x10000000\0" \ "initrd_high=0x10000000\0" -/* SPL */ - -#if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC) || defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SATA) -/* SPL related MMC defines */ -#ifdef CONFIG_SPL_BUILD -#define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */ -#endif -#endif - /* * mv-common.h should be defined after CMD configs since it used them * to enable certain macros diff --git a/include/configs/turris_omnia.h b/include/configs/turris_omnia.h index c4671f1116..9013d9a693 100644 --- a/include/configs/turris_omnia.h +++ b/include/configs/turris_omnia.h @@ -26,13 +26,6 @@ "fdt_high=0x10000000\0" \ "initrd_high=0x10000000\0" -#ifdef CONFIG_MVEBU_SPL_BOOT_DEVICE_MMC -/* SPL related MMC defines */ -# ifdef CONFIG_SPL_BUILD -# define CONFIG_FIXED_SDHCI_ALIGNED_BUFFER 0x00180000 /* in SDRAM */ -# endif -#endif - /* * mv-common.h should be defined after CMD configs since it used them * to enable certain macros -- 2.39.5