[U-Boot-Users] Re: [DNX#2006033142000838] [PATCH] STXXTC Nand support.
DENX Support System
support at denx.de
Fri Mar 31 23:50:34 CEST 2006
Hello list,
inside the automatic U-Boot patch tracking system a new ticket
[DNX#2006033142000838] was created:
<snip>
> Hi Wolfgang.
>
> The following patch supports the NAND present
> on the Silicon Turnkey's XTc board.
>
> The patch is against the testing-NAND branch
> of u-boot.
>
> ----------8< CHANGELOG 8<------------------
>
> * Support NAND on STXXTC
>
> ----------8< patch 8<----------------------
> --- a/board/stxxtc/Makefile
> +++ b/board/stxxtc/Makefile
> @@ -25,7 +25,7 @@ include $(TOPDIR)/config.mk
>
> LIB = lib$(BOARD).a
>
> -OBJS = $(BOARD).o oftree.o
> +OBJS = $(BOARD).o oftree.o nand.o
>
> $(LIB): .depend $(OBJS)
> $(AR) crv $@ $(OBJS)
> --- /dev/null
> +++ b/board/stxxtc/nand.c
> @@ -0,0 +1,78 @@
> +/*
> + * (C) Copyright 2000-2004
> + * Pantelis Antoniou, pantelis.antoniou at gmail.com
> + * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> + * (C) Copyright 2005
> + * Dan Malek, Embedded Edge, LLC, dan at embeddededge.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.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
> + * MA 02111-1307 USA
> + */
> +
> +#include <common.h>
> +
> +#if (CONFIG_COMMANDS & CFG_CMD_NAND)
> +
> +#include <nand.h>
> +
> +static void stxxtc_nand_hwcontrol(struct mtd_info *mtd, int cmd)
> +{
> + struct nand_chip *this = mtd->priv;
> + ulong IO_ADDR_W = (ulong) this->IO_ADDR_W;
> + volatile immap_t *imap = (volatile immap_t *)CFG_IMMR;
> +
> + switch (cmd) {
> + case NAND_CTL_SETNCE:
> + imap->im_ioport.iop_padat &= ~(1 << (15 - 7));
> + break;
> + case NAND_CTL_CLRNCE:
> + imap->im_ioport.iop_padat |= (1 << (15 - 7));
> + break;
> + case NAND_CTL_SETALE:
> + imap->im_ioport.iop_pcdat |= (1 << (15 - 15));
> + break;
> + case NAND_CTL_CLRALE:
> + imap->im_ioport.iop_pcdat &= ~(1 << (15 - 15));
> + break;
> + case NAND_CTL_SETCLE:
> + imap->im_cpm.cp_pbdat |= (1 << (31 - 23));
> + break;
> + case NAND_CTL_CLRCLE:
> + imap->im_cpm.cp_pbdat &= ~(1 << (31 - 23));
> + break;
> + }
> +}
> +
> +/*
> + * chip R/B detection
> + */
> +static int stxxtc_nand_ready(struct mtd_info *mtd)
> +{
> + volatile immap_t *imap = (volatile immap_t *)CFG_IMMR;
> + return !!(imap->im_ioport.iop_padat & (1 << (15 - 6)));
> +}
> +
> +void board_nand_init(struct nand_chip *nand)
> +{
> + nand->options = NAND_SAMSUNG_LP_OPTIONS;
> + nand->eccmode = NAND_ECC_SOFT;
</snip>
Your U-Boot support team
More information about the U-Boot
mailing list