openwrt/openwrt.git
5 years agokernel: bump 4.9 to 4.9.177
Koen Vandeputte [Fri, 17 May 2019 09:46:47 +0000 (11:46 +0200)]
kernel: bump 4.9 to 4.9.177

Refreshed all patches.

Compile-tested on: ar7
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agoath79: glinet_gl-ar750s: Add USB power & microSD
Alexander Wördekemper [Thu, 16 May 2019 14:24:43 +0000 (16:24 +0200)]
ath79: glinet_gl-ar750s: Add USB power & microSD

The GL.iNet AR750S USB and microSD port is currently not working out of
the box.  GPIO 7 is used to control the power of the USB port. Add GPIO
7 as a fixed-regulator for the port.  Also add &usb1 to DTS to get the
microSD port to work.

Signed-off-by: Alexander Wördekemper <alexwoerde@web.de>
5 years agoimx6: apalis: fix config survival after sysupgrade -n
Petr Štetiar [Mon, 13 May 2019 14:42:41 +0000 (16:42 +0200)]
imx6: apalis: fix config survival after sysupgrade -n

This patch fixes `sysupgrade -n` when flashed with rootfs of the same
size as currently running, so the rootfs_data wouldn't get destroyed and
thus survive reboot. So let's fix it by always cleaning up the content
of the rootfs_data during sysupgrade.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agouboot-imx6: bump to 2019.04 and refresh patches
Petr Štetiar [Tue, 14 May 2019 07:47:26 +0000 (09:47 +0200)]
uboot-imx6: bump to 2019.04 and refresh patches

Build tested: apalis, mx6sabresd, nitrogen6dl, nitrogen6dl2g, nitrogen6q,
      nitrogen6q2g, nitrogen6s, nitrogen6s1g, wandboard

Run tested: apalis

Cc: Felix Fietkau <nbd@nbd.name>
Cc: Vladimir Vid <vladimir.vid@sartura.hr>
Cc: Koen Vandeputte <koen.vandeputte@ncentric.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoath79: add leds migrations for archer-c7-v5
Petr Štetiar [Fri, 17 May 2019 11:52:20 +0000 (13:52 +0200)]
ath79: add leds migrations for archer-c7-v5

ar71xx uses `archer-c7-v5` for led prefix, but ath79 sticks to more
generic `tplink` as the DTS is reused by more boards, so we need to
perform migrations of the LED names during upgrade.

Cc: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoar71xx: set mib-poll-interval on devices with ar8xxx switch
Petr Štetiar [Fri, 17 May 2019 08:56:33 +0000 (10:56 +0200)]
ar71xx: set mib-poll-interval on devices with ar8xxx switch

Commit "generic: ar8216: add mib_poll_interval switch attribute" sets
mib-poll-interval as disabled by default (was set to 2s), so it makes
switch LEDs trigger disfunctional on devices which don't have
mib-poll-interval set.

So this patch sets mib-poll-interval to 500ms on devices which are using
ar8xxx switch LEDs trigger, as the same value was set for built in
switches in 443fc9ac35 ("ath79: use ar8216 for builtin switch").

Signed-off-by: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
5 years agoapm821xx: set mib-poll-interval on emac0 attached ar83xx switch
Petr Štetiar [Sun, 14 Apr 2019 15:23:38 +0000 (17:23 +0200)]
apm821xx: set mib-poll-interval on emac0 attached ar83xx switch

Commit "generic: ar8216: add mib_poll_interval switch attribute" sets
mib-poll-interval as disabled by default (was set to 2s), so it makes
switch LEDs trigger disfunctional on devices which don't have
mib-poll-interval set.

So this patch sets mib-poll-interval to 500ms on devices which have
ar83xx switch connected to emac0, as the same value was set for built in
switches in 443fc9ac35 ("ath79: use ar8216 for builtin switch").

Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoath79: set mib-poll-interval on mdio0 attached ar83xx switch
Petr Štetiar [Sun, 14 Apr 2019 15:26:04 +0000 (17:26 +0200)]
ath79: set mib-poll-interval on mdio0 attached ar83xx switch

Commit "generic: ar8216: add mib_poll_interval switch attribute" sets
mib-poll-interval as disabled by default (was set to 2s), so it makes
switch LEDs trigger disfunctional on devices which don't have
mib-poll-interval set.

