Commit Graph

409 Commits (42dafa0ac589370877747c6647f75ea3ab9572b6)

Author SHA1 Message Date
Rafał Miłecki 896246b8c5 firmware-utils: mktplinkfw2: fix support for -w option
This fixes copy & paste typo when reading -w argument.

Fixes: 4b35e174ca ("firmware-utils: mktplinkfw2: support additional hardware version")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2017-07-02 22:31:13 +02:00
Piotr Dymacz 24043a0d2e ramips: add support for TP-Link TL-WR840N v4 and TL-WR841N v13
TP-Link TL-WR840N v4 and TL-WR841N v13 are simple N300 routers with
5-port FE switch and non-detachable antennas. Both are very similar
and are based on MediaTek MT7628NN (aka MT7628N) WiSoC.

The difference between these two models is in number of available
LEDs, buttons and power input switch.

This work is partially based on GitHub PR#974.

Specification:

- MT7628N/N (580 MHz)
- 64 MB of RAM (DDR2)
- 8 MB of FLASH
- 2T2R 2.4 GHz
- 5x 10/100 Mbps Ethernet
- 2x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- TL-WR840N v4: 5x LED (GPIO-controlled), 1x button
- TL-WR841N v13: 8x LED (GPIO-controlled*), 2x button, power input
  switch

* WAN LED in TL-WR841N v13 is a dual-color, dual-leads type which isn't
  (fully) supported by gpio-leds driver. This type of LED requires both
  GPIOs state change at the same time to select color or turn it off.
  For now, we support/use only the green part of the LED.

Factory image notes:

These devices use version 3 of TP-Link header, fortunately without RSA
signature (at least in case of devices sold in Europe). The difference
lays in the requirement for a non-zero value in "Additional Hardware
Version" field. Ideally, it should match the value stored in vendor
firmware header on device ("0x4"/"0x13" for these devices) but it seems
that anything other than "0" is correct.

We are able to prepare factory firwmare file which is accepted and
(almost) correctly flashed from the vendor GUI. As it turned out, it
accepts files without U-Boot image with second header at the beginning
but due to some kind of bug in upgrade routine, flashed image gets
corrupted before it's written to flash.

Tests showed that the GUI upgrade routine copies value of "Additional
Hardware Version" from existing firmware into offset "0x2023c" in
provided file, _before_ storing it in flash. In case of vendor firmware
upgrade files (which all include U-Boot image and two headers), this
offset points to the matching field in kernel+rootfs firmware part
header. Unfortunately, in case of LEDE factory image file which contains
only one header, it points to the offset "0x2023c" in kernel image. This
leads to a corrupted kernel and ends up with a "soft-bricked" device.

The good news is that U-Boot in these devices contains well known tftp
recovery mode, which can be triggered with "reset" button. What's more,
in comparison to some of older MediaTek based TP-Link devices, this
recovery mode doesn't write whole file at offset "0x0" in flash, without
verifying provided file in advance. In case of recovery mode in these
devices, first "0x20000" bytes are always skipped and "0x7a0000" bytes
from rest of the file are stored in flash at offset "0x20000".

Flash instruction:

Until (if at all) TP-Link fixes described problem, the only way to flash
LEDE image in these devices is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.0.66/24 and tftp server.
2. Rename "lede-ramips-mt7628-tl-wr84...-squashfs-tftp-recovery.bin"
   to "tp_recovery.bin" and place it in tftp server directory.
3. Connect PC with one of LAN ports, press the reset button, power up
   the router and keep button pressed for around 6-7 seconds, until
   device starts downloading the file.
4. Router will download file from server, write it to flash and reboot.

To access U-Boot CLI, keep pressed "4" key during boot.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-06-29 10:37:36 +02:00
Piotr Dymacz 4b35e174ca firmware-utils: mktplinkfw2: support additional hardware version
As it turned out, some of new MediaTek based TP-Link devices use value
from field at 0x3c offset in version 3 of TP-Link header to specify
"Additional Hardware Version".

Value from this field is validated during regular (GUI) firmware upgrade
on devices like TL-WR840N v4 or TL-WR841N v13. If it's zero (based on
some tests, it seems that firmware will accept anything != 0), errors
like below are printed on console and upgrade fails:

[ rsl_sys_updateFirmware ] 2137:  Firmware Additional HardwareVersion
check failed

[ rdp_updateFirmware ] 345:  perror:4506

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-06-29 10:37:36 +02:00
Henryk Heisig b05c7193fd ar71xx: add support for TP-Link Archer C58 v1
TP-Link Archer C58 v1 is a dual-band AC1350 router, based on Qualcomm
QCA9561 + QCA9886. It looks like Archer C59 v1 without USB port.

Specification:

- 775/650/258 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 8 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 2T2R 5 GHz
- 5x 10/100 Mbps Ethernet
- 6x LED, 3x button
- UART header on PCB, RX, TX at TP4+5 (backside)

QCA9886 wlan needs pre_cal_data file and enable ieee80211 phy hotplug to
patch macaddress.

Flash instruction:

