[U-Boot] [PATCH v3 0/7] Add support for Colibri Vybrid Modules

Sanchayan Maity
2015-04-15T10:54:21Z

Hello,

This is the third version of the patchset which adds support for the
Toradex Colibri Vybrid VF50 and VF61 modules. Boot up has been tested
using the serial loader over UART. Compile tested for vf610twr_defconfig
and vf610twr_nand_defconfig as well.

First patch in the series refactors the DDR related code for use by both
the tower board and colibri modules. It also introduces a DDR3 based
JEDEC timing structure.

Second third and fourth patch in this series are improvement patches
related to RTC, SoC/CPU detection and caches.

Fifth patch introduces USB support for Vybrid modules. Much of the code
is similar to the ehci-mx6 driver. Both host and client modes are working
and DFU has also been tested with client. Currently, we restrict the
ports to be in one of host and client mode.

Sixth patch adds the actual support for the Colibri modules.

Comments and feedback are most welcome. Thanks for the feedback till
now.

The patchset is based and tested on the latest master branch as of
this writing.

Discussion on the version 2 of the patchset can be found at the below
link:
https://www.mail-archive.com/u-boot at lists.denx.de/msg168727.html

Discussion on the version 1 of the patchset can be found at the below
link:
https://www.mail-archive.com/u-boot at lists.denx.de/msg168136.html

Changes since v2:
- Rework the USB driver to use register + offset method in light of
discussion which Fabio Estevam pointed out instead of the regular
struct{} method which v2 used. The discussion is at the below link:
https://www.marc.info/?l=u-boot&m=142609602127309&w=2

- Reorder the patchset, putting the USB support in the end and add an
additional patch for adding USB support to Colibri modules. By chance
if more discussions happen on the USB support, this allows picking up
of atleast the first patches on which no issues have been reported so
far.

- The register definitions have been moved under arch/arm/include/asm/
imx-common in the regs-usbphy.h file. This was agreed on after
discussion with Marek and some input from Peter Chen. Since it is not
clear if SoC's other than Freescale's use the Sigmatel Phy's which seem
to be use in iMX/VF/MXS, put the USH PHY register definitions in
imx-common rather than include/usb in a chipidea specific file.

- Remove setting of a PLL divisor select which was added for USB but is
actually not required considering default value. It also seems to break
USB after my latest rebase. The file in question concerning the change
is colibri_vf.c. PLL divisor selects the PLL Multiplication factor which
by default is 0, setting Fout = Fref * 20 giving 480MHz. The earlier
patch set this to 1 giving Fout = Fref * 22 where Fref = 24MHz.

- Rebased on the latest master branch.

Changes since v1:
- Rework the USB driver to use register offsets using the regular
struct {} method

- Some cleanups and fixes in the sixth patch for the colibri_vf.h file
which takes care of environment variables in uboot

- Purge some useless defines in the fifth and sixth patch which were
related to USB.

- Sanchayan.

Sanchayan Maity (5):
ARM: vf610: Move DDR3 initialization to imx-common
ARM: vf610: Add SoC and CPU type detection
ARM: vf610: Initial integration for Colibri VF50/VF61
usb: host: Add ehci-vf USB driver for ARM Vybrid SoC's
colibri_vf: Enable USB support for Colibri Vybrid

Stefan Agner (2):
ARM: vf610: Enable external 32KHz oscillator
ARM: vf610: Enable caches

arch/arm/Kconfig | 5 +
arch/arm/cpu/armv7/vf610/generic.c | 45 ++-
arch/arm/imx-common/Makefile | 3 +
arch/arm/imx-common/ddrmc-vf610.c | 278 +++++++++++++++++++
arch/arm/include/asm/arch-vf610/crm_regs.h | 11 +
arch/arm/include/asm/arch-vf610/ddrmc-vf610.h | 72 +++++
arch/arm/include/asm/arch-vf610/imx-regs.h | 36 ++-
arch/arm/include/asm/imx-common/regs-usbphy.h | 26 ++
board/freescale/vf610twr/vf610twr.c | 295 +++++---------------
board/toradex/colibri_vf/Kconfig | 18 ++
board/toradex/colibri_vf/MAINTAINERS | 6 +
board/toradex/colibri_vf/Makefile | 7 +
board/toradex/colibri_vf/colibri_vf.c | 382 ++++++++++++++++++++++++++
board/toradex/colibri_vf/imximage.cfg | 17 ++
configs/colibri_vf_defconfig | 3 +
drivers/usb/host/Makefile | 1 +
drivers/usb/host/ehci-vf.c | 164 +++++++++++
include/configs/colibri_vf.h | 271 ++++++++++++++++++
18 files changed, 1405 insertions(+), 235 deletions(-)
create mode 100644 arch/arm/imx-common/ddrmc-vf610.c
create mode 100644 arch/arm/include/asm/arch-vf610/ddrmc-vf610.h
create mode 100644 arch/arm/include/asm/imx-common/regs-usbphy.h
create mode 100644 board/toradex/colibri_vf/Kconfig
create mode 100644 board/toradex/colibri_vf/MAINTAINERS
create mode 100644 board/toradex/colibri_vf/Makefile
create mode 100644 board/toradex/colibri_vf/colibri_vf.c
create mode 100644 board/toradex/colibri_vf/imximage.cfg
create mode 100644 configs/colibri_vf_defconfig
create mode 100644 drivers/usb/host/ehci-vf.c
create mode 100644 include/configs/colibri_vf.h

--
2.3.5