nand_chip Struct Reference

#include <nand.h>

Collaboration diagram for nand_chip:

Collaboration graph
[legend]

Data Fields

void __iomem * IO_ADDR_R
void __iomem * IO_ADDR_W
u_char(* read_byte )(struct mtd_info *mtd)
void(* write_byte )(struct mtd_info *mtd, u_char byte)
u16(* read_word )(struct mtd_info *mtd)
void(* write_word )(struct mtd_info *mtd, u16 word)
void(* write_buf )(struct mtd_info *mtd, const u_char *buf, int len)
void(* read_buf )(struct mtd_info *mtd, u_char *buf, int len)
int(* verify_buf )(struct mtd_info *mtd, const u_char *buf, int len)
void(* select_chip )(struct mtd_info *mtd, int chip)
int(* block_bad )(struct mtd_info *mtd, loff_t ofs, int getchip)
int(* block_markbad )(struct mtd_info *mtd, loff_t ofs)
void(* hwcontrol )(struct mtd_info *mtd, int cmd)
int(* dev_ready )(struct mtd_info *mtd)
void(* cmdfunc )(struct mtd_info *mtd, unsigned command, int column, int page_addr)
int(* waitfunc )(struct mtd_info *mtd, struct nand_chip *this, int state)
int(* calculate_ecc )(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code)
int(* correct_data )(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc)
void(* enable_hwecc )(struct mtd_info *mtd, int mode)
void(* erase_cmd )(struct mtd_info *mtd, int page)
int(* scan_bbt )(struct mtd_info *mtd)
int eccmode
int eccsize
int eccbytes
int eccsteps
int chip_delay
spinlock_t chip_lock
wait_queue_head_t wq
nand_state_t state
int page_shift
int phys_erase_shift
int bbt_erase_shift
int chip_shift
u_char * data_buf
u_char * oob_buf
int oobdirty
u_char * data_poi
unsigned int options
int badblockpos
int numchips
unsigned long chipsize
int pagemask
int pagebuf
nand_oobinfoautooob
uint8_t * bbt
nand_bbt_descrbbt_td
nand_bbt_descrbbt_md
nand_bbt_descrbadblock_pattern
nand_hw_controlcontroller
void * priv
int(* errstat )(struct mtd_info *mtd, struct nand_chip *this, int state, int status, int page)

Detailed Description

struct nand_chip - NAND Private Flash Chip Data : [BOARDSPECIFIC] address to read the 8 I/O lines of the flash device : [BOARDSPECIFIC] address to write the 8 I/O lines of the flash device : [REPLACEABLE] read one byte from the chip : [REPLACEABLE] write one byte to the chip : [REPLACEABLE] read one word from the chip : [REPLACEABLE] write one word to the chip : [REPLACEABLE] write data from the buffer to the chip : [REPLACEABLE] read data from the chip into the buffer : [REPLACEABLE] verify buffer contents against the chip data : [REPLACEABLE] select chip nr : [REPLACEABLE] check, if the block is bad : [REPLACEABLE] mark the block bad : [BOARDSPECIFIC] hardwarespecific function for accesing control-lines : [BOARDSPECIFIC] hardwarespecific function for accesing device ready/busy line If set to NULL no access to ready/busy is available and the ready/busy information is read from the chip status register : [REPLACEABLE] hardwarespecific function for writing commands to the chip : [REPLACEABLE] hardwarespecific function for wait on ready : [REPLACEABLE] function for ecc calculation or readback from ecc hardware : [REPLACEABLE] function for ecc correction, matching to ecc generator (sw/hw) : [BOARDSPECIFIC] function to enable (reset) hardware ecc generator. Must only be provided if a hardware ECC is available : [INTERN] erase command write function, selectable due to AND support : [REPLACEABLE] function to scan bad block table : [BOARDSPECIFIC] mode of ecc, see defines : [INTERN] databytes used per ecc-calculation : [INTERN] number of ecc bytes per ecc-calculation step : [INTERN] number of ecc calculation steps per page : [BOARDSPECIFIC] chip dependent delay for transfering data from array to read regs (tR) : [INTERN] spinlock used to protect access to this structure and the chip : [INTERN] wait queue to sleep on if a NAND operation is in progress : [INTERN] the current state of the NAND device : [INTERN] number of address bits in a page (column address bits) : [INTERN] number of address bits in a physical eraseblock : [INTERN] number of address bits in a bbt entry : [INTERN] number of address bits in one chip : [INTERN] internal buffer for one page + oob : [INTERN] oob buffer for one eraseblock : [INTERN] indicates that oob_buf must be reinitialized : [INTERN] pointer to a data buffer : [BOARDSPECIFIC] various chip options. They can partly be set to inform nand_scan about special functionality. See the defines for further explanation : [INTERN] position of the bad block marker in the oob area : [INTERN] number of physical chips : [INTERN] the size of one chip for multichip arrays : [INTERN] page number mask = number of (pages / chip) - 1 : [INTERN] holds the pagenumber which is currently in data_buf : [REPLACEABLE] the default (auto)placement scheme : [INTERN] bad block table pointer : [REPLACEABLE] bad block table descriptor for flash lookup : [REPLACEABLE] bad block table mirror descriptor : [REPLACEABLE] bad block scan pattern used for initial bad block scan : [OPTIONAL] a pointer to a hardware controller structure which is shared among multiple independend devices : [OPTIONAL] pointer to private chip date : [OPTIONAL] hardware specific function to perform additional error status checks (determine if errors are correctable)