Use "factory" image directly in vendor GUI.

Recovery method:

1. Set PC to fixed ip address 192.168.0.66/24.
2. Download "lede-ar71xx-generic-archer-c58-v1-squashfs-factory.bin" and
   rename it to "tp_recovery.bin".
3. Start a tftp server with the file "tp_recovery.bin" in its root
   directory.
4. Turn off the router.
5. Press and hold Reset button.
6. Turn on router with the reset button pressed and wait ~15 seconds.
7. Release the reset button and after a short time the firmware should
   be transferred from the tftp server.
8. Wait ~30 second to complete recovery.

Flash instruction under U-Boot, using UART:

tftp 0x81000000 lede-ar71xx-...-sysupgrade.bin
erase 0x9f020000 +$filesize
cp.b $fileaddr 0x9f020000 $filesize
reset

This commit is based on GitHub PR#1112

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2017-06-29 10:37:36 +02:00
Jean-Pierre St-Yves 01280bc8dc firmware-utils: tplink-safeloader: add support for Archer C5 v2 JP/US
Add support for Japan and US versions of TP-Link Archer C5 v2

Signed-off-by: Jean-Pierre St-Yves <jpstyves@gmail.com>
2017-06-29 10:37:36 +02:00
Henryk Heisig 7d21b4eed0 firmware-utils: tplink-safeloader: add support for Archer C59/C60 RU
Add support for Russian version of TP-Link Archer C59/C60 v1

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2017-06-29 10:37:36 +02:00
Federico Cappon 9fec39a033 ar71xx: add support for TP-Link TL-WA855RE v1
TP-Link TL-WA855RE v1 is a wall-plug N300 Wi-Fi range extender,
based on Qualcomm/Atheros QCA9533 v2.

Short specification:

- 550/397/198 MHz (CPU/DDR/AHB)
- 1x 10/100 Mbps Ethernet
- 32 MB of RAM (DDR1)
- 4 MB of FLASH
- 2T2R 2.4 GHz
- 2x external antennas
- 2x LED (green and orange in the same package), 2x button
- UART: TP5(TX) and TP4(RX) test points on PCB

Flash instruction: use "factory" image directly in vendor GUI.

Warning: this device does not include any kind of recovery mechanism
in the bootloader and disassembling process is not trivial.

You can access vendor firmware over serial line using:
- login: root
- password: sohoadmin

Image was tested only in EU version of the device, but should work
also with the same device version sold in other countries.

Signed-off-by: Federico Cappon <dududede371@gmail.com>
2017-06-29 10:37:36 +02:00
Mathias Kresin 06741411e0 firmware-utils: fix dgn3500sum compiler warnings
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>
2017-06-26 20:08:36 +02:00
Alexander Couzens c47a1a3527 firmware-utils: honor env SOURCE_DATE_EPOCH
Use the timestamp from the enviroment SOURCE_DATE_EPOCH
if set instead of the build time.
Fixes reproducible builds for certain firmware images.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2017-06-19 14:34:52 +02:00
Ludwig Thomeczek 9cd69c45c5 firmware-utils: tplink-safeloader: add TP-Link Archer C25 v1
This adds the necessary firmware layout definitions for the Archer C25.
It has an addtional partition containing some static data ("extra-para")
without which no factory flash is possible, therefore put_data() has been
added.

Signed-off-by: Ludwig Thomeczek <ledesrc@wxorx.net>
2017-06-11 21:32:18 +02:00
Serg Studzinskii b7cc661615 ar71xx: add support for TP-Link TL-WR942N v1
TP-Link TL-WR942N v1 is a 2.4 GHz single-band N450 router, based on
Qualcomm/Atheros QCA9561.

Specification:

- 775/650/258 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 5x 10/100 Mbps Ethernet
- 2x USB 2.0
- 11x LED (most are controlled by 74HC595)
- 2x button
- UART header on PCB*

* Serial console is disabled in OEM non-beta firmwares and corresponding
  GPIO pins 14 and 15 are assigned to control USB1 and USB2 LEDs by
  production (non-beta) U-Boot and firmware.

Currently not working:

1. USB1 and USB2 LEDs if UART RX and TX pins are assigned to their GPIOs
   by some U-Boot versions.

Flash instruction under vendor GUI:

1. Download "lede-ar71xx-generic-tl-wr942n-v1-squashfs-factory.bin".
2. Go to WEB interface and perform usual firmware upgrade.

FLash instruction under U-Boot recovery mode (doesn't work in beta
firmware):

1. Setup PC with static IP "192.168.0.66/24" and tftp server.
2. Change "*-factory" image filename to "WR942v1_recovery.bin" and make
   it available to download from your tftp server.
3. Press "reset" button and power up the router, wait till "WPS" LED
   turns on.

Flash instruction under U-Boot, using UART (can be done only with
preinstalled UART-enabled U-Boot version!):

