]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - board/gateworks/gw_ventana/README
Merge branch 'u-boot-ti/master' into 'u-boot-arm/master'
[karo-tx-uboot.git] / board / gateworks / gw_ventana / README
1 U-Boot for the Gateworks Ventana Product Family boards
2
3 This file contains information for the port of U-Boot to the Gateworks
4 Ventana Product family boards.
5
6 1. Secondary Program Loader (SPL)
7 ---------------------------------
8
9 The i.MX6 has a BOOT ROM PPL (Primary Program Loader) which supports loading
10 an executable image from various boot devices.
11
12 The Gateworks Ventana board config uses an SPL build configuration. This
13 will build the following artifacts from u-boot source:
14  - SPL - Secondary Program Loader that the i.MX6 BOOT ROM (Primary Program
15          Loader) boots.  This detects CPU/DRAM configuration, configures
16          The DRAM controller, loads u-boot.img from the detected boot device,
17          and jumps to it.  As this is booted from the PPL, it has an IVT/DCD
18          table.
19  - u-boot.img - The main u-boot core which is u-boot.bin with a image header.
20
21
22 2. Build
23 --------
24
25 To build U-Boot for the Gateworks Ventana product family:
26
27  make gwventana_config
28  make
29
30
31 3. Boot source, boot from NAND
32 ------------------------------
33
34 The i.MX6 BOOT ROM expects some structures that provide details of NAND layout
35 and bad block information (referred to as 'bootstreams') which are replicated
36 multiple times in NAND. The number of replications and their spacing (referred
37 to as search stride) is configurable through board strapping options and/or
38 eFUSE settings (BOOT_SEARCH_COUNT / Pages in block from BOOT_CFG2). In
39 addition, the i.MX6 BOOT ROM Flash Configuration Block (FCB) supports two
40 copies of a bootloader in flash in the case that a bad block has corrupted one.
41 The Freescale 'kobs-ng' application from the Freescale LTIB BSP, which runs
42 under Linux and operates on an MTD partition, must be used to program the
43 bootstream in order to setup this flash structure correctly.
44
45 The Gateworks Ventana boards with NAND flash have been factory programmed
46 such that their eFUSE settings expect 2 copies of the boostream (this is
47 specified by providing kobs-ng with the --search_exponent=1 argument). Once in
48 Linux with MTD support for the NAND on /dev/mtd0 you can program the SPL
49 with:
50
51 kobs-ng init -v -x --search_exponent=1 SPL
52
53 The kobs-ng application uses an imximage which contains the Image Vector Table
54 (IVT) and Device Configuration Data (DCD) structures that the i.MX6 BOOT ROM
55 requires to boot.  The kobs-ng adds the Firmware Configuration Block (FCB) and
56 Discovered Bad Block Table (DBBT).  The SPL build artifact from u-boot is
57 an imximage.
58
59 The u-boot.img, which is the non SPL u-boot binary appended to a u-boot image
60 header must be programmed in the NAND flash boot device at an offset hard
61 coded in the SPL. For the Ventana boards, this has been chosen to be 14MB.
62 The image can be programmed from either u-boot or Linux:
63
64 u-boot:
65 Ventana > setenv mtdparts mtdparts=nand:14m(spl),2m(uboot),1m(env),-(rootfs)
66 Ventana > tftp ${loadaddr} u-boot.img && nand erase.part uboot && \
67           nand write ${loadaddr} uboot ${filesize}
68
69 Linux:
70 nandwrite /dev/mtd1 u-boot.img
71
72 The above assumes the default Ventana partitioning scheme which is configured
73 via the mtdparts env var:
74  - spl: 14MB
75  - uboot: 2M
76  - env: 1M
77  - rootfs: the rest
78
79 This information is taken from:
80   http://trac.gateworks.com/wiki/ventana/bootloader#NANDFLASH
81
82 More details about the i.MX6 BOOT ROM can be found in the IMX6 reference manual.
83