aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware-utils/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* tools/firmware-utils: use UTC for image timestampsSander Vanheule2020-08-071-1/+1
| | | | | | | | By using localtime() to determine the timestamp that goes into factory images, the resulting image depends on the timezone of the build system. Use gmtime() instead, which results in more reproducible images. Signed-off-by: Sander Vanheule <sander@svanheule.net>
* tools/firmware-utils: add PKG_RELEASEPaul Spooren2020-07-231-1/+2
| | | | | | | | | | | | There is no versioning information in the firmware-utils code nor the Makefile. Consider it as first release by adding PKG_RELEASE. Motivation is the tracking of changes in the buildsystem, which requires versioning of packages. Also update copyright. Signed-off-by: Paul Spooren <mail@aparcar.org>
* firmware-utils: sort tools alphabeticallySungbo Eo2020-06-281-58/+58
| | | | | | Also remove leading whitespace after comma. Signed-off-by: Sungbo Eo <mans0n@gorani.run>
* firmware-utils: ptgen: add GPT support李国2020-03-311-1/+1
| | | | | | | | | | | | | | | | Add GPT support to ptgen, so we can generate EFI bootable images. Introduced two options: -g generate GPT partition table -G GUID use GUID for disk and increase last bit for all partitions We drop The alternate partition table to reduce size, This may cause problems when generate vmdk images or vdi images. We have to pad enough sectors when generate these images. Signed-off-by: 李国 <uxgood.org@gmail.com> [fixed compilation on macOS] Signed-off-by: Petr Štetiar <ynezz@true.cz>
* firmware-utils: add lxlfw tool for generating Luxul firmwaresDan Haab2020-02-071-0/+1
| | | | | | It's a simple tool prepending image with a Luxul header. Signed-off-by: Dan Haab <dan.haab@legrand.com>
* ramips: add support for Fon FON2601NOGUCHI Hiroshi2019-07-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* firmware-utils: mkfwimage: fix more errors reported by gcc-6/7/9Petr Štetiar2019-07-191-1/+1
| | | | | | | | | | | | | | | | | | | | | src/mkfwimage.c:276:8: error: format '%lld' expects argument of type 'long long int', but argument 4 has type '__off_t' {aka 'const long int'} [-Werror=format=] src/fw.h:71:36: error: format '%llu' expects argument of type 'long long unsigned int', but argument 6 has type '__off_t' {aka 'long int'} [-Werror=format=] inlined from 'main' at src/mkfwimage.c:543:12: /string_fortified.h:106:10: error: '__builtin_strncpy' output truncated before terminating nul copying 4 bytes from a string of the same length [-Werror=stringop-truncation] inlined from 'write_part' at src/mkfwimage.c:235:2, string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 16 equals destination size [-Werror=stringop-truncation] inlined from 'main' at src/mkfwimage.c:477:5: string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 256 equals destination size [-Werror=stringop-truncation] inlined from 'main' at src/mkfwimage.c:496:5: string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 4096 equals destination size [-Werror=stringop-truncation] inlined from 'main' at src/mkfwimage.c:481:5: string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 4096 equals destination size [-Werror=stringop-truncation] inlined from 'main' at src/mkfwimage.c:485:5: string_fortified.h:106:10: error: '__builtin_strncpy' specified bound 16 equals destination size [-Werror=stringop-truncation] Runtested on ath79 and UBNT Bullet M XW. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* firmware-utils: mkfwimage: enable extra compiler checks and fix themPetr Štetiar2019-07-191-2/+8
| | | | | | | Let's enforce additional automatic checks enforced by the compiler in order to catch possible errors during compilation. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ipq40xx: add factory image for EnGenius ENS620EXTSteve Glennon2019-05-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extended mksenaofw to support new "capwap" header structure. This supports flashing from factory 3.0.0, 3.0.1, 3.1.0 and 3.5.5 firmware. Note that the factory image format changes for 3.1 and later firmware, and that the 3.1.0 and 3.5.5 Engenius firmware will refuse the factory_30.bin file. Similarly, the 3.0.0 and 3.0.1 Engenius firmware will refuse the factory_35.bin file. Flashing from the Engenius 3.1.0 firmware with the factory_35.bin firmware has not been tested, as 3.1.0 firmware (Engenius "middleFW") is only intended as part of the upgrade path to 3.5.5 firmware. Modified ipq40xx image Makefile to appropriately invoke mksenaofw with new parameters to configure the capwap header. Note that there is currently no method to return to factory firmware, so this is a one-way street. Path from factory 3.0.0 and 3.0.1 (EnGenius) software to OpenWrt is to navigate to 192.168.1.1 on the stock firmware and navigate to the firmware menu. Then copy the URL you have for that page, something like http://192.168.1.1/cgi-bin/luci/;stok=12345abcdef/admin/system/flashops and replace the trailing /admin/system/flashops with just /easyflashops You should then be presented with a simple "Firmware Upgrade" page. On that page, BE SURE TO CLEAR the "Keep Settings:" checkbox. Choose the openwrt-ipq40xx-engenius_ens620ext-squashfs-factory_30.bin, click "Upgrade" and on the following page select "Proceed". Path from factory 3.5.5 (EnGenius) software to OpenWrt is simply to use the stock firmware update menu. Choose the openwrt-ipq40xx-engenius_ens620ext-squashfs-factory_35.bin and click "Upload" and "Proceed". The device should then flash the OpenWrt firmware and reboot. Note that this resets the device to a default configuration with Wi-Fi disabled, LAN1/PoE acting as a WAN port (running DHCP client) and LAN2 acting as a LAN port with a DHCP server on 192.168.1.x (AP is at 192.168.1.1) Signed-off-by: Steve Glennon <s.glennon@cablelabs.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [sorry, for unfixing the 80-lines eyesores.]
* firmware-utils: fix nec-enc build on older architecturesChristian Lamparter2019-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | This patch enable gnu99 mode for the nec-enc utility which fixes the following build-breaking errors on some older architectures. nec-enc.c: In function ‘xor_data’: nec-enc.c:34:2: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i < len; i++) { ^~~ nec-enc.c:34:2: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code nec-enc.c: In function ‘main’: nec-enc.c:101:3: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i < n; i++) { ^~~ Spotted-By: Buildbot Fixes: fac27643f057 ("firmware-utils: add nec-enc") Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* firmware-utils: add nec-encINAGAKI Hiroshi2019-04-061-0/+1
| | | | | | | | | | | | | | | | | | | | nec-enc provides firmware encoding/decoding with model specific key for NEC devices. known devices: - Aterm WF1200CR - Aterm WG1200CR - Aterm WG2600HS usage: nec-enc -i infile -o outfile -k key Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [checkpatch fixes, marked usage as noreturn, added static function, moved buf* from stack to the global data segment]
* firmware-utils: mksercommfw: overhaul image creationMathias Kresin2019-01-151-1/+1
| | | | | | | | | | | | | | | | | | | | Move the zip compression into a build recipe. Pad the image using the existing build recipes as well to remove duplicate functionality Change the code to append header and footer in two steps. Allow to use a fixed filename as the netgear update image does. Use a fixed timestamp within the zip archive to make the images reproducible. Due to the changes we are now compatible to the gnu89 c standard used by default on the buildbots and we don't need to force a more recent standard anymore. Beside all changes, the footer still looks wrong in compare to the netgear update image. Signed-off-by: Mathias Kresin <dev@kresin.me>
* firmware-utils: mkdlinkfw: fix buildMathias Kresin2019-01-131-1/+1
| | | | | | | | | | | | | While we don't need the gnu99 option anymore, we still need to force the c99 standard to fix the following build error on the build bots: src/mkdlinkfw.c: In function 'find_auh_headers': src/mkdlinkfw.c:267:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i < header_counter; i++) { ^ src/mkdlinkfw.c:267:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code Signed-off-by: Mathias Kresin <dev@kresin.me>
* firmware-utils: mkdlinkfw: cleanup codeMathias Kresin2019-01-131-1/+1
| | | | | | | Drop unused function and macros. With the cleanup the gnu extension typeof isn't used any longer and the gnu99 compile flag can be dropped. Signed-off-by: Mathias Kresin <dev@kresin.me>
* ramips: use new image build code for D-Link DCS-930 familyMathias Kresin2018-12-121-1/+0
| | | | | | | | | | | | Drop the factory images and the firmware tool to create them. They don't work any more, since the factory image has an uImage header covering the whole kernel + rootfs. This way the uImage splitter will not be able to find the rootfs and the kernel will panic later on. The factory images were most likely added at a time the board had distinct partitions for kernel and rootfs. Signed-off-by: Mathias Kresin <dev@kresin.me>
* build: add mkrasimageDavid Bauer2018-08-281-0/+1
| | | | | | | | | | | | | | | The current make-ras.sh image generation script for the ZyXEL NBG6617 has portability issues with bash. Because of this, factory images are currently not built correctly by the OpenWRT buildbots. This commit replaces the make-ras.sh by C-written mkrasimage. The new mkrasimage is also compatible with other ZyXEL devices using the ras image-format. This is not tested with the NBG6616 but it correctly builds the header for ZyXEL factory image. Signed-off-by: David Bauer <mail@david-bauer.net>
* firmware-utils: add sercomm/netgear toolLudwig Thomeczek2018-08-131-0/+1
| | | | | | | | | | | This adds a tool to generate a firmware file accepted by Netgear or sercomm devices. They use a zip-packed rootfs with header and a custom checksum. The generated Image can be flashed via the nmrpflash tool or the webinterface of the router. Signed-off-by: Ludwig Thomeczek <ledesrc@wxorx.net>
* firmware-utils: add DNS-313 image header toolLinus Walleij2018-05-051-0/+1
| | | | | | | | This tool is used to create headers on images for the D-Link DNS-313 in gemini target. Will be used after switching gemini to 4.14 kernel. Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* firmware-utils: image generator for D-Link DAP-1330Nicolò Veronese2018-04-051-0/+1
| | | | Signed-off-by: Nicolò Veronese <nicveronese@gmail.com>
* firmware-utils: mkdlinkfw: compile as gnu99Mathias Kresin2018-03-191-1/+1
| | | | | | Compile as gnu99 to fix the build. Signed-off-by: Mathias Kresin <dev@kresin.me>
* firmware-utils: add JBOOT bootloader image supportPawel Dembicki2018-03-181-0/+1
| | | | | | | Tested on D-Link DWR-116. Based on mktplinkfw. Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
* firmware-utils: tplink-safeloader: compile as gnu99Alexander Couzens2018-03-151-1/+1
| | | | | | Also fix minor coding style issue and one redeclaration. Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
* firmware-utils: add otrx tool for handling TRX imagesRafał Miłecki2017-11-171-0/+1
| | | | | | | | | It can be a replacement for the trx tool. The advantage is that otrx doesn't alloc buffer for the whole TRX which can be a nice optimization when creating big images. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
* tools/firmware-utils: mktplinkfw regroup duplicate codeThibaut VARÈNE2017-10-061-2/+2
| | | | | | | | | | | | | This patch carves out the duplicated code of mktplinfw.c and mktplinkfw2.c and moves it to mktplinkfw-lib.c This change is a semantic NOP (the code is unchanged). To ensure compatibility with gcc-5.x and newer without changing the code, -fgnu89-inline is added to the build flags for these two binaries. Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
* firmware-utils: drop mktplinkfw-kernel toolPiotr Dymacz2017-07-221-1/+0
| | | | | | | As we can now use combined mode in "mktplinkfw" tool to generate the same header/image, this tool is no longer needed. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* firmware-utils: fix dgn3500sum compiler warningsMathias Kresin2017-06-261-1/+1
| | | | | | | | | | | The sum variable need to be initialised, otherwise it will points to random stack memory and a bogus image checksum might be calculated. While at it, fix the segfault in case the product region code isn't specified and enable compiler warnings which had revealed all the code issues. Signed-off-by: Mathias Kresin <dev@kresin.me>
* firmware-utils: improve tools for Buffalo DHP seriesFUKAUMI Naoki2017-01-311-0/+1
| | | | | | | | | some of Buffalo DHP series use slightly different trx magic, buffalo-enc, buffalo-tag, and factory image begin with 'bgn'. this patch adds support for building those images. Signed-off-by: FUKAUMI Naoki <naobsd@gmail.com>
* firmware-utils: kernel image generator for TP-Link RE450Tal Keren2016-12-221-0/+1
| | | | | | | | | | | | | | | | | The firmware image that is used in TP-Link RE450 (and some more devices from the RE series) is tplink-safeloader. In the kernel partition, the kernel is compressed in a regular tp-link firmware that is just used for booting. Since it is only used for compressing and booting, only four fields are filled in the header: Vendor, version, kernel load address and kernel entry point. mktplinkfw-kernel is a simpler version of mktpolinkfw that generate such images. It also specifies the hardware id (as it is in the product info section), so when doing a sysupgrade - the existing code will check for hardware compatibility. Signed-off-by: Tal Keren <kooolk@gmail.com> [rd@radekdostal.com: add build target to .../image/tp-link.mk] Signed-off-by: Radek Dostál <rd@radekdostal.com>
* firmware-utils: add tool to create zyxel imagesVitaly Chekryzhev2016-11-171-0/+1
| | | | | | | Signed-off-by: Vitaly Chekryzhev <13hakta@gmail.com> [moved to firmware-utils package] [dropped the compiled binary] Signed-off-by: Mathias Kresin <dev@kresin.me>
* ar71xx: add support for Buffalo BHR-4GRV2FUKAUMI Naoki2016-11-161-0/+1
| | | | Signed-off-by: FUKAUMI Naoki <naobsd@gmail.com>
* firmware-utils: mkwrggimg: new tool for D-Link DAP-2695Stijn Tintel2016-10-271-0/+1
| | | | | | | Based on mkwrgimg.c. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: John Crispin <john@phrozen.org>
* firmware-utils mkmerakifw-old: firmware generator for Z1Christian Lamparter2016-09-191-0/+1
| | | | | | This patch adds firmware generation tool for Cisco's Z1 Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
* tools/firmware-utils: remove obsolete firmware utility for airlink 525wFelix Fietkau2016-05-121-1/+0
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* tools: firmware-utils: clean up mktplinkfwJohn Crispin2016-04-211-1/+1
| | | | | | | | | | | | | Remove the whole board list from mktplinkfw, as OpenWrt doesn't use it and it was severely out of sync with the list of built images for ar71xx. Also: * fix -Wall warnings * add const where appropriate Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> SVN-Revision: 49214
* ramips: Add a tool to create JCG factory imagesJohn Crispin2016-03-031-0/+1
| | | | | | | | | | This tool creates factory images for JCG routers. Details can be found in the header comment of jcgimage.c. Signed-off-by: Reinhard Max <reinhard@m4x.de> Reviewed-by: Torsten Duwe <duwe@lst.de> SVN-Revision: 48888
* firmware-utils: mkfwimage: add -Wall, fix obvious bugs causing compile warningsFelix Fietkau2016-02-291-1/+1
| | | | | | Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> SVN-Revision: 48827
* firmware-utils: add oseama tool for creating Seama entitiesRafał Miłecki2016-02-011-0/+1
| | | | | | | | | | | | | It has an important feature (compared to seama) of using multiple input files, aligning them and padding zeroes until reaching a specified absolute offset. This is needed for a proper flash layout on NAND. We want kernel partition to be big enough to handle future updates without a need to resize it and wipe whole "ubi" partition. It's important as we don't want to lose block counters. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 48601
* firmware-utils mkmerakifw: firmware generator for MR18John Crispin2015-12-111-0/+1
| | | | | | | | This patch adds firmware generation tool for Cisco's MR18 Signed-off-by: Thomas Hebb <tommyhebb@gmail.com> SVN-Revision: 47856
* firmware-utils: asustrx: new tool for TRX format with Asus tailRafał Miłecki2015-05-271-0/+1
| | | | | | | | Asus devices use TRX format with some extra data at the end. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 45773
* firmware-utils: imagetag: use cyg_crc32 instead of duplicating codeJonas Gorski2015-02-271-1/+1
| | | | | | Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 44554
* tools: remove static linking supportJo-Philipp Wich2015-02-061-1/+1
| | | | | | Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44285
* Belkin AC 1750 DB (F9K1115v2) supportImre Kaloz2014-12-171-0/+1
| | | | | | Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 43734
* firmware-utils: add new tool tplink-safeloader for the new TP-LINK Pharos ↵John Crispin2014-11-261-0/+1
| | | | | | | | | | | | | | | | devices (CPE210/220/510/520) The new TP-LINK Pharos series uses a new bootloader, the "TP-LINK Safeloader". It uses an advanced firmware image format, containing an image partition table and a flash partition table (and image partitions are mapped to the corresponding flash partitions). The exact image format is documented in the source code. Furthermore, the bootloader expects the kernel image as an ELF executable. Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net> SVN-Revision: 43384
* firmware-utils: restore compilation of mkhilinkfw.John Crispin2014-10-201-2/+2
| | | | | | Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> SVN-Revision: 42989
* firmware-utils: made mkdir615h1 work for all Senao-produced devices as ↵John Crispin2014-08-031-1/+1
| | | | | | | | mksenaofw and cleaned up some of its formatting Signed-off-by: Forest Crossman <cyrozap@gmail.com> SVN-Revision: 41962
* firmware-utils: add new tool for fixing headers on ZyXEL devices (brcm63xx)Jonas Gorski2014-07-271-0/+1
| | | | | | | Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 41849
* lantiq: DGN3500 (all known variants) factory and sysupgrade image building ↵John Crispin2014-06-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | support This patch adds factory image building for the DGN3500, all variants, and fixes sysupgrade images to make them play nice with the sercomm secondary boot loader. The factory images can be used directly in the update dialog in the interface of the stock firmware and via the special Sercomm bootmode and a special windows flashing utility (allegedly present in the CD that came with the device -- but it's also compatible with the NSLU2 Upgrade_207_XP utility.) The special bootmode can be activated by turning the device on while holding the reset button pressed, then releasing it when the power led starts blinking red and green. Please notice that if using the 207 utility, it will always report that the flashing failed even though it completed successfully. Just power cycle the router manually after the utility reports the failure and OpenWRT will boot. This same utility (despite reporting failure in this case too) can revert a DGN3500 (any variant) to the appropriate stock Netgear firmware. This patch is a heavily modified version of a package I found on the OpenWRT forum with a couple fixes and features added -- mainly the generation of all the different image variants to support all known models directly, atm known variants are AnnexA-WW, AnnexA-NA and AnnexB-DE/GR. I tested the patch successfully on my device. Signed-off-by: Marco Antonio Mauro <marcus90@gmail.com> SVN-Revision: 41236
* ramips: RT-N56U support fixes and factory image creationJohn Crispin2014-06-161-0/+1
| | | | | | Signed-off-by: Mikko Hissa <mikko.hissa@werzek.com> SVN-Revision: 41224
* firmware-utils: add Gemtek header toolJohn Crispin2014-04-221-0/+1
| | | | | | | | | Generates webflash-compatible images for a few RT2880 routers based on Gemtek OEM boards. Signed-off-by: Claudio Leite <leitec@staticky.com> SVN-Revision: 40551
* ralink: don't build mkhilinkfw untilt he ssl header dependency is resolvedJohn Crispin2014-01-121-1/+1
| | | | | | Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 39248