So this patch sets mib-poll-interval to 500ms on devices which have
ar83xx switch connected to mdio0 bus, as the same value was set for
built in switches in 443fc9ac35 ("ath79: use ar8216 for builtin
switch").

Some measurements performed on TP-Link Archer C7-v5:

 mib-type=0, mib-poll-interval=500ms (10s pidstat)

  Average:  %usr %system  %guest   %wait    %CPU   CPU  Command
  Average:  0.00    1.93    0.00    0.00    1.93     -  kworker/0:2

  iperf3 (30s): 334 Mbits/sec

 mib-type=0, mib-poll-interval=2s (10s pidstat)

  Average:  %usr %system  %guest   %wait    %CPU   CPU  Command
  Average:  0.00    1.14    0.00    0.00    1.14     -  kworker/0:2

  iperf3 (30s): 334 Mbits/sec

So it seems like we get 4x faster LED refresh rate for additional 0.8%
CPU load.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agobase-files: add support for the new ar8xxx MIB counters settings
Petr Štetiar [Fri, 17 May 2019 08:53:18 +0000 (10:53 +0200)]
base-files: add support for the new ar8xxx MIB counters settings

Commit "generic: ar8216: add mib_poll_interval switch attribute" has
added mib_poll_interval global config option and commit "generic:
ar8216: group MIB counters and use two basic ones only by default" has
added mib_type config option.

So this patch adds ucidef_set_ar8xxx_switch_mib helper function which
would allow configuration of the above mentioned new switch config
options.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agonetifd: add support for the new ar8xxx MIB counters settings
Petr Štetiar [Sat, 13 Apr 2019 08:31:44 +0000 (10:31 +0200)]
netifd: add support for the new ar8xxx MIB counters settings

Commit "generic: ar8216: add mib_poll_interval switch attribute" has added
mib_poll_interval global config option and commit "generic: ar8216: group
MIB counters and use two basic ones only by default" has added mib_type
config option.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agogeneric: ar8216: group MIB counters and use two basic ones only by default
Chuanhong Guo [Thu, 11 Apr 2019 13:45:45 +0000 (21:45 +0800)]
generic: ar8216: group MIB counters and use two basic ones only by default

There are too many MIB counters that almost nobody needs since commit
d6366ce3665f ("generic: ar8216: mib_work_func: read all port mibs
everytime").

In the worker function to poll MIB data, it deals with all ports instead
of only one port every time, which introduces too many mdio operations
that it becomes a heavy CPU load even on not-emulated MDIO bus.

This commit groups MIB counters and enable only TxBytes and RxGoodBytes
by default (both of which are necessary to get swconfig led working.)
and adds an swconfig attribute to allow enabling all counters if users
need them.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
5 years agogeneric: ar8216: add mib_poll_interval switch attribute
Chuanhong Guo [Tue, 9 Apr 2019 13:32:32 +0000 (21:32 +0800)]
generic: ar8216: add mib_poll_interval switch attribute

This allows specifying interval of polling MIB counters from userspace
and allow completely turning off MIB counter support by setting
mib_poll_interval to 0.

Since MIB counter polling is a heavy CPU load for GPIO emulated MDIO
bus, disable this behavior by default. Those who wants to use swconfig
LEDs can enable them with qca,mib-poll-interval dts property or with
swconfig command.

Fixes: FS#2230 ("kworker spikes 100% cpu every 2 second.")
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
5 years agouboot-fritz4040: Add host flags for host compiler
Hauke Mehrtens [Fri, 17 May 2019 19:32:50 +0000 (21:32 +0200)]
uboot-fritz4040: Add host flags for host compiler

This adds the host staging directory to the include path to make it use
the zlib.h files from the staging include directory and also link
against the zlib version from the staging directory.

This fixes a compile problem when the zlib header were not installed on
the build host.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[picked from openwrt-18.06]

5 years agoapm821xx: WNDR4700: remove obsolete sd-card change detection
Christian Lamparter [Sun, 19 May 2019 10:11:13 +0000 (12:11 +0200)]
apm821xx: WNDR4700: remove obsolete sd-card change detection

The SD-Card polling is now implemented by default in the
fs-tools block-mount utility package. It might not be as
fast as the current detection method since the polling
time is 2 Seconds, but it's much less of an hack.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
5 years agoppp: update to version 2.4.7.git-2019-05-18
Hans Dedecker [Sat, 18 May 2019 19:34:23 +0000 (21:34 +0200)]
ppp: update to version 2.4.7.git-2019-05-18

c9d9dbf pppoe: Custom host-uniq tag
44012ae plugins/rp-pppoe: Fix compile errors

Refresh patches
Drop 520-uniq patch as upstream accepted
Drop 150-debug_compile_fix patch as fixed upstream

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
5 years agoscons: update to 3.0.5
Deng Qingfang [Sat, 18 May 2019 13:01:14 +0000 (21:01 +0800)]
scons: update to 3.0.5

Update scons to 3.0.5

Signed-off-by: Deng Qingfang <dengqf6@mail2.sysu.edu.cn>
5 years agoath79: convert WD MyNet Range Extender to gpio-keys
Christian Lamparter [Sat, 18 May 2019 11:38:18 +0000 (13:38 +0200)]
ath79: convert WD MyNet Range Extender to gpio-keys

This patch converts the Range Extender to use the
interrupt-driven gpio-keys driver over the polled variant.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
5 years agoath79: convert Netgear WNDR3700 series to gpio-keys
Christian Lamparter [Sat, 18 May 2019 11:30:19 +0000 (13:30 +0200)]
ath79: convert Netgear WNDR3700 series to gpio-keys

This patch converts the WNDR3700 to use the interrupt-driven
gpio-keys driver over the polled variant.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
5 years agoath79: use the qca,qca9563 chip compatible for the WR818
Christian Lamparter [Sat, 18 May 2019 09:12:30 +0000 (11:12 +0200)]
ath79: use the qca,qca9563 chip compatible for the WR818

All other QCA9563 devices already use this identifier for
the exact SoC. Not that this matters much since as upstream
states in Documentation/devicetree/usage-model.txt:

"First and foremost, the kernel will use data in the DT to
identify the specific machine.  In a perfect world, the
specific platform shouldn't matter to the kernel because all
platform details would be described perfectly by the device
tree in a consistent and reliable manner.

[...]

In the majority of cases, the machine identity is irrelevant,
and the kernel will instead select setup code based on the
machine's core CPU or SoC."

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
5 years agoramips: add support for Telco Electronics X1
Nicholas Smith [Fri, 19 Apr 2019 04:12:11 +0000 (14:12 +1000)]
ramips: add support for Telco Electronics X1

Hardware:
SoC:   MT7621
DRAM:  256MB DDR3
Flash: 16MB SPI-NOR
WiFi:  2.4GHz: MT7603 @ PCIe0
WiFi:  5.8GHz: MT7612 @ PCIe1
Modem: Sierra Wireless MC74xx

Interfaces:
GBE RJ45 x5
mPCIe    x2
UART     x1
I2C      x1
JTAG     x1
UIM      x1
LEDs     x6

Flash instructions:
Flash from within the factory bootloader, firmware web interface or CLI using
sysupgrade -F -n

Signed-off-by: Nicholas Smith <mips171@icloud.com>
5 years agoath79: add support for TP-Link Archer D50 V1
Davide Fioravanti [Sun, 5 May 2019 20:35:00 +0000 (22:35 +0200)]
ath79: add support for TP-Link Archer D50 V1

TP-Link Archer D50 v1 is a dual-band AC1200 router + modem.
The router section is based on Qualcomm/Atheros QCA9531 + QCA9882.
The "DSL" section is based on BCM6318 but it's currently not supported.

Internally eth0 is connected to the Broadcom CPU.

Router section - Specification:

CPU: QCA9531 650/600/200 MHz (CPU/DDR/AHB)
RAM: 64 MB (DDR2)
Flash: 8 MB (SPI NOR)
Wifi 2.4GHz: QCA9531 2T2R
Wifi 5GHz: QCA9982 2T2R
4x 10/100 Mbps Ethernet
8x LED, 3x button
UART header on PCB

Known issues:
DSL not working (eth0) (WIP)

UART connection
---------------
J2 HEADER (Qualcomm CPU)
. TX
. RX
. GND
O VCC

J16 HEADER (Broadcom CPU)
O VCC
. GND
. RX
. TX

The following instructions require a connection to the J2 UART header.

Flash instruction under U-Boot, using UART
------------------------------------------
 1. Press any key to stop autobooting and obtain U-Boot CLI access.
 2. Setup ip addresses for U-Boot and your tftp server.
 3. Issue below commands:
tftpboot 0x81000000 openwrt-ath79-generic-tplink_archer-d50-v1-squashfs-sysupgrade.bin
erase 0x9f020000 +$filesize
cp.b 0x81000000 0x9f020000 $filesize
reset

Initramfs instruction under U-Boot for testing, using UART
----------------------------------------------------------
 1. Press any key to stop autobooting and obtain U-Boot CLI access.
 2. Setup ip addresses for U-Boot and your tftp server.
 3. Issue below commands:
tftpboot 0x81000000 openwrt-ath79-generic-tplink_archer-d50-v1-initramfs-kernel.bin
bootm 0x81000000

Restore the original firmware
-----------------------------
 0. Backup every partition using the OpenWrt web interface
 1. Download the OEM firmware from the TP-Link website
 2. Extract the bin file in a folder (eg. Archer_D50v1_0.8.0_1.3_up_boot(170223)_full_2017-02-24_09.37.45.bin)
 3. Remove the U-Boot and the Broadcom image part from the file.
    Issue the following command:
dd if="Archer_D50v1_0.8.0_1.3_up_boot(170223)_full_2017-02-24_09.37.45.bin" of="Archer_D50v1_0.8.0_1.3_up_boot(170223)_full_2017-02-24_09.37.45.bin.mod" skip=257 bs=512 count=15616
 4. Double check the .mod file size. It must be 7995392 bytes.
 5. Flash it using the OpenWrt web interface. Force the update if needed.
    WARNING: Remember to NOT keep settings.

 5b. (Alternative to 5.) Flash it using the U-Boot and UART connection.
     Issue below commands in the U-Boot:
        tftpboot 0x81000000 Archer_D50v1_0.8.0_1.3_up_boot(170223)_full_2017-02-24_09.37.45.bin.mod
        erase 0x9f020000 +$filesize
        cp.b 0x81000000 0x9f020000 $filesize
        reset

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [removed
default-state = "off", it's already the default, added pcie node,
fixed typo]

5 years agotools/firmware-utils: mktplinkfw2: add Qualcomm layouts
Davide Fioravanti [Sun, 5 May 2019 20:21:44 +0000 (22:21 +0200)]
tools/firmware-utils: mktplinkfw2: add Qualcomm layouts

This commit adds the partition layout used by the TP-Link Archer D50
and probably by the TP-Link Archer D7 to mktplinkfw2.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
5 years agoath79: add support for Aruba AP-105
Chris Blake [Sun, 5 May 2019 17:56:03 +0000 (12:56 -0500)]
ath79: add support for Aruba AP-105

SoC: Atheros AR7161-8C1A @ 680 MHz
RAM: 128MB - 2x Etron Technology EM6AB160TSA-5G
NOR: 16MB - 1x MXIC MX25L12845EMI-10G (SPI-NOR)
WI1: Atheros AR9223-AC1A 802.11bgn
WI2: Atheros AR9220-AC1A 802.11an
ETH: Atheros AR8021-BL1E + PoE
LED: Dual-Color Power/Status, Ethernet, WLAN2G and WLAN5G
BTN: 1 x Reset
I2C: AT97SC4303s TPM (needs driver!)
CON: RS232-level 8P8C/RJ45 Console Port - 9600 Baud

Factory installation:

 - Needs a u-boot replacement. See Wiki for
   information on how to do a in-circut flash with
   a SPI-Flasher like a CH314A or flashrom. Wiki page
   can be found at https://openwrt.org/toh/aruba/aruba_ap-105

 - Be careful when dis- and reassembling the device to
   not squish any of the antenna cables in the process!

 - Be sure to make a full 16 MiB backup of your device
   before flashing the new u-boot! This is needed if you
   ever have interest in reverting back to stock firmware.

Not working:

 - TPM (needs a driver)

Signed-off-by: Chris Blake <chrisrblake93@gmail.com>
5 years agoramips: add factory image for WNDR3700v5
Jan Hoffmann [Wed, 15 May 2019 19:11:01 +0000 (19:11 +0000)]
ramips: add factory image for WNDR3700v5

This uses the existing rules for Sercomm factory images and moves them
to the ramips image Makefile, so they can be used in all subtargets.

The new factory image for WNDR3700v5 can be flashed using nmrpflash.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
5 years agoath79: Add support for TP-Link TL-WR1043N v5
Adrian Schmutzler [Mon, 6 May 2019 13:29:16 +0000 (15:29 +0200)]
ath79: Add support for TP-Link TL-WR1043N v5

Specifications:

 - QCA9563 at 775 MHz
 - 64 MB RAM Zentel A3R12E40CBF-8E
 - 16 MB flash Winbond W25Q128FVSG
 - 3 (non-detachable) Antennas / 450 Mbit
 - 1x/4x WAN/LAN Gbps Ethernet (QCA8337)
 - reset and Wi-Fi buttons

TP-Link TL-WR1043N v5 appears to be identical to the TL-WR1043ND v4,
except that the USB port has been removed and there is no longer a
removable antenna option. It also has different partitioning scheme.

The software is more in line with the Archer series in that it uses a
nested bootloader scheme.

(This has been adapted from the OpenWrt Wiki page)
<https://openwrt.org/toh/tp-link/tl-wr1043nd>

Installation on HW rev.5:

Factory firmware can be installed via the WEB interface.

Alternatively, it is also possible to use a TFTP server
for recovery purposes:
 - Rename OpenWRT or original firmware to WR1043v5_tp_recovery.bin
 - Set static IP of your PC to *192.168.0.66*
 - Router will obtain IP 192.168.0.86 for a few seconds while
   loading, when reset button pressed at power On.

And finally, there's always u-boot access through the UART.
For information visit the wiki.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[reworked commit message]

5 years agoath79: Move TL-WR1043ND v1 definition to companions
Adrian Schmutzler [Tue, 7 May 2019 11:53:21 +0000 (13:53 +0200)]
ath79: Move TL-WR1043ND v1 definition to companions

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
5 years agoath79: Move settings specific for TP-Link TL-WR1043ND v4 to DTS
Adrian Schmutzler [Tue, 7 May 2019 11:49:33 +0000 (13:49 +0200)]
ath79: Move settings specific for TP-Link TL-WR1043ND v4 to DTS

This prepares for support of v5.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
5 years agobuild: add UBOOT_PATH to DEFAULT_DEVICE_VARS and set a default
Christian Lamparter [Mon, 11 Feb 2019 17:55:32 +0000 (18:55 +0100)]
build: add UBOOT_PATH to DEFAULT_DEVICE_VARS and set a default

The helper shared Build/append-uboot in include/image-commands.mk
uses it, so include this variable in DEFAULT_DEVICE_VARS.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
5 years agogemini: Fix up firmware checksum on DIR-685
Linus Walleij [Wed, 15 May 2019 20:37:26 +0000 (22:37 +0200)]
gemini: Fix up firmware checksum on DIR-685

Using the same method as the D-Link DAP-2695 A1 we use
the "mtd" tool to augment the firmware checkum in flash
on first boot of a new firmware on the D-Link DIR-685.
We need to augment the Makefile for "mtd" to build in
the special WRGG fixup support for Gemini as well.

This works around the problem of the machine not booting
after factory install unless the sysupgrade is applied
immediately.

Based on commit e3875350f3e4185020b64e0588bba521cd1d6e64
"ar71xx: add support for D-Link DAP-2695 rev. A1"

Cc: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
5 years agomtd: Make fixwrgg command work on DIR-685
Linus Walleij [Wed, 15 May 2019 20:37:25 +0000 (22:37 +0200)]
mtd: Make fixwrgg command work on DIR-685

The D-Link DIR-685 has the same problem as the
D-Link DAP-2695: when flashing the factory image, the
checksum includes the whole flashed image, even the
rootfs_data part with the end of filesystem mark.
Also the whole flashed image is stored in the flash,
so on the first boot, the whole rootfs image is loaded
into memory with the kernel.

This is fixed using the fixwrgg command to mtd, but
for this to work we need to make fixwrgg work with
the Little-Endian ARM DIR-685.

The code tries to be endian agnostic but this fails
because the WRGG image loader doesn't. On ARM, the
file size is stored in little endian format, and on
big-endian systems it is stored in big endian format,
so we can just drop all the friendly htonl() that
will make the shdr->size big endian: this will
actually break the little endian systems, and on
the big endian systems the native endianness will
still be correct.

The magic number is always stored in little endian
format however, so make sure this is always read
in LE32 format. I chose to create a straight-forward
le32_to_cpu() static inline that IMO is simple and
easy to read.

Cc: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
5 years agoramips: add support for HILINK HLK-7628N
Liu Yu [Sun, 5 May 2019 02:54:52 +0000 (10:54 +0800)]
ramips: add support for HILINK HLK-7628N

Specification:

CPU:       MT7628 580 MHz. MIPS 24K
RAM:       128 MB
Flash:     32 MB
WIFI:      802.11n/g/b 20/40 MHz
Ethernet:  5 Port ethernet switch
UART:      2x

Flash instruction:
The U-boot is based on Ralink SDK so we can flash the firmware using UART:
1. Configure PC with a static IP address and setup an TFTP server.
2. Put the firmware into the tftp directory.
3. Connect the UART0 line as described on the PCB.
4. Power up the device and press 2, follow the instruction to
   set device and tftp server IP address and input the firmware
   file name. U-boot will then load the firmware and write it into
   the flash.
5. After firmware is started connect via ethernet at 192.168.1.1

Signed-off-by: Liu Yu <f78fk@live.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [removed dupped subject]
5 years agoath79: add support for EnGenius ECB1750
sven friedmann [Tue, 26 Mar 2019 21:35:05 +0000 (22:35 +0100)]
ath79: add support for EnGenius ECB1750

Specification:

- Qualcomm Atheros SoC QCA9558
- 720/600/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- 1x 10/100/1000 Mbps Ethernet
- 3T3R 2.4 GHz (QCA9558 WMAC)
- 3T3R 5.8 Ghz (QCA9880-BR4A, Senao PCE4553AH)

https://fccid.io/A8J-ECB1750

Tested and working:

- lan, wireless, leds, sysupgrade (tftp)

Flash instructions:

1.) tftp recovery

- use a 1GbE switch or direct attached 1GbE link
- setup client ip address 192.168.1.10 and start tftpd
- save "openwrt-ath79-generic-engenius_ecb1750-initramfs-kernel.bin" as "ap.bin" in tfpd root directory
- plugin powercord and hold reset button 10secs.. "ap.bin" will be downloaded and executed
- afterwards login via ssh and do a sysuprade

2.) oem webinterface factory install (not tested)

