Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Scott Wood <scottwood@freescale.com>master
parent
585cd86c78
commit
dd649f1d00
File diff suppressed because it is too large
Load Diff
@ -1,79 +0,0 @@ |
||||
/*
|
||||
* (C) 2003 David Woodhouse <dwmw2@infradead.org> |
||||
* |
||||
* Interface to Linux block layer for MTD 'translation layers'. |
||||
* |
||||
*/ |
||||
|
||||
#ifndef __MTD_TRANS_H__ |
||||
#define __MTD_TRANS_H__ |
||||
|
||||
/* XXX U-BOOT XXX */ |
||||
#if 0 |
||||
#include <linux/mutex.h> |
||||
#else |
||||
#include <linux/list.h> |
||||
#endif |
||||
|
||||
struct hd_geometry; |
||||
struct mtd_info; |
||||
struct mtd_blktrans_ops; |
||||
struct file; |
||||
struct inode; |
||||
|
||||
struct mtd_blktrans_dev { |
||||
struct mtd_blktrans_ops *tr; |
||||
struct list_head list; |
||||
struct mtd_info *mtd; |
||||
/* XXX U-BOOT XXX */ |
||||
#if 0 |
||||
struct mutex lock; |
||||
#endif |
||||
int devnum; |
||||
unsigned long size; |
||||
int readonly; |
||||
void *blkcore_priv; /* gendisk in 2.5, devfs_handle in 2.4 */ |
||||
}; |
||||
|
||||
struct blkcore_priv; /* Differs for 2.4 and 2.5 kernels; private */ |
||||
|
||||
struct mtd_blktrans_ops { |
||||
char *name; |
||||
int major; |
||||
int part_bits; |
||||
int blksize; |
||||
int blkshift; |
||||
|
||||
/* Access functions */ |
||||
int (*readsect)(struct mtd_blktrans_dev *dev, |
||||
unsigned long block, char *buffer); |
||||
int (*writesect)(struct mtd_blktrans_dev *dev, |
||||
unsigned long block, char *buffer); |
||||
|
||||
/* Block layer ioctls */ |
||||
int (*getgeo)(struct mtd_blktrans_dev *dev, struct hd_geometry *geo); |
||||
int (*flush)(struct mtd_blktrans_dev *dev); |
||||
|
||||
/* Called with mtd_table_mutex held; no race with add/remove */ |
||||
int (*open)(struct mtd_blktrans_dev *dev); |
||||
int (*release)(struct mtd_blktrans_dev *dev); |
||||
|
||||
/* Called on {de,}registration and on subsequent addition/removal
|
||||
of devices, with mtd_table_mutex held. */ |
||||
void (*add_mtd)(struct mtd_blktrans_ops *tr, struct mtd_info *mtd); |
||||
void (*remove_dev)(struct mtd_blktrans_dev *dev); |
||||
|
||||
struct list_head devs; |
||||
struct list_head list; |
||||
struct module *owner; |
||||
|
||||
struct mtd_blkcore_priv *blkcore_priv; |
||||
}; |
||||
|
||||
extern int register_mtd_blktrans(struct mtd_blktrans_ops *tr); |
||||
extern int deregister_mtd_blktrans(struct mtd_blktrans_ops *tr); |
||||
extern int add_mtd_blktrans_dev(struct mtd_blktrans_dev *dev); |
||||
extern int del_mtd_blktrans_dev(struct mtd_blktrans_dev *dev); |
||||
|
||||
|
||||
#endif /* __MTD_TRANS_H__ */ |
@ -1,76 +0,0 @@ |
||||
/*
|
||||
* $Id: nftl-user.h,v 1.2 2005/11/07 11:14:56 gleixner Exp $ |
||||
* |
||||
* Parts of NFTL headers shared with userspace |
||||
* |
||||
*/ |
||||
|
||||
#ifndef __MTD_NFTL_USER_H__ |
||||
#define __MTD_NFTL_USER_H__ |
||||
|
||||
/* Block Control Information */ |
||||
|
||||
struct nftl_bci { |
||||
unsigned char ECCSig[6]; |
||||
uint8_t Status; |
||||
uint8_t Status1; |
||||
}__attribute__((packed)); |
||||
|
||||
/* Unit Control Information */ |
||||
|
||||
struct nftl_uci0 { |
||||
uint16_t VirtUnitNum; |
||||
uint16_t ReplUnitNum; |
||||
uint16_t SpareVirtUnitNum; |
||||
uint16_t SpareReplUnitNum; |
||||
} __attribute__((packed)); |
||||
|
||||
struct nftl_uci1 { |
||||
uint32_t WearInfo; |
||||
uint16_t EraseMark; |
||||
uint16_t EraseMark1; |
||||
} __attribute__((packed)); |
||||
|
||||
struct nftl_uci2 { |
||||
uint16_t FoldMark; |
||||
uint16_t FoldMark1; |
||||
uint32_t 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]; |
||||
uint16_t NumEraseUnits; |
||||
uint16_t FirstPhysicalEUN; |
||||
uint32_t 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 |
||||
|
||||
|
||||
#endif /* __MTD_NFTL_USER_H__ */ |
@ -1,57 +0,0 @@ |
||||
/*
|
||||
* (C) 1999-2003 David Woodhouse <dwmw2@infradead.org> |
||||
*/ |
||||
|
||||
#ifndef __MTD_NFTL_H__ |
||||
#define __MTD_NFTL_H__ |
||||
|
||||
#include <linux/mtd/mtd.h> |
||||
#include <linux/mtd/blktrans.h> |
||||
|
||||
#include <linux/mtd/nftl-user.h> |
||||
|
||||
/* 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 mtd_blktrans_dev mbd; |
||||
__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 */ |
||||
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 */ |
||||
struct erase_info instr; |
||||
struct nand_ecclayout oobinfo; |
||||
}; |
||||
|
||||
int NFTL_mount(struct NFTLrecord *s); |
||||
int NFTL_formatblock(struct NFTLrecord *s, int block); |
||||
|
||||
int nftl_read_oob(struct mtd_info *mtd, loff_t offs, size_t len, |
||||
size_t *retlen, uint8_t *buf); |
||||
int nftl_write_oob(struct mtd_info *mtd, loff_t offs, size_t len, |
||||
size_t *retlen, uint8_t *buf); |
||||
|
||||
#ifndef NFTL_MAJOR |
||||
#define NFTL_MAJOR 93 |
||||
#endif |
||||
|
||||
#define MAX_NFTLS 16 |
||||
#define MAX_SECTORS_PER_UNIT 64 |
||||
#define NFTL_PARTN_BITS 4 |
||||
|
||||
#endif /* __MTD_NFTL_H__ */ |
Loading…
Reference in new issue