1. Use "tpl" to stop autobooting and obtain U-Boot CLI access.
2. Setup ip addresses for U-Boot and your tftp server.
3. Issue below commands:
   tftp 0x81000000 lede-ar71xx-generic-tl-wr942n-v1-sysupgrade.bin
   erase 0x9f020000 +$filesize
   cp.b 0x81000000 0x9f020000 $filesize
   reset

Signed-off-by: Serg Studzinskii <serguzhg@gmail.com>
[minor code style fixes, extended commit message]
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-06-11 21:32:17 +02:00
Jan Niehusmann c4022243d8 firmware-utils: tplink-safeloader: support strings as soft_version
Some TP-Link routers (C25, C59, C60) contain a version string instead
of a binary structure in the soft_version partition.

Flashing LEDE from the original firmware's GUI, this version string
taken from the soft_ver partition of the firmware image is written to
the router's config partition.

When using tftp recovery to go back to the original Archer C25 firmware,
a version check compares that version to the version of the firmware to
be flashed.

Without proper contents in the config partition, reverting to the
original firmware fails.

Therefore, write the string "soft_ver:1.0.0\n" to that soft_ver
partition.

Signed-off-by: Jan Niehusmann <jan@gondor.com>
2017-06-11 19:06:49 +02:00
Rafał Miłecki dfac808076 firmware-utils: tplink-safeloader: add support for Archer C5 V2
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2017-03-11 12:06:58 +01:00
Piotr Dymacz 56561b9f51 ar71xx: add support for TP-Link TL-WA850RE v2
TP-Link TL-WA850RE v2 is a wall-plug N300 Wi-Fi range extender,
based on Qualcomm/Atheros QCA9533 v2.

Short specification:

- 550/391/195 MHz (CPU/DDR/AHB)
- 1x 10/100 Mbps Ethernet
- 32 MB of RAM (DDR1)
- 4 MB of FLASH
- 2T2R 2.4 GHz
- 2x internal antennas (embedded on PCB)
- 9x LED (all can be turned off with GPIO15), 2x button
- UART (J3) header on PCB

Flash instruction: use "factory" image directly in vendor GUI.

Warning: this device does not include any kind of recovery mechanism
in the bootloader and disassembling process is not trivial.

You can access vendor firmware over serial line using:
- login: root
- password: sohoadmin

Image was tested only in US version of the device, but should work
also with the same device version sold in other countries.

Available FLASH space, with LEDE trunk, is only 240 KB.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2017-02-14 12:25:33 +01:00
FUKAUMI Naoki 7faee1bc9f firmware-utils: improve tools for Buffalo DHP series
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>
2017-01-31 10:55:02 +01:00
Henryk Heisig e39dc8d823 ar71xx: add support to TP-Link Archer C59v1 and C60v1
TP-Link Archer C59v1 is a dual-band AC1350 router, based on Qualcomm/Atheros
QCA9561+QCA9886.

Specification:

- 775/650/258 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 2T2R 5 GHz
- 5x 10/100 Mbps Ethernet
- USB 2.0 port
- 8x LED (controled by 74HC595), 3x button
- UART header on PCB

TP-Link Archer C60v1 is a dual-band AC1350 router, based on Qualcomm/Atheros
QCA9561+QCA9886.

Specification:

- 775/650/258 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 8 MB of FLASH (SPI NOR)
- 3T3R 2.4 GHz
- 2T2R 5 GHz
- 5x 10/100 Mbps Ethernet
- 7x LED, 2x button
- UART header on PCB

Currently not working:
- Port LAN1 on C59, LAN4 on C60
- WiFi 5GHz (missing ath10k firmware for QCA9886 chip)
- Update from oficial web interface ( tplink-saveloader not support "product-info")

Flash instruction:
1. Set PC to fixed ip address 192.168.0.66
2. Download lede-ar71xx-generic-archer-cXX-v1-squashfs-factory.bin
and rename it to tp_recovery.bin
3. Start a tftp server with the file tp_recovery.bin in its root directory
4. Turn off the router
5. Press and hold Reset button
6. Turn on router with the reset button pressed and wait ~15 seconds
7. Release the reset button and after a short time
the firmware should be transferred from the tftp server
8. Wait ~30 second to complete recovery.

Flash instruction under U-Boot, using UART:

1. tftp 0x81000000 lede-ar71xx-...-sysupgrade.bin
2. erase 0x9f020000 +$filesize
3. cp.b $fileaddr 0x9f020000 $filesize
4. reset

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
[Jo-Philipp Wich: remove duplicate ATH79_MACH_ARCHER_C59/C60_V1 entries]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2017-01-26 11:38:21 +01:00
John Crispin 920ee1f707 Revert "tools: wrt400n: fix making factory images with kernel bigger than 1MB"
This reverts commit 5f9b20bc7d.

The builders were failing with a segfault when generating the image