Definition at line 334 of file nand.h.


Field Documentation

void __iomem* nand_chip::IO_ADDR_R

Definition at line 335 of file nand.h.

Referenced by crisv32_nand_flash_probe().

void __iomem* nand_chip::IO_ADDR_W

Definition at line 336 of file nand.h.

Referenced by crisv32_nand_flash_probe().

u_char(* nand_chip::read_byte)(struct mtd_info *mtd)

Referenced by nand_scan(), and nand_wait().

void(* nand_chip::write_byte)(struct mtd_info *mtd, u_char byte)

Referenced by nand_command(), nand_command_lp(), and nand_scan().

u16(* nand_chip::read_word)(struct mtd_info *mtd)

Referenced by nand_scan().

void(* nand_chip::write_word)(struct mtd_info *mtd, u16 word)

Referenced by nand_scan().

void(* nand_chip::write_buf)(struct mtd_info *mtd, const u_char *buf, int len)

Referenced by nand_scan(), and nand_wait().

void(* nand_chip::read_buf)(struct mtd_info *mtd, u_char *buf, int len)

Referenced by nand_do_read_ecc(), nand_read_oob(), nand_read_raw(), nand_scan(), and nand_wait().

int(* nand_chip::verify_buf)(struct mtd_info *mtd, const u_char *buf, int len)

Referenced by nand_scan(), and nand_wait().

void(* nand_chip::select_chip)(struct mtd_info *mtd, int chip)

Referenced by nand_block_bad(), nand_do_read_ecc(), nand_read_oob(), nand_read_raw(), nand_release_device(), and nand_scan().

int(* nand_chip::block_bad)(struct mtd_info *mtd, loff_t ofs, int getchip)

Referenced by nand_block_checkbad(), and nand_scan().

int(* nand_chip::block_markbad)(struct mtd_info *mtd, loff_t ofs)

Referenced by nand_scan().

void(* nand_chip::hwcontrol)(struct mtd_info *mtd, int cmd)

Referenced by crisv32_nand_flash_probe(), nand_command(), nand_command_lp(), and nand_select_chip().

int(* nand_chip::dev_ready)(struct mtd_info *mtd)

Referenced by crisv32_nand_flash_probe(), nand_read_oob(), nand_read_raw(), and nand_wait().

void(* nand_chip::cmdfunc)(struct mtd_info *mtd, unsigned command, int column, int page_addr)

Referenced by nand_block_bad(), nand_do_read_ecc(), nand_read_oob(), nand_read_raw(), nand_scan(), and nand_wait().

int(* nand_chip::waitfunc)(struct mtd_info *mtd, struct nand_chip *this, int state)

Referenced by nand_scan(), and nand_wait().

int(* nand_chip::calculate_ecc)(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code)

Referenced by nand_do_read_ecc(), nand_scan(), and nand_wait().

int(* nand_chip::correct_data)(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc)

Referenced by nand_do_read_ecc(), and nand_scan().

void(* nand_chip::enable_hwecc)(struct mtd_info *mtd, int mode)

Referenced by nand_do_read_ecc(), and nand_wait().

void(* nand_chip::erase_cmd)(struct mtd_info *mtd, int page)

Referenced by nand_scan().

int(* nand_chip::scan_bbt)(struct mtd_info *mtd)

Referenced by nand_scan().

int nand_chip::eccmode

Definition at line 358 of file nand.h.

Referenced by crisv32_nand_flash_probe(), nand_do_read_ecc(), nand_scan(), and nand_wait().

