struct nand_ecc_ctrl
Prev | Chapter 9. Structures | Next

## Name

struct nand_ecc_ctrl — Control structure for ECC

## Synopsis

    struct nand_ecc_ctrl {
      nand_ecc_modes_t mode;
      int steps;
      int size;
      int bytes;
      int total;
      int strength;
      int prepad;
      int postpad;
      struct nand_ecclayout * layout;
      void * priv;
      void (* hwctl) (struct mtd_info *mtd, int mode);
      int (* calculate) (struct mtd_info *mtd, const uint8_t *dat,uint8_t *ecc_code);
      int (* correct) (struct mtd_info *mtd, uint8_t *dat, uint8_t *read_ecc,uint8_t *calc_ecc);
      int (* read_page_raw) (struct mtd_info *mtd, struct nand_chip *chip,uint8_t *buf, int oob_required, int page);
      int (* write_page_raw) (struct mtd_info *mtd, struct nand_chip *chip,const uint8_t *buf, int oob_required);
      int (* read_page) (struct mtd_info *mtd, struct nand_chip *chip,uint8_t *buf, int oob_required, int page);
      int (* read_subpage) (struct mtd_info *mtd, struct nand_chip *chip,uint32_t offs, uint32_t len, uint8_t *buf);
      int (* write_subpage) (struct mtd_info *mtd, struct nand_chip *chip,uint32_t offset, uint32_t data_len,const uint8_t *data_buf, int oob_required);
      int (* write_page) (struct mtd_info *mtd, struct nand_chip *chip,const uint8_t *buf, int oob_required);
      int (* write_oob_raw) (struct mtd_info *mtd, struct nand_chip *chip,int page);
      int (* read_oob_raw) (struct mtd_info *mtd, struct nand_chip *chip,int page);
      int (* read_oob) (struct mtd_info *mtd, struct nand_chip *chip, int page);
      int (* write_oob) (struct mtd_info *mtd, struct nand_chip *chip,int page);
    };

## Members

mode

  ECC mode

steps

  number of ECC steps per page

size

  data bytes per ECC step

bytes

  ECC bytes per step

total

  total number of ECC bytes per page

strength

  max number of correctible bits per ECC step

prepad

  padding information for syndrome based ECC generators

postpad

  padding information for syndrome based ECC generators

layout

  ECC layout control struct pointer

priv

  pointer to private ECC control data

hwctl

  function to control hardware ECC generator. Must only be provided if an hardware ECC is available

calculate

  function for ECC calculation or readback from ECC hardware

correct

  function for ECC correction, matching to ECC generator (sw/hw)

read_page_raw

  function to read a raw page without ECC

write_page_raw

  function to write a raw page without ECC

read_page

  function to read a page according to the ECC generator requirements; returns maximum number of bitflips corrected in any single ECC step, 0 if bitflips uncorrectable, -EIO hw error

read_subpage

  function to read parts of the page covered by ECC; returns same as `read_page`

write_subpage

  function to write parts of the page covered by ECC.

write_page

  function to write a page according to the ECC generator requirements.

write_oob_raw

  function to write chip OOB data without ECC

read_oob_raw

  function to read chip OOB data without ECC

read_oob

  function to read chip OOB data

write_oob

  function to write chip OOB data

Prev | Up | Next
struct nand_hw_control | Home | struct nand_buffers