Commit Graph

31 Commits (e6fbf31baae41b618ff333f3ae55ff032333bd6a)

Author SHA1 Message Date
Rafał Miłecki c9b3099b32 mtd: seama: exit with error if Seama header wasn't found
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r49314

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49315 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki 1508cf8713 mtd: seama: fix image data handling
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>

Backport of r49309

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49313 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki f9e8c4c3cc mtd: seama: move buf allocation to the MD5 function
This buf is only used in this function now, so lets move it there.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r49308

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49312 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki 79bd6bc9fb mtd: seama: update MD5 using header in the first block buffer
This will allow separating first block buffer from a buffer used for MD5
calculation.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r49307

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49311 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki 8ae10b6d32 mtd: seama: add md5 to header struct
This allows us to drop some extra offset calculations and simplifies
code a bit.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r49306

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49310 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki 7a4273314a mtd: check for Seama magic early when fixing MD5
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>

Backport of r49304

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49305 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki c3c7d8b142 mtd: add missing breaks in a switch
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>

Backport of r49301

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49303 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki 59537359b7 mtd: use tabs for indents
This makes code style consistent across the whole file.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r49300

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49302 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-06-19 19:56:13 +02:00
Rafał Miłecki 1b11871094 mtd: enable "fixseama" on bcm53xx
There are D-Link bcm53xx devices using Seama format.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

Backport of r48521

git-svn-id: svn://svn.openwrt.org/openwrt/branches/chaos_calmer@49169 3c298f89-4303-0410-b956-a3cf2f4a3e73
2016-04-15 11:24:51 +00:00
Imre Kaloz 9f8042dd1f mvebu: add support for the Linksys boot counter (backport of r46690)
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/branches/chaos_calmer@46691 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-08-19 08:35:41 +00:00
Felix Fietkau 55ec20b9a8 mtd: add missing <endian.h> include
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
2015-06-05 09:00:02 +00:00
John Crispin 8a9f7fdf7d mtd: fix md5sum error checking
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
2015-03-05 20:25:02 +00:00
Jonas Gorski 02ce1ebb75 package: mtd: move bcm963xx_tag definition into source code
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
2015-02-27 17:38:25 +00:00
John Crispin 41c3bf1931 mtd: make the dump commnd honour the -o option
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43512 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-12-03 20:22:32 +00:00
John Crispin 31de27e5ec mtd: make the mtd dump call run properly on nand flash
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43503 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-12-02 19:28:23 +00:00
John Crispin a9d0c46233 mtd: add ability to dump a mtd device
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
2014-12-02 18:27:49 +00:00
John Crispin 030e67db75 mtd: fix 2 compiler warnings
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
2014-11-26 08:59:17 +00:00
John Crispin 85c10a8a6a license info - revert r43155
turns out that r43155 adds duplicate info.

Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43167 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-03 09:56:44 +00:00
John Crispin b8df8ca970 Add more license tags with SPDX identifiers
Note, that licensing stuff is a nightmare: many packages does not clearly
state their licenses, and often multiple source files are simply copied
together - each with different licensing information in the file headers.

I tried hard to ensure, that the license information extracted into the OpenWRT's
makefiles fit the "spirit" of the packages, e.g. such small packages which
come without a dedicated source archive "inherites" the OpenWRT's own license
in my opinion.

However, I can not garantee that I always picked the correct information
and/or did not miss license information.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43155 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-03 08:01:08 +00:00
Steven Barth 2bf2015c24 Add a few SPDX tags
Signed-off-by: Steven Barth <steven@midlink.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43151 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-11-02 12:20:54 +00:00
Hauke Mehrtens d36def3f4e bcm53xx: add fixtrx
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
2014-09-21 21:56:31 +00:00
Felix Fietkau 86193ba4cc mtd: disable trx_check() for ar71xx, fixes a regression introduced in r42403
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42405 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-09-02 21:06:35 +00:00
Felix Fietkau 72dd8201d2 mtd: Fix trx check after partition rename ("linux" to "firmware")
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
2014-09-02 17:13:42 +00:00
Felix Fietkau 7695f68829 mtd: fix compile error with musl
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40819 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-05-21 14:09:53 +00:00
John Crispin 74e9dde7b0 mtd: improve mtd detection
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@40301 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-03-30 09:14:58 +00:00
Felix Fietkau d7a9700570 mtd: add support for bad blocks in NAND flash
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
2014-03-26 10:50:09 +00:00
John Crispin 70bc05720b mtd: add a "mtd verify" call
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38871 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-11-19 20:56:23 +00:00
Felix Fietkau 9383e3c3c4 ar71xx: Unifi AP Pro sysupgrade patch
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
2013-11-14 19:38:54 +00:00
Gabor Juhos 9e8e17ba21 package/mtd: enable seama fixup code for ar71xx
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
2013-09-19 22:36:40 +00:00
Felix Fietkau 4ea1473546 kernel/base-files: clean up old code related to refreshing mtd partitions, 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
2013-07-14 12:56:58 +00:00
John Crispin f1b4824c86 packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37007 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-06-21 16:54:37 +00:00