Use normal webinterface upgrade page und select "openwrt-ath79-generic-engenius_ecb1750-squashfs-factory.bin".

3.) oem webinterface command injection

OEM Firmware already running OpenWrt (Attitude Adjustment 12.09).
Use OEM webinterface and command injection. See wiki for details.

https://openwrt.org/toh/engenius/engenius_ecb1750_1

Signed-off-by: sven friedmann <sf.openwrt@okay.ms>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[use interrupt-driven "gpio-keys" binding]

5 years agoipq40xx: Add support for Linksys EA8300 (Dallas)
Jeff Kletsky [Wed, 10 Apr 2019 15:34:28 +0000 (08:34 -0700)]
ipq40xx: Add support for Linksys EA8300 (Dallas)

The Linksys EA8300 is based on QCA4019 and QCA9888 and provides three,
independent radios. NAND provides two, alternate kernel/firmware
images with fail-over provided by the OEM U-Boot.

Installation:

  "Factory" images may be installed directly through the OEM GUI.

Hardware Highlights:

  * IPQ4019 at 717 MHz (4 CPUs)
  * 256 MB NAND (Winbond W29N02GV, 8-bit parallel)
  * 256 MB RAM
  * Three, fully-functional radios; `iw phy` reports (FCC/US, -CT):
      * 2.4 GHz radio at 30 dBm
      * 5 GHz radio on ch. 36-64 at 23 dBm
      * 5 GHz radio on ch. 100-144 at 23 dBm (DFS), 149-165 at 30 dBm
      #{ managed } <= 16, #{ AP, mesh point } <= 16, #{ IBSS } <= 1
      * All two-stream, MCS 0-9
  * 4x GigE LAN, 1x GigE Internet Ethernet jacks with port lights
  * USB3, single port on rear with LED
  * WPS and reset buttons
  * Four status lights on top
  * Serial pads internal (unpopulated)

  "Linksys Dallas WiFi AP router based on Qualcomm AP DK07.1-c1"

