summaryrefslogtreecommitdiff
path: root/drivers/mtd
AgeCommit message (Collapse)Author
2017-08-30mtd: nand: denali_dt: add a DT driverMasahiro Yamada
A patch for NAND uclass support was proposed about half a year ago: https://patchwork.ozlabs.org/patch/722282/ It was not merged and I do not see on-going work for this. Without DM-based probing, we need to set up pinctrl etc. in an ad-hoc way and give lots of crappy CONFIG options for base addresses and properties, which are supposed to be specified by DT. This is painful. This commit just provides a probe hook to retrieve "reg" from DT and allocate private data in a DM manner. This DT driver is not essentially a NAND driver, in fact it is (ab)using UCLASS_MISC. Once UCLASS_NAND is supported, it would be possible to migrate to it. Signed-off-by: Masahiro Yamada <[email protected]>
2017-08-22mtd: cfi: staticize functionsMarek Vasut
Staticize a few functions and variables which are no longer exposed. Signed-off-by: Marek Vasut <[email protected]> Cc: Stefan Roese <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2017-08-16Merge git://git.denx.de/u-boot-spiTom Rini
2017-08-16sf: Preserve QE bit when clearing BP# bits for Macronix flashBin Meng
On some flash (like Macronix), QE (quad enable) bit is in the same status register as BP# bits, and we need preserve its original value during a reboot cycle as this is required by some platforms (like Intel ICH SPI controller working under descriptor mode). Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]> [Refined code for readability] Signed-off-by: Jagan Teki <[email protected]>
2017-08-16env: Rename getenv/_f() to env_get()Simon Glass
We are now using an env_ prefix for environment functions. Rename these two functions for consistency. Also add function comments in common.h. Quite a few places use getenv() in a condition context, provoking a warning from checkpatch. These are fixed up in this patch also. Suggested-by: Wolfgang Denk <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2017-08-16env: Rename setenv() to env_set()Simon Glass
We are now using an env_ prefix for environment functions. Rename setenv() for consistency. Also add function comments in common.h. Suggested-by: Wolfgang Denk <[email protected]> Signed-off-by: Simon Glass <[email protected]>
2017-08-12Convert CONFIG_NAND to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_NAND Signed-off-by: Adam Ford <[email protected]> [trini: Sync up a few more, add imply's] Signed-off-by: Tom Rini <[email protected]>
2017-08-08mtd: spi: sf_dataflash: Add print message while erase error[email protected]
Add the print message to tell us why the erase operation doesn't work. Signed-off-by: Wenyou Yang <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-08-08sf: Add Macronix MX25U6435F device parametersBin Meng
This adds support for Macronix flash MX25U6435F (device ID 0xc22537). Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-07-31configs: Migrate CMD_NAND*Tom Rini
Migrate all remaining instances of CMD_NAND, CMD_NAND_TRIMFFS CMD_NAND_LOCK_UNLOCK and CMD_NAND_TORTURE from the headers into the defconfig files. Tested-by: Adam Ford <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2017-07-24ubi: Kconfig: Make MTD_UBI select MTD_PARTITIONSKarl Beldan
This missing dependency has probably remained under the radar because MTD_PARTITIONS is still whitelisted. Signed-off-by: Karl Beldan <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2017-07-24ubi: Kconfig: Fix MTD_UBI selection dependencyKarl Beldan
Remove the ARCH_SUNXI dependency on selection of RBTREE. Cc: Boris Brezillon <[email protected]> Cc: Maxime Ripard <[email protected]> Cc: Jagan Teki <[email protected]> Signed-off-by: Karl Beldan <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2017-07-18Merge branch 'master' of git://www.denx.de/git/u-boot-imxTom Rini
2017-07-12imx: reorganize IMX code as other SOCsStefano Babic
Change is consistent with other SOCs and it is in preparation for adding SOMs. SOC's related files are moved from cpu/ to mach-imx/<SOC>. This change is also coherent with the structure in kernel. Signed-off-by: Stefano Babic <[email protected]> CC: Fabio Estevam <[email protected]> CC: Akshay Bhat <[email protected]> CC: Ken Lin <[email protected]> CC: Marek Vasut <[email protected]> CC: Heiko Schocher <[email protected]> CC: "Sébastien Szymanski" <[email protected]> CC: Christian Gmeiner <[email protected]> CC: Stefan Roese <[email protected]> CC: Patrick Bruenn <[email protected]> CC: Troy Kisky <[email protected]> CC: Nikita Kiryanov <[email protected]> CC: Otavio Salvador <[email protected]> CC: "Eric Bénard" <[email protected]> CC: Jagan Teki <[email protected]> CC: Ye Li <[email protected]> CC: Peng Fan <[email protected]> CC: Adrian Alonso <[email protected]> CC: Alison Wang <[email protected]> CC: Tim Harvey <[email protected]> CC: Martin Donnelly <[email protected]> CC: Marcin Niestroj <[email protected]> CC: Lukasz Majewski <[email protected]> CC: Adam Ford <[email protected]> CC: "Albert ARIBAUD (3ADEV)" <[email protected]> CC: Boris Brezillon <[email protected]> CC: Soeren Moch <[email protected]> CC: Richard Hu <[email protected]> CC: Wig Cheng <[email protected]> CC: Vanessa Maegima <[email protected]> CC: Max Krummenacher <[email protected]> CC: Stefan Agner <[email protected]> CC: Markus Niebel <[email protected]> CC: Breno Lima <[email protected]> CC: Francesco Montefoschi <[email protected]> CC: Jaehoon Chung <[email protected]> CC: Scott Wood <[email protected]> CC: Joe Hershberger <[email protected]> CC: Anatolij Gustschin <[email protected]> CC: Simon Glass <[email protected]> CC: "Andrew F. Davis" <[email protected]> CC: "Łukasz Majewski" <[email protected]> CC: Patrice Chotard <[email protected]> CC: Nobuhiro Iwamatsu <[email protected]> CC: Hans de Goede <[email protected]> CC: Masahiro Yamada <[email protected]> CC: Stephen Warren <[email protected]> CC: Andre Przywara <[email protected]> CC: "Álvaro Fernández Rojas" <[email protected]> CC: York Sun <[email protected]> CC: Xiaoliang Yang <[email protected]> CC: Chen-Yu Tsai <[email protected]> CC: George McCollister <[email protected]> CC: Sven Ebenfeld <[email protected]> CC: Filip Brozovic <[email protected]> CC: Petr Kulhavy <[email protected]> CC: Eric Nelson <[email protected]> CC: Bai Ping <[email protected]> CC: Anson Huang <[email protected]> CC: Sanchayan Maity <[email protected]> CC: Lokesh Vutla <[email protected]> CC: Patrick Delaunay <[email protected]> CC: Gary Bisson <[email protected]> CC: Alexander Graf <[email protected]> CC: [email protected] Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
2017-07-12mx6: soc: Move mxs_dma_init() into the mxs nand driverFabio Estevam
Currently the following build error is seen when a board using MMC SPL is built and the MXS nand driver is also selected: arch/arm/cpu/armv7/built-in.o: In function `arch_cpu_init': arch/arm/cpu/armv7/mx6/soc.c:432: undefined reference to 'mxs_dma_init' On mx6 the only user of mxs_dma_init() is the mxs nand driver, so move it there. Signed-off-by: Fabio Estevam <[email protected]>
2017-07-11mtd: nand: make nand_info array staticGrygorii Strashko
Make make nand_info array static, since all direct users of nand_info array have been converted to use get_nand_dev_by_index() API. Signed-off-by: Grygorii Strashko <[email protected]>
2017-07-11mtd: nand: drv: use get_nand_dev_by_index()Grygorii Strashko
As part of preparation for nand DM conversion the new API has been introduced to remove direct access to nand_info array. So, use it here instead of accessing to nand_info array directly Signed-off-by: Grygorii Strashko <[email protected]>
2017-07-11cmd: nand: abstract global variable usage for dm conversionMugunthan V N
nand_info is used all over the file so abstract it with get_nand_dev_by_index() which will help for DM conversion. Signed-off-by: Mugunthan V N <[email protected]> Signed-off-by: Grygorii Strashko <[email protected]>
2017-07-10mtd: stm32: use parameter instead of default valuePatrice Chotard
To set wait state, a hard coded value is used instead of using latency parameter. stm32_flash_latency_cfg() is currently used in arch/arm/mach-stm32/stm32f4/clock.c and in drivers/clk/clk_stm32f7.c with, in both case, "5" as parameter. Signed-off-by: Patrice Chotard <[email protected]>
2017-06-23mtd: OneNAND: Fix onenand_block_markbadLadislav Michl
commit dfe64e2c89731a3f9950d7acd8681b68df2bae03 Author: Sergey Lapin <[email protected]> Date: Mon Jan 14 03:46:50 2013 +0000 mtd: resync with Linux-3.7.1 modified onenand_block_markbad to call mtd_block_markbad, but as _block_markbad function pointer used by mtd_block_markbad to do actual job is by default pointing back to onenand_block_markbad there is no way this function ever finishes its job. Fix it by changing function body according current (4.12-rc6) linux implementation. Tested on IGEPv2 board with Muxed OneNAND(DDP) 512MB containing several unerasable blocks this function marked bad. Signed-off-by: Ladislav Michl <[email protected]>
2017-06-23onenand_spl_simple: Add DDP OneNAND supportLadislav Michl
Current implementation is unable to access second half of DDP OneNAND flash (reads first half mirrored). Use block and bufferram address calculations from onenand_base to fix this. Signed-off-by: Ladislav Michl <[email protected]>
2017-06-23onenand_spl_simple: Call onenand_spl_get_geometry() only onceLadislav Michl
Do not call onenand_spl_get_geometry() for each block read. Signed-off-by: Ladislav Michl <[email protected]>
2017-06-20arm: zynq: Move CONFIG_SF_DUAL_FLASH to defconfigMike Looijmans
Move the only use of CONFIG_SF_DUAL_FLASH to defconfig. This makes the associated topic_miamiplus.h header obsolete, so remove that as well. Signed-off-by: Mike Looijmans <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2017-06-16powerpc, 5xxx, 512x: remove support for mpc5xxx and mpc512xHeiko Schocher
There was for long time no activity in the mpx5xxx area. We need to go further and convert to Kconfig, but it turned out, nobody is interested anymore in mpc5xxx, so remove it. Signed-off-by: Heiko Schocher <[email protected]>
2017-06-16treewide: remove unneeded semicolonsMasahiro Yamada
Signed-off-by: Masahiro Yamada <[email protected]>
2017-06-05samsung: nand: Drop s3c2410_nand driverSimon Glass
This is not used anymore. Drop it. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: sandbox: spi: Convert driver to support livetreeSimon Glass
Update this driver to support a live device tree. Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: spi-flash: Convert uclass to livetreeSimon Glass
Update the SPI flash uclass to support a live device tree. Signed-off-by: Simon Glass <[email protected]>
2017-06-01fdt: Rename a few functions in fdt_supportSimon Glass
These two functions have an of_ prefix which conflicts with naming used in of_addr. Rename them: fdt_read_number fdt_support_bus_default_count_cells Signed-off-by: Simon Glass <[email protected]>
2017-06-01dm: gpio: Add live tree supportSimon Glass
Add support for requesting GPIOs with a live device tree. This involves adjusting the function signature for the legacy function gpio_request_by_name_nodev(), so fix up all callers. Signed-off-by: Simon Glass <[email protected]> Fixes to stm32f746-disco.c: Signed-off-by: Tom Rini <[email protected]>
2017-05-09fix: nand: pxa3xx: Remove hardcode values from the driverKonstantin Porotchkin
Obtain NAND controller setup parameters from the device tree instead of using hardcoded values. Signed-off-by: Konstantin Porotchkin <[email protected]> Cc: Scott Wood <[email protected]> Cc: Stefan Roese <[email protected]> Cc: Igal Liberman <[email protected]> Cc: Nadav Haklai <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2017-05-08mtd: nand: Consolidate nand spl loaders implementationLadislav Michl
nand_spl_load_image implementation was copied over into three different drivers and now with nand_spl_read_block used for ubispl situation gets even worse. For now use least intrusive solution and #include the same implementation to nand drivers. Signed-off-by: Ladislav Michl <[email protected]> Tested-by: Pau Pajuelo <[email protected]>
2017-04-18drivers: remove Blackfin specific driversMasahiro Yamada
These drivers have no user since commit ea3310e8aafa ("Blackfin: Remove"). Signed-off-by: Masahiro Yamada <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Michal Simek <[email protected]> Acked-by: Jaehoon Chung <[email protected]>
2017-04-13mtd: nand: atmel: use another functions to set gpio valueWenyou Yang
Because there isn't the implementation of gpio_set/get_value() and gpio_set/get_value() after the at91 gpio driver is converted to support the driver model, use at91_set_gpio_value() and at91_get_gpio_value() Signed-off-by: Wenyou Yang <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-04-08mtd: nand: am335x_spl_bch: Incorporate tWB delay in nand_command functionCooper Jr., Franklin
Various commands to NAND flash results in the NAND flash becoming busy. For those commands the SoC should wait until the NAND indicates it is no longer busy before sending further commands. However, there is a delay between the time the SoC sends its last command and when the NAND flash sets its Ready/Busy Pin. This delay (tWB) must be respected or the SoC may falsely assume the flash is ready when in reality it just hasn't had enough time to indicate that it is busy. Properly delaying by tWB is already done for nand_command/nand_command_lp in nand_base.c including the version of it in the Linux kernel. Therefore, this patch brings the handling of tWB delay inline to nand_base.c Signed-off-by: Franklin S Cooper Jr <[email protected]> [trini: Reformat comments slightly] Signed-off-by: Tom Rini <[email protected]>
2017-04-07nand: sunxi: Add options for the SPL NAND configurationMaxime Ripard
The SPL image needs to be built with a different ECC configuration than the U-Boot binary. Add Kconfig options with defaults to provide a value that should work for anyone, but is still configurable if needs be. Signed-off-by: Maxime Ripard <[email protected]> Acked-by: Boris Brezillon <[email protected]> Reviewed-by: Hans de Goede <[email protected]> Acked-by: Scott Wood <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-04-07mtd: sunxi: Change U-Boot offsetMaxime Ripard
The default U-Boot offset for the Allwinner SoCs was set to 32kB. This was probably to try to maintain some compatibility with the current image that we build for the MMC where the U-Boot binary is also located at a 32kB offset. However, this causes a number of issues. The first one is that it prevents us from using a backup SPL entirely, which is troublesome in case where the first would be corrupt (especially on MLC which have a higher number of bitflips). We also cannot use the original MMC image on the NAND, because we need to prepare the SPL image to include the ECCs and randomizer settings, which reduces the interest of setting it at that particular offset. It also prevents us from upgrading and flashing the U-Boot and SPLs independantly, since it's very likely that it will fall in the same erase block. Since that default wasn't used by any board, change it for 8MB, which will be in an erase block of its own, all the erase blocks being multiple of two. The highest erase block size we encountered is 4MB, which means that in this particular setup, the first and second erase blocks will be for the SPL and its backup, and the third for U-Boot. Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-04-07mtd: sunxi: Select the U-Boot location config optionMaxime Ripard
We'll need that symbol so that the default offset are defined Signed-off-by: Maxime Ripard <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-04-07mtd: ubi: Select RBTREE option from MTD_UBI Kconfig entryBoris Brezillon
Expose the RBTREE feature through Kconfig and select this option from the MTD_UBI option. Signed-off-by: Boris Brezillon <[email protected]> Signed-off-by: Maxime Ripard <[email protected]> Acked-by: Jagan Teki <[email protected]> [Rebased on master] Signed-off-by: Jagan Teki <[email protected]>
2017-04-07nand: sunxi: Fix modulo by zero errorMaxime Ripard
When trying to autodetect the ECC and randomization configurations, the driver starts with a randomization disabled and no seeds. In this case, the number of seeds is obviously 0, and the randomize boolean is set to false. However, the logic that retrieves the seed for a given page offset will blindly use the number of seeds, without testing if the randomization is enabled, basically doing a modulo by 0. As it turns out, the libgcc in the common toolchain returns 0 here, which was our expected value in such a case, and why we would not detect it. However, U-Boot's libgcc will for some reason return from the function instead, resulting in an error to load the U-Boot binary in the SPL. Signed-off-by: Maxime Ripard <[email protected]> Acked-by: Boris Brezillon <[email protected]> Acked-by: Scott Wood <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-04-06Merge branch 'master' of git://git.denx.de/u-boot-sunxiTom Rini
trini: Disable CONFIG_SPL_USE_ARCH_MEMSET on orangepi_2 Signed-off-by: Tom Rini <[email protected]>
2017-04-05Blackfin: RemoveTom Rini
The architecture is currently unmaintained, remove. Cc: Benjamin Matthews <[email protected]> Cc: Chong Huang <[email protected]> Cc: Dimitar Penev <[email protected]> Cc: Haitao Zhang <[email protected]> Cc: I-SYST Micromodule <[email protected]> Cc: M.Hasewinkel (MHA) <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Martin Strubel <[email protected]> Cc: Peter Meerwald <[email protected]> Cc: Sonic Zhang <[email protected]> Cc: Valentin Yakovenkov <[email protected]> Cc: Wojtek Skulski <[email protected]> Cc: Wojtek Skulski <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2017-04-05sunxi: prepare for sharing MACH_SUN8I_H3 config symbolAndre Przywara
The Allwinner H5 is very close to the H3 SoC, but has ARMv8 cores. To allow sharing the clocks, GPIO and driver code easily, create an architecture agnostic MACH_SUNXI_H3_H5 Kconfig symbol. Rename the existing symbol to MACH_SUNXI_H3_H5 where code is shared and let it be selected by a new shared Kconfig option. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Maxime Ripard <[email protected]>
2017-04-05SPI: SPL: sunxi: fix 64-bit buildAndre Przywara
Addresses passed on to readl and writel are expected to be of the same size as a pointer. Change the parameter types of sunxi_spi0_read_data() to make the compiler happy and allow a warning-free aarch64 compile. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Maxime Ripard <[email protected]> Reviewed-by: Jagan Teki <[email protected]>
2017-04-04dm: core: Add flags parameter to device_remove()Stefan Roese
This patch adds the flags parameter to device_remove() and changes all calls to this function to provide the default value of DM_REMOVE_NORMAL for "normal" device removal. This is in preparation for the driver specific pre-OS (e.g. DMA cancelling) remove support. Signed-off-by: Stefan Roese <[email protected]> Cc: Simon Glass <[email protected]> Acked-by: Simon Glass <[email protected]>
2017-03-28mtd: nand: remove nand size print from nand_init functionHou Zhiqiang
Add nand_size() function to move the nand size print into initr_nand(). Remove nand size print from nand_init() to allow other function to call nand_init() without printing nand size. Signed-off-by: Hou Zhiqiang <[email protected]> Reviewed-by: York Sun <[email protected]>
2017-03-28mtd: nand: add initialization flagHou Zhiqiang
Add initialization flag to avoid initializing NAND Flash multiple times, otherwise it will calculate a wrong total size. Signed-off-by: Hou Zhiqiang <[email protected]> Reviewed-by: York Sun <[email protected]>
2017-02-19mtd: nand: build MXS driver for MX7 as wellAndrey Yurovsky
The i.MX7 has the same GPMI controller as i.MX6 and is covered by the MXS driver. Tell Kconfig that we can use this driver on the MX7 platform (the MXS driver already has the few i.MX7-specific changes needed for basic operation and the board itself sets the pinmux correctly). Tested on i.MX7D with the Sabre board and a NAND Flash soldered to U12. Signed-off-by: Andrey Yurovsky <[email protected]>
2017-02-12flash: complete CONFIG_SYS_NO_FLASH move with renamingMasahiro Yamada
We repeated partial moves for CONFIG_SYS_NO_FLASH, but this is not completed. Finish this work by the tool. During this move, let's rename it to CONFIG_MTD_NOR_FLASH. Actually, we have more instances of "#ifndef CONFIG_SYS_NO_FLASH" than those of "#ifdef CONFIG_SYS_NO_FLASH". Flipping the logic will make the code more readable. Besides, negative meaning symbols do not fit in obj-$(CONFIG_...) style Makefiles. This commit was created as follows: [1] Edit "default n" to "default y" in the config entry in common/Kconfig. [2] Run "tools/moveconfig.py -y -r HEAD SYS_NO_FLASH" [3] Rename the instances in defconfigs by the following: find . -path './configs/*_defconfig' | xargs sed -i \ -e '/CONFIG_SYS_NO_FLASH=y/d' \ -e 's/# CONFIG_SYS_NO_FLASH is not set/CONFIG_MTD_NOR_FLASH=y/' [4] Change the conditionals by the following: find . -name '*.[ch]' | xargs sed -i \ -e 's/ifndef CONFIG_SYS_NO_FLASH/ifdef CONFIG_MTD_NOR_FLASH/' \ -e 's/ifdef CONFIG_SYS_NO_FLASH/ifndef CONFIG_MTD_NOR_FLASH/' \ -e 's/!defined(CONFIG_SYS_NO_FLASH)/defined(CONFIG_MTD_NOR_FLASH)/' \ -e 's/defined(CONFIG_SYS_NO_FLASH)/!defined(CONFIG_MTD_NOR_FLASH)/' [5] Modify the following manually - Rename the rest of instances - Remove the description from README - Create the new Kconfig entry in drivers/mtd/Kconfig - Remove the old Kconfig entry from common/Kconfig - Remove the garbage comments from include/configs/*.h Signed-off-by: Masahiro Yamada <[email protected]>
2017-02-08dm: core: Replace of_offset with accessorSimon Glass
At present devices use a simple integer offset to record the device tree node associated with the device. In preparation for supporting a live device tree, which uses a node pointer instead, refactor existing code to access this field through an inline function. Signed-off-by: Simon Glass <[email protected]>