
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@gmail.com
- Wolfgang Denk, DENX Software Engineering, wd@denx.de.
- (C) Copyright 2005
- Dan Malek, Embedded Edge, LLC, dan@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