Implementation Notes:

  The OEM flash layout is preserved at this time with 3 MB kernel and
  ~69 MB UBIFS for each firmware version. The sysdiag (1 MB) and
  syscfg (56 MB) partitions are untouched, available as read-only.

Serial Connectivity:

  Serial connectivity is *not* required to flash.

  Serial may be accessed by opening the device and connecting
  a 3.3-V adapter using 115200, 8n1. U-Boot access is good,
  including the ability to load images over TFTP and
  either run or flash them.

  Looking at the top of the board, from the front of the unit,
  J3 can be found on the right edge of the board, near the rear

      |
   J3 |
  |-| |
  |O| | (3.3V seen, open-circuit)
  |O| | TXD
  |O| | RXD
  |O| |
  |O| | GND
  |-| |
      |

Unimplemented:

    * serial1 "ttyQHS0" (serial0 works as console)
    * Bluetooth; Qualcomm CSR8811 (potentially conected to serial1)

Other Notes:

    https://wikidevi.com/wiki/Linksys_EA8300 states

        FCC docs also cover the Linksys EA8250. According to the
RF Test Report BT BR+EDR, "All models are identical except
for the EA8300 supports 256QAM and the EA8250 disable 256QAM."

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
5 years agomtd: base-files: Unify dual-firmware devices (Linksys)
Jeff Kletsky [Wed, 10 Apr 2019 15:28:01 +0000 (08:28 -0700)]
mtd: base-files: Unify dual-firmware devices (Linksys)

Consistently handle boot-count reset and upgrade across
ipq40xx, ipq806x, kirkwood, mvebu

Dual-firmware devices often utilize a specific MTD partition
to record the number of times the boot loader has initiated boot.

Most of these devices are NAND, typically with a 2k erase size.
When this code was ported to the ipq40xx platform, the device in hand
used NOR for this partition, with a 16-byte "record" size. As the
implementation of `mtd resetbc` is by-platform, the hard-coded nature
of this change prevented proper operation of a NAND-based device.

* Unified the "NOR" variant with the rest of the Linksys variants

* Added logging to indicate success and failure

* Provided a meaningful return value for scripting

* "Protected" the use of `mtd resetbc` in start-up scripts so that
   failure does not end the boot sequence

* Moved Linksys-specific actions into common `/etc/init.d/bootcount`

For upgrade, these devices need to determine which partition to flash,
as well as set certain U-Boot envirnment variables to change the next
boot to the newly flashed version.

* Moved upgrade-related environment changes out of bootcount

* Combined multiple flashes of environment into single one

* Current-partition detection now handles absence of `boot_part`

Runtime-tested: Linksys EA8300

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[checkpatch.pl fixes, traded split strings for 80+ chars per line]

5 years agofirmware/ipq-wifi: Extend for multi-chip boards
Jeff Kletsky [Sun, 14 Apr 2019 20:20:57 +0000 (13:20 -0700)]
firmware/ipq-wifi: Extend for multi-chip boards

This package provides board-specific reference ("cal") data
on an interim basis until included in the upstream distros

While originally conceived for IPQ4019-based boards, similar needs
are appearing with three-radio devices. For some of these devices,
both a board-2.bin file needs to be supplied both for the IPQ4019
as well as for the other radio on the board.

This patch allows new or multiple overrides to be specified by:

  * Adding board name to ALLWIFIBOARDS
  * Placing file(s) in this directory named as
      board-<devicename>.<qca4019|qca9888|qca9984>
  * Adding
      $(eval $(call generate-ipq-wifi-package,<device>,<display name>))

(along with suitable package selection for the board)

At this time, QCA4019, QCA9888, and QCA9984 are supported.
Extension to other chips should be straightforward.

The existing files, board-*.bin, are "grandfathered" as QCA4019.

The package name has been retained for compatability reasons.
At this time it DEPENDS:=@TARGET_ipq40xx, limiting its visibility.

Build-tested-on: asus_map-ac2200, alfa-network_ap120c-ac,
    avm_fritzbox-7530, avm_fritzrepeater-3000, engenius_eap1300,
    engenius_ens620ext, linksys_ea6350v3, qxwlan-e2600ac-c1/-c2

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
5 years agonetifd: update to latest git HEAD
Hans Dedecker [Sat, 18 May 2019 07:32:42 +0000 (09:32 +0200)]
netifd: update to latest git HEAD

22e8e58 interface-ip: use ptp address as well to find local address target
f1aa0f9 treewide: pass bool as second argument of blobmsg_check_attr

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
5 years agolibbsd: Fix compilation under ARC
Rosen Penev [Wed, 1 May 2019 17:04:45 +0000 (10:04 -0700)]
libbsd: Fix compilation under ARC

The 8 year old file does not have any ARC definitions.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
[updated content of the patch with version sent to upstream]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agozynq: make title consistent for all devices
Luis Araneda [Thu, 16 May 2019 03:57:19 +0000 (23:57 -0400)]
zynq: make title consistent for all devices

Modify the title to match the following format, as it's enough
to uniquely identify a device:
<manufacturer> <model>

This matches what's done for other targets and has the
added benefit of creating a sorted-by-manufacturer list
of devices on menuconfig

Signed-off-by: Luis Araneda <luaraneda@gmail.com>
5 years agosystem: uci: Use config dir on uci_add and support add_/del_list
Kristian Evensen [Wed, 15 May 2019 18:56:18 +0000 (20:56 +0200)]
system: uci: Use config dir on uci_add and support add_/del_list

This commit makes three changes to the uci shell library:

* A check for UCI_CONFIG_DIR has been added to the command line when
adding anonymous sections. Without this change, adding anonymous
sections to configs not stored in /etc/config is not possible.

