Initial revision
authorwdenk <wdenk>
Sat, 26 Jan 2002 00:07:42 +0000 (00:07 +0000)
committerwdenk <wdenk>
Sat, 26 Jan 2002 00:07:42 +0000 (00:07 +0000)
board/pcippc2/pcippc2_fpga.h [new file with mode: 0644]
include/linux/mtd/nftl.h [new file with mode: 0644]

diff --git a/board/pcippc2/pcippc2_fpga.h b/board/pcippc2/pcippc2_fpga.h
new file mode 100644 (file)
index 0000000..b6206a4
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * (C) Copyright 2002
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ *
+ * 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
+ */
+
+#ifndef _PCIPPC2_FPGA_H_
+#define _PCIPPC2_FPGA_H_
+
+#define FPGA_VENDOR_ID                 0x1310
+#define FPGA_DEVICE_ID                 0x000d
+
+#define HW_FPGA0_INT                   0x0000
+#define HW_FPGA0_UART1                 0x0080
+#define HW_FPGA0_UART2                 0x0100
+#define HW_FPGA0_RTC                   0x2000
+#define HW_FPGA0_DOC                   0x4000
+#define HW_FPGA1_RTC                   0x0000
+#define HW_FPGA1_DOC                   0x4000
+
+#define HW_FPGA0_INT_INTR_MASK         0x30
+#define HW_FPGA0_INT_INTR_STATUS       0x34
+#define HW_FPGA0_INT_INTR_EOI          0x40
+#define HW_FPGA0_INT_SERIAL_CONFIG     0x5c
+
+#define HW_FPGA0_WDT_CTRL              0x44
+#define HW_FPGA0_WDT_PROG              0x48
+#define HW_FPGA0_WDT_VAL               0x4c
+#define HW_FPGA0_WDT_REFRESH           0x50
+
+#endif
diff --git a/include/linux/mtd/nftl.h b/include/linux/mtd/nftl.h
new file mode 100644 (file)
index 0000000..5023a9f
--- /dev/null
@@ -0,0 +1,105 @@
+
+/* Defines for NAND Flash Translation Layer  */
+/* (c) 1999 Machine Vision Holdings, Inc.    */
+/* Author: David Woodhouse <dwmw2@mvhi.com>  */
+/* $Id: nftl.h,v 1.10 2000/12/29 00:25:38 dwmw2 Exp $ */
+
+#ifndef __MTD_NFTL_H__
+#define __MTD_NFTL_H__
+
+/* Block Control Information */
+
+struct nftl_bci {
+       unsigned char ECCSig[6];
+       __u8 Status;
+       __u8 Status1;
+}__attribute__((packed));
+
+/* Unit Control Information */
+
+struct nftl_uci0 {
+       __u16 VirtUnitNum;
+       __u16 ReplUnitNum;
+       __u16 SpareVirtUnitNum;
+       __u16 SpareReplUnitNum;
+} __attribute__((packed));
+
+struct nftl_uci1 {
+       __u32 WearInfo;
+       __u16 EraseMark;
+       __u16 EraseMark1;
+} __attribute__((packed));
+
+struct nftl_uci2 {
+        __u16 FoldMark;
+        __u16 FoldMark1;
+       __u32 unused;
+} __attribute__((packed));
+
+union nftl_uci {
+       struct nftl_uci0 a;
+       struct nftl_uci1 b;
+       struct nftl_uci2 c;
+};
+
+struct nftl_oob {
+       struct nftl_bci b;
+       union nftl_uci u;
+};
+
+/* NFTL Media Header */
+
+struct NFTLMediaHeader {
+       char DataOrgID[6];
+       __u16 NumEraseUnits;
+       __u16 FirstPhysicalEUN;
+       __u32 FormattedSize;
+       unsigned char UnitSizeFactor;
+} __attribute__((packed));
+
+#define MAX_ERASE_ZONES (8192 - 512)
+
+#define ERASE_MARK 0x3c69
+#define SECTOR_FREE 0xff
+#define SECTOR_USED 0x55
+#define SECTOR_IGNORE 0x11
+#define SECTOR_DELETED 0x00
+
+#define FOLD_MARK_IN_PROGRESS 0x5555
+
+#define ZONE_GOOD 0xff
+#define ZONE_BAD_ORIGINAL 0
+#define ZONE_BAD_MARKED 7
+
+/* these info are used in ReplUnitTable */
+#define BLOCK_NIL          0xffff /* last block of a chain */
+#define BLOCK_FREE         0xfffe /* free block */
+#define BLOCK_NOTEXPLORED  0xfffd /* non explored block, only used during mounting */
+#define BLOCK_RESERVED     0xfffc /* bios block or bad block */
+
+struct NFTLrecord {
+       struct DiskOnChip *mtd;
+       __u16 MediaUnit, SpareMediaUnit;
+       __u32 EraseSize;
+       struct NFTLMediaHeader MediaHdr;
+       int usecount;
+       unsigned char heads;
+       unsigned char sectors;
+       unsigned short cylinders;
+       __u16 numvunits;
+       __u16 lastEUN;                  /* should be suppressed */
+       __u16 numfreeEUNs;
+       __u16 LastFreeEUN;              /* To speed up finding a free EUN */
+       __u32 long nr_sects;
+       int head,sect,cyl;
+       __u16 *EUNtable;                /* [numvunits]: First EUN for each virtual unit  */
+       __u16 *ReplUnitTable;           /* [numEUNs]: ReplUnitNumber for each */
+        unsigned int nb_blocks;                /* number of physical blocks */
+        unsigned int nb_boot_blocks;   /* number of blocks used by the bios */
+};
+
+#define MAX_NFTLS 16
+#define MAX_SECTORS_PER_UNIT 32
+#define NFTL_PARTN_BITS 4
+
+#endif /* __MTD_NFTL_H__ */