Signed-off-by: John Crispin <john@phrozen.org>
2017-01-20 06:43:13 +01:00
Yousong Zhou 5f9b20bc7d tools: wrt400n: fix making factory images with kernel bigger than 1MB
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
2017-01-20 00:44:26 +01:00
Matthias Schiffer 2ee3e8dd42
firmware-utils: tplink-safeloader: add support for TP-Link WBS210/510 1.2
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-05 16:01:17 +01:00
Henryk Heisig c8043137bb ramips: Add support to TP-Link Archer MR200
CPU: MT7620N 580MHz
Flash: 8MB
RAM: 64MB
build-in modem 3G/4G
four ethernet port 10/100Mbps

Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2016-12-22 15:03:30 +01:00
Radek Dostál 5515edae9f firmware-utils/tplink-safeloader: add support for TP-Link RE450
Signed-off-by: Radek Dostál <rd@radekdostal.com>
[Jo-Philipp Wich: use .support_trail member]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-22 14:50:05 +01:00
Tal Keren 0d9d980ecd firmware-utils: kernel image generator for TP-Link RE450
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>
2016-12-22 14:50:05 +01:00
Matthias Schiffer 51740990cd
firmware-utils: add support for TL-WR1043ND v4 to mktplinkfw and tplink-safeloader
The TL-WR1043ND v4 uses a kernel image with a mktplinkfw header inside the
os-image partition of a tplink-safeloader image.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-12-20 14:38:48 +01:00
Jo-Philipp Wich fff6443b5b
firmware-utils/tplink-safeloader: refactor code for further board support
In order to make it easier to add new boards in the future, refactor the code
to describe the image layouts of supported boards in a struct array and alter
the image generation routines to figure out the sysupgrade partitions
automatically.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-20 14:38:48 +01:00
Jo-Philipp Wich d58e8a9076
firmware-utils/tplink-safeloader: make vendor data optional
Restructure the code a bit to allow for omitting vendor data when generating
factory images.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-20 14:38:47 +01:00
Jo-Philipp Wich 38ebd1d133 firmware-utils: add E2100L support to addpattern.c
Based on OpenWrt PR#250

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-12-14 18:42:48 +01:00
Matthias Schiffer d1a2c3f9b1
firmware-utils: tplink-safeloader: update support lists for CPE210/510/...
Adds support for new EU and US variants; removes a few strings that were
never actually used and have been removed from the stock firmwares.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-12-12 13:46:58 +01:00
Rafał Miłecki cb7ab730c7 firmware-utils: replace md5 code with Alexander Peslyak's implementation
Our current implementation is pretty old and uses some pre-standard/old
ANSI C style that triggers warnings like:
warning: call to function 'MD5_Init' without a real prototype [-Wunprototyped-calls]

This is caused by declarations specified in a following way:
src/md5.h:60:6: note: 'MD5_Init' was declared here
 void MD5_Init ();

Having these warnings makes it harded to notice real problems. We could
try hiding them but it makes more sense to just use a cleaner code.
Another tiny gain from this switch is slightly reduced binary size, on
x86_64 tplink-safeloader's size 48104 became 48003.

The new code is public domain, uses "heavily cut-down BSD license".

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-28 07:52:31 +01:00
Florian Fainelli 97eff5cba5 firmware-utils: Fix build failure in mkmerakifw.c FS#298
Earlier compilers such as GCC 4 do not like anynomous unions, make it a named
union "u", and update the code where relevant.

Fixes FS#298
Fixes: a72e1692b8 ("firmware-utils: Add support for the Cisco Meraki MX60/MX60W")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2016-11-26 22:39:27 +01:00
Chris Blake a72e1692b8 firmware-utils: Add support for the Cisco Meraki MX60/MX60W
This patch adds header support for the Cisco Meraki MX60/MX60W, which
are a part of the apm821xx target. Some structure changes were needed
due to the fact this device uses U-Boot (unlike other devices in
mkmerakifw.c) which uses a different header structure to define the load
offsets for the image.

A thanks to Christian for helping implement this properly.

Cc: Christian Lamparter <chunkeey@gmail.com>

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
2016-11-21 11:09:03 +01:00
Rafał Miłecki 0d3be662ce firmware-utils: tplink-safeloader: keep per-device info on trailing char
Recent refactoring introduced a regression. It ignored second argument
of make_support_list function which was originally true for C2600. The
new generic build_image function always passes false.

This patch allows specifying trailing char in a device specific info. It
also switches Archer C9 to the \0 char to make it compliant with vendor
images.

I verified generated images to be binary identical to the ones that
were created before whole refactoring.

Reported-by: Jo-Philipp Wich <jo@mein.io>
Fixes: fd924d2068 ("firmware-utils: tplink-safeloader: use one function for generating images")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-20 17:17:48 +01:00
Rafał Miłecki 222783c65c firmware-utils: tplink-safeloader: add Archer C9 support
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-19 07:58:25 +01:00
Rafał Miłecki fd924d2068 firmware-utils: tplink-safeloader: use one function for generating images
Thanks to the struct device_info we can now use one unified function.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-19 07:57:58 +01:00
Rafał Miłecki ea249f01b1 firmware-utils: tplink-safeloader: add struct device_info
This struct stores all device specific info which allows making do_eap
function more generic.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2016-11-19 07:57:56 +01:00
Vitaly Chekryzhev a4814c744c firmware-utils: add tool to create zyxel images
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>
2016-11-17 20:01:21 +01:00
FUKAUMI Naoki 0165203304 ar71xx: add support for Buffalo BHR-4GRV2
Signed-off-by: FUKAUMI Naoki <naobsd@gmail.com>
2016-11-16 10:54:33 +01:00
Alexandru Ardelean 00d1e6c75e firmware-utils: fix compilation on MacOS X
Looking into /usr/include/stdlib.h, there's a `devname()` function defined
under some #ifdef's which conflicts with the `static char *devname` definition
in `src/mkwrggimg.c`.