* Support for adding/removing items from lists were missing, so I have
added the functions uci_add_list() and uci_remove_list() to simplify
working with uci lists from scripts.

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
[added missing package version bump]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoramips: Add support for ZBT WE826-E
Kristian Evensen [Thu, 16 May 2019 13:38:00 +0000 (15:38 +0200)]
ramips: Add support for ZBT WE826-E

ZBT WE826-E is a dual-SIM version of the ZBT WE826. The router has the
following specifications:

- MT7620A (580 MHz)
- 128MB RAM
- 32MB of flash (SPI NOR)
- 5x 10/100Mbps Ethernet (MT7620A built-in switch)
- 1x microSD slot
- 1x miniPCIe slot (only USB2.0 bus)
- 2x SIM card slots (standard size)
- 1x USB2.0 port
- 1x 2.4GHz wifi (rt2800)
- 10x LEDs (4 GPIO-controlled)
- 1x reset button

The following have been tested and working:
- Ethernet switch
- wifi
- miniPCIe slot
- USB port
- microSD slot
- sysupgrade
- reset button

Installation and recovery:

In order to install OpenWRT the first time or recover the router, you
can use the web-based recovery system. Keep the reset button pressed
during boot and access 192.168.1.1 in your browser when your machine
obtains an IP address.  Upload the firmware to start the recovery
process.

How to swap SIMs:

You control which SIM slot to use by writing 0/1 to
/sys/class/gpio/gpio13/value. In order for the change to take effect,
you can either use AT-commands (AT+CFUN) or power-cycle the modem (write
0/1 to /sys/class/gpio/gpio14/value).

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
5 years agoramips: Add support for Head Weblink HDRM200
Kristian Evensen [Wed, 15 May 2019 18:50:45 +0000 (20:50 +0200)]
ramips: Add support for Head Weblink HDRM200

Head Weblink HDRM200 is a dual-sim router based on MT7620A. The detailed
specifications are:

- MT7620A (580MHz)
- 64MB RAM
- 16MB of flash (SPI NOR)
- 6x 10/100Mbps Ethernet (MT7620A built-in switch)
- 1x microSD slot
- 1x miniPCIe slot (only USB2.0 bus). Device is shipped with a SIMCOM
SIM7100E LTE modem.
- 2x SIM slots (standard size)
- 1x USB2.0 port
- 1x 2.4GHz wifi (rt2800)
- 1x 5GHz wifi (mt7612)
- 1x reset button
- 1x WPS button
- 3x GPIO-controllable LEDs
- 1x 10 pin terminal block (RS232, RS485, 4 x GPIO)

Tested:
- Ethernet switch
- Wifi
- USB slot
- SD card slot
- miniPCIe-slot
- sysupgrade
- reset button

Installation instructions:

Installing OpenWRT for the first time requires a bit of work, as the
board does not ship with OpenWRT. In addition, the bootloader
automatically reboots when installing an image over tftp. In order to
install OpenWRT on the HDRM200, you need to do the following:

* Copy the initramfs-image to your tftp-root (default filename is
test.bin) and configure networking accordingly (default server IP is
10.10.10.3, client 10.10.10.123). Start your tftp server.
* Open the board and connect to UART. The pins are exposed and clearly
marked.
* Boot the board and press 1.
* Either use the default filename and client/server IP-addresses, or
specify your own.

The image should now be loaded to memory and board boot. If the router
reboots while the image is loading, you need to try again. Once the
board has booted, copy the sysupgrade-image to the router and run
sysupgrade in order to install OpenWRT to the flash.

Notes:

- You control which SIM slot to use by writing 0/1 to
/sys/class/gpio/gpio0/value. In order for the change to take
effect, you can either use AT-commands (AT+CFUN) or power-cycle the
modem (write 0/1 to /sys/class/gpio/gpio21/value).
- RS485 is available on /dev/ttyS0.
- RS232 is available on /dev/ttyS1.
- The name of the ioX-gpios map to the labels on the casing.

Signed-off-by: Kristian Evensen <kristian.evensen@gmail.com>
[fixed whitespace issue and merge conflict in target.mk]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agozlib: Use relative paths in pkg-config metadata file
Jeffery To [Wed, 15 May 2019 14:30:24 +0000 (22:30 +0800)]
zlib: Use relative paths in pkg-config metadata file

The buildroot pkg-config (in staging_dir/host/bin) overrides the prefix
and exec_prefix variables in *.pc files, to supply the correct
(buildroot) paths for callers. If other variables are not defined
relative to prefix and exec_prefix, then the returned values will be
incorrect.

The default zlib.pc file generated by cmake contains absolute paths.
This patches the file to use relative paths (relative to ${prefix} and
${exec_prefix}).

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
5 years agobuild: fix STAGING_DIR cleaning when filenames contain spaces
Jeffery To [Wed, 15 May 2019 14:20:17 +0000 (22:20 +0800)]
build: fix STAGING_DIR cleaning when filenames contain spaces

When looping through a package's STAGING_FILES_LIST (a list of
file/directory paths delimited by newlines), if the path contains
spaces, then the path will be split by the while loops, and the
file/directory will not be deleted/removed.

This sets the internal field separator to the newline only so that the
entire path is considered when deleting/removing.

Signed-off-by: Jeffery To <jeffery.to@gmail.com>
5 years agoath79: drop unused/incomplete dts
Chuanhong Guo [Mon, 13 May 2019 12:21:12 +0000 (20:21 +0800)]
ath79: drop unused/incomplete dts

These dts itself are incomplete (e.g. missing mtd partitions) and its
deivce support is never added to ath79 target.
Drop these unused dts for now.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
5 years agoath79: ar9330: fix switch_led_disable_pins reg value
Petr Štetiar [Thu, 16 May 2019 10:10:03 +0000 (12:10 +0200)]
ath79: ar9330: fix switch_led_disable_pins reg value

In commit e9652e1696d9 ("ath79: fix pinmux for ar933x devices") I've
wrongly changed desired register value to 0xf8 although it should've
been set to 0x0.

0xf8 value sets bits 3-7 (ETH_SWITCH_LEDx_EN) to 1 which actually
enables ethernet switch LEDs, so 0x0 is correct value in order to use
the pins as GPIO.

Fixes: e9652e1696d9 ("ath79: fix pinmux for ar933x devices")
Reported-by: Chuanhong Guo <gch981213@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoath79: archer-x7-v5: sync ar8327 initial reg values with ar71xx
Petr Štetiar [Sun, 14 Apr 2019 20:59:00 +0000 (22:59 +0200)]
ath79: archer-x7-v5: sync ar8327 initial reg values with ar71xx

Simply dumped content of this regs in ar71xx and wrote them to DTS, as a
result port 6 on the switch will appear disconnected as on Archer C7v4.

[AS: testing and PORT6_STATUS fix]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agokernel: bump 4.19 to 4.19.43
Koen Vandeputte [Wed, 15 May 2019 14:21:35 +0000 (16:21 +0200)]
kernel: bump 4.19 to 4.19.43

Refreshed all patches.

Compile-tested on: cns3xxx, imx6
Runtime-tested on: cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agokernel: bump 4.14 to 4.14.119
Koen Vandeputte [Wed, 15 May 2019 11:32:16 +0000 (13:32 +0200)]
kernel: bump 4.14 to 4.14.119

Refreshed all patches.

Compile-tested on: ar71xx, cns3xxx, imx6, x86_64
Runtime-tested on: ar71xx, cns3xxx, imx6, x86_64

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agokernel: bump 4.9 to 4.9.176
Koen Vandeputte [Wed, 15 May 2019 10:32:49 +0000 (12:32 +0200)]
kernel: bump 4.9 to 4.9.176

Refreshed all patches.

