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 <e...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot