[U-Boot] [RFC PATCH 00/12] imx: mx6: add virtual mx6memcal board

Eric Nelson eric at nelint.com
Tue Jun 21 20:41:30 CEST 2016


This patch set makes use of the dynamic DDR calibration routines added in commit
d339f16 to define an alternative to the Freescale DDR stress tester tool.

The goals of this effort are to make the process of DDR validation easier
and more robust:
	- The use of SPL simplifies the process of running DDR calibration
	through the imx_usb or SB_LOADER.exe tools (no need for JTAG)

	- The use of Kconfig makes the set of board-specific parameters
	more obvious.

	- The output of the SPL image can be directly pasted into either the DCD
	configuration file or U-Boot sources.

The notable feature of the DDR stress tool which isn't present in this virtual
board file is the testing across CPU frequencies.

Patches 1-3 contain structural changes to those routines to return the
calibration data and allow configuration of memory without a pre-defined
set of calibration data.

Patches 4 and 5 add a struct mx6_ddr_sysinfo parameter to the calibration
routines and use it to fix the use of the calibration routines on CPU
variants which don't have two MMDC ports (tested on i.MX6SL).

Patches 6-7 simplify the selection of the DDR calibration routines and
allow use on other CPU variants (again, tested on i.MX6SL).

Patch 8 is the meat of the patch set and defines the board itself and
a single configuration sample that can be used on mx6sabresd or mx6qsabreauto.

Patches 9-12 define a set of other configurations to match other boards that
I've tested during development. Note that the configurations with LPDDR (mx6slevk
and WaRP) are not currently functional.

I believe that patches 1-7 are minor and can be applied after a short
review, but the patch set is an RFC because of some fundamental questions:

	- Is it okay with Freescale that I'm the maintainer for a board
	in the board/freescale tree? I don't particularly want to be the
	maintainer of this set of tools, but I want them, so I will try
	to maintain those portions that I'm in a position to test.

	- What about the board name? Though I haven't looked deeply at it,
	but I think that some of this code could be shared with i.MX7.

	- I'm including some configurations for boards that don't currently
	function (mx6slevk) or haven't been tested (warp) for reference and
	further updates. I'm also including a configuration for a board that
	isn't supported in main-line U-Boot (nitrogen6_max).

Eric Nelson (12):
  imx: mx6: ddr: return output of calibration routines
  novena: supply calibration parameter to DDR calibration routines
  imx: mx6: ddr: make calibration optional in config routines
  imx: mx6: ddr: pass sysinfo to calibration routines
  novena: pass mx6_ddr_sysinfo to calibration routines
  imx: mx6: ddr: use Kconfig for inclusion of DDR calibration
  novena_defconfig: select MX6_DDRCAL
  mx6: Add board mx6memcal for use in validating DDR
  mx6memcal: add configuration mx6memcal_mx6slevk_defconfig
  mx6memcal: add configuration mx6memcal_nitrogen6_max_defconfig
  mx6memcal: add configuration mx6memcal_sabrelite_defconfig
  mx6memcal: add configuration mx6memcal_warpboard_defconfig

 arch/arm/cpu/armv7/mx6/Kconfig            |  14 +
 arch/arm/cpu/armv7/mx6/ddr.c              | 174 +++++++-----
 arch/arm/include/asm/arch-mx6/mx6-ddr.h   |   8 +-
 board/freescale/mx6memcal/Kconfig         | 135 +++++++++
 board/freescale/mx6memcal/MAINTAINERS     |   7 +
 board/freescale/mx6memcal/Makefile        |  13 +
 board/freescale/mx6memcal/mx6memcal.c     |  31 +++
 board/freescale/mx6memcal/spl.c           | 449 ++++++++++++++++++++++++++++++
 board/kosagi/novena/novena_spl.c          |   4 +-
 configs/mx6memcal_defconfig               |  30 ++
 configs/mx6memcal_mx6slevk_defconfig      |  30 ++
 configs/mx6memcal_nitrogen6_max_defconfig |  26 ++
 configs/mx6memcal_sabrelite_defconfig     |  27 ++
 configs/mx6memcal_warpboard_defconfig     |  32 +++
 configs/novena_defconfig                  |   1 +
 include/configs/mx6memcal.h               |  65 +++++
 16 files changed, 976 insertions(+), 70 deletions(-)
 create mode 100644 board/freescale/mx6memcal/Kconfig
 create mode 100644 board/freescale/mx6memcal/MAINTAINERS
 create mode 100644 board/freescale/mx6memcal/Makefile
 create mode 100644 board/freescale/mx6memcal/mx6memcal.c
 create mode 100644 board/freescale/mx6memcal/spl.c
 create mode 100644 configs/mx6memcal_defconfig
 create mode 100644 configs/mx6memcal_mx6slevk_defconfig
 create mode 100644 configs/mx6memcal_nitrogen6_max_defconfig
 create mode 100644 configs/mx6memcal_sabrelite_defconfig
 create mode 100644 configs/mx6memcal_warpboard_defconfig
 create mode 100644 include/configs/mx6memcal.h

-- 
2.7.4



More information about the U-Boot mailing list