aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/mtd/src
Commit message (Collapse)AuthorAgeFilesLines
* treewide: fix replace nbd@openwrt.org with nbd@nbd.nameFelix Fietkau2016-06-196-6/+6
| | | | | | Signed-off-by: Felix Fietkau <nbd@nbd.name> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49379 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: imagetag: fix compilation with changed mtd_fixtrx callLuka Perkov2016-06-191-1/+4
| | | | | | | | Function mtd_fixtrx was changed during trx improvements. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49371 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: add -c option for specifying amount of data to be used for checksumRafał Miłecki2016-06-193-12/+31
| | | | | | | | | | | | | | | | | So far fixtrx was calculating checksum over amount of data matching partition erase size. It was mostly a workaround of checksum problem after changing anything in initial TRX content (e.g. formatting JFFS2). Its main purpose was to make bootloader accept modified TRX. This didn't provide much protection of flash data against corruption. This new option lets caller request calculating checksum over a bigger amount of data. It may be used e.g. to include whole kernel data for checksum and hopefully make bootloader go info failsafe mode if something goes wrong. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49317 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: trx: use separated buffer for TRX headerRafał Miłecki2016-06-191-5/+18
| | | | | | | | | | We plan to adjust usage of the main buffer to allow reading custom amount of data for CRC32. This means we need another buffer that will be always block aligned. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49316 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: seama: exit with error if Seama header wasn't foundRafał Miłecki2016-06-191-1/+1
| | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49314 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: seama: fix image data handlingRafał Miłecki2016-06-191-28/+18
| | | | | | | | | | | | | | 1) Put sanity checks in one place 2) Respect provided offset 3) Read only as much data as needed for MD5 calculation Thanks to the last change this is a great speedup and memory saver. On devices with NAND flash we were allocating & reading about 128 MiB while something about 8 MiB is enough. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49309 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: seama: move buf allocation to the MD5 functionRafał Miłecki2016-06-191-16/+22
| | | | | | | | This buf is only used in this function now, so lets move it there. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49308 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: seama: update MD5 using header in the first block bufferRafał Miłecki2016-06-191-4/+3
| | | | | | | | | This will allow separating first block buffer from a buffer used for MD5 calculation. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49307 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: seama: add md5 to header structRafał Miłecki2016-06-192-12/+11
| | | | | | | | | This allows us to drop some extra offset calculations and simplifies code a bit. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49306 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: check for Seama magic early when fixing MD5Rafał Miłecki2016-06-191-7/+21
| | | | | | | | | This avoid long (and unneeded) process of reading all data in case of running on MTD not containig Seama entity. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49304 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: add missing breaks in a switchRafał Miłecki2016-06-191-0/+2
| | | | | | | | | On platforms supporting both: TRX and Seama calling "fixtrx" was resulting in trying to fix Seama as well. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49301 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: use tabs for indentsRafał Miłecki2016-06-191-7/+7
| | | | | | | | This makes code style consistent across the whole file. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@49300 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: fix reading of image magic bytes in smaller chunksJohn Crispin2016-03-031-5/+12
| | | | | | | | | | | | | | | The image_check currently fails when it cannot read all magic bytes in a single chunk. But this can happen when the data are read from a pipe. This currently breaks the openmesh.sh upgrade script with musl because it uses dd with a blocksize of 1 to copy the image file to the mtd process. The read can simply be repeated until enough bytes are read for the magic byte check. It only stops when either an error was returned or 0 bytes were read. Signed-off-by: Sven Eckelmann <sven.eckelmann@open-mesh.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48891 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: fix Seama format after replacing EOF with sysupgrade dataRafał Miłecki2016-02-101-2/+13
| | | | | | | | | | Seama header has MD5 similarly to TRX and its CRC32. We need to update it after replacing anything in Seama entity content to make bootloader accept it. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48688 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: detect image format when writingRafał Miłecki2016-02-063-13/+60
| | | | | | | | | | | | | | | Recently TRX checking code was changed to detect Seama format and don't abort whole writing operation because of it. This isn't a good long-term solution. It's a poor idea to teach every format handler recognizing all possible formats. Instead it should be handled in a generic code which should run check depending on the detected format. This will also allow further improvements like fixing formats other than TRX after replacing JFFS2. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48639 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: allow writing Seama files to "firmware" on Broadcom targetsRafał Miłecki2016-01-281-0/+6
| | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48534 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: enable "fixseama" on bcm53xxRafał Miłecki2016-01-281-1/+1
| | | | | | | | There are D-Link bcm53xx devices using Seama format. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48521 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kirkwood: support Linksys boot counter on EA[34]500Luka Perkov2015-11-101-0/+1
| | | | | | | | | | | | | This is done with existing code from the WRT1900AC port. It makes sure the "auto_recovery" bootloader option is set, and resets the s_env boot counter after a successful boot. This gives users without a serial console connection some measure of safety. Signed-off-by: Claudio Leite <leitec@staticky.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47433 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mvebu: add support for the Linksys boot counterImre Kaloz2015-08-194-0/+128
| | | | | | | | | | | | | | The u-boot boot counter was never reset after a successful boot, which sometimes could make some variables become out of sync. This patch adds support for the boot counter and enables auto_recovery unconditionally. Signed-off-by: Jonas Gorski <jogo@openwrt.org> Signed-off-by: Rob Mosher <nyt-openwrt@countercultured.net> Signed-off-by: Imre Kaloz <kaloz@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@46690 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: add missing <endian.h> includeFelix Fietkau2015-06-051-0/+1
| | | | | | | | | | | | | | trx.c in mtd would not include endian.h, so on systems that do not have this header implicitly included from the other headers (like musl), both __BYTE_ORDER and __BIG_ENDIAN would be undefined and thus 0, leading to it always presuming a big-endian system. this would lead to issues when running mtd fixtrx on little-endian systems, as it would never recognize the TRX magic as result of the broken STORE32_LE() macro. Signed-off-by: Shiz <hi@shiz.me> Tested-by: Shiz <hi@shiz.me> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45896 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: fix md5sum error checkingJohn Crispin2015-03-051-1/+1
| | | | | | | | | | | | | | In mtd_verify(), the return value of md5sum() has been interpreted as error if nonzero, while the function returns number of processed bytes, which caused mtd_verify() to always fail. This patch fixes error checking to interpret only negative values as errors. Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44605 3c298f89-4303-0410-b956-a3cf2f4a3e73
* package: mtd: move bcm963xx_tag definition into source codeJonas Gorski2015-02-271-1/+92
| | | | | | | | | | Remove the need for the header file to be exported - we don't need most of it anyway; all we care about are the offset of the rootfs length and header crc fields. Signed-off-by: Jonas Gorski <jogo@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44557 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: make the dump commnd honour the -o optionJohn Crispin2014-12-031-6/+5
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43512 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: make the mtd dump call run properly on nand flashJohn Crispin2014-12-021-5/+18
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43503 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: add ability to dump a mtd deviceJohn Crispin2014-12-021-5/+57
| | | | | | | | | this can be used on nand flashes and will skip bad blocks and run ecc on the read data before dumping it. Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43500 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: fix 2 compiler warningsJohn Crispin2014-11-261-2/+1
| | | | | | | | | mtd.c:544:7: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘ssize_t’ [-Wformat] mtd.c:602:1: warning: label ‘done’ defined but not used [-Wunused-label] Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43383 3c298f89-4303-0410-b956-a3cf2f4a3e73
* bcm53xx: add fixtrxHauke Mehrtens2014-09-211-0/+1
| | | | | | | | | | Without running fixtrx the image will not boot at the second time, because the CRC the boot loader check is invalid at that time. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42639 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: disable trx_check() for ar71xx, fixes a regression introduced in r42403Felix Fietkau2014-09-021-0/+2
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42405 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: Fix trx check after partition rename ("linux" to "firmware")Felix Fietkau2014-09-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | On brcm47xx (Huawei E970), I noticed that sysupgrade now tries to flash trx images which don't fit into the flash, resulting in non-booting system. I found that mtd does trx size checking only when flashing to a partition called "linux". This patch changes this to be "firmware". This matches the following patch which changed partition name in bcm47xxpart.c driver to "firmware": commit 86b4d5ef68ca77ff6724ebb9bddd6b93239c87fc Author: hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> Date: Sun Dec 1 16:32:32 2013 +0000 brcm47xx: use "firmware" partition name ... Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38973 3c298f89-4303-0410-b956-a3cf2f4a3e73 Signed-off-by: Mathias Adam <m.adam--openwrt@adamis.de> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42403 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: fix compile error with muslFelix Fietkau2014-05-211-0/+1
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40819 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: improve mtd detectionJohn Crispin2014-03-301-1/+3
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40301 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: add support for bad blocks in NAND flashFelix Fietkau2014-03-263-5/+56
| | | | | | | | | | | | | NAND flash is very likely to contain bad blocks. Currently, mtd and therefore sysupgrade fails when it encounters a single bad block, potentially leaving an unbootable system. This patch allows the mtd utility to skip bad blocks in NAND flash and complete sysupgrade successfully. Patch by: Matthew Redfearn <matt.redfearn@nxp.com> Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40021 3c298f89-4303-0410-b956-a3cf2f4a3e73
* mtd: add a "mtd verify" callJohn Crispin2013-11-192-2/+71
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38871 3c298f89-4303-0410-b956-a3cf2f4a3e73
* ar71xx: Unifi AP Pro sysupgrade patchFelix Fietkau2013-11-141-3/+12
| | | | | | | | | | | | | | | | | | The current implementation of mtd will not append the backup file created by sysupgrade to the correct partition, as mtd will append the data to first jffs2 partition it finds. As the kernel is also stored on a jffs2 partition (which resides before the overlay partition), the data will be appended to this partition. To fix this problem, a new option -s <number> skip the first n bytes when appending data to the jffs2 partiton, defaults to "0" is added to mtd. Signed-off-by: Peter Wagner <tripolar@gmx.at> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38807 3c298f89-4303-0410-b956-a3cf2f4a3e73
* package/mtd: enable seama fixup code for ar71xxGabor Juhos2013-09-191-1/+1
| | | | | | | | It will be used for the WD My Net N600. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38073 3c298f89-4303-0410-b956-a3cf2f4a3e73
* kernel/base-files: clean up old code related to refreshing mtd partitions, ↵Felix Fietkau2013-07-141-38/+0
| | | | | | | | it is no longer used anywhere Signed-off-by: Felix Fietkau <nbd@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37282 3c298f89-4303-0410-b956-a3cf2f4a3e73
* packages: clean up the package folderJohn Crispin2013-06-2115-0/+2973
Signed-off-by: John Crispin <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37007 3c298f89-4303-0410-b956-a3cf2f4a3e73