#include <linux/types.h>#include "nand_ecc.h"Include dependency graph for nand_ecc.c:

Go to the source code of this file.
Functions | |
| static void | nand_trans_result (u_char reg2, u_char reg3, u_char *ecc_code) |
| int | nand_calculate_ecc (struct mtd_info *mtd, const u_char *dat, u_char *ecc_code) |
| int | nand_correct_data (struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc) |
| EXPORT_SYMBOL (nand_calculate_ecc) | |
| EXPORT_SYMBOL (nand_correct_data) | |
| MODULE_LICENSE ("GPL") | |
| MODULE_AUTHOR ("Steven J. Hill <sjhill@realitydiluted.com>") | |
| MODULE_DESCRIPTION ("Generic NAND ECC support") | |
Variables | |
| static const u_char | nand_ecc_precalc_table [] |
| EXPORT_SYMBOL | ( | nand_correct_data | ) |
| EXPORT_SYMBOL | ( | nand_calculate_ecc | ) |
| MODULE_AUTHOR | ( | "Steven J. Hill <sjhill@realitydiluted.com>" | ) |
| MODULE_DESCRIPTION | ( | "Generic NAND ECC support" | ) |
| MODULE_LICENSE | ( | "GPL" | ) |
| int nand_calculate_ecc | ( | struct mtd_info * | mtd, | |
| const u_char * | dat, | |||
| u_char * | ecc_code | |||
| ) |
nand_calculate_ecc - [NAND Interface] Calculate 3 byte ECC code for 256 byte block : MTD block structure : raw data : buffer for ECC
Definition at line 125 of file nand_ecc.c.
References nand_ecc_precalc_table, and nand_trans_result().
Referenced by nand_scan(), and nand_scan_tail().
| int nand_correct_data | ( | struct mtd_info * | mtd, | |
| u_char * | dat, | |||
| u_char * | read_ecc, | |||
| u_char * | calc_ecc | |||
| ) |
nand_correct_data - [NAND Interface] Detect and correct bit error(s) : MTD block structure : raw data read from the chip : ECC from the chip : the ECC calculated from raw data
Detect and correct a 1 bit error for 256 byte block
Definition at line 167 of file nand_ecc.c.
Referenced by nand_scan(), and nand_scan_tail().
| static void nand_trans_result | ( | u_char | reg2, | |
| u_char | reg3, | |||
| u_char * | ecc_code | |||
| ) | [static] |
nand_trans_result - [GENERIC] create non-inverted ECC : line parity reg 2 : line parity reg 3 : ecc
Creates non-inverted ECC code from line parity
Definition at line 82 of file nand_ecc.c.
References a.
Referenced by nand_calculate_ecc().
const u_char nand_ecc_precalc_table[] [static] |
Initial value:
{
0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00,
0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
0x6a, 0x3f, 0x3c, 0x69, 0x33, 0x66, 0x65, 0x30, 0x30, 0x65, 0x66, 0x33, 0x69, 0x3c, 0x3f, 0x6a,
0x0f, 0x5a, 0x59, 0x0c, 0x56, 0x03, 0x00, 0x55, 0x55, 0x00, 0x03, 0x56, 0x0c, 0x59, 0x5a, 0x0f,
0x0c, 0x59, 0x5a, 0x0f, 0x55, 0x00, 0x03, 0x56, 0x56, 0x03, 0x00, 0x55, 0x0f, 0x5a, 0x59, 0x0c,
0x69, 0x3c, 0x3f, 0x6a, 0x30, 0x65, 0x66, 0x33, 0x33, 0x66, 0x65, 0x30, 0x6a, 0x3f, 0x3c, 0x69,
0x03, 0x56, 0x55, 0x00, 0x5a, 0x0f, 0x0c, 0x59, 0x59, 0x0c, 0x0f, 0x5a, 0x00, 0x55, 0x56, 0x03,
0x66, 0x33, 0x30, 0x65, 0x3f, 0x6a, 0x69, 0x3c, 0x3c, 0x69, 0x6a, 0x3f, 0x65, 0x30, 0x33, 0x66,
0x65, 0x30, 0x33, 0x66, 0x3c, 0x69, 0x6a, 0x3f, 0x3f, 0x6a, 0x69, 0x3c, 0x66, 0x33, 0x30, 0x65,
0x00, 0x55, 0x56, 0x03, 0x59, 0x0c, 0x0f, 0x5a, 0x5a, 0x0f, 0x0c, 0x59, 0x03, 0x56, 0x55, 0x00
}
Definition at line 54 of file nand_ecc.c.
Referenced by nand_calculate_ecc().
1.5.1