diff options
| author | wdenk <wdenk> | 2002-01-26 00:07:42 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2002-01-26 00:07:42 +0000 | 
| commit | a1e329b41b473ab0b95ccad26147d404b1ac25b0 (patch) | |
| tree | dd8da607d0b64deaa09b16d935be78ca7eee086b | |
| parent | 2496efde2453c0fc51c962dfe60dd740ba4268bf (diff) | |
| download | olio-uboot-2014.01-a1e329b41b473ab0b95ccad26147d404b1ac25b0.tar.xz olio-uboot-2014.01-a1e329b41b473ab0b95ccad26147d404b1ac25b0.zip | |
Initial revision
| -rw-r--r-- | board/pcippc2/pcippc2_fpga.h | 48 | ||||
| -rw-r--r-- | include/linux/mtd/nftl.h | 105 | 
2 files changed, 153 insertions, 0 deletions
| diff --git a/board/pcippc2/pcippc2_fpga.h b/board/pcippc2/pcippc2_fpga.h new file mode 100644 index 000000000..b6206a451 --- /dev/null +++ b/board/pcippc2/pcippc2_fpga.h @@ -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 index 000000000..5023a9fb1 --- /dev/null +++ b/include/linux/mtd/nftl.h @@ -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__ */ |