int nand_chip::eccsize

Definition at line 359 of file nand.h.

Referenced by nand_do_read_ecc(), nand_scan(), and nand_wait().

int nand_chip::eccbytes

Definition at line 360 of file nand.h.

Referenced by nand_do_read_ecc(), nand_scan(), and nand_wait().

int nand_chip::eccsteps

Definition at line 361 of file nand.h.

Referenced by nand_do_read_ecc(), and nand_wait().

int nand_chip::chip_delay

Definition at line 362 of file nand.h.

Referenced by crisv32_nand_flash_probe(), nand_read_oob(), nand_read_raw(), nand_scan(), and nand_wait().

spinlock_t nand_chip::chip_lock

Definition at line 363 of file nand.h.

Referenced by nand_get_device().

wait_queue_head_t nand_chip::wq

Definition at line 364 of file nand.h.

Referenced by nand_get_device().

nand_state_t nand_chip::state

Definition at line 365 of file nand.h.

Referenced by nand_get_device(), nand_resume(), and nand_wait().

int nand_chip::page_shift

Definition at line 366 of file nand.h.

Referenced by create_bbt(), nand_do_read_ecc(), nand_read_oob(), nand_read_raw(), nand_scan(), read_bbt(), and search_bbt().

int nand_chip::phys_erase_shift

Definition at line 367 of file nand.h.

Referenced by nand_do_read_ecc(), nand_read_oob(), nand_read_raw(), and nand_scan().

int nand_chip::bbt_erase_shift

Definition at line 368 of file nand.h.

Referenced by create_bbt(), nand_scan(), read_abs_bbt(), and search_bbt().

int nand_chip::chip_shift

Definition at line 369 of file nand.h.

Referenced by nand_read_oob(), nand_read_raw(), and nand_scan().

u_char* nand_chip::data_buf

Definition at line 370 of file nand.h.

Referenced by nand_release(), and nand_scan().

u_char* nand_chip::oob_buf

Definition at line 371 of file nand.h.

Referenced by nand_release(), nand_scan(), and nand_wait().

int nand_chip::oobdirty

Definition at line 372 of file nand.h.

u_char* nand_chip::data_poi

Definition at line 373 of file nand.h.

Referenced by nand_do_read_ecc(), and nand_wait().

unsigned int nand_chip::options

Definition at line 374 of file nand.h.

Referenced by crisv32_nand_flash_probe(), nand_default_bbt(), nand_release(), nand_scan(), and nand_wait().

int nand_chip::badblockpos

Definition at line 375 of file nand.h.

Referenced by nand_scan(), and rflflash_dump_oob().

int nand_chip::numchips

Definition at line 376 of file nand.h.

Referenced by mark_bbt_region(), nand_scan(), read_abs_bbt(), and search_bbt().

unsigned long nand_chip::chipsize

Definition at line 377 of file nand.h.

Referenced by create_bbt(), nand_scan(), read_abs_bbt(), and search_bbt().

int nand_chip::pagemask

Definition at line 378 of file nand.h.

Referenced by nand_do_read_ecc(), nand_read_oob(), and nand_read_raw().

int nand_chip::pagebuf

Definition at line 379 of file nand.h.

Referenced by nand_do_read_ecc().

struct nand_oobinfo* nand_chip::autooob

Definition at line 380 of file nand.h.

Referenced by nand_do_read_ecc(), and nand_scan().

uint8_t* nand_chip::bbt

Definition at line 381 of file nand.h.

Referenced by create_bbt(), nand_isbad_bbt(), nand_release(), and read_bbt().

struct nand_bbt_descr* nand_chip::bbt_td

Definition at line 382 of file nand.h.

Referenced by nand_default_bbt().

struct nand_bbt_descr* nand_chip::bbt_md

Definition at line 383 of file nand.h.

Referenced by nand_default_bbt().

struct nand_bbt_descr* nand_chip::badblock_pattern

Definition at line 384 of file nand.h.

Referenced by nand_default_bbt().

struct nand_hw_control* nand_chip::controller

Definition at line 385 of file nand.h.

Referenced by nand_get_device(), and nand_release_device().

void* nand_chip::priv

Definition at line 386 of file nand.h.

int(* nand_chip::errstat)(struct mtd_info *mtd, struct nand_chip *this, int state, int status, int page)

Referenced by nand_wait().


The documentation for this struct was generated from the following file:
Generated on Thu Aug 7 16:21:07 2008 for elphel by  doxygen 1.5.1