summaryrefslogtreecommitdiff
path: root/drivers/mtd
AgeCommit message (Collapse)Author
2016-06-19spl: nand: rework SYS_NAND_U_BOOT_OFFS Kconfig option dependencyBoris Brezillon
The SYS_NAND_U_BOOT_OFFS is quite generic, but the Kconfig entry is forced to explicitly depend on platforms that are not already defining it in their include/configs/<board>.h header. Add the SYS_NAND_U_BOOT_LOCATIONS option, make the SYS_NAND_U_BOOT_OFFS depends on it, remove the dependency on NAND_SUNXI and make it dependent on SPL selection. Signed-off-by: Boris Brezillon <[email protected]> Acked-by: Hans de Goede <[email protected]>
2016-06-19spl: nand: sunxi: remove support for so-called 'syndrome' modeBoris Brezillon
The sunxi SPL NAND controller driver supports use 'BootROM'-like configs, that is, configs where the ECC bytes and real data are interleaved in the page instead of putting ECC bytes in the OOB area. Doing that has several drawbacks: - since you're interleaving data and ECC bytes you can't use the whole page otherwise you might override the bad block marker with non-FF bytes. - to solve the bad block marker problem, the ROM code supports partially using the page, but this introduces a huge penalty both in term of read speed and NAND memory usage. While this is fine for rather small binaries(like the SPL one which is at maximum 24KB large), it becomes non-negligible for the bootloader image (several hundred of KB). - auto-detection of the page size is not reliable (this is in my opinion the biggest problem). If you get the page size wrong, you'll end up reading data at a different offset than what was specified by the caller and the reading may succeed (if valid data were written at this address). For all those reasons I think it's wiser to completely remove support for 'syndrome' configs. If we ever need to support it again, then I'd recommend specifying all the config parameters through Kconfig options. Signed-off-by: Boris Brezillon <[email protected]> Acked-by: Hans de Goede <[email protected]>
2016-06-13Merge branch 'master' of git://git.denx.de/u-boot-atmelTom Rini
2016-06-12at91: nand: Set up the ECC strength correctlyAndre Renaud
This needs to be set to avoid a fatal error when ECC is used. Signed-off-by: Andre Renaud <[email protected]> Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Andreas Bießmann <[email protected]>
2016-06-12at91: Correct NAND ECC register accessAndre Renaud
This uses the wrote base register value. Fix it. Signed-off-by: Andre Renaud <[email protected]> Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Andreas Bießmann <[email protected]>
2016-06-12Merge branch 'master' of git://www.denx.de/git/u-boot-imxTom Rini
2016-06-09mtd: nand: omap: allow to switch to BCH16Heiko Schocher
support in omap_nand_switch_ecc() also an eccstrength from 16. Signed-off-by: Heiko Schocher <[email protected]>
2016-06-09nand: add nand mtd concat supportHeiko Schocher
add for nand devices mtd concat support. Generic MTD concat support is already ported to mainline, and used in the cfi_mtd driver. This patch adds it similiar for nand devices. Signed-off-by: Heiko Schocher <[email protected]>
2016-06-04Merge git://git.denx.de/u-boot-nand-flashTom Rini
2016-06-03nand: fix nand torture to use changed mtd apiMax Krummenacher
The mtd subsystem deprecated and renamed the direct use of the mtd_info struct's functionpointers. Instead the corresponding mtd_xxx function should be used. See also: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3c3c10bba1e4ccb75b41442e45c1a072f6cded19 Signed-off-by: Max Krummenacher <[email protected]>
2016-06-03mtd: nand: Sync with Linux v4.6Scott Wood
Updates the NAND code to match Linux v4.6. The previous sync was from Linux v4.1 in commit d3963721d93fafa. Note that none of the individual NAND drivers tracked Linux closely enough to be synced themselves, other than manually applying a few cross-tree changes. Signed-off-by: Scott Wood <[email protected]> Tested-by: Heiko Schocher <[email protected]>
2016-06-03mtd: nand: Add page argument to write_page() etc.Scott Wood
This change is part of the Linux 4.6 sync. It is being done before the main sync patch in order to make it easier to address the issue across all NAND drivers (many/most of which do not closely track their Linux counterparts) separately from other merge issues. Signed-off-by: Scott Wood <[email protected]>
2016-06-03mtd: nand: Add+use mtd_to/from_nand and nand_get/set_controller_dataScott Wood
These functions are part of the Linux 4.6 sync. They are being added before the main sync patch in order to make it easier to address the issue across all NAND drivers (many/most of which do not closely track their Linux counterparts) separately from other merge issues. Signed-off-by: Scott Wood <[email protected]>
2016-06-03nand: Embed mtd_info in struct nand_chipScott Wood
nand_info[] is now an array of pointers, with the actual mtd_info instance embedded in struct nand_chip. This is in preparation for syncing the NAND code with Linux 4.6, which makes the same change to struct nand_chip. It's in a separate commit due to the large amount of changes required to accommodate the change to nand_info[]. Signed-off-by: Scott Wood <[email protected]>
2016-06-03mtd: nand: Remove nand_info_t typedefScott Wood
This typedef serves no purpose other than causing confusion with struct nand_chip. Signed-off-by: Scott Wood <[email protected]>
2016-06-03mtd: nand: Remove docg4 driver and palmtreo680 flashing toolScott Wood
Commit ad4f54ea86b ("arm: Remove palmtreo680 board") removed the only user of the docg4 driver and the palmtreo680 image flashing tool. This patch removes them. Signed-off-by: Scott Wood <[email protected]> Cc: Mike Dunn <[email protected]> Cc: Simon Glass <[email protected]>
2016-06-03mtd: nand: Remove jz4740 driverMarek Vasut
This driver is not used by anyone, remove it. Signed-off-by: Marek Vasut <[email protected]> Cc: Daniel Schwierzeck <[email protected]> Cc: Paul Burton <[email protected]> Cc: Scott Wood <[email protected]> Acked-by: Daniel Schwierzeck <[email protected]> Signed-off-by: Scott Wood <[email protected]>
2016-06-03mtd: nand: arasan_nfc: Correct nand ecc initializationSiva Durga Prasad Paladugu
Correct the nand ecc initialization code This fixes the issue of incorrect nand ecc init if no device is found in ecc_matrix then it endsup ecc init with junk initialization instead of the most suited one. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> Tested-by: Michal Simek <[email protected]>
2016-06-03driver: mtd: spi: Adding support for QSPI flashPrabhakar Kushwaha
Serial number, vendor id and page size are added for QSPI flash common on both LS1012AQDS and LS1012ARDB i.e. S25FS512SDSMFI011. Signed-off-by: Pratiyush Mohan Srivastava <[email protected]> Signed-off-by: Calvin Johnson <[email protected]> Signed-off-by: Mingkai Hu <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2016-05-27mtd: nand: am335x: spl: Fix copying of imageLokesh Vutla
When offset is not aligned to page address, it is possible that extra offset will be read from nand. Adjust the image such that first byte of the image is at load address after the first page is read. Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Lokesh Vutla <[email protected]>
2016-05-27spl: Support loading a FIT from SPILokesh Vutla
Detect a FIT when loading from SPI and handle it using the new FIT SPL support. Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Lokesh Vutla <[email protected]>
2016-05-24Merge branch 'master' of git://git.denx.de/u-boot-fsl-qoriqTom Rini
2016-05-24mtd: nand: mxs: use simpler runtime cpu dection macrosPeng Fan
Use simpler runtime cpu dection macros. Signed-off-by: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Scott Wood <[email protected]>
2016-05-21drivers: mtd: add Microchip PIC32 internal non-CFI flash driver.Purna Chandra Mandal
PIC32 internal flash devices are parallel NOR flash divided into number of banks to allow erase-programming in one while fetch and execution continues on other. As the flash banks are memory mapped stored code can be executed directly from flash (XIP), also there is additional hardware logic to prefetch and cache contents to improve execution performance. These flash can also be used to store user data (like environment). Flash erase and programming are handled by on-chip NVM controller. Driver implemented driver model but MTD is not really support. Signed-off-by: Purna Chandra Mandal <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2016-05-18sf: Disable 4-KB erase command for SPANSION S25FS-S familyYuan Yao
The S25FS-S family physical sectors may be configured as a hybrid combination of eight 4-kB parameter sectors at the top or bottom of the address space with all but one of the remaining sectors being uniform size. The default status of the flash is in this hybrid architecture. The parameter sectors and the uniform sectors have different erase commands. This patch disable the hybrid sector architecture then the flash will has uniform sector size and uniform erase command. This configuration is temporary, the flash will revert to hybrid architecture after power on reset. Signed-off-by: Yuan Yao <[email protected]> Reviewed-by: York Sun <[email protected]>
2016-05-18spi: fsl_qspi: Enable Spansion S25FS-S family flashesYuan Yao
The flash type of LS2085AQDS QSPI is S25FS256S. It has special write any device register command and read any device register command. This patch enable support for those commands. Signed-off-by: Yuan Yao <[email protected]> Signed-off-by: Prabhakar Kushwaha <[email protected]> Reviewed-by: York Sun <[email protected]>
2016-05-17SPL: Let spl_parse_image_header() return valueMarek Vasut
Allow the spl_parse_image_header() to return value. This is convenient for controlling the SPL boot flow if the loaded image is corrupted. Signed-off-by: Marek Vasut <[email protected]> Cc: Fabio Estevam <[email protected]> Cc: Peng Fan <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Tom Rini <[email protected]>
2016-05-02Fix spelling of "occurred".Vagrant Cascadian
Signed-off-by: Vagrant Cascadian <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2016-04-25sf: fix timebase data type in _wait_ready()Stephen Warren
get_timer() returns an unsigned 64-bit value, but is currently assigned to a signed 32-bit variable. Due to sign extension and data truncation, this causes the timeout loop in spi_flash_cmd_wait_ready() to immediately (and incorrectly) fire for about 50% of all time values, based on whether bit 31 is set. In sandbox at least, this causes the test to pass or fail based on system uptime, as opposed to time since the U-Boot binary was started. Fixes: 4efad20a1751 ("sf: Update status reg check in spi_flash_cmd_wait_ready") Signed-off-by: Stephen Warren <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2016-04-22mtd, ubi: set free_count to zero before walking through erase listHeiko Schocher
Set free_count to zero before walking through ai->erase list in wl_init(). As U-Boot has no workqueue/threads, it immediately calls erase_worker(), which increase for each erased block free_count. Without this patch, free_count gets after this initialized to zero in wl_init(), so the free_count variable always has the maybe wrong value 0. Detected this behaviour on the dxr2 board, where the UBI fastmap gets not written when attaching/dettaching on an empty NAND. It drops instead the error message: could not find any anchor PEB With this patch, fastmap gets written on dettach. Signed-off-by: Heiko Schocher <[email protected]> Reviewed-by: Boris Brezillon <[email protected]>
2016-04-13mtd: cfi: Unlock current sector instead of sector 0 before buffered writeRouven Behr
Unlock current sector instead of sector 0 before buffered write. [Patch subject and commit text slightly reworded, Stefan] Signed-off-by: Rouven Behr <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2016-04-11stm32: stm32_flash: add memory barrier during flash writeVikas Manocha
After writing data to flash space, next instruction is checking if flash controller is busy writing to the flash memory. Memory barrier is required here to avoid transaction re-ordering for data write and busy status check. Signed-off-by: Vikas Manocha <[email protected]>
2016-04-10drivers: remove writes{b,w,l,q} and reads{b,w,l,q}.Purna Chandra Mandal
Definition of writes{bwlq}, reads{bwlq} are now added into arch specific asm/io.h. So removing them from driver to fix re-definition error Signed-off-by: Purna Chandra Mandal <[email protected]>
2016-04-06kirkwood_nand: claim MPP pins on the flyChris Packham
Claim the MPP pins for the NAND flash controller only when it's actually being used. This allows the pins to be shared with the SPI interface which already supports an equivalent on-access MPP reconfiguration. Reviewed-by: Mark Tomlinson <[email protected]> Signed-off-by: Chris Packham <[email protected]> Acked-by: Scott Wood <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2016-04-01mtd: nand: denali: max_banks calculation changed in revision 5.1Graham Moore
Read Denali hardware revision number and use it to calculate max_banks, The encoding of max_banks changed in Denali revision 5.1. [ Linux commit : 271707b1d817f5104e02b2bd1bab43f0c8759418 ] Signed-off-by: Graham Moore <[email protected]> [Brian: parentheses around macro arg] Signed-off-by: Brian Norris <[email protected]> [Masahiro: import from Linux and adjust ioread32() to readl() ] Signed-off-by: Masahiro Yamada <[email protected]>
2016-03-27cfi_flash: return device into read array mode after reading statusVasily Khoruzhick
Otherwise flash remains in read status mode and it's not possible to access data on flash. Signed-off-by: Vasily Khoruzhick <[email protected]> Acked-by: Stefan Roese <[email protected]>
2016-03-26stm32: stm32f4: move flash driver to mtd driver locationVikas Manocha
Same flash driver can be used by other stm32 families like stm32f7. Better place for this driver would be mtd driver location. Signed-off-by: Vikas Manocha <[email protected]>
2016-03-24mtd: denali: fix warning when compiled for 64bit systemMasahiro Yamada
The 64-bit compiler (ex. aarch64) emits "warning: cast from pointer to integer of different size". Make it work with 64bit DMA address while I am here. Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-03-12sf: Correct data types in stm_is_locked_sr()Marek Vasut
The stm_is_locked_sr() function is picked from Linux kernel. For reason unknown, the 64bit data types used by the function and present in Linux were replaced with 32bit unsigned ones, which causes trouble. The testcase performed was done using ST M25P80 chip. The command used was: => sf protect unlock 0 0x10000 The call chain starts in stm_unlock(), which calls stm_is_locked_sr() with negative ofs argument. This works fine in Linux, where the "ofs" is loff_t, which is signed long long, while this fails in U-Boot, where "ofs" is u32 (unsigned int). Because of this signedness problem, the expression past the return statement to be incorrectly evaluated to 1, which in turn propagates back to stm_unlock() and results in -EINVAL. The correction is very simple, just use the correctly sized data types with correct signedness in the function to make it work as intended. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2016-02-26spi: Correct two error return valuesSimon Glass
When an error number is provided we should use it, not change it. This fixes the SPI and SPI flash tests. One of these is long-standing. The other seems to have been introduced by commit 1e90d9fd (sf: Move read_id code to sf_ops). Signed-off-by: Simon Glass <[email protected]> Fixes: 1e90d9fd (sf: Move read_id code to sf_ops) Reviewed-by: Jagan Teki <[email protected]> Tested-by: Jagan Teki <[email protected]>
2016-02-26sandbox: spi: Remove an incorrect free()Simon Glass
We must not free data that is managed by driver mode. Remove this line, which is a hangover from the pre-driver-model code. This fixes a problem where 'sf probe' crashes U-Boot if the backing file for the SPI flash cannot be found. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]> Tested-by: Jagan Teki <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-02-26sandbox: spi: Add more debugging to SPI emulationSimon Glass
Add a little more debugging to help when things go wrong. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]> Tested-by: Jagan Teki <[email protected]>
2016-02-23sf: spi_flash: use dma to copy data from mmap region if platform supportsMugunthan V N
Add dma memcpy api to the default spi_flash_copy_mmap(), so that dma will be used to copy data when CONFIG_DMA is defined for the platform. Signed-off-by: Mugunthan V N <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2016-02-12arasan: nfc: Add initial nand driver support for arasanSiva Durga Prasad Paladugu
Added initial nand driver support for arasan nand flash controller.This supports nand erase,nand read, nand write This uses the hardware ECC for read and write operations ZynqMP uses this driver. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> [scottwood: Fix checkpatch warnings] Signed-off-by: Scott Wood <[email protected]>
2016-02-12zynqmp: nand: Add Nand driver support for zynqmpSiva Durga Prasad Paladugu
Add nand driver support for zynqmp. The Nand controller used in ZynqMP is Arasan Nand Flash controller. Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> [scottwood: Fix checkpatch warning] Signed-off-by: Scott Wood <[email protected]>
2016-02-12mtd: pxa3xx_nand: Don't alloc unneeded memoryKevin Smith
The allocation size is reduced from what was introduced from the Linux kernel, as U-boot uses the statically allocated nand_info instead of needing to dynamically allocate an mtd_info instance. Signed-off-by: Kevin Smith <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Luka Perkov <[email protected]> Cc: Scott Wood <[email protected]>
2016-02-12mtd: pxa3xx_nand: Correct offset calculationKevin Smith
Correct some pointer math in initialization. An offset was added to a struct-typed pointer instead of one casted to a byte-size, resulting in a much larger offset than intended. Signed-off-by: Kevin Smith <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Luka Perkov <[email protected]> Cc: Scott Wood <[email protected]>
2016-02-12mtd: pxa3xx_nand: Correct null dereferenceKevin Smith
Correct a null pointer dereference in board_nand_init(). Zeroed memory was allocated, then immediately dereferenced. The dereference is completely removed, since this pointer is later initialized in alloc_nand_resources. Signed-off-by: Kevin Smith <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Luka Perkov <[email protected]> Cc: Scott Wood <[email protected]>
2016-02-12nand: mxs: fix error handling for mxs_nand_initPeng Fan
Fix error handling for mxs_nand_init. The original error handling is wrong for err2 and err1. Should first free desc[x], then free desc. This patch also correctly handle err3, should use MXS_DMA_CHANNEL_AHB_APBH_GPMI0 as the check point. Cc: Stefano Babic <[email protected]> CC: Fabio Estevam <[email protected]> Cc: Scott Wood <[email protected]> Cc: Marek Vasut <[email protected]> Signed-off-by: Peng Fan <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2016-02-06Use correct spelling of "U-Boot"Bin Meng
Correct spelling of "U-Boot" shall be used in all written text (documentation, comments in source files etc.). Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Heiko Schocher <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Minkyu Kang <[email protected]>