[U-Boot] [PATCH] imx: Add titanium board support (i.MX6 based)

Heiko Schocher
2013-04-10T07:52:01Z

Hello Stefan,

on 10.04.2013 09:17, Stefan Roese wrote:
> Titanium is a i.MX6 based board from ProjectionDesign / Barco. This
> patch adds support for this board with the newly introduced NAND
> support for i.MX6.
>
> Signed-off-by: Stefan Roese <sr@denx.de>
> ---
> MAINTAINERS | 2 +
> board/freescale/titanium/Makefile | 36 ++++
> board/freescale/titanium/imximage.cfg | 181 +++++++++++++++++
> board/freescale/titanium/titanium.c | 372 ++++++++++++++++++++++++++++++++++
> boards.cfg | 1 +
> include/configs/titanium.h | 274 +++++++++++++++++++++++++
> 6 files changed, 866 insertions(+)
> create mode 100644 board/freescale/titanium/Makefile
> create mode 100644 board/freescale/titanium/imximage.cfg
> create mode 100644 board/freescale/titanium/titanium.c
> create mode 100644 include/configs/titanium.h

[...]
> diff --git a/board/freescale/titanium/imximage.cfg b/board/freescale/titanium/imximage.cfg
> new file mode 100644
> index 0000000..9172d0e
> --- /dev/null
> +++ b/board/freescale/titanium/imximage.cfg
> @@ -0,0 +1,181 @@
> +/*
> + * Projectiondesign AS
> + * Derived from ./board/freescale/mx6qsabrelite/imximage.cfg
> + *
> + * Copyright (C) 2011 Freescale Semiconductor, Inc.
> + * Jason Liu <r64343@freescale.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * Refer docs/README.imxmage for more details about how-to configure
> + * and create imximage boot image
> + *
> + * The syntax is taken as close as possible with the kwbimage
> + */
> +
> +/* image version */
> +
> +IMAGE_VERSION 2
> +
> +/*
> + * Boot Device : one of
> + * spi, sd (the board has no nand neither onenand)
> + */
> +BOOT_FROM nand

just Nitpicking: Comment says one of spi, sd you
select nand ... and comment says the board has no nand ... ;-)

[...]
> +/*
> + * Siste adresse i RAM. Starter p? 0x10000000 og med 512MB blir dette
> + * siste 0x30000000 som er 768MB - sabrelite: 0x00000027
> + */

Again Nitpick... comments in english please ...

[...]
> diff --git a/board/freescale/titanium/titanium.c b/board/freescale/titanium/titanium.c
> new file mode 100644
> index 0000000..3cf68cf
> --- /dev/null
> +++ b/board/freescale/titanium/titanium.c
> @@ -0,0 +1,372 @@
[...]
> +static void setup_gpmi_nand(void)
> +{
> + struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
> + unsigned int reg;
> +
> + /* config gpmi nand iomux */
> + imx_iomux_v3_setup_multiple_pads(nfc_pads,
> + ARRAY_SIZE(nfc_pads));
> +
> + /* config gpmi and bch clock to 11Mhz*/
> + reg = readl(&mxc_ccm->cs2cdr);
> + reg &= 0xF800FFFF;
> + reg |= 0x01E40000;

Hmm.. could you use some defines for this magic values?

> + writel(reg, &mxc_ccm->cs2cdr);
> +
> + /* enable gpmi and bch clock gating */
> + reg = readl(&mxc_ccm->CCGR4);
> + reg |= 0xFF003000;

and here ...

> + writel(reg, &mxc_ccm->CCGR4);
> +
> + /* enable apbh clock gating */
> + reg = readl(&mxc_ccm->CCGR0);
> + reg |= 0x0030;

and here ... Thanks!

> + writel(reg, &mxc_ccm->CCGR0);
> +}
> +

[...]

bye,
Heiko
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany