| /rk3399_rockchip-uboot/include/linux/mtd/ |
| H A D | nand.h | 163 int (*erase)(struct nand_device *nand, const struct nand_pos *pos); 164 int (*markbad)(struct nand_device *nand, const struct nand_pos *pos); 165 bool (*isbad)(struct nand_device *nand, const struct nand_pos *pos); 231 static inline struct mtd_info *nanddev_to_mtd(struct nand_device *nand) in nanddev_to_mtd() argument 233 return nand->mtd; in nanddev_to_mtd() 242 static inline unsigned int nanddev_bits_per_cell(const struct nand_device *nand) in nanddev_bits_per_cell() argument 244 return nand->memorg.bits_per_cell; in nanddev_bits_per_cell() 253 static inline size_t nanddev_page_size(const struct nand_device *nand) in nanddev_page_size() argument 255 return nand->memorg.pagesize; in nanddev_page_size() 265 nanddev_per_page_oobsize(const struct nand_device *nand) in nanddev_per_page_oobsize() argument [all …]
|
| /rk3399_rockchip-uboot/drivers/mtd/nand/ |
| H A D | core.c | 24 bool nanddev_isbad(struct nand_device *nand, const struct nand_pos *pos) in nanddev_isbad() argument 26 if (nanddev_bbt_is_initialized(nand)) { in nanddev_isbad() 30 entry = nanddev_bbt_pos_to_entry(nand, pos); in nanddev_isbad() 31 status = nanddev_bbt_get_block_status(nand, entry); in nanddev_isbad() 34 if (nand->ops->isbad(nand, pos)) in nanddev_isbad() 39 nanddev_bbt_set_block_status(nand, entry, status); in nanddev_isbad() 49 return nand->ops->isbad(nand, pos); in nanddev_isbad() 63 int nanddev_markbad(struct nand_device *nand, const struct nand_pos *pos) in nanddev_markbad() argument 65 struct mtd_info *mtd = nanddev_to_mtd(nand); in nanddev_markbad() 69 if (nanddev_isbad(nand, pos)) in nanddev_markbad() [all …]
|
| H A D | bbt.c | 84 static u32 bbt_nand_isbad_bypass(struct nand_device *nand, u32 block) in bbt_nand_isbad_bypass() argument 86 struct mtd_info *mtd = nanddev_to_mtd(nand); in bbt_nand_isbad_bypass() 89 nanddev_bbt_set_block_status(nand, block, NAND_BBT_BLOCK_STATUS_UNKNOWN); in bbt_nand_isbad_bypass() 90 nanddev_offs_to_pos(nand, block * mtd->erasesize, &pos); in bbt_nand_isbad_bypass() 92 return nanddev_isbad(nand, &pos); in bbt_nand_isbad_bypass() 106 static int nanddev_read_bbt(struct nand_device *nand, u32 block, bool update) in nanddev_read_bbt() argument 109 unsigned int nblocks = nanddev_neraseblocks(nand); in nanddev_read_bbt() 111 BITS_PER_LONG) * sizeof(*nand->bbt.cache); in nanddev_read_bbt() 112 struct mtd_info *mtd = nanddev_to_mtd(nand); in nanddev_read_bbt() 120 if (!nand->bbt.cache) in nanddev_read_bbt() [all …]
|
| /rk3399_rockchip-uboot/drivers/mtd/nand/raw/ |
| H A D | omap_gpmc.c | 180 struct nand_chip *nand = mtd_to_nand(mtd); in omap_enable_hwecc() local 181 struct omap_nand_info *info = nand_get_controller_data(nand); in omap_enable_hwecc() 182 unsigned int dev_width = (nand->options & NAND_BUSWIDTH_16) ? 1 : 0; in omap_enable_hwecc() 712 static int omap_select_ecc_scheme(struct nand_chip *nand, in omap_select_ecc_scheme() argument 714 struct omap_nand_info *info = nand_get_controller_data(nand); in omap_select_ecc_scheme() 725 nand->ecc.mode = NAND_ECC_SOFT; in omap_select_ecc_scheme() 726 nand->ecc.layout = NULL; in omap_select_ecc_scheme() 727 nand->ecc.size = 0; in omap_select_ecc_scheme() 740 memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl)); in omap_select_ecc_scheme() 741 nand->ecc.mode = NAND_ECC_HW; in omap_select_ecc_scheme() [all …]
|
| H A D | fsmc_nand.c | 402 struct nand_chip *nand; in fsmc_nand_switch_ecc() local 413 nand = mtd_to_nand(mtd); in fsmc_nand_switch_ecc() 417 nand->ecc.mode = NAND_ECC_HW; in fsmc_nand_switch_ecc() 418 nand->ecc.bytes = 3; in fsmc_nand_switch_ecc() 419 nand->ecc.strength = 1; in fsmc_nand_switch_ecc() 420 nand->ecc.layout = &fsmc_ecc1_layout; in fsmc_nand_switch_ecc() 421 nand->ecc.calculate = fsmc_read_hwecc; in fsmc_nand_switch_ecc() 422 nand->ecc.correct = nand_correct_data; in fsmc_nand_switch_ecc() 428 nand->ecc.mode = NAND_ECC_SOFT_BCH; in fsmc_nand_switch_ecc() 429 nand->ecc.strength = 4; in fsmc_nand_switch_ecc() [all …]
|
| H A D | mxs_nand.c | 268 struct nand_chip *nand = mtd_to_nand(mtd); in mxs_nand_cmd_ctrl() local 269 struct mxs_nand_info *nand_info = nand_get_controller_data(nand); in mxs_nand_cmd_ctrl() 362 struct nand_chip *nand = mtd_to_nand(mtd); in mxs_nand_select_chip() local 363 struct mxs_nand_info *nand_info = nand_get_controller_data(nand); in mxs_nand_select_chip() 409 struct nand_chip *nand = mtd_to_nand(mtd); in mxs_nand_read_buf() local 410 struct mxs_nand_info *nand_info = nand_get_controller_data(nand); in mxs_nand_read_buf() 493 struct nand_chip *nand = mtd_to_nand(mtd); in mxs_nand_write_buf() local 494 struct mxs_nand_info *nand_info = nand_get_controller_data(nand); in mxs_nand_write_buf() 554 static int mxs_nand_ecc_read_page(struct mtd_info *mtd, struct nand_chip *nand, in mxs_nand_ecc_read_page() argument 558 struct mxs_nand_info *nand_info = nand_get_controller_data(nand); in mxs_nand_ecc_read_page() [all …]
|
| H A D | davinci_nand.c | 58 const u32 *nand = chip->IO_ADDR_R; in nand_davinci_read_buf() local 64 *buf = readb(nand); in nand_davinci_read_buf() 72 *(u16 *)buf = readw(nand); in nand_davinci_read_buf() 81 *(u32 *)buf = __raw_readl(nand); in nand_davinci_read_buf() 89 *(u16 *)buf = readw(nand); in nand_davinci_read_buf() 95 *buf = readb(nand); in nand_davinci_read_buf() 103 const u32 *nand = chip->IO_ADDR_W; in nand_davinci_write_buf() local 109 writeb(*buf, nand); in nand_davinci_write_buf() 117 writew(*(u16 *)buf, nand); in nand_davinci_write_buf() 126 __raw_writel(*(u32 *)buf, nand); in nand_davinci_write_buf() [all …]
|
| H A D | kirkwood_nand.c | 77 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 79 nand->options = NAND_COPYBACK | NAND_CACHEPRG | NAND_NO_PADDING; in board_nand_init() 81 nand->options |= NAND_NO_SUBPAGE_WRITE; in board_nand_init() 84 nand->ecc.mode = NAND_ECC_SOFT_BCH; in board_nand_init() 86 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 88 nand->cmd_ctrl = kw_nand_hwcontrol; in board_nand_init() 89 nand->chip_delay = 40; in board_nand_init() 90 nand->select_chip = kw_nand_select_chip; in board_nand_init()
|
| H A D | kmeter1_nand.c | 104 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 107 nand->ecc.mode = NAND_ECC_SOFT_BCH; in board_nand_init() 109 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 113 nand->cmd_ctrl = kpn_nand_hwcontrol; in board_nand_init() 114 nand->read_byte = kpn_nand_read_byte; in board_nand_init() 115 nand->write_buf = kpn_nand_write_buf; in board_nand_init() 116 nand->read_buf = kpn_nand_read_buf; in board_nand_init() 117 nand->dev_ready = kpn_nand_dev_ready; in board_nand_init() 118 nand->chip_delay = KPN_DEFAULT_CHIP_DELAY; in board_nand_init()
|
| H A D | sunxi_nand.c | 238 struct nand_chip nand; member 251 static inline struct sunxi_nand_chip *to_sunxi_nand(struct nand_chip *nand) in to_sunxi_nand() argument 253 return container_of(nand, struct sunxi_nand_chip, nand); in to_sunxi_nand() 382 struct nand_chip *nand = mtd_to_nand(mtd); in sunxi_nfc_dev_ready() local 383 struct sunxi_nand_chip *sunxi_nand = to_sunxi_nand(nand); in sunxi_nfc_dev_ready() 384 struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller); in sunxi_nfc_dev_ready() 386 unsigned long timeo = (sunxi_nand->nand.state == FL_ERASING ? 400 : 20); in sunxi_nfc_dev_ready() 420 struct nand_chip *nand = mtd_to_nand(mtd); in sunxi_nfc_select_chip() local 421 struct sunxi_nand_chip *sunxi_nand = to_sunxi_nand(nand); in sunxi_nfc_select_chip() 422 struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller); in sunxi_nfc_select_chip() [all …]
|
| H A D | atmel_nand.c | 805 static int atmel_pmecc_nand_init_params(struct nand_chip *nand, in atmel_pmecc_nand_init_params() argument 812 nand_set_controller_data(nand, host); in atmel_pmecc_nand_init_params() 814 nand->ecc.mode = NAND_ECC_HW; in atmel_pmecc_nand_init_params() 815 nand->ecc.calculate = NULL; in atmel_pmecc_nand_init_params() 816 nand->ecc.correct = NULL; in atmel_pmecc_nand_init_params() 817 nand->ecc.hwctl = NULL; in atmel_pmecc_nand_init_params() 832 if (pmecc_choose_ecc(host, nand, &cap, §or_size)) { in atmel_pmecc_nand_init_params() 885 nand->ecc.size = mtd->writesize; in atmel_pmecc_nand_init_params() 902 nand->ecc.steps = 1; in atmel_pmecc_nand_init_params() 903 nand->ecc.bytes = host->pmecc_bytes_per_sector * in atmel_pmecc_nand_init_params() [all …]
|
| H A D | fsl_elbc_nand.c | 661 struct nand_chip *nand; in fsl_elbc_chip_init() local 700 nand = &priv->chip; in fsl_elbc_chip_init() 701 mtd = nand_to_mtd(nand); in fsl_elbc_chip_init() 707 nand->read_byte = fsl_elbc_read_byte; in fsl_elbc_chip_init() 708 nand->write_buf = fsl_elbc_write_buf; in fsl_elbc_chip_init() 709 nand->read_buf = fsl_elbc_read_buf; in fsl_elbc_chip_init() 710 nand->select_chip = fsl_elbc_select_chip; in fsl_elbc_chip_init() 711 nand->cmdfunc = fsl_elbc_cmdfunc; in fsl_elbc_chip_init() 712 nand->waitfunc = fsl_elbc_wait; in fsl_elbc_chip_init() 715 nand->bbt_td = &bbt_main_descr; in fsl_elbc_chip_init() [all …]
|
| H A D | nand_plat.c | 48 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 59 nand->cmd_ctrl = plat_cmd_ctrl; in board_nand_init() 60 nand->dev_ready = plat_dev_ready; in board_nand_init() 61 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init()
|
| H A D | fsl_ifc_nand.c | 885 struct nand_chip *nand; in fsl_ifc_chip_init() local 926 nand = &priv->chip; in fsl_ifc_chip_init() 927 mtd = nand_to_mtd(nand); in fsl_ifc_chip_init() 934 nand->write_buf = fsl_ifc_write_buf; in fsl_ifc_chip_init() 935 nand->read_buf = fsl_ifc_read_buf; in fsl_ifc_chip_init() 936 nand->select_chip = fsl_ifc_select_chip; in fsl_ifc_chip_init() 937 nand->cmdfunc = fsl_ifc_cmdfunc; in fsl_ifc_chip_init() 938 nand->waitfunc = fsl_ifc_wait; in fsl_ifc_chip_init() 941 nand->bbt_td = &bbt_main_descr; in fsl_ifc_chip_init() 942 nand->bbt_md = &bbt_mirror_descr; in fsl_ifc_chip_init() [all …]
|
| H A D | nand_bch.c | 112 struct nand_chip *nand = mtd_to_nand(mtd); in nand_bch_init() local 114 struct nand_ecclayout *layout = nand->ecc.layout; in nand_bch_init() 117 unsigned int eccsize = nand->ecc.size; in nand_bch_init() 118 unsigned int eccbytes = nand->ecc.bytes; in nand_bch_init() 119 unsigned int eccstrength = nand->ecc.strength; in nand_bch_init() 123 nand->ecc.bytes = eccbytes; in nand_bch_init() 178 nand->ecc.layout = layout; in nand_bch_init() 211 nand->ecc.strength = (eccbytes * 8) / fls(8 * eccsize); in nand_bch_init()
|
| /rk3399_rockchip-uboot/drivers/mtd/nand/spi/ |
| H A D | core.c | 37 struct nand_device *nand = spinand_to_nand(spinand); in spinand_cache_op_adjust_colum() local 40 if (nand->memorg.planes_per_lun < 2) in spinand_cache_op_adjust_colum() 44 shift = fls(nand->memorg.pagesize); in spinand_cache_op_adjust_colum() 78 struct nand_device *nand = spinand_to_nand(spinand); in spinand_get_cfg() local 81 spinand->cur_target >= nand->memorg.ntargets)) in spinand_get_cfg() 90 struct nand_device *nand = spinand_to_nand(spinand); in spinand_set_cfg() local 94 spinand->cur_target >= nand->memorg.ntargets)) in spinand_set_cfg() 144 struct nand_device *nand = spinand_to_nand(spinand); in spinand_select_target() local 147 if (WARN_ON(target >= nand->memorg.ntargets)) in spinand_select_target() 153 if (nand->memorg.ntargets == 1) { in spinand_select_target() [all …]
|
| /rk3399_rockchip-uboot/drivers/dfu/ |
| H A D | dfu_nand.c | 32 *len = dfu->data.nand.size; in nand_block_op() 36 start = dfu->data.nand.start + offset + dfu->bad_skip; in nand_block_op() 37 lim = dfu->data.nand.start + dfu->data.nand.size - start; in nand_block_op() 119 *size = dfu->data.nand.size; in dfu_get_medium_size_nand() 147 if (dfu->data.nand.ubi) { in dfu_flush_medium_nand() 168 opts.offset = dfu->data.nand.start + off + in dfu_flush_medium_nand() 170 opts.length = dfu->data.nand.start + in dfu_flush_medium_nand() 171 dfu->data.nand.size - opts.offset; in dfu_flush_medium_nand() 186 if (dfu->data.nand.ubi) in dfu_polltimeout_nand() 198 dfu->data.nand.ubi = 0; in dfu_fill_entity_nand() [all …]
|
| /rk3399_rockchip-uboot/board/socrates/ |
| H A D | nand.c | 150 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 152 nand->cmd_ctrl = sc_nand_hwcontrol; in board_nand_init() 153 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 154 nand->dev_ready = sc_nand_device_ready; in board_nand_init() 155 nand->read_byte = sc_nand_read_byte; in board_nand_init() 156 nand->read_word = sc_nand_read_word; in board_nand_init() 157 nand->write_buf = sc_nand_write_buf; in board_nand_init() 158 nand->read_buf = sc_nand_read_buf; in board_nand_init()
|
| /rk3399_rockchip-uboot/doc/device-tree-bindings/nand/ |
| H A D | nvidia,tegra20-nand.txt | 12 - compatible : Should be "manufacturer,device", "nand-flash" 26 nvidia,nand-width : bus width of the NAND device in bits 28 - nvidia,nand-timing : Timing parameters for the NAND. Each is in ns. 42 nand-controller@0x70008000 { 43 compatible = "nvidia,tegra20-nand"; 47 nvidia,nand-width = <8>; 49 nand@0 { 51 compatible = "hynix,hy27uf4g2b", "nand-flash";
|
| /rk3399_rockchip-uboot/board/xes/common/ |
| H A D | actl_nand.c | 42 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 44 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 45 nand->cmd_ctrl = nand_addr_hwcontrol; in board_nand_init() 46 nand->chip_delay = CONFIG_SYS_NAND_ACTL_DELAY; in board_nand_init()
|
| /rk3399_rockchip-uboot/doc/ |
| H A D | README.commands.spl | 20 nand read 0x82000000 0x280000 0x400000 /* Read kernel image from NAND*/ 22 nand erase 0x680000 0x20000 /* erase - one page */ 23 nand write 0x80000100 0x680000 0x20000 /* write the image - one page */ 27 nand read 0x82000000 0x280000 0x400000 /* Read kernel image from NAND*/ 30 nand erase 0x680000 0x20000 /* erase - one page */ 31 nand write <adress shown by spl export> 0x680000 0x20000
|
| /rk3399_rockchip-uboot/board/synopsys/axs10x/ |
| H A D | nand.c | 223 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 231 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 232 nand->cmd_ctrl = axs101_nand_hwcontrol; in board_nand_init() 233 nand->read_byte = axs101_nand_read_byte; in board_nand_init() 234 nand->read_word = axs101_nand_read_word; in board_nand_init() 235 nand->write_buf = axs101_nand_write_buf; in board_nand_init() 236 nand->read_buf = axs101_nand_read_buf; in board_nand_init() 240 nand->options |= NAND_BUSWIDTH_16; in board_nand_init()
|
| /rk3399_rockchip-uboot/board/freescale/m5329evb/ |
| H A D | nand.c | 52 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 67 nand->chip_delay = 60; in board_nand_init() 68 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 69 nand->cmd_ctrl = nand_hwcontrol; in board_nand_init()
|
| /rk3399_rockchip-uboot/board/cssi/MCR3000/ |
| H A D | nand.c | 51 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 60 nand->chip_delay = 60; in board_nand_init() 61 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 62 nand->cmd_ctrl = nand_hwcontrol; in board_nand_init()
|
| /rk3399_rockchip-uboot/board/freescale/m5373evb/ |
| H A D | nand.c | 53 int board_nand_init(struct nand_chip *nand) in board_nand_init() argument 71 nand->chip_delay = 60; in board_nand_init() 72 nand->ecc.mode = NAND_ECC_SOFT; in board_nand_init() 73 nand->cmd_ctrl = nand_hwcontrol; in board_nand_init()
|