Searched +full:nand +full:- +full:ecc +full:- +full:placement (Results 1 – 17 of 17) sorted by relevance
/linux-6.14.4/Documentation/driver-api/ |
D | mtdnand.rst | 2 MTD NAND Driver Programming Interface 10 The generic NAND driver supports almost all NAND and AG-AND based chips 15 board drivers or filesystem drivers suitable for NAND devices. 31 -------------------------- 37 - [MTD Interface] 43 - [NAND Interface] 45 These functions are exported and provide the interface to the NAND 48 - [GENERIC] 53 - [DEFAULT] 58 via pointers in the NAND chip description structure. The board driver [all …]
|
/linux-6.14.4/drivers/mtd/nand/ |
D | ecc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Generic Error-Correcting Code (ECC) engine 10 * This file describes the abstraction of any NAND ECC engine. It has been 11 * designed to fit most cases, including parallel NANDs and SPI-NANDs. 13 * There are three main situations where instantiating this ECC engine makes 15 * - external: The ECC engine is outside the NAND pipeline, typically this 16 * is a software ECC engine, or an hardware engine that is 17 * outside the NAND controller pipeline. 18 * - pipelined: The ECC engine is inside the NAND pipeline, ie. on the 19 * controller's side. This is the case of most of the raw NAND [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/mtd/ |
D | raw-nand-chip.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mtd/raw-nand-chip.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Raw NAND Chip Common Properties 10 - Miquel Raynal <[email protected]> 13 - $ref: nand-chip.yaml# 16 The ECC strength and ECC step size properties define the user 18 they request the ECC engine to correct {strength} bit errors per 19 {size} bytes for a particular raw NAND chip. [all …]
|
/linux-6.14.4/include/linux/mtd/ |
D | nand.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright 2017 - Free Electrons 6 * Boris Brezillon <boris.brezillon@free-electrons.com> 18 * struct nand_memory_organization - Memory organization structure 19 * @bits_per_cell: number of bits per NAND cell 27 * @ntargets: total number of targets exposed by the NAND device 55 * struct nand_row_converter - Information needed to convert an absolute offset 67 * struct nand_pos - NAND position object 68 * @target: the NAND target/die 74 * These information are usually used by specific sub-layers to select the [all …]
|
D | rawnand.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright © 2000-2010 David Woodhouse <[email protected]> 8 * Contains standard defines and IDs for NAND flash devices 17 #include <linux/mtd/nand.h> 29 /* The maximum number of NAND chips in an array */ 50 * Standard NAND flash commands 75 #define NAND_CMD_NONE -1 84 #define NAND_DATA_IFACE_CHECK_ONLY -1 87 * Constants for Hardware ECC 89 /* Reset Hardware ECC for read */ [all …]
|
/linux-6.14.4/include/uapi/mtd/ |
D | mtd-abi.h | 1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 3 * Copyright © 1999-2010 David Woodhouse <[email protected]> et al. 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 55 * @MTD_OPS_RAW: data are transferred as-is, with no error correction; 69 * struct mtd_write_req - data structure for requesting a write operation 74 * @usr_data: user-provided data buffer 75 * @usr_oob: user-provided OOB buffer 80 * writes in various modes. To write to OOB-only, set @usr_data == NULL, and to 81 * write data-only, set @usr_oob == NULL. However, setting both @usr_data and 95 * struct mtd_read_req_ecc_stats - ECC statistics for a read operation [all …]
|
/linux-6.14.4/drivers/mtd/nand/raw/ |
D | davinci_nand.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * davinci_nand.c - NAND Flash Driver for DaVinci family chips 8 * Sander Huijsen <Shuijsen@optelecom-nkf.com> 17 #include <linux/memory/ti-aemif.h> 30 /* 4-bit ECC syndrome registers */ 42 * for ALE/CLE unless they support booting from NAND. 56 * 0-indexed chip-select number of the asynchronous 57 * interface to which the NAND device has been connected. 59 * So, if you have NAND connected to CS3 of DA850, you 74 * on-die == NAND_ECC_ENGINE_TYPE_ON_DIE [all …]
|
D | nand_base.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * This is the generic MTD driver for NAND flash devices. It should be 5 * capable of working with almost all NAND chips currently available. 8 * http://www.linux-mtd.infradead.org/doc/nand.html 11 * 2002-2006 Thomas Gleixner ([email protected]) 21 * Check, if mtd->ecctype should be set to MTD_ECC_HW 22 * if we have HW ECC support. 37 #include <linux/mtd/nand.h> 38 #include <linux/mtd/nand-ecc-sw-hamming.h> 39 #include <linux/mtd/nand-ecc-sw-bch.h> [all …]
|
D | fsmc_nand.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Driver for NAND portions 11 * Based on drivers/mtd/nand/nomadik_nand.c (removed in v3.8) 20 #include <linux/dma-direction.h> 21 #include <linux/dma-mapping.h> 29 #include <linux/mtd/nand-ecc-sw-hamming.h> 37 #include <mtd/mtd-abi.h> 61 /* fsmc controller registers for NAND flash */ 99 * TOUDEL = 7ns (Output delay from the flip-flops to the board) 120 * struct fsmc_nand_data - structure for FSMC NAND device state [all …]
|
D | cafe_nand.c | 1 // SPDX-License-Identifier: GPL-2.0-only 23 #include <linux/dma-mapping.h> 61 struct nand_chip nand; member 101 #define cafe_readl(cafe, addr) readl((cafe)->mmio + CAFE_##addr) 102 #define cafe_writel(cafe, datum, addr) writel(datum, (cafe)->mmio + CAFE_##addr) 112 cafe_dev_dbg(&cafe->pdev->dev, "NAND device is%s ready, IRQ %x (%x) (%x,%x)\n", in cafe_device_ready() 124 if (cafe->usedma) in cafe_write_buf() 125 memcpy(cafe->dmabuf + cafe->datalen, buf, len); in cafe_write_buf() 127 memcpy_toio(cafe->mmio + CAFE_NAND_WRITE_DATA + cafe->datalen, buf, len); in cafe_write_buf() 129 cafe->datalen += len; in cafe_write_buf() [all …]
|
D | s3c2410.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright © 2004-2008 Simtec Electronics 7 * Samsung S3C2410/S3C2440/S3C2412 NAND driver 10 #define pr_fmt(fmt) "nand-s3c2410: " fmt 34 #include <linux/platform_data/mtd-nand-s3c2410.h> 71 /* new oob placement block for use with hardware ecc generation 77 return -ERANGE; in s3c2410_ooblayout_ecc() 79 oobregion->offset = 0; in s3c2410_ooblayout_ecc() 80 oobregion->length = 3; in s3c2410_ooblayout_ecc() 89 return -ERANGE; in s3c2410_ooblayout_free() [all …]
|
D | lpc32xx_slc.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * NXP LPC32XX NAND SLC driver 24 #include <linux/dma-mapping.h> 30 #define LPC32XX_MODNAME "lpc32xx-nand" 33 * SLC NAND controller register offsets 55 #define SLCCTRL_SW_RESET (1 << 2) /* Reset the NAND controller bit */ 56 #define SLCCTRL_ECC_CLEAR (1 << 1) /* Reset ECC bit */ 63 #define SLCCFG_DMA_ECC (1 << 4) /* Enable DMA ECC bit */ 64 #define SLCCFG_ECC_EN (1 << 3) /* ECC enable bit */ 74 #define SLCSTAT_NAND_READY (1 << 0) /* NAND device is ready bit */ [all …]
|
D | r852.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright © 2009 - Maxim Levitsky 31 MODULE_PARM_DESC(debug, "Debug level (0-2)"); 36 uint8_t reg = readb(dev->mmio + address); in r852_read_reg() 44 writeb(value, dev->mmio + address); in r852_write_reg() 51 uint32_t reg = le32_to_cpu(readl(dev->mmio + address)); in r852_read_reg_dword() 59 writel(cpu_to_le32(value), dev->mmio + address); in r852_write_reg_dword() 73 dev->dma_usable = (r852_read_reg(dev, R852_DMA_CAP) & in r852_dma_test() 76 if (!dev->dma_usable) in r852_dma_test() 81 dev->dma_usable = 0; in r852_dma_test() [all …]
|
D | diskonchip.c | 1 // SPDX-License-Identifier: GPL-2.0-only 14 * converted to the generic Reed-Solomon library by Thomas Gleixner <[email protected]> 16 * Interface to generic NAND code for M-Systems DiskOnChip devices 79 /* This is the ecc value computed by the HW ecc generator upon writing an empty 85 #define DoC_is_MillenniumPlus(doc) ((doc)->ChipID == DOC_ChipID_DocMilPlus16 || (doc)->ChipID == DO… 86 #define DoC_is_Millennium(doc) ((doc)->ChipID == DOC_ChipID_DocMil) 87 #define DoC_is_2000(doc) ((doc)->ChipID == DOC_ChipID_Doc2k) 115 /* Sector size for HW ECC */ 129 * Reed-Solomon library code. 133 * of the generic Reed-Solomon library. tglx [all …]
|
D | denali.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * NAND Flash Controller Device Driver 4 * Copyright © 2009-2010, Intel Corporation and its suppliers. 6 * Copyright (c) 2017-2019 Socionext Inc. 12 #include <linux/dma-mapping.h> 23 #define DENALI_NAND_NAME "denali-nand" 31 #define DENALI_MAP10 (2 << 26) /* high-level control plane */ 39 #define DENALI_BANK(denali) ((denali)->active_bank << 24) 41 #define DENALI_INVALID_BANK -1 50 return container_of(chip->controller, struct denali_controller, in to_denali_controller() [all …]
|
D | nand_bbt.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Bad block table support for the NAND driver 26 * For manufacturer created BBTs like the one found on M-SYS DOC devices 32 * number which indicates which of both tables is more up to date. If the NAND 33 * controller needs the complete OOB area for the ECC information then the 52 * - bbts start at a page boundary, if autolocated on a block boundary 53 * - the space necessary for a bbt in FLASH does not exceed a block boundary 78 uint8_t entry = chip->bbt[block >> BBT_ENTRY_SHIFT]; in bbt_get_entry() 87 chip->bbt[block >> BBT_ENTRY_SHIFT] |= msk; in bbt_mark_entry() 92 if (memcmp(buf, td->pattern, td->len)) in check_pattern_no_oob() [all …]
|
/linux-6.14.4/drivers/mtd/nand/onenand/ |
D | onenand_base.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright © 2005-2009 Samsung Electronics 9 * Adrian Hunter <ext-[email protected]>: 10 * auto-placement support, read-while load support, various fixes 13 * Flex-OneNAND support 39 /* Default Flex-OneNAND boundary and lock respectively */ 40 static int flex_bdry[MAX_DIES * 2] = { -1, 0, -1, 0 }; 43 MODULE_PARM_DESC(flex_bdry, "SLC Boundary information for Flex-OneNAND" 47 " : 0->Set boundary in unlocked status" 48 " : 1->Set boundary in locked status"); [all …]
|