u-boot/board/gateworks/gw_ventana
Tim Harvey 59189a8b26 ventana: Add Gateworks Ventana family support
Gateworks Ventana is a product family based on the i.MX6.  This
patch adds support for all boards in the Ventana family. Where
possible, data from the boards EEPROM is used to determine various
details about the board at runtime.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2014-03-12 10:23:03 +01:00
..
clocks.cfg ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
gsc.c ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
gsc.h ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
gw_ventana.c ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
gw_ventana.cfg ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
Makefile ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
README ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00
ventana_eeprom.h ventana: Add Gateworks Ventana family support 2014-03-12 10:23:03 +01:00

U-Boot for the Gateworks Ventana Product Family boards

This file contains information for the port of U-Boot to the Gateworks
Ventana Product family boards.

1. Boot source, boot from NAND
------------------------------

The i.MX6 BOOT ROM expects some structures that provide details of NAND layout
and bad block information (referred to as 'bootstreams') which are replicated
multiple times in NAND. The number of replications is configurable through
board strapping options and eFUSE settings.  The Freescale 'kobs-ng'
application from the Freescale LTIB BSP, which runs under Linux, must be used
to program the bootstream in order to setup the replicated headers correctly.

The Gateworks Ventana boards with NAND flash have been factory programmed
such that their eFUSE settings expect 2 copies of the boostream (this is
specified by providing kobs-ng with the --search_exponent=1 argument). Once in
Linux with MTD support for the NAND on /dev/mtd0 you can program the boostream
with:

kobs-ng init -v -x --search_exponent=1 u-boot.imx

The kobs-ng application uses an imximage (u-boot.imx) which contains the
Image Vector Table (IVT) and Device Configuration Data (DCD) structures that
the i.MX6 BOOT ROM requires to boot.  The kobs-ng adds the Firmware
Configuration Block (FCB) and Discovered Bad Block Table (DBBT).

This information is taken from:
  http://trac.gateworks.com/wiki/ventana/bootloader#NANDFLASH

More details about the i.MX6 BOOT ROM can be found in the IMX6 reference manual.

2. Build
--------

There are several Gateworks Ventana boards that share a simliar design but
vary based on CPU, Memory configuration, and subloaded devices.  Although
the subloaded devices are handled dynamically in the bootloader using
factory configured EEPROM data to modify the device-tree, the CPU choice
(IMX6Q vs IMX6DL) and memory configurations are currently compile-time
options.

The following Gateworks Ventana configurations exist:
 gwventanaq1gspi: MX6Q,1GB,SPI FLASH
 gwventanaq     : MX6Q,512MB,NAND FLASH
 gwventanaq1g   : MX6Q,1GB,NAND FLASH
 gwventanadl    : MX6DL,512MB,NAND FLASH
 gwventanadl1g  : MX6DL,1GB,NAND FLASH

To build U-Boot for the MX6Q,1GB,NAND FLASH for example:

 make gwventanaq1g_config
 make