Defining `_ANSI_SOURCE` in the `src/mkwrggimg.c` file, omits that part of the
header.

Another more intrusive approach is to rename `devname` to something like
`g_devname` in `src/mkwrggimg.c`. But I think the `_ANSI_SOURCE` define should
be enough.

Compilation error is:

    src/mkwrggimg.c:64:14: error: redefinition of 'devname' as different kind of symbol
    static char *devname;
                 ^
    /usr/include/stdlib.h:286:7: note: previous definition is here
    char    *devname(dev_t, mode_t);
             ^
    src/mkwrggimg.c:147:12: error: non-object type 'char *(dev_t, mode_t)' (aka 'char *(int, unsigned short)') is not assignable
                            devname = optarg;
                            ~~~~~~~ ^
    src/mkwrggimg.c:192:6: warning: comparison of function 'devname' equal to a null pointer is always false [-Wtautological-pointer-compare]
            if (devname == NULL) {
                ^~~~~~~    ~~~~
    src/mkwrggimg.c:192:6: note: prefix with the address-of operator to silence this warning
            if (devname == NULL) {
                ^
                &
    src/mkwrggimg.c:251:27: warning: incompatible pointer types passing 'char *(dev_t, mode_t)' (aka 'char *(int, unsigned short)') to parameter of type 'const char *' [-Wincompatible-pointer-types]
            strncpy(header->devname, devname, sizeof(header->devname));
                                     ^~~~~~~
    /usr/include/secure/_string.h:119:34: note: expanded from macro 'strncpy'
      __builtin___strncpy_chk (dest, src, len, __darwin_obsz (dest))

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
[Jo-Philipp Wich: slightly reformat commit message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2016-10-31 12:39:09 +01:00
Stijn Tintel 55eb6ed061 firmware-utils: mkwrggimg: new tool for D-Link DAP-2695
Based on mkwrgimg.c.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: John Crispin <john@phrozen.org>
2016-10-27 01:50:42 +03:00
Henryk Heisig f5aa459043 ar71xx: Add support to TP-Link EAP120
Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2016-10-18 09:18:55 +02:00
Jonas Gorski 997fed94e3 ptgen: work around gcc miscompilation
Some gcc versions seem to miscompile code using ternary operators,
work around this by just returning the result if exp is 0.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
2016-09-26 12:23:41 +02:00
Felix Fietkau 64568cac91 tools/firmware-utils: fix portability issue in mkmerakifw-old
Fixes build failure on Mac OS X

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-09-22 13:37:23 +02:00
Christian Lamparter 7219c30da4 firmware-utils mkmerakifw-old: firmware generator for Z1
This patch adds firmware generation tool for Cisco's Z1

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
2016-09-19 19:32:28 +02:00
Mathias Kresin 0ac50a661b firmware-utils: mksenaofw: rework option validation
The options firmware_type, vendor_id and product_id are not required
for decoding an image file.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2016-08-17 20:08:52 +02:00
Matthias Schiffer a4fc62bc0e
firmware-utils: mktplinkfw: add support for TP-Link's new region codes
TP-Link has changed the way the region is stored in the firmware header,
and now provides US- and EU-specific images for the Archer C7. Adding the
new region codes is necessary to make LEDE/OpenWrt flashable on devices
with the new stock firmwares again.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2016-08-28 19:59:21 +02:00
Chris Blake a57d6e2d47 apm821xx: add support for the Cisco Meraki MR24
This patch adds support for the Cisco Meraki MR24 Access point
to the apm821xx target.

Board:		MR24 - Meraki MR24 Cloud Managed Access Point
CPU:		APM82181 SoC 800 MHz (PLB=200 OPB=100 EBC=100)
Flash size:	32MiB
RAM Size:	128MiB
Wireless:	Atheros AR9380 5.0GHz + Atheros AR9380 2.4GHz
Ethernet ports:	1x Gigabit Atheros AR8035

WARNING: The serial port needs a TTL/RS-232 v3.3 level converter!

For flashing instructions, visit:
<https://github.com/riptidewave93/Openwrt-MR24/blob/master/README.md#flashing>

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
2016-07-22 09:48:12 +02:00
Rafał Miłecki f966ea2f49 firmware-utils: oseama: support extracting entity
This updates oseama in firmware-utils to the version from packages
keeping them synced.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
2016-06-15 10:54:16 +02:00
Alexander Couzens 5a5934f0c2 tools/mkfwimage2: remove 256 length limit for partition images
Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2016-06-14 22:13:37 -07:00
Henryk Heisig 6e0eccc5aa tools/firmware-utils: Add Archer C50 to mktplinkfw2
Signed-off-by: Henryk Heisig <hyniu@o2.pl>
2016-06-13 22:51:43 +02:00
Felix Fietkau 7eeb254cc4 treewide: replace nbd@openwrt.org with nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-06-07 08:58:42 +02:00
Alexander Couzens 8241479605 tools/tplink-safeloader: split CPE210 from CPE510 profile
The CPE210 was still described for the OEM upgrade as compatible,
even the wireless configuration isn't compatible anymore between
both series (2ghz and 5ghz).
Update the CPE210 image profile to use the new profile.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2016-05-27 15:55:13 +02:00
Ash Benz 955c341d3b fw-utils/tplink-safeloader.c: Add support for Archer C2600
Signed-off-by: Ash Benz <ash.benz@bk.ru>
2016-05-27 15:50:17 +02:00
Felix Fietkau ac780e3ac8 tools/firmware-utils: remove obsolete firmware utility for airlink 525w
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2016-05-12 17:40:29 +02:00
John Crispin d35801b9c5 tools: firmware-utils: add region code support to mktplinkfw
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 49215
2016-04-21 19:47:15 +00:00
John Crispin 51b6448746 tools: firmware-utils: clean up mktplinkfw
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
2016-04-21 19:47:12 +00:00
John Crispin 5f1a82ec4f ar71xx: add TP-Link TL-WA901ND-v4 support
Signed-off-by: Tiziano Bacocco <tizbac2@gmail.com>

SVN-Revision: 49158
2016-04-09 10:26:46 +00:00
John Crispin 3fd98db818 ar71xx: Add support for the OMYlink OMY-X1
This patch adds support for the OMYlink OMY-X1

https://wiki.openwrt.org/toh/omylink/omy-x1

http://www.omylink.com/

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>

SVN-Revision: 49026
2016-03-16 09:26:58 +00:00
John Crispin 4d97c8bab0 ramips: Add a tool to create JCG factory images
replace spaces with tabs

Signed-off-by: Reinhard Max <reinhard@m4x.de>

SVN-Revision: 48901
2016-03-04 08:32:54 +00:00
John Crispin 678dcef7a5 ramips: Add a tool to create JCG factory images
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
2016-03-03 20:24:30 +00:00
Felix Fietkau 076d58d344 firmware-utils: mkfwimage: fix firmware_max_length for XM layout
The new u-boot version bundled with the 5.6.x firmwares from Ubiquiti gets
confused by the smaller rootfs partition size; this can lead to various
issues:

1. We've gotten reports that flashing from the 5.6.x stock firmware to
   OpenWrt will brick devices; I wasn't able to reproduce this myself
2. Flashing from 5.5.x stock firmware to OpenWrt and back to stock (via
   TFTP recovery), following by an update to 5.6.x via web interface can
   yield a bricked device with the following properties:
   - It can't be booted without entering commands over a serial console, as
     u-boot supplies the wrong MTD layout
   - The web interface won't accept any image with the original flash
     layout, so stock firmware upgrades are impossible
   - As the TFTP recovery doesn't update u-boot, returning to the old
     u-boot from firmware 5.5.x is impossible

To recover from 2., creating an OpenWrt image which doesn't set u-boot as
read-only and flashing a backup of the old u-boot from there is the only
way known to me. (Fixing the mtdparts variable in u-boot-env from OpenWrt
might also work; settings this from u-boot over serial didn't have
any permanent effect.)

Fix all of this by setting the correct flash layout also used by the stock
firmware. Flashing has been tested from both firmware 5.5.x and 5.6.x. The
fixed layout also matches the mtdparts defined by OpenWrt.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 48829
2016-02-29 20:11:33 +00:00
Felix Fietkau 619a58d641 ar71xx, firmware-utils: split ubdev01 flash layout from XM
The ubdev01 profile defines its own MTDPARTS with smaller firmware
partition, so give it its own UBNT_BOARD in mkfwimage.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 48828
2016-02-29 20:11:30 +00:00
Felix Fietkau bd93998df6 firmware-utils: mkfwimage: add -Wall, fix obvious bugs causing compile warnings
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 48827
2016-02-29 20:11:26 +00:00
John Crispin d6cb792d21 ar71xx: Added support for TL-WA801NDv3
Signed-off-by: Tiziano Bacocco <tizbac2@gmail.com>

SVN-Revision: 48705
2016-02-12 08:30:28 +00:00
Rafał Miłecki 590c7825c1 firmware-utils: add oseama tool for creating Seama entities
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
2016-02-01 12:42:00 +00:00
Hauke Mehrtens 13b8b8c2e7 lantiq: add support for TP-Link VR200v
This adds basic support for TP-Link VR200v.
Currently the following parts are not working: FXO, Voice, DECT, WIFI (both)

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 48328
2016-01-18 20:40:03 +00:00
John Crispin 16317ceb4f firmware-utils: allow mkfwimage2 to use - in partition names
Signed-off-by: Roman Yeryomin <roman@advem.lv>

SVN-Revision: 47975
2015-12-23 14:43:47 +00:00
John Crispin 244173a093 firmware-utils: fix various compiler warnings
mostly implicit defines due to missing includes plus one const that
shouldn't be one.

Signed-off-by: Felix Kaechele <felix@kaechele.ca>

SVN-Revision: 47865
2015-12-11 15:09:30 +00:00
John Crispin 0231d41352 mktplinkfw: add missing exceeding bytes info to logs
Add the info on exceeding bytes also to the remaining log messages.

Signed-off-by: Felix Kaechele <felix@kaechele.ca>

SVN-Revision: 47864
2015-12-11 15:08:44 +00:00
John Crispin 90e4b76bd1 firmware-utils mkmerakifw: firmware generator for MR18
This patch adds firmware generation tool for Cisco's MR18

Signed-off-by: Thomas Hebb <tommyhebb@gmail.com>

SVN-Revision: 47856
2015-12-11 15:06:45 +00:00
Jonas Gorski 008aec391a brcm63xx: work around boot failures with squashfs on BCM6368
Due to the LWL/LWR SMP issue on BCM6368, booting with squash might fail
if the rootfs is not word aligned. As a quick fix, work around it by
ensuring this condition is always true.

Reported-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 47380
2015-11-04 11:33:22 +00:00
John Crispin 257e76a3df ar71xx: Bitmain Antminer S1 & S3 cleanup
Sets the LEDs to boardname:color:led-name
Sets the LAN to eth0
Other corrections such as the Machine Name and HWIDs
v2 corrects the profile names in the Makefile and changes tabs to spaces
in the Makefile 'define Device/' like the other devices.

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>

SVN-Revision: 47221
2015-10-19 10:10:02 +00:00
John Crispin 21e1b4163f tools/firmware-utils: tplink-safeloader: add version 1.1 support to CPE210/220/510/520
The hardware is identical to version 1.0, add the new models to the support
list.

Also remove the empty line at the end of the support list, the current
stock images don't have it either.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 47212
2015-10-19 10:08:50 +00:00
John Crispin fea5d26c7f tools/firmware-utils: tplink-safeloader: fix support-list format, clean up vendor information
The first 4 bytes of the support list and the vendor information are
supposed to contain the length of these fields.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 47211
2015-10-19 10:08:44 +00:00
John Crispin e9ed50829e tools/firmware-utils: tplink-safeloader: clean up code
There is no reason for the internal functions not to be static.

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>

SVN-Revision: 47210
2015-10-19 10:08:34 +00:00
Felix Fietkau 86492a1eb8 firmware-utils/buffalo-enc: explicitly use signed char for checksum function
ARM defaults to unsigned char and that breaks the calculation, as it
relies on sign extension

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 47186
2015-10-12 13:11:20 +00:00
Felix Fietkau 772e2c0a77 firmware-utils/buffalo-enc: add support for decrypting data with an offset
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 47185
2015-10-12 13:11:03 +00:00
Hauke Mehrtens 3d1a65adb4 tools: firmware-utils: fix compiler warnings
This just fixes a lot of compiler warnings.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>

SVN-Revision: 47181
2015-10-11 19:00:41 +00:00
John Crispin 161179f40b lantiq: Add target TP-Link TD-W8980
The device is similar to the TD-W8970, beside a different Atheros 2.4 GHz
wireless chip and the additional, PCI connected, WAVE300 5 GHz wireless.

Signed-off-by: Mathias Kresin <openwrt@kresin.me>

SVN-Revision: 47130
2015-10-05 10:28:19 +00:00
John Crispin cc3747e9e2 tools/firmware-utils: add header version 2 support for mktplinkfw
Signed-off-by: Weijie Gao <hackpascal@gmail.com>

This patch adds header version 2 option for mktplinkfw.

The version 2 header is used for AR/QCA firmwares and is not the same as
the header generated by mktplinkfw2.
Instead, it is nearly the same as version 1 header except for the header
version and the RSA signature.

The header version 2 support is used for newer TP-Link routers which have
only a 64kb bootloader part, e.g. TL-WDR6500 v2.

SVN-Revision: 46661
2015-08-17 06:23:43 +00:00
John Crispin a77a9f520c firmware-utils mktplinkfw: print amount of exceeding bytes
This is very useful for trimming images towards 4 MiB flash size.

Signed-off-by: Stephan Maka <stephan@spaceboyz.net>

SVN-Revision: 46469
2015-07-24 09:11:24 +00:00
John Crispin 5cd49bb067 ar71xx: add support for Onion Omega
This patch adds support for the Onion Omega.

https://onion.io/omega

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
Acked-by: Boken Lin <bl@onion.io>
Tested-by: Jacky Huang <huangfangcheng@163.com>

SVN-Revision: 46458
2015-07-24 09:09:49 +00:00
John Crispin 055663201b ar71xx: Add Support for the Bitmain Antminer S3
This patch adds support for the Bitmain Antminer S3 Cryptocurrency Miner

http://wiki.openwrt.org/toh/bitmain/s3

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>

SVN-Revision: 46236
2015-07-07 13:46:54 +00:00
John Crispin e85f3471ba ar71xx: add support for TL-WR720N-v4.
The hardware should be almost the same as TL-WR720N-v3.  WiFi and LAN networks
were tested by "Lo Yuk Fai <loyukfai@gmail.com>".  Failsafe and slider switch
were tested by "Wong min <alpha080@gmail.com>".

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

SVN-Revision: 46046
2015-06-18 18:21:23 +00:00
John Crispin 694dd581eb ar71xx: Add Support for the Bitmain Antminer S1
This patch adds support for the Bitmain Antminer S1 Cryptocurrency Miner

http://wiki.openwrt.org/toh/bitmain/s1

Signed-off-by: L. D. Pinney <ldpinney@gmail.com>
Acked-by: James Hilliard <james.hilliard1@gmail.com>

SVN-Revision: 46044
2015-06-18 18:21:05 +00:00
Felix Fietkau 39b8f7c0f7 firmware-tools/ptgen: use stdint types for struct pte
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45957
2015-06-14 17:41:21 +00:00
Felix Fietkau 6263567444 firmware-tools/ptgen: fix endianness conversion for PTE .start, .length field.
They are of 32-bit little endian integers.

Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>

SVN-Revision: 45956
2015-06-14 17:41:16 +00:00
John Crispin 5d3f0eea1c tools/firmware-utils: Allow changing the CRC32 poly value in mkbrnimg
VGV7519 is currently the only device with brnboot support. It seems to
be happy with 0x2083b8ed as CRC32 poly. However, VGV7510KW22 fails to
validate the checksum - it requires 0x04c11db7 instead.

I have built an brnboot image manually on the command line, once with
the old code and then with the new code but passing the old CRC32
poly value. Both resulted in a brnboot image with the same sha1sum.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>

SVN-Revision: 45881
2015-06-03 13:58:48 +00:00
Rafał Miłecki 63cac50d24 firmware-utils: asustrx: support setting firmware version
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45791
2015-05-27 17:58:11 +00:00
Rafał Miłecki 6feb68603a firmware-utils: asustrx: new tool for TRX format with Asus tail
Asus devices use TRX format with some extra data at the end.

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

SVN-Revision: 45773
2015-05-27 13:54:02 +00:00
Felix Fietkau a13e2d0e5c mktplinkfw: add flag to ignore size limit (used for initramfs images)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45644
2015-05-08 14:02:33 +00:00
Jonas Gorski bb54859543 brcm63xx: do not align squashfs rootfs start
We do not need to align the start of read only rootfs's to erase blocks.
This allows us to write the squashfs rootfs directly behind the kernel,
potentially freeing up one erase block.

We still need to align for jffs2, so add a flag for imagetag to
optionally align the rootfs start.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44556
2015-02-27 17:38:14 +00:00
Jonas Gorski 56fd5df368 firmware-utils: imagetag: use cyg_crc32 instead of duplicating code
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

SVN-Revision: 44554
2015-02-27 17:38:05 +00:00
John Crispin 9358a8a798 ar71xx: TL-WA7210n v2 support
This patch adds support for TP-Link TL-WA7210n[0]

[0] http://www.tplink.com/en/products/details/?model=TL-WA7210N

Signed-off-by: Hendrik Frenzel <hfrenzel@scunc.net>

SVN-Revision: 44526
2015-02-24 12:00:50 +00:00
Jo-Philipp Wich f7e56763e1 tools: remove static linking support
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>

SVN-Revision: 44285
2015-02-06 00:00:43 +00:00
John Crispin baaef42952 ar71xx: Revert "added board support for compex wpj558"
This reverts commit f7873071561d82e75ba2dc46433a2982fef8ac6f.

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

SVN-Revision: 44245
2015-02-02 10:32:04 +00:00
John Crispin bc906ca59e added board support for compex wpj558
Signed-off-by: Christian Mehlis <christian@m3hlis.de>

SVN-Revision: 44237
2015-02-02 09:00:21 +00:00
John Crispin 4961c7d0f5 ar71xx: add support for TL-WA701ND v2
Signed-off-by: Luigi Tarenga <luigi.tarenga@gmail.com>

SVN-Revision: 44063
2015-01-20 15:48:07 +00:00
Florian Fainelli 0c5feac573 tools: edimax_fw_header: fix suspicious memset usage
memset() was called with a size argument against a pointer size, not the
structure size itself.

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 43913
2015-01-10 18:08:16 +00:00
Felix Fietkau 265174ef48 tools/firmware-utils: add version 3 header support for mktplinkfw2
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43897
2015-01-09 15:40:39 +00:00
Felix Fietkau c12ac30870 buffalo-enc: pass the longstate option to decryption
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43756
2014-12-20 15:26:31 +00:00
Felix Fietkau 8e8437103c buffalo-enc: accept the longstate command line option
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43755
2014-12-20 15:26:25 +00:00