aboutsummaryrefslogtreecommitdiffstats
path: root/package/system/mtd/src/trx.c
Commit message (Collapse)AuthorAgeFilesLines
* mtd: improve check for TRX header being already fixedRafał Miłecki2018-07-151-7/+8
| | | | | | | | | | | First of all lengths should be compared after checking all blocks for being good/bad. It's because requested length may differ from a final one if there were some bad blocks. Secondly it makes sense to also compare crc32 since we already have a new one calculated. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* mtd: support bad blocks within the mtd_fixtrx()Rafał Miłecki2018-07-151-6/+28
| | | | | | | | | | | | | | | | Reading MTD data with (p)read doesn't return any error when accessing bad block. As the result, with current code, CRC32 covers "data" stored in bad blocks. That behavior doesn't match CFE's one (bootloader simply skips bad blocks) and may result in: 1) Invalid CRC32 2) CFE refusing to boot firmware with a following error: Boot program checksum is invalid Fix that problem by checking every block before reading its content. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* mtd: fix up error messagesJohn Crispin2016-10-151-1/+1
| | | | | | remove the "Error fixing up TRX header" message which is misleading. Signed-off-by: John Crispin <john@phrozen.org>
* treewide: replace nbd@openwrt.org with nbd@nbd.nameFelix Fietkau2016-06-071-1/+1
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* mtd: add -c option for specifying amount of data to be used for checksumRafał Miłecki2016-05-091-8/+17
| | | | | | | | | | | | | | | 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>
* mtd: trx: use separated buffer for TRX headerRafał Miłecki2016-05-091-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>
* mtd: detect image format when writingRafał Miłecki2016-02-061-9/+5
| | | | | | | | | | | | | | | 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> SVN-Revision: 48639
* 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> SVN-Revision: 48534
* 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> SVN-Revision: 45896
* 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> SVN-Revision: 42405
* 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> SVN-Revision: 38973 Signed-off-by: Mathias Adam <m.adam--openwrt@adamis.de> SVN-Revision: 42403
* packages: clean up the package folderJohn Crispin2013-06-211-0/+220
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 37007