aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c
Commit message (Collapse)AuthorAgeFilesLines
* kernel: mtdsplit_uimage: replace "edimax, uimage" parserBjørn Mork2021-01-221-99/+30
| | | | | | | | The "edimax,uimage"" parser can be replaced by the generic parser using device specific openwrt,partition-magic and openwrt,offset properties. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: add "openwrt, offset" and "openwrt, partition-magic"Bjørn Mork2021-01-221-12/+28
| | | | | | | | Some devices prepend a standard U-Boot Image with a vendor specific header, having its own magic. Adding two new properties will support validation of such images, including the additional magic. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "netgear, uimage" parserBjørn Mork2021-01-221-67/+0
| | | | | | | | | | | | | | | | | | | The "netgear,uimage" parser can be replaced by the generic parser using device specific openwrt,ih-magic and openwrt,ih-type properties. Device tree properties for the following devices have not been set, as they have been dropped from OpenWrt with the removal of the ar71xx target: FW_MAGIC_WNR2000V1 0x32303031 FW_MAGIC_WNR2000V4 0x32303034 FW_MAGIC_WNR1000V2_VC 0x31303030 FW_MAGIC_WPN824N 0x31313030 Tested-by: Sander Vanheule <sander@svanheule.net> # WNDR3700v2 Tested-by: Stijn Segers <foss@volatilesystems.org> # WNDR3700v1 Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: add "openwrt, ih-type" device-tree propertyBjørn Mork2021-01-221-10/+14
| | | | | | | Some devices use uimage headers with a non-default ih_type. Add support for overriding this in device tree. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "allnet, uimage" parserBjørn Mork2021-01-221-49/+0
| | | | | | | Convert users to the generic "openwrt,uimage" using device specific "openwrt,ih-magic" properties, and remove "allnet,uimage". Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "openwrt, okli" parserBjørn Mork2021-01-221-53/+0
| | | | | | | | | The only difference between the "openwrt,okli" and the generic parser is the magic. Set this in device tree for all affected devices and remove the "openwrt,okli" parser. Tested-by: Michael Pratt <mcpratt@protonmail.com> # EAP300 v2, ENS202EXT and ENH202 Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: add "openwrt, ih-magic" device-tree propertyBjørn Mork2021-01-221-18/+23
| | | | | | | Many devices use uimages with non-standard magic values. Let device tree override the default magic. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: replace "fonfxc" and "sge" parsersBjørn Mork2021-01-221-85/+8
| | | | | | | | Convert users of the "fonfxc" and "sge" parsers to the generic "openwrt,uimage", using device specific "openwrt,padding" properties. Tested-by: Stijn Segers <foss@volatilesystems.org> [DIR-878 A1] Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: mtdsplit_uimage: read extralen from device treeBjørn Mork2021-01-221-10/+14
| | | | | | | An "openwrt,padding" property in device tree can replace two device specific parsers. Signed-off-by: Bjørn Mork <bjorn@mork.no>
* kernel: add GS110TPPV1 support to mtdsplit_uimageJohn Crispin2020-11-261-3/+5
| | | | | | The ID is used be a Realtek based switch made by Netgear. Signed-off-by: John Crispin <john@phrozen.org>
* kernel: add support for ALLNET devices in mtdsplitBirger Koblitz2020-09-141-0/+50
| | | | | | | Add support for uimage headers from ALLNET and provide support for the SG8208M and SG8310PM devices' magic bytes. Signed-off-by: Birger Koblitz <git@birger-koblitz.de>
* kernel: mtdsplit_uimage: add SGE parserMathieu Martin-Borret2020-07-131-0/+38
| | | | | | | Adding SGE parser for SGE (T&W) Shenzhen Gongjin Electronics to add 96 bytes padding the the firmware image Signed-off-by: Mathieu Martin-Borret <mathieu.mb@protonmail.com>
* generic: drop outdated kernel version switches in local driversAdrian Schmutzler2020-05-171-20/+0
| | | | | | | This drops the obsolete version switches for non-supported kernels from local drivers in generic target. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
* kernel: mtdsplit_uimage: add support for okli imageChuanhong Guo2019-08-081-0/+58
| | | | | | | | | | This adds support for uImage used by OpenWrt kernel loader. The parser searches for uImage header at flash eraseblock boundary and it might attempt to split any firmware with loader, therefore this entry doesn't have MTD_PARSER_TYPE_FIRMWARE so that this parser is only used when explicitly defined in dts. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
* kernel: drop Fon(Foxconn) parser matching for the "firmware" partitionRafał Miłecki2019-08-061-1/+0
| | | | | | | | | | | | | | | | This parser's matching function appears to be too generic as it matches e.g. Buffalo WZR-HP-G300NH. That results in incorrect parts parsing. Luckily this parser is needed by Fon FON2601 only which uses DT-based ramips target. It means we can depend on mtd subsystem matching of "fonfxc,uimage" string. That said triggering this parser based on the "firmware" (or whatever MTD_SPLIT_FIRMWARE_NAME is) partiiton name is not needed. It can be dropped which will automatically fix the Buffalo WZR-HP-G300NH case. Fixes: a1c6a316d299 ("ramips: add support for Fon FON2601") Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* Revert "kernel: generic: fix fonfxc uimage parser"Rafał Miłecki2019-08-061-14/+7
| | | | | | | | | | | | | | | | | This reverts commit e92a14709d37f64dcba8c81fa51e61e5f10f439a. mtdsplit_uimage_parse_fonfxc() gets called in two situations: 1) It was /requested/ from DT using "fonfxc,uimage" compatible string 2) It was called by parsing code after finding "firmware" (MTD_SPLIT_FIRMWARE_NAME) due to the parser's type Code added in the /fix/ commit basically just disabled the second case. If that's the real goal it could be achieved by simply dropping type MTD_PARSER_TYPE_FIRMWARE. It may however require another solution as it's possible that some non-DT target actually needs fonfxc uImage parsing. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: generic: fix fonfxc uimage parserNOGUCHI Hiroshi2019-08-041-7/+14
| | | | | | | | | | | | | | | | We cannot distinguish between fonfxc uImage and generic uImage because fonfxc uImage header is almost same as generic uImage, except padding length after image name. The fonfxc uImage parser is available when specifying directly with DT compatible property. So this patch adds check if the partition DT node is compatible with the parser. Ref: https://bugs.openwrt.org/index.php?do=details&task_id=2413 Fixes: a1c6a316d299 ("ramips: add support for Fon FON2601") Signed-off-by: NOGUCHI Hiroshi <drvlabo@gmail.com> [commit light touches and removed C code comment] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ramips: add support for Fon FON2601NOGUCHI Hiroshi2019-07-261-12/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FON2601 is a wireless router. Specification: - SoC: Mediatek MT7620A (580MHz) - RAM: 128 MiB - ROM: 16 MiB SPI Flash - Wireless: for 11b/g/n (upto 300 Mbps): MT7620A built-in WMAC for 11a/n/ac (upto 867 Mbps): MT7662E - Ethernet LAN: 1 port, upto 100 Mbps - Ethernet WAN: 1 port, upto 1000 Mbps - USB: 1 port (USB 2.0 host) - LEDs: 4 (all can be controlled by SoC's GPIO) - buttons: 1 (Displayed as "WPS" on enclosure) - serial port: 57600n8 pins: Vcc(3.3V), Rx, Tx, GND (left to right, viewed from outside of board) Installation (only available via UART): 1. download sysupgrade binary image by wget command 2. write sysupgrade binary image to Flash command is: mtd write sysupgrade.bin firmware 3. reboot Important Notice: Only one button is displayed as "WPS" on enclosure. However, it is configured as "reset" (factory resetting feature). Signed-off-by: NOGUCHI Hiroshi <drvlabo@gmail.com> [removed unrelated openwrt-keyring revert, missing -Wall for uimage_padhdr] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* kernel: Add missing includes mtdsplit_*.cHauke Mehrtens2019-07-071-0/+1
| | | | | | | | | | | This fixes the following compile problem with kernel 4.9 on lantiq: drivers/mtd/mtdsplit/mtdsplit_uimage.c:244:34: error: array type has incomplete element type 'struct of_device_id' static const struct of_device_id mtdsplit_uimage_of_match_table[] = { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/mtdsplit/mtdsplit_uimage.c:245:4: error: field name not in record or union initializer { .compatible = "denx,uimage" }, Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* kernel: add DT binding support to the Edimax uImage parserMathias Kresin2019-01-191-0/+10
| | | | | | It allows specifying those parsers directly in the DT. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: add DT binding support to the uimage parsersRafał Miłecki2018-11-241-0/+21
| | | | | | It allows specifying default and Netgear parsers directly in the DT. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* kernel: fix build error in mtdsplit driverKoen Vandeputte2017-02-071-1/+1
| | | | | | | Add missing parentheses. Fixes kernel build issue when using this driver. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: update mtdsplit for linux 4.9Felix Fietkau2017-02-031-4/+4
| | | | | | add backport patches for older kernels Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ar71xx: Add support for Netgear WNR2000v1Huan Truong2016-12-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds supports for the WNR2000v1 board with 4MB flash, and produces device-specific factory, rootfs, and sysupgrade files for the WNR2000v1. This board is errorneously claimed as supported on the OpenWRT wiki as AP81, but AP81 image would not work because of APT81 image requiring having 8MB of flash, while WNR2000v1 has only 4MB. The image requires the u-boot bootloader to be modified to fuhry's bootloader first. Short specification: - CPU: Atheros AR9132 - 4x 10/100 Mbps Ethernet, 1x WAN 10/100 Mbps - 4 MB of Flash - 32 MB of RAM - UART header (J1) on board - 1x button Factory/Initial flash instructions: - Set up a TFTP server on your local machine. - Download the uImage for ar71xx-generic and the rootfs image for ar71xx-generic-wnr2000 and save in the tftp server root. - Gain serial access to the router via the UART port (telnetenable over the network only won't work!). - Upgrade the u-boot bootloader to fuhry's version by running the script: http://fuhry.com/b/wnr2000/install-repart.sh - When the router restarts, interrupt u-boot and gain access to u-boot command line. - Repartititon the board and flash initial uImage and rootfs as follow. Commands to type in u-boot: # tells u-boot that we have a tftp server on 192.168.1.10 setenv serverip 192.168.1.10 # tells u-boot that the router should take the address 192.168.1.1 setenv ipaddr 192.168.1.1 # erase the region from 0x050000-0x3f0000 erase 0xbf050000 +0x3A0000 # loads sqfs.bin on TFTP server, and put it to memory address 0x81000000 tftpboot 0x81000000 sqfs.bin # it will tell you the length of sqfs.bin in hex, let's say ZZZZZZ # copy bit by bit 0xZZZZZZ bytes from offset 0x050000 cp.b 0x81000000 0xbf050000 0xZZZZZZ # same to the uImage.bin, write it right next to sqfs.bin # again, 0xYYYYYY is the length that tftpboot reports tftpboot 0x81000000 uImage.bin cp.b 0x81000000 0xbf2a0000 0xYYYYYY # We need to tell the kernel what board it is booting into, and where to find the partitions setenv bootargs "board=WNR2000 console=ttyS0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,3712k(firmware),64k(art)ro rootfstype=squashfs,jffs2 noinitrd" # Tell u-boot where to find the uImage setenv bootcmd "bootm 0xbf2a0000" # Tell u-boot to save parameters to the u-boot-env partitions saveenv # Reset the board reset Tested on: - WNR2000v1 board. - Initial flash works. Known bugs: - I don't know why factory image doesn't work on initial flash on stock firmware in u-boot recovery mode while it should. - Sysupgrade does not yet work, if you do -f it will mess up your installation (requiring a reinstall of sqfs and uImage). Signed-off-by: Huan Truong <htruong@tnhh.net>
* kernel: mtdsplit_uimage: fix Edimax parserMathias Kresin2016-10-151-13/+7
| | | | | | | | | | | | | | According to the author the code was added to in preparation for adding support for a new board. The patch for the board was never send and the code never really tested. The edimax header starting with the edimax magic is put in front of the uImage header. There is no special uImage header used. Means, default magic and the type field is set to kernel as usual. Signed-off-by: Mathias Kresin <dev@kresin.me> edimax parser fix
* kernel: mtdsplit_uimage: fix rootfs offsetMathias Kresin2016-10-151-1/+1
| | | | | | | | The return value of the find_header function need to be added to the uimage_size, otherwise mtd_find_rootfs_from() might search for a rootfs within a custom header and fails. Signed-off-by: Mathias Kresin <dev@kresin.me>
* kernel: mtdsplit: support uimage with UBIRafał Miłecki2016-02-241-3/+7
| | | | | | | | This patch adds uimage firmware split support for ubi. Signed-off-by: YounJae Rho <luxflow@live.com> SVN-Revision: 48755
* kernel: mtdsplit: modify rootfs helpers to provide partition typeRafał Miłecki2016-02-011-5/+3
| | | | | | | | | | Our mtdsplit parsers may want to create partition with name choice based on partition file system (e.g. SquashFS vs. JFFS2). This patch allows passing extra argument pointing to variable that will be set properly. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48598
* ar71xx: add support for Netgear WPN824NJohn Crispin2016-01-191-0/+2
| | | | | | | | | | | | | | | | Add support for Netgear WPN824N. Hardware specs: * AR7240, 4 LAN ports, 1 WAN port * AR9285 WLAN * 32 MB RAM * 4 MB Flash * 16 LEDs (LAN, WAN and Power/Status contain two LEDs for dual color effect) * 3 Buttons (not supported) Signed-off-by: Hartmut Knaack <knaack.h@gmx.de> SVN-Revision: 48356
* kernel: mtdsplit_uimage: fix passed info about buf sizeRafał Miłecki2015-02-121-2/+2
| | | | | | | | We obviously can't use sizeof(*buf) which is always 1. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44424
* kernel: mtdsplit_uimage: read more data to match Edimax needsRafał Miłecki2015-02-121-8/+12
| | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44415
* kernel: mtdsplit_uimage: use separated buffer for reading dataRafał Miłecki2015-02-121-18/+16
| | | | | | | | | We shouldn't read data directly into the header struct, as some devices (e.g. Edimax) need more bytes due to some extra header. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44414
* kernel: mtdsplit_uimage: add parser for Edimax devicesRafał Miłecki2015-02-121-0/+53
| | | | | | Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44413
* mtdsplit_uimage: more generic header verify functionRafał Miłecki2015-02-121-11/+26
| | | | | | | | | | Some devices have uImage headers after some extra headers (e.g. Edimax devices). To support such cases our verify callback function should be allowed to return header offset, not just a boolean value. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 44412
* ar71xx: add Netgear WNR1000v2/WNR1000v2-VC support (#18633)John Crispin2015-01-301-0/+4
| | | | | | | | | | | The board is already supported by OpenWrt. WNR1000v2/WNR1000v2-VC are pretty much the same as WNR2000v3/WNR612v2, therefore the same initialization code and flash layout is used. Signed-off-by: Ștefan Rusu <saltwaterc@gmail.com> Tested-by: Douglas Fraser <1dsfraser@gmail.com> SVN-Revision: 44221
* kernel: move mtdsplit files to drivers/mtd/mtdsplit/ to simplify ↵Felix Fietkau2015-01-021-0/+287
maintenance, unify patches across kernel versions Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43805