#include <linuxerr.h>#include <nandflash.h>#include <axisrfl/types.h>#include <axisrfl/mtd.h>#include <axisrfl/mtd_nand.h>#include <axisrfl/rflflash.h>#include <axisrfl/funcs.h>#include <string.h>Include dependency graph for rflnandflash.c:

Go to the source code of this file.
Defines | |
| #define | diag_printf printf |
| #define | D(x) x |
| #define | D_D(x) x |
| #define | DATA_BUF_SIZE (2048 + 128) |
| #define | OOB_BUF_SIZE (4096) |
| #define | ROUND_DOWN(value, boundary) ((value) & (~((boundary)-1))) |
| #define | NAND_ECC_SIZE (512) |
| #define | NAND_READ (0) |
| #define | NAND_WRITE (1) |
| #define | NAND_CSUM (2) |
| #define | NO_END_LIMIT (0xffffffff) |
| #define | CSUM_CHUNK_SIZE (NAND_ECC_SIZE) |
| #define | TEST_WRITE_FAILED (0) |
| #define | TEST_WRITE_BADADDR (0x48000) |
| #define | TEST_ERASE_FAILED (0) |
| #define | TEST_ERASE_FILL (0) |
| #define | TEST_ERASE_BADADDR (0x268000) |
Functions | |
| static int | rflflash_nand_rw (struct mtd_info *mtd, int mode, size_t start, size_t end, size_t len, size_t *retlen, unsigned long *retcsum, u_char *buffer) |
| int | rflflash_nand_do_erase (unsigned long start, unsigned long end) |
| int | rflflash_nand_erase (struct mtd_info *mtd, unsigned long start, unsigned long end) |
| unsigned long | rflflash_write (unsigned char *source, unsigned long offset, unsigned long end_offset, unsigned long size) |
| void | rflflash_mark_bad (unsigned long from, unsigned long to) |
| void | rflflash_ignore_bad () |
| void | rflflash_dump (unsigned long from, unsigned long to) |
| void | rflflash_dump_oob (unsigned long from, unsigned long to, unsigned char only_bad) |
| unsigned long | rflflash_read (unsigned long offset, unsigned char *datum, unsigned long size, unsigned long *readlen) |
| unsigned long | rflflash_checksum (unsigned long offset, unsigned long size, unsigned long *ret_csum) |
| static void | nand_hwcontrol (struct mtd_info *mtd, int cmd) |
| static int | nand_device_ready (struct mtd_info *mtd) |
| unsigned long | rflflash_init (void) |
| unsigned long | rflflash_nand_pagesize (void) |
| unsigned long | rflflash_nand_size (void) |
Variables | |
| u_char | data_buf [DATA_BUF_SIZE] |
| u_char | oob_buf [OOB_BUF_SIZE] |
| static struct mtd_info | mtd_info |
| static struct nand_chip | nand_chip |
| static struct mtd_info * | our_mtd = NULL |
| unsigned long | errno_flash |
| static unsigned | verbose_nand = 0 |
| #define CSUM_CHUNK_SIZE (NAND_ECC_SIZE) |
Definition at line 51 of file rflnandflash.c.
| #define DATA_BUF_SIZE (2048 + 128) |
Definition at line 79 of file rflnandflash.c.
| #define diag_printf printf |
Definition at line 48 of file rflnandflash.c.
Referenced by rflflash_checksum(), rflflash_init(), rflflash_nand_erase(), and rflflash_nand_rw().
| #define NAND_CSUM (2) |
Definition at line 101 of file rflnandflash.c.
Referenced by rflflash_checksum(), and rflflash_nand_rw().
| #define NAND_ECC_SIZE (512) |
| #define NAND_READ (0) |
Definition at line 99 of file rflnandflash.c.
Referenced by rflflash_nand_rw(), and rflflash_read().
| #define NAND_WRITE (1) |
Definition at line 100 of file rflnandflash.c.
Referenced by rflflash_nand_rw(), and rflflash_write().
| #define NO_END_LIMIT (0xffffffff) |
Definition at line 104 of file rflnandflash.c.
Referenced by rflflash_checksum(), and rflflash_read().
| #define OOB_BUF_SIZE (4096) |
Definition at line 82 of file rflnandflash.c.
Definition at line 96 of file rflnandflash.c.
| #define TEST_ERASE_BADADDR (0x268000) |
| #define TEST_ERASE_FAILED (0) |
Definition at line 116 of file rflnandflash.c.
| #define TEST_ERASE_FILL (0) |
Definition at line 117 of file rflnandflash.c.
| #define TEST_WRITE_BADADDR (0x48000) |
| #define TEST_WRITE_FAILED (0) |
Definition at line 114 of file rflnandflash.c.
| static int nand_device_ready | ( | struct mtd_info * | mtd | ) | [static] |
| static void nand_hwcontrol | ( | struct mtd_info * | mtd, | |
| int | cmd | |||
| ) | [static] |
Definition at line 631 of file rflnandflash.c.
References NAND_CTL_CLRALE, NAND_CTL_CLRCLE, NAND_CTL_CLRNCE, NAND_CTL_SETALE, NAND_CTL_SETCLE, and NAND_CTL_SETNCE.
Referenced by rflflash_init().
| unsigned long rflflash_checksum | ( | unsigned long | offset, | |
| unsigned long | size, | |||
| unsigned long * | ret_csum | |||
| ) |
Definition at line 601 of file rflnandflash.c.
References diag_printf, errno_flash, NAND_CSUM, NO_END_LIMIT, our_mtd, and rflflash_nand_rw().
| void rflflash_dump | ( | unsigned long | from, | |
| unsigned long | to | |||
| ) |
Definition at line 438 of file rflnandflash.c.
References mtd_info::block_isbad, data_buf, mtd_info::erasesize, our_mtd, rflflash_init(), rflflash_nand_pagesize(), and rflflash_read().
Referenced by decode_load_info().
| void rflflash_dump_oob | ( | unsigned long | from, | |
| unsigned long | to, | |||
| unsigned char | only_bad | |||
| ) |
Definition at line 503 of file rflnandflash.c.
References nand_chip::badblockpos, buf, mtd_info::erasesize, nand_chip, oob_buf, mtd_info::oobsize, our_mtd, mtd_info::priv, mtd_info::read_oob, rflflash_init(), rflflash_nand_erase(), rflflash_nand_pagesize(), and mtd_info::write_oob.
Referenced by decode_load_info().
| void rflflash_ignore_bad | ( | ) |
Definition at line 426 of file rflnandflash.c.
References mtd_info::ignore_bad, our_mtd, and rflflash_init().
Referenced by decode_load_info().
| unsigned long rflflash_init | ( | void | ) |
Definition at line 686 of file rflnandflash.c.
References D, data_buf, diag_printf, mtd_info::erasesize, errno_flash, memset(), mtd_info, nand_chip, nand_device_ready(), NAND_ECC_SOFT, nand_hwcontrol(), nand_scan(), NAND_USE_FLASH_BBT, oob_buf, mtd_info::oobblock, mtd_info::oobsize, our_mtd, and mtd_info::size.
Referenced by decode_load_info(), rflflash_dump(), rflflash_dump_oob(), rflflash_ignore_bad(), rflflash_mark_bad(), and rflflash_nand_do_erase().
| void rflflash_mark_bad | ( | unsigned long | from, | |
| unsigned long | to | |||
| ) |
Definition at line 401 of file rflnandflash.c.
References mtd_info::block_markbad, mtd_info::erasesize, exit, mtd_info::ignore_bad, our_mtd, rflflash_init(), and rflflash_nand_pagesize().
Referenced by decode_load_info().
| int rflflash_nand_do_erase | ( | unsigned long | start, | |
| unsigned long | end | |||
| ) |
Definition at line 280 of file rflnandflash.c.
References exit, our_mtd, rflflash_init(), rflflash_nand_erase(), and mtd_info::size.
Referenced by decode_load_info().
| int rflflash_nand_erase | ( | struct mtd_info * | mtd, | |
| unsigned long | start, | |||
| unsigned long | end | |||
| ) |
Definition at line 299 of file rflnandflash.c.
References mtd_info::block_isbad, mtd_info::block_markbad, D, D_D, diag_printf, mtd_info::erase, mtd_info::erasesize, memset(), erase_info::mtd, TEST_ERASE_BADADDR, and verbose_nand.
Referenced by rflflash_dump_oob(), rflflash_nand_do_erase(), and rflflash_write().
| unsigned long rflflash_nand_pagesize | ( | void | ) |
Definition at line 744 of file rflnandflash.c.
References mtd_info::oobblock, and our_mtd.
Referenced by rflflash_dump(), rflflash_dump_oob(), and rflflash_mark_bad().
| static int rflflash_nand_rw | ( | struct mtd_info * | mtd, | |
| int | mode, | |||
| size_t | start, | |||
| size_t | end, | |||
| size_t | len, | |||
| size_t * | retlen, | |||
| unsigned long * | retcsum, | |||
| u_char * | buffer | |||
| ) | [static] |
Definition at line 135 of file rflnandflash.c.
References mtd_info::block_isbad, mtd_info::block_markbad, buf, CSUM_CHUNK_SIZE, D, diag_printf, mtd_info::erasesize, exit, min_t, n, NAND_CSUM, NAND_ECC_SIZE, NAND_READ, NAND_WRITE, mtd_info::read_ecc, ROUND_DOWN, TEST_WRITE_BADADDR, verbose_nand, and mtd_info::write_ecc.
Referenced by rflflash_checksum(), rflflash_read(), and rflflash_write().
| unsigned long rflflash_nand_size | ( | void | ) |
| unsigned long rflflash_read | ( | unsigned long | offset, | |
| unsigned char * | datum, | |||
| unsigned long | size, | |||
| unsigned long * | readlen | |||
| ) |
Definition at line 571 of file rflnandflash.c.
References errno_flash, NAND_READ, NO_END_LIMIT, our_mtd, read, and rflflash_nand_rw().
Referenced by rflflash_dump().
| unsigned long rflflash_write | ( | unsigned char * | source, | |
| unsigned long | offset, | |||
| unsigned long | end_offset, | |||
| unsigned long | size | |||
| ) |
Definition at line 371 of file rflnandflash.c.
References errno_flash, NAND_WRITE, our_mtd, rflflash_nand_erase(), and rflflash_nand_rw().
Referenced by decode_load_info().
| u_char data_buf[DATA_BUF_SIZE] |
Definition at line 85 of file rflnandflash.c.
Referenced by nand_do_read_ecc(), nand_scan(), rflflash_dump(), and rflflash_init().
| unsigned long errno_flash |
Definition at line 121 of file rflnandflash.c.
Referenced by rflflash_checksum(), rflflash_init(), rflflash_read(), and rflflash_write().
Definition at line 90 of file rflnandflash.c.
Referenced by rflflash_dump_oob(), and rflflash_init().
| u_char oob_buf[OOB_BUF_SIZE] |
Definition at line 86 of file rflnandflash.c.
Referenced by nand_wait(), rflflash_dump_oob(), and rflflash_init().
Definition at line 93 of file rflnandflash.c.
Referenced by rflflash_checksum(), rflflash_dump(), rflflash_dump_oob(), rflflash_ignore_bad(), rflflash_init(), rflflash_mark_bad(), rflflash_nand_do_erase(), rflflash_nand_pagesize(), rflflash_nand_size(), rflflash_read(), and rflflash_write().
unsigned verbose_nand = 0 [static] |
Definition at line 123 of file rflnandflash.c.
Referenced by rflflash_nand_erase(), and rflflash_nand_rw().
1.5.1