summaryrefslogtreecommitdiff
path: root/include/flash.h
AgeCommit message (Collapse)Author
2024-09-24flash: prefix error codes with FL_Jerome Forissier
Prefix the flash status codes (ERR_*) with FL_ in order to avoid clashes with third-party libraries. Case in point: including the lwIP library header file <lwip/err.h> which defines err_enum_t as an enum with values being ERR_*. Signed-off-by: Jerome Forissier <[email protected]> Reviewed-by: Tom Rini <[email protected]> Reviewed-by: Ilias Apalodimas <[email protected]> Reviewed-by: Peter Robinson <[email protected]>
2024-07-29include: Remove duplicate newlinesMarek Vasut
Drop all duplicate newlines. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-06common: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from all "commmon/" files and when needed add missing include files directly. Signed-off-by: Tom Rini <[email protected]>
2023-05-15mtd: cfi: respect reg address lengthNuno Sá
flash_get_size() will get the flash size from the device itself and go through all erase regions to read protection status. However, the device mappable region (eg: devicetree reg property) might be lower than the device full size which means that the above cycle will result in a data bus exception. This change fixes it by reading the 'addr_size' during probe() and also use that as one possible upper limit. Signed-off-by: Nuno Sá <[email protected]>
2022-08-04Audit <flash.h> inclusionTom Rini
A large number of files include <flash.h> as it used to be how various SPI flash related functions were found, or for other reasons entirely. In order to migrate some further CONFIG symbols to Kconfig we need to not include flash.h in cases where we don't have a NOR flash of some sort enabled. Furthermore, in cases where we are in common code and it doesn't make sense to try and further refactor the code itself in to new files we need to guard this inclusion. Signed-off-by: Tom Rini <[email protected]>
2021-08-11flash.h: Remove CONFIG_SYS_FLASH_CFI from flash_info_tBin Meng
Those embers wrapped with CONFIG_SYS_FLASH_CFI in struct flash_info_t are unconditionally used in the cfi_flash.c driver. Drop the #ifdefs in the definition of flash_info_t. Signed-off-by: Bin Meng <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-04-06cfi_flash: Fix detection of 8-bit bus flash devices via address shiftJagannadha Sutradharudu Teki
We had a problem detecting 8/16bit flash devices connected only via 8bits to the SoC for quite a while. Commit 239cb9d9 [mtd: cfi_flash: Fix CFI flash driver for 8-bit bus support] finally fixed this 8-bit bus support. But also broke some other boards using this cfi driver. So this patch had to be reverted. I spotted a different, simpler approach for this 8-bit bus support on the barebox mailing list posted by Oleksij Rempel <[email protected]>: http://www.spinics.net/lists/u-boot-v2/msg14687.html Here the commit text: " Many cfi chips support 16 and 8 bit modes. Most important difference is use of so called "Q15/A-1" pin. In 16bit mode this pin is used for data IO. In 8bit mode, it is an address input which add one more least significant bit (LSB). In this case we should shift all adresses by one: For example 0xaa << 1 = 0x154 " This patch now is a port of this barebox patch to U-Boot. Along with the change w.r.t from barebox, Some flash chips can support multiple bus widths, override the interface width and limit it to the port width. Tested on 16-bit Spansion flash on sequoia. Tested 8-bit flashes like 256M29EW, 512M29EW. Signed-off-by: Stefan Roese <[email protected]> Tested-by: Jagannadha Sutradharudu Teki <[email protected]> Cc: Jagannadha Sutradharudu Teki <[email protected]> Cc: Aaron Williams <[email protected]> Cc: Chandrakala Chavva <[email protected]> Cc: Andre Przywara <[email protected]> Cc: Vignesh Raghavendra <[email protected]> Cc: Simon Glass <[email protected]> Cc: Mario Six <[email protected]> Cc: York Sun <[email protected]> Cc: Marek Vasut <[email protected]>
2020-05-18flash: Tidy up coding style for flash functionsSimon Glass
Some functions use the wrong code style and generate checkpatch errors. Fix these. Signed-off-by: Simon Glass <[email protected]>
2020-01-17common: Move flash_perror() to flash.hSimon Glass
This function belongs more in flash.h than common.h so move it. Also remove the space before the bracket in some calls. Signed-off-by: Simon Glass <[email protected]>
2019-12-03mtd: rename CONFIG_MTD -> CONFIG_DM_MTDMiquel Raynal
CONFIG_MTD must be reserved for the MTD core. Like any other subsystem, prefix the symbol by DM when it comes to DM support. Signed-off-by: Miquel Raynal <[email protected]> Reviewed-by: Boris Brezillon <[email protected]> [trini: Add Kconfig files] Signed-off-by: Tom Rini <[email protected]>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <[email protected]>
2018-01-29flash: Fix spelling of "ERR_TIMOUT"Mario Six
checkpatch.pl complains about the spelling of ERR_TIMOUT. Since the error is only used in a handful of files, we rename the error to ERR_TIMEOUT. Signed-off-by: Mario Six <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2017-09-26mtd: cfi: Add support for status register pollingMarek Vasut
The status register is optional in the AMD command sets, but it's presence can be checked by reading out CFI table entry 0xc bit 0. If the register is present, prefer using it's bit 7 to determine if the flash is busy over reading the flash ; this is needed ie. on Hyperflash memories. Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2017-09-26mtd: cfi: Zap cfi_flash_base in DM caseMarek Vasut
Embed the flash base into struct flash_info instead of having ad-hoc static array in the code. This does not only remove static variable, but also allows CFI-like controllers, ie. HyperFlash ones, to use most of the CFI flash code by populating the flash_info with matching base address. Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Stefan Roese <[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-13stm32f1: remove stm32f1 supportPatrice Chotard
A few years ago STM32F1 SoCs support has been added : 0144caf22ce6acd5c gpio: stm32: add stm32f1 support 2d18ef2364fd3561a ARMv7M: add STM32F1 support But neither STM32F1 dedicated defconfig nor board was associated to these commits. Got confirmation from Tom Rini and Matt Porter to remove all this code [1] [1] http://u-boot.10912.n7.nabble.com/Remove-STM32F1-support-td301603.html Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2017-08-08mtd: cfi: Zap CFI_FLASH_SHIFT_WIDTH redefinitionMarek Vasut
This is defined twice in the same file, with the same value, likely because of some patch merge issue. Pick the uglier one and nuke it. Signed-off-by: Marek Vasut <[email protected]> Cc: Tom Rini <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2016-05-21flash: add device ID for Microchip PIC32 internal flash.Purna Chandra Mandal
Microchip PIC32 has internal parallel flash (non-CFI compliant). These flash devices do not support any identifier command so no standard IDs. Added unique IDs to seperate these flash devices from others supported by U-Boot. Signed-off-by: Purna Chandra Mandal <[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]>
2015-11-30cfi_flash: give default CONFIG_SYS_MAX_FLASH_SECT in flash.hThomas Chou
Give default CONFIG_SYS_MAX_FLASH_SECT in flash.h, so that the header can be included regardless of the present of flash. The value 512 is the most used. Signed-off-by: Thomas Chou <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2015-11-12dm: implement a MTD uclassThomas Chou
Implement a Memory Technology Device (MTD) uclass. It should include most flash drivers in the future. Though no uclass ops are defined yet, the MTD ops could be used. The NAND flash driver is based on MTD. The CFI flash and SPI flash support MTD, too. It should make sense to convert them to MTD uclass. Signed-off-by: Thomas Chou <[email protected]>
2015-05-28ARMv7M: add STM32F1 supportMatt Porter
Add ARMv7M STM32F1 support including clocks, timer, gpio, and flash. Signed-off-by: Matt Porter <[email protected]>
2015-04-22ARMv7M: Add STM32F4 support[email protected]
Signed-off-by: Kamil Lulko <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2014-11-19mtd: Handle 29LV800BTDirk Eibach
The device id makes u-boot think that this chip needs cfi_reverse_geometry(), which is not the case. Add it to jedec_flash, so it is handled properly. Signed-off-by: Dirk Eibach <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2013-10-14Coding Style cleanup: remove trailing white spaceWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]>
2013-07-24Add GPL-2.0+ SPDX-License-Identifier to source filesWolfgang Denk
Signed-off-by: Wolfgang Denk <[email protected]> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <[email protected]>
2013-01-10mtd/cfi: add support for SST 4KB sector granularityAngelo Dureghello
Add support for SST 4KB sector granularity. Many recent SST flashes, i.e. SST39VF3201B and similar of this family are declared CFI-conformant from SST. They support CFI query, but implement 2 different sector sizes in the same memory: a 64KB sector (they call it "block", std AMD erase cmd=0x30), and a 4KB sector (they call it "sector", erase cmd=0x50). Also, CFI query on these chips, reading from address 0x2dh of cfi query struct, detects a number of secotrs for the 4KB granularity (flinfo shows it). For all other aspects, they are CFI compliant, so, as Linux do, i think it's a good idea to handle these chips in the CFI driver, with a fixup to allow 4KB granularity, as should be expected, instead of 64KB. Signed-off-by: Angelo Dureghello <[email protected]> Signed-off-by: Stefan Rose <[email protected]>
2012-10-26arm: Remove support for lpc2292Marek Vasut
This stuff has been rotting in the tree for a year now. Remove it. Signed-off-by: Marek Vasut <[email protected]>
2012-09-03cfi: Make the flash erase and write operations abortableJoe Hershberger
Check for ctrlc() in operations that take time and loop over the flash addresses. In netconsole, tstc() is expensive. Only check once in a while to not slow down the operation significantly. Signed-off-by: Joe Hershberger <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2012-08-13mtd/cfi_flash: fix write problems for Numonyx P33/30 32 MBit flashsHolger Brunck
commit 54652991 Work around bug in Numonyx P33/P30 256-Mbit 65nm flash chips fixes a problem for Numonyx P33/P30 flashes for 256-Mbit, but this leads to problems for smaller versions of this chip e.g. the 32Mbit version with deviceid 0x16 on mgcoge. So move the code for this work around to an own function and check previously manufacturer id and device id to not break other flashes which don't need this work around. Signed-off-by: Holger Brunck <[email protected]> Signed-off-by: Heiko Schocher <[email protected]> cc: Stefan Roese <[email protected]> cc: Philippe De Muyter <[email protected]> cc: Gerlando Falauto <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2011-04-07mtd, cfi: introduce void flash_protect_default(void)Heiko Schocher
collect code which protects default sectors in a function, called flash_protect_default. So boardspecific code can call it too. Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2010-09-20cfi_flash: Simplify dynamic flash bank number detectionStefan Roese
This patch simplifies the use of CONFIG_SYS_MAX_FLASH_BANKS_DETECT. By moving these optional variables and defines into the common code, board specific code is minimized. Currently only the following board use this feature: APC405, IDS8247, TQM834x And IDS8247 doesn't seem to really need this feature, since its not updating the bank number variable at all. So this patch removes the definition of CONFIG_SYS_MAX_FLASH_BANKS_DETECT from this board port. This new framework will be used by the upcoming lwmon5 update as well. Signed-off-by: Stefan Roese <[email protected]> Acked-by: Heiko Schocher <[email protected]> Cc: Matthias Fuchs <[email protected]>
2009-08-26Support up to 7 banks for ids as specified in JEDEC JEP106ZNiklaus Giger
see http://www.jedec.org/download/search/jep106Z.pdf Add some second source legacy flash chips 256x8. Signed-off-by: Niklaus Giger <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2009-04-04UBI/cfi-mtd: Fix mtd name for multiple chipsAndreas Huber
On platforms with multiple NOR chips, currently only the first one can be selected using the "ubi part" command. This patch fixes this problem by using different names for the NOR "mtd devices". It also changes the name of the NOR MTD device from "cfi-mtd" to "norX" (X indexing the device numer) to better match the mtdparts defaults. Signed-off-by: Stefan Roese <[email protected]> Signed-off-by: Andreas Huber <[email protected]>
2009-02-11cfi: make flash_get_info() non staticHeiko Schocher
If on your board is more than one flash, you must know the size of every single flash, for example, for updating the DTS before booting Linux. So make this function flash_get_info() extern, and you can have all info about your flashes. Signed-off-by: Heiko Schocher <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2009-02-05flash/cfi_flash: Use virtual sector start address, not physBecky Bruce
include/flash.h was commented to say that the address in flash_info->start was a physical address. However, from u-boot's point of view, and looking at most flash code, it makes more sense for this to be a virtual address. So I corrected the comment to indicate that this was a virtual address. The only flash driver that was actually treating the address as physical was the mtd/cfi_flash driver. However, this code was using it inconsistently as it actually directly dereferenced the "start" element, while it used map_physmem to get a virtual address in other places. I changed this driver so that the code which initializes the info->start field calls map_physmem to get a virtual address, eliminating the need for further map_physmem calls. The code is now consistent. The *only* place a physical address should be used is when defining the flash banks list that is used to initialize the flash_info struct, usually found in the board config file. Signed-off-by: Becky Bruce <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2008-11-24cfi-mtd: Add cfi-mtd driver.Piotr Ziecik
Add cfi-mtd driver, which exports CFI flash to MTD layer. This allows CFI flash devices to be used from MTD layer. Building of the new driver is controlled by CONFIG_FLASH_CFI_MTD option. Initialization is done by calling cfi_mtd_init() from flash_init(). Signed-off-by: Piotr Ziecik <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2008-11-24cfi_flash: Add interface for flash verbosity controlPiotr Ziecik
Add interface for flash verbosity control. It allows to disable output from low-level flash API. It is useful when calling these low-level functions from context other than flash commands (for example the MTD/CFI interface implmentation). Signed-off-by: Piotr Ziecik <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2008-11-24cfi_flash: Export flash_sector_size() function.Piotr Ziecik
Export flash_sector_size() function from drivers/mtd/cfi_flash.c, so that it can be used in the upcoming cfi-mtd driver. Signed-off-by: Piotr Ziecik <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2008-10-18rename CFG_ macros to CONFIG_SYSJean-Christophe PLAGNIOL-VILLARD
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
2008-10-18flash: factor out adjusting of Flash address to the end of sectorBartlomiej Sieka
The upcoming automatic update feature needs the ability to adjust an address within Flash to the end of its respective sector. Factor out this functionality to a new function flash_sect_roundb(). Signed-off-by: Rafal Czubak <[email protected]> Signed-off-by: Bartlomiej Sieka <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2008-05-21Big white-space cleanup.Wolfgang Denk
This commit gets rid of a huge amount of silly white-space issues. Especially, all sequences of SPACEs followed by TAB characters get removed (unless they appear in print statements). Also remove all embedded "vim:" and "vi:" statements which hide indentation problems. Signed-off-by: Wolfgang Denk <[email protected]>
2007-12-13CFI: synchronize command offsets with Linux CFI driverBartlomiej Sieka
Fixes non-working CFI Flash on the Inka4x0 board. Signed-off-by: Bartlomiej Sieka <[email protected]>
2007-12-08CFI: support JEDEC flash roms in CFI-flash frameworkMichael Schwingen
The following patch adds support for non-CFI flash ROMS, by hooking into the CFI flash code and using most of its code, as recently discussed here in the thread "Mixing CFI and non-CFI flashs". Signed-off-by: Michael Schwingen <[email protected]> Signed-off-by: Stefan Roese <[email protected]>
2007-08-14Add MACH_TYPE records for several AT91 boards.Peter Pearse
Merge to two at45.c files into a common file, split to at45.c and spi.c Fix spelling error in DM9161 PHY Support. Initialize at91rm9200 board (and set LED). Add PIO control for at91rm9200dk LEDs and Mux. Change dataflash partition boundaries to be compatible with Linux 2.6. Signed-off-by: Peter Pearse <[email protected]> Signed-off-by: Ulf Samuelsson <[email protected]>
2007-03-19[PATCH] Add flash chip M29W320ET/B supportAubrey Li
2007-01-24Add port for the lpc2292sodimm evaluation board from EmbeddedArtistsGary Jennejohn
2006-12-24Fix cfi failure with Spansion Flash (Spansion Flash Devices have a different ↵Stefano Babic
offset to go into CFI mode)