Compile-tested on: ar7
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agoodhcpd: update to latest git HEAD (FS#2242)
Hans Dedecker [Fri, 17 May 2019 06:50:37 +0000 (08:50 +0200)]
odhcpd: update to latest git HEAD (FS#2242)

41a74cb config: remove 'ignore' config option
c0c8034 treewide: init assignment lists head
f98b7ee config: use list safe iterator in lease_delete
3c9810b dhcpv4: fix lease ordering by ip address
b60c384 config: use multi-stage parsing of uci sections
a2dd8d6 treewide: always init interface list heads during initialization
a17665e dhcpv4: do not allow pool end address to overlap with broadcast address
6b951c5 treewide: give file descriptors safe initial value
39e11ed dhcpv4: DHCP pool size is off-by-one
4a600ce dhcpv4: add support for Parameter Request List option 55
09e5eca dhcpv4: fix DHCP packet size
3cd4876 ndp: fix syslog flooding (FS#2242)
79fbba1 config: set default loglevel to LOG_WARNING

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
5 years agoglibc: update to latest 2.27 commit
Hans Dedecker [Thu, 16 May 2019 16:28:33 +0000 (18:28 +0200)]
glibc: update to latest 2.27 commit

f9c3c12f336 Fix crash in _IO_wfile_sync (bug 20568)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
5 years agoimagebuilder: new DISABLED_SERVICES make variable
Richard Musil [Thu, 9 May 2019 01:45:07 +0000 (03:45 +0200)]
imagebuilder: new DISABLED_SERVICES make variable

Adds a new variable DISABLED_SERVICES to ImageBuilder Makefile, which
defines a list of services (installed as /etc/init.d/*) to be disabled
during the build of a custom image (normally all are enabled).

It comes handy when a particular service should not be run under normal
circumstances, but should be ready in the image for situations when it
might be needed.

Signed-off-by: Richard Musil <risa2000x@gmail.com>
5 years agoath79: Add missing reset button for TP-Link CPE210 v2 and v3
Adrian Schmutzler [Fri, 10 May 2019 13:14:13 +0000 (15:14 +0200)]
ath79: Add missing reset button for TP-Link CPE210 v2 and v3

Reset button support seems to be missing in ath79.

Run-tested on CPE210 v2.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
5 years agoath79: fix pinmux for ar933x devices
Paul Wassi [Mon, 31 Dec 2018 20:51:47 +0000 (21:51 +0100)]
ath79: fix pinmux for ar933x devices

Properly disable the SoC's internal Switch LEDs on the pinmux.
Devices that previously called ath79_gpio_function_disable for
the switch LEDs, just need to reference switch_led_pins in the
pinctrl-0 property of the gpio-leds node.

Signed-off-by: Paul Wassi <p.wassi@gmx.at>
[changed desired pinctrl register value from 0x1f to proper 0xf8]
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
[renamed pinmux name to switch_led_disable_pins to make purpose more clear]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoath79: archer-x7-v5: remove confusing ar8327 initvals for LEDs
Petr Štetiar [Sun, 14 Apr 2019 19:24:39 +0000 (21:24 +0200)]
ath79: archer-x7-v5: remove confusing ar8327 initvals for LEDs

This devices have LEDs connected to the SoC's GPIOs, so it makes no
sense to fiddle with ar8327 LED regs.

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
5 years agoar71xx: Fix network setup for TP-Link Archer C25 v1
Adrian Schmutzler [Thu, 9 May 2019 15:02:36 +0000 (17:02 +0200)]
ar71xx: Fix network setup for TP-Link Archer C25 v1

Network for the Archer C25 v1 is set up without switch for no
obvious reason. The LED setup is even done switch-based.

This patch changes network setup so a switch is created.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
5 years agotegra: add vendor string to device name
Tomasz Maciej Nowak [Wed, 1 May 2019 17:43:54 +0000 (19:43 +0200)]
tegra: add vendor string to device name

for better identification. Also create SUPPORTED_DEVICES string from it
which corresponds to dts compatible string.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: add kmod-i2c-mux-pca954x for Turris Omnia
Josef Schlehofer [Fri, 19 Apr 2019 23:05:05 +0000 (01:05 +0200)]
mvebu: add kmod-i2c-mux-pca954x for Turris Omnia

The driver is for the I2C mux.
Schematic available at https://doc.turris.cz/doc/_media/rtrom01-schema.pdf

Signed-off-by: Josef Schlehofer <josef.schlehofer@nic.cz>
Tested-by: Rosen Penev <rosenp@gmail.com>
5 years agonftables: Fix compilation with uClibc-ng
Rosen Penev [Wed, 1 May 2019 17:08:10 +0000 (10:08 -0700)]
nftables: Fix compilation with uClibc-ng

Missing header for va_list.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
[updated with upstream version of the patch]

5 years agolantiq/xrx200: enable initramfs images
Stijn Segers [Sat, 27 Apr 2019 16:23:21 +0000 (18:23 +0200)]
lantiq/xrx200: enable initramfs images

Commit eae6cac6a3 ("lantiq: add support for AVM FRITZ!Box 7362 SL"), but
one needs an initramfs image to flash OpenWrt from stock firmware (as
described in the commit log). This patch has the initramfs image built
by default.

Thanks to blogic (for pointing to the FEATURES declaration in the target
Makefiles) and Musashino on the forum for suggesting
config/Config-images.in needed editing too. While at it, reorder the
TARGET_INITRAMFS_COMPRESSION_LZMA declarations alphabetically.

This patch will result in initramfs images for all lantiq subtargets
that have the ramdisk flag set. I tested on the falcon and ase
subtargets, which lack that flag, to confirm they don't produce any
initramfs images with this patch - which they do not.

Given the limited scope of the lantiq (sub)target(s), blogic indicated
this should be OK.

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
[fixed the wrong reference to eae6cac6a3 commit]

5 years agolinux-firmware: update to 20190416
Deng Qingfang [Fri, 19 Apr 2019 10:01:45 +0000 (18:01 +0800)]
linux-firmware: update to 20190416

Update linux-firmware to 20190416, which includes updated firmwares e.g. for ath10k
Also switch to official tarball source.

The following firmware files we use are updated in this change:
ath10k/QCA6174/hw3.0/board-2.bin
ath10k/QCA9888/hw2.0/firmware-5.bin
ath10k/QCA988X/hw2.0/firmware-5.bin
ath10k/QCA9984/hw1.0/firmware-5.bin
mrvl/sd8887_uapsta.bin
mrvl/pcie8897_uapsta.bin
iwlwifi-8000C-36.ucode
iwlwifi-8265-36.ucode

Signed-off-by: Deng Qingfang <dengqf6@mail2.sysu.edu.cn>
5 years agomalta: Deactivate MIPS O32 and N32 support
Hauke Mehrtens [Sun, 12 May 2019 15:14:38 +0000 (17:14 +0200)]
malta: Deactivate MIPS O32 and N32 support

OpenWrt is completely compiled from sources using a 64 bit compiler, we
do not need support for the old 32 bit MIPS interface on 64 Bit CPUs,
deactivate it.

Fixes: 46af22de16b2 ("kernel: Remove CONFIG_COMPAT")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agoocteon: Deactivate MIPS O32 and N32 support
Hauke Mehrtens [Sun, 12 May 2019 15:12:55 +0000 (17:12 +0200)]
octeon: Deactivate MIPS O32 and N32 support

OpenWrt is completely compiled from sources using a 64 bit compiler, we
do not need support for the old 32 bit MIPS interface on 64 Bit CPUs,
deactivate it.

Fixes: 46af22de16b2 ("kernel: Remove CONFIG_COMPAT")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agoocteon: Refresh kernel configuration
Hauke Mehrtens [Tue, 14 May 2019 19:48:02 +0000 (21:48 +0200)]
octeon: Refresh kernel configuration

This refreshes the kernel configuration with "make kernel_oldconfig"

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Move some DSA config options to generic config
Hauke Mehrtens [Sun, 12 May 2019 17:08:15 +0000 (19:08 +0200)]
kernel: Move some DSA config options to generic config

This moves some new configuration options to the generic kernel
configuration instead of configuring them for each target on our own.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agovalgrind: Add support for ARM64 architecture
Hauke Mehrtens [Sat, 11 May 2019 22:44:15 +0000 (00:44 +0200)]
valgrind: Add support for ARM64 architecture

valgrind also works on the ARM64 architecture, build it also for such CPUs.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agovalgrind: Update to version 3.15.0
Hauke Mehrtens [Sat, 11 May 2019 22:43:52 +0000 (00:43 +0200)]
valgrind: Update to version 3.15.0

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agostrace: Update to version 5.0
Hauke Mehrtens [Sat, 11 May 2019 22:43:12 +0000 (00:43 +0200)]
strace: Update to version 5.0

The removed patch was merged upstream.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agoiperf: Update to version 2.0.13
Hauke Mehrtens [Sat, 11 May 2019 15:34:20 +0000 (17:34 +0200)]
iperf: Update to version 2.0.13

The removed patches are already integrated in the upstream version.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agobrcm63xx: fixup broken patch after kernel bump
Jonas Gorski [Tue, 14 May 2019 11:13:53 +0000 (13:13 +0200)]
brcm63xx: fixup broken patch after kernel bump

Fixes the following compilation issue that was introduced with the bump
to 4.14.118:

  CC      drivers/gpio/gpiolib-of.o
drivers/gpio/gpiolib-of.c: In function 'of_gpiochip_add':
drivers/gpio/gpiolib-of.c:510:12: error: too few arguments to function 'of_gpiochip_scan_gpios'
   status = of_gpiochip_scan_gpios(chip);
            ^~~~~~~~~~~~~~~~~~~~~~
drivers/gpio/gpiolib-of.c:247:5: note: declared here
 int of_gpiochip_scan_gpios(struct gpio_chip *chip, unsigned int start,
     ^~~~~~~~~~~~~~~~~~~~~~
scripts/Makefile.build:326: recipe for target 'drivers/gpio/gpiolib-of.o' failed

Fixes: 09050b6fe228 ("kernel: bump 4.14 to 4.14.118")
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
5 years agokernel: bump 4.19 to 4.19.42
Koen Vandeputte [Mon, 13 May 2019 11:41:34 +0000 (13:41 +0200)]
kernel: bump 4.19 to 4.19.42

Refreshed all patches.

Remove upstreamed:
- 060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch
- 400-v5.2-leds-trigger-netdev-fix-refcnt-leak-on-interface-ren.patch

Compile-tested on: cns3xxx, imx6
Runtime-tested on: cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agokernel: bump 4.14 to 4.14.118
Koen Vandeputte [Mon, 13 May 2019 10:50:25 +0000 (12:50 +0200)]
kernel: bump 4.14 to 4.14.118

Refreshed all patches.

Remove upstreamed:
- 060-v5.1-serial-ar933x_uart-Fix-build-failure-with-disabled-c.patch

Altered:
- 143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch

Compile-tested on: ar71xx, cns3xxx, imx6, x86_64
Runtime-tested on: ar71xx, cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agokernel: bump 4.9 to 4.9.175
Koen Vandeputte [Mon, 13 May 2019 08:36:37 +0000 (10:36 +0200)]
kernel: bump 4.9 to 4.9.175

Refreshed all patches.

Compile-tested on: ar7
Runtime-tested on: none

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agobrcm63xx: remove kernel 4.9 support
Koen Vandeputte [Mon, 6 May 2019 12:58:43 +0000 (14:58 +0200)]
brcm63xx: remove kernel 4.9 support

This target got bumped to 4.14 a long time ago
in commit: 2308b87204206d84b6bf3dbc3d72591611cc6b78

Remove all leftover 4.9 files.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
5 years agoppp: update to version 2.4.7.git-2019-05-06
Hans Dedecker [Mon, 13 May 2019 13:26:56 +0000 (15:26 +0200)]
ppp: update to version 2.4.7.git-2019-05-06

fcb076c Various fixes for errors found by coverity static analysis (#109)
d98ab38 Merge branch 'pppd_print_changes' of https://github.com/nlhintz/ppp into nlhintz-pppd_print_changes

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
5 years agokernel: Fix build of omap target
Hauke Mehrtens [Sat, 11 May 2019 22:05:04 +0000 (00:05 +0200)]
kernel: Fix build of omap target

CONFIG_HW_RANDOM_OMAP is not set to any value after kmod-random-omap was
removed, add the configuration option to the generic configuration.

Fixes: cd3b29853380 ("omap24xx: Remove unmaintained target")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agomvebu: add images for additional ESPRESSObin boards
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:35 +0000 (19:37 +0200)]
mvebu: add images for additional ESPRESSObin boards

This commit adds support for different iterations of ESPRESSObin.
The added variants are:

ESPRESSObin with soldered eMMC,

ESPRESSObin V7, compared to V5 some passive elements changed and ethernet
ports labels positions have been reversed,

ESPRESSObin V7 with soldered eMMC.

Please refer to:
584d7c5 ("mvebu: new subtarget cortex A53")
for instruction how to boot OpenWrt image placed on SD card. It is
advised for owners of V5 and previous with bootloader based on U-Boot
2015.01, to upgrade the latest version available at:
http://espressobin.net/tech-spec.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: use device-tree board detection
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:34 +0000 (19:37 +0200)]
mvebu: use device-tree board detection

Convert whole target to Device Tree based board detection instead of
identifying devices by dts file name. With this we can drop mvebu.sh
translation script and rely on common method for model detection.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: align device names to vendor_device format
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:33 +0000 (19:37 +0200)]
mvebu: align device names to vendor_device format

Add vendors in device names and also rename few device names, for easier
identyfying potential firmware to flash. The vendor and device string is
mainly derived from model/compatipble string in dts from particular
device, but since not all devices are well described, some of the renames
follow marketing names.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: image: don't create unnecessarily shell variables
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:32 +0000 (19:37 +0200)]
mvebu: image: don't create unnecessarily shell variables

Use make syntax to pass the U-Boot image location and boot with root
partitions size, instead of relying on shell functions and variables.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: image: improve readability of device recipes
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:31 +0000 (19:37 +0200)]
mvebu: image: improve readability of device recipes

Drop overly complex amount of defines wich are referenced in the same
devices pool and move image recipes to common define, since devices not
using them overwrite it.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: image: introduce BOOT_SCRIPT variable
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:30 +0000 (19:37 +0200)]
mvebu: image: introduce BOOT_SCRIPT variable

All of U-Boot scripts repeat the same pattern with only Device Tree blob
name changing for respective device. Therefore create generic scripts
which will be altered on demad by image build process, and create
BOOT_SCRIPT variable which can be added to device recipe and will allow
referencing the same script by many device recipes. This will allow to
slim down the ammount of files in buildroot tree and avoid needlessly
incrementing amount of boot scripts if new devices will be added.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: image: stack repeated variables
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:29 +0000 (19:37 +0200)]
mvebu: image: stack repeated variables

All of arm64 devices have part of variables repeatedly defined. Stack
them to common define, and reference it in each device recipe.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agomvebu: remove unnecessary code building dtbs
Tomasz Maciej Nowak [Sat, 11 May 2019 17:37:28 +0000 (19:37 +0200)]
mvebu: remove unnecessary code building dtbs

Even if dts is not included in upstream Makefile, it is built anyway by
recipe specified in include/image.mk. Also remove Build/dtb, it's not
used since 3f72f3a ("mvebu: clearfog: include DTB for all variants in
image").

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
5 years agotoolchain/binutils: use default Host/Configure rule
Alexandru Ardelean [Mon, 22 Apr 2019 12:22:40 +0000 (15:22 +0300)]
toolchain/binutils: use default Host/Configure rule

This seems to have been omitted over-time.
Using the default Host/Configure seems to work fine.

The last patches to have touched this in a major way were ~10 years ago:
33a0eb3613d ("cosmetic & coherency fixes")
7eb15898755 ("build system refactoring in preparation for allowing
              packages to do host-build steps")

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
5 years agouClibc++: Update to 0.2.5
Rosen Penev [Sun, 7 Apr 2019 06:37:56 +0000 (23:37 -0700)]
uClibc++: Update to 0.2.5

Switched to xz archives for smaller size.

Removed upstreamed patches.

Reorganized Makefile a little bit for clarity. Build/Prepare is not useful
anymore. Upstream converted the file to LF.

Refreshed config.

Removed -ansi option from the original CFLAGS as this was causing long
long support to be missing.

Removed fPIC. We have the macro $(FPIC) already used. No point in setting
fpic and fPIC together.

Removed pedantic -Wlong-long warnings as they are not useful.

Removed -std=gnu++98. Not only is it unnecessary (it compiles against all
standards), it actually results in a size increase. 75843 vs. 75222 (gcc
in OpenWrt defaults to g++14).

Added --gc-sections to linker flags to reduce size: 72653 vs 75222.

Removed warn linker options. They have been upstreamed.

Tested on Archer C7v2 and GnuBee PC1.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
5 years agoxfsprogs: Replace valloc with posix_memalign
Rosen Penev [Mon, 6 May 2019 21:57:18 +0000 (14:57 -0700)]
xfsprogs: Replace valloc with posix_memalign

Fixes compilation under uClibc-ng.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
5 years agogeneric-4.19: Backport spi-nand support for GigaDevice A/E
Jeff Kletsky [Fri, 10 May 2019 13:01:47 +0000 (06:01 -0700)]
generic-4.19: Backport spi-nand support for GigaDevice A/E

This patch backports verbatim the commits from Linux 5.0 and 5.1
that implemented support for GigaDevice SPI NAND A and E variants.

Supported only in Linux 4.19 and later as based on the upstream
drivers/mtd/nand/spi/ framework.

mtd-spinand-add-support-for-GigaDevice-GD5FxGQ4xA.patch
commit c93c613214ac (5.0)

mtd-spinand-Add-support-for-GigaDevice-GD5F1GQ4UExxG.patch
commit c40c7a990a46 (5.1)

Run-tested-on: GL.iNet AR750S

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
5 years agokernel: Reorder generic configuration
Hauke Mehrtens [Fri, 10 May 2019 20:46:49 +0000 (22:46 +0200)]
kernel: Reorder generic configuration

This was done like this:
./scripts/kconfig.pl '+' target/linux/generic/config-4.14 /dev/null > target/linux/generic/config-4.14-new
mv target/linux/generic/config-4.14-new target/linux/generic/config-4.14

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agogemini: Make kernel text and rodata read-only
Hauke Mehrtens [Sun, 7 Apr 2019 14:53:11 +0000 (16:53 +0200)]
gemini: Make kernel text and rodata read-only

This is activate for all other targets except gemini, also activate it
there.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agocns3xxx: Activate CONFIG_CPU_SW_DOMAIN_PAN
Hauke Mehrtens [Sun, 7 Apr 2019 16:03:54 +0000 (18:03 +0200)]
cns3xxx: Activate CONFIG_CPU_SW_DOMAIN_PAN

This is already activated for all other ARM targets

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agox86: Activate CONFIG_X86_SMAP
Hauke Mehrtens [Sun, 7 Apr 2019 17:38:04 +0000 (19:38 +0200)]
x86: Activate CONFIG_X86_SMAP

This activates "Supervisor Mode Access Prevention". modern CPUs will
prevent the kernel code from accessing any data from the userspace
without the usage of copy_to_user() or copy_from_user()

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Deactivate CONFIG_BINFMT_MISC
Hauke Mehrtens [Sun, 7 Apr 2019 17:08:18 +0000 (19:08 +0200)]
kernel: Deactivate CONFIG_BINFMT_MISC

CONFIG_BINFMT_MISC allows it to add support for new executable formats
to the kernel from user space, the kernel will then detect for example a
java binary and call the java execution program automatically. I am not
aware that this feature is used in OpenWrt and this could be used to
exploit something. Deactivate it for all targets for now.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Do not set CONFIG_DEVMEM or CONFIG_DEVKMEM
Hauke Mehrtens [Sun, 7 Apr 2019 17:03:54 +0000 (19:03 +0200)]
kernel: Do not set CONFIG_DEVMEM or CONFIG_DEVKMEM

This is deactivated by default and should be manually activated in the
OpenWrt kernel configuration

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Activate CONFIG_SYN_COOKIES for all targets
Hauke Mehrtens [Sun, 7 Apr 2019 17:00:45 +0000 (19:00 +0200)]
kernel: Activate CONFIG_SYN_COOKIES for all targets

Some targets deactivated CONFIG_SYN_COOKIES, for unknown reasons, use
the default setting from the generic configuration which activates
CONFIG_SYN_COOKIES.

This should prevent SYN flooding.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Remove CONFIG_COMPAT
Hauke Mehrtens [Sun, 7 Apr 2019 15:14:24 +0000 (17:14 +0200)]
kernel: Remove CONFIG_COMPAT

This removes support for executing old 32 bit applications on 64 bit ARM
and MIPS kernels.
On OpenWrt we normally compile all the user space applications on our
own and do not support third party binary only modules especial not 32
bit applications on 64 bit CPUs.

This reduces the attack surface on such systems and should also save
some memory.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Remove CONFIG_DEBUG_RODATA and CONFIG_DEBUG_SET_MODULE_RONX
Hauke Mehrtens [Sun, 7 Apr 2019 14:55:38 +0000 (16:55 +0200)]
kernel: Remove CONFIG_DEBUG_RODATA and CONFIG_DEBUG_SET_MODULE_RONX

These were renamed to CONFIG_STRICT_KERNEL_RWX and CONFIG_STRICT_MODULE_RWX and are
activated in kernel 4.14 and later by default.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agokernel: Activate CONFIG_ARM64_SW_TTBR0_PAN
Hauke Mehrtens [Sun, 7 Apr 2019 16:06:34 +0000 (18:06 +0200)]
kernel: Activate CONFIG_ARM64_SW_TTBR0_PAN

This activates "Emulate Privileged Access Never using TTBR0_EL1
switching" on ARM64.

This should prevent the kernel from reading code from user space in
kernel context.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agoKernel: Activate CONFIG_HARDENED_USERCOPY
Hauke Mehrtens [Sun, 7 Apr 2019 14:38:44 +0000 (16:38 +0200)]
Kernel: Activate CONFIG_HARDENED_USERCOPY

This adds additional checks to the copy_from_user() and copy_to_user()
functions. The details are described in this article:
https://lwn.net/Articles/695991/

This should only have a very small performance impact on system calls
and should not affect routing performance.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 years agoutils/spidev_test: build package directly from Linux
Christian Lamparter [Fri, 10 May 2019 21:31:01 +0000 (23:31 +0200)]
utils/spidev_test: build package directly from Linux

Jeff Kletsky noted in his patch titled:
"utils/spidev_test: Update to current source from upstream Linux"
that the spidev_test utility OpenWrt ships is severly out of date.

Instead of updating the spidev_test.c from the current kernel,
this patch replaces the package building code to utilize the
very file that gets shipped with the kernel we compiling for
anyway much like the "perf" package already does.

Reported-by: Jeff Kletsky <git-commits@allycomm.com>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>