[U-Boot] [PATCH] ARM: mx6: ddr: use Kconfig for inclusion of DDR calibration routines
Marek Vasut
marex at denx.de
Sun Oct 30 21:03:34 CET 2016
On 10/30/2016 08:20 PM, Eric Nelson wrote:
> The DDR calibration routines are gated by conditionals for the
> i.MX6DQ SOCs, but with the use of the sysinfo parameter, these
> are usable on at least i.MX6SDL and i.MX6SL variants with DDR3.
>
> Also, since only the Novena board currently uses the dynamic
> DDR calibration routines, these routines waste space on other
> boards using SPL.
>
> Add a KConfig entry to allow boards to selectively include the
> DDR calibration routines.
>
> Signed-off-by: Eric Nelson <eric at nelint.com>
> ---
> arch/arm/cpu/armv7/mx6/Kconfig | 5 +++++
> arch/arm/cpu/armv7/mx6/ddr.c | 3 +--
> arch/arm/include/asm/arch-mx6/mx6-ddr.h | 2 +-
> configs/novena_defconfig | 1 +
> 4 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
> index 762a581..32536c0 100644
> --- a/arch/arm/cpu/armv7/mx6/Kconfig
> +++ b/arch/arm/cpu/armv7/mx6/Kconfig
> @@ -35,6 +35,11 @@ config MX6ULL
> bool
> select MX6UL
>
> +config MX6_DDRCAL
> + bool "Include dynamic DDR calibration routines"
> + depends on SPL
> + default n
Help text would really be helpful ;)
> choice
> prompt "MX6 board select"
> optional
> diff --git a/arch/arm/cpu/armv7/mx6/ddr.c b/arch/arm/cpu/armv7/mx6/ddr.c
> index b12fb64..0cf391e 100644
> --- a/arch/arm/cpu/armv7/mx6/ddr.c
> +++ b/arch/arm/cpu/armv7/mx6/ddr.c
> @@ -14,8 +14,7 @@
> #include <asm/types.h>
> #include <wait_bit.h>
>
> -#if defined(CONFIG_MX6QDL) || defined(CONFIG_MX6Q) || defined(CONFIG_MX6D)
> -
> +#if defined(CONFIG_MX6_DDRCAL)
> static void reset_read_data_fifos(void)
> {
> struct mmdc_p_regs *mmdc0 = (struct mmdc_p_regs *)MMDC_P0_BASE_ADDR;
> diff --git a/arch/arm/include/asm/arch-mx6/mx6-ddr.h b/arch/arm/include/asm/arch-mx6/mx6-ddr.h
> index 12454fa..2a8d443 100644
> --- a/arch/arm/include/asm/arch-mx6/mx6-ddr.h
> +++ b/arch/arm/include/asm/arch-mx6/mx6-ddr.h
> @@ -458,7 +458,7 @@ void mx6sl_dram_iocfg(unsigned width,
> const struct mx6sl_iomux_ddr_regs *,
> const struct mx6sl_iomux_grp_regs *);
>
> -#if defined(CONFIG_MX6QDL) || defined(CONFIG_MX6Q) || defined(CONFIG_MX6D)
> +#if defined(CONFIG_MX6_DDRCAL)
> int mmdc_do_write_level_calibration(struct mx6_ddr_sysinfo const *sysinfo);
> int mmdc_do_dqs_calibration(struct mx6_ddr_sysinfo const *sysinfo);
> void mmdc_read_calibration(struct mx6_ddr_sysinfo const *sysinfo,
> diff --git a/configs/novena_defconfig b/configs/novena_defconfig
> index 1ffdddc..9d47d5b 100644
> --- a/configs/novena_defconfig
> +++ b/configs/novena_defconfig
> @@ -3,6 +3,7 @@ CONFIG_ARCH_MX6=y
> CONFIG_SPL_GPIO_SUPPORT=y
> CONFIG_SPL_LIBCOMMON_SUPPORT=y
> CONFIG_SPL_LIBGENERIC_SUPPORT=y
> +CONFIG_MX6_DDRCAL=y
> CONFIG_TARGET_KOSAGI_NOVENA=y
> CONFIG_SPL_EXT_SUPPORT=y
> CONFIG_SPL_FAT_SUPPORT=y
>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list