NAND update
PATCH 8/9 NAND update
Here is the rest of the changes made in include/
Note that the patch-series is broken unless it is seen as one single patch. It is broken up to multiple emails to fit the size limit.
We have set up a git repository were you can pull the complete patch:
http://git.tandberg.com/tandberg/u-boot.git
Best regards
William
-------------------------------------------------
William Juul, Senior Development Engineer
Data Respons Norge AS
Sandviksveien 26
P.O. Box 489
NO-1323 H?vik, Norway
www.datarespons.no
-------------------------------------------------
include/linux/mtd/nftl.h +21 -72
@@ -1,75 +1,16 @@ - -/* Defines for NAND Flash Translation Layer */ -/* (c) 1999 Machine Vision Holdings, Inc. */ -/* Author: David Woodhouse <[email protected]> */ -/* $Id: nftl.h,v 1.10 2000/12/29 00:25:38 dwmw2 Exp $ */ +/* +* $Id: nftl.h,v 1.16 2004/06/30 14:49:00 dbrown Exp $ +* +* (C) 1999-2003 David Woodhouse <[email protected]> +*/ #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)); +#include <linux/mtd/mtd.h> +#include <linux/mtd/blktrans.h> -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 +#include <linux/mtd/nftl-user.h> /* these info are used in ReplUnitTable */ #define BLOCK_NIL 0xffff/* last block of a chain */
@@ -78,7 +19,7 @@ struct NFTLMediaHeader {#define BLOCK_RESERVED 0xfffc/* bios block or bad block */ struct NFTLrecord { -struct DiskOnChip *mtd; +struct mtd_blktrans_dev mbd;__u16 MediaUnit, SpareMediaUnit;__u32 EraseSize;struct NFTLMediaHeader MediaHdr;
@@ -90,16 +31,24 @@ struct NFTLrecord {__u16 lastEUN;/* should be suppressed */ __u16 numfreeEUNs;__u16 LastFreeEUN;/* To speed up finding a free EUN */ -__u32 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 */ +unsigned int nb_blocks;/* number of physical blocks */ +unsigned int nb_boot_blocks;/* number of blocks used by the bios */ +struct erase_info instr; + struct nand_ecclayout oobinfo; }; +int NFTL_mount (struct NFTLrecord *s); +int NFTL_formatblock (struct NFTLrecord *s,int block); + +#ifndef NFTL_MAJOR +#define NFTL_MAJOR 93 +#endif +#define MAX_NFTLS 16 -#define MAX_SECTORS_PER_UNIT 32 +#define MAX_SECTORS_PER_UNIT 64#define NFTL_PARTN_BITS 4#endif /* __MTD_NFTL_H__ */
include/linux/mtd/nftl-user.h new file +76 -0
76 lines not on this page · raw message
include/linux/mtd/ubi-header.h new file +360 -0
360 lines not on this page · raw message
include/linux/mtd/ubi-user.h new file +161 -0
161 lines not on this page · raw message