openwrt/staging/jogo.git
4 years agodropbear: allow disabling support for scp
Rui Salvaterra [Sat, 15 Aug 2020 10:10:22 +0000 (11:10 +0100)]
dropbear: allow disabling support for scp

If not needed, disabling scp allows for a nice size reduction.

Dropbear executable size comparison:

153621 bytes (baseline)
133077 bytes (without scp)

In other words, we trim a total of 20544 bytes.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
4 years agoath79: add support for ALLNET ALL-WAP02860AC
Tomasz Maciej Nowak [Fri, 14 Aug 2020 16:03:40 +0000 (18:03 +0200)]
ath79: add support for ALLNET ALL-WAP02860AC

ALLNET ALL-WAP02860AC is a dual-band wireless access point.

Specification
SoC: Qualcomm Atheros QCA9558
RAM: 128 MB DDR2
Flash: 16 MB SPI NOR
WIFI: 2.4 GHz 3T3R integrated
      5 GHz 3T3R QCA9880 Mini PCIe card
Ethernet: 1x 10/100/1000 Mbps AR8035-A, PoE capable (802.3at)
LEDS: 5x, which four are GPIO controlled
Buttons: 1x GPIO controlled
UART: 4 pin header near Mini PCIe card, starting count from white
      triangle on PCB
      1. VCC 3.3V, 2. GND, 3. TX, 4. RX
      baud: 115200, parity: none, flow control: none

MAC addresses
Calibration data does not contain valid MAC addresses.
The calculated MAC addresses are chosen in accordance with OEM firmware.

Because of:
a) constrained environment (SNMP) when connecting through Telnet
   or SSH,
b) hard-coded kernel and rootfs sizes,
c) checksum verification of kerenel and rootfs images in bootloder,

creating factory image accepted by OEM web interface is difficult,
therefore, to install OpenWrt on this device UART connection is needed.
The teardown is simple, unscrew four screws to disassemble the casing,
plus two screws to separate mainboard from the casing.
Before flashing, be sure to have a copy of factory firmware, in case You
wish to revert to original firmware.

Installation
1. Prepare TFTP server with OpenWrt initramfs-kernel image.
2. Connect to LAN port.
3. Connect to UART port.
4. Power on the device and when prompted to stop autoboot, hit any key.
5. Alter U-Boot environment with following commands:
    setenv failsafe_boot bootm 0x9f0a0000
    saveenv
6. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use
   'setenv' to do that, then run following commands:
    tftpboot 0x81000000 <openwrt_initramfs-kernel_image_name>
    bootm 0x81000000
7. Wait about 1 minute for OpenWrt to boot.
8. Transfer OpenWrt sysupgrade image to /tmp directory and flash it
   with:
    sysupgrade -n /tmp/<openwrt_sysupgrade_image_name>
9. After flashing, the access point will reboot to OpenWrt. Wait few
   minutes, until the Power LED stops blinking, then it's ready for
   configuration.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
[add MAC address comment to commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: mips: fix init crash/bootloop on 64-bit systems
Tony Ambardar [Fri, 14 Aug 2020 14:43:36 +0000 (07:43 -0700)]
kernel: mips: fix init crash/bootloop on 64-bit systems

The malta subtargets for mips64 and mips64el fail to start the init process
at boot, resulting in a boot loop. The issue was raised and analyzed within
FS#3277. Investigation suggested code near the [vdso] memory area of the
process was long jumping into a region inaccessible to the process, e.g.

 init: - preinit -
 init: Launched preinit instance, pid=522
 do_page_fault(): sending SIGSEGV to init for invalid read access from 0000000000000360
 epc = 0000000000000360 in init[aaab42b000+4000]
 ra  = 000000fffee385e0 in
 Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
 Rebooting in 1 seconds..

Note the low-memory read access and epc are the same. Upstream kernel 5.6
included a relevant patch and discussion:

  * d3f703c4359f ("mips: vdso: fix 'jalr t9' crash in vdso code")

Disassembly of the failing kernel's vdso.so confirmed presence of the
telltale long jumps, e.g.:

00000000000007c0 <__vdso_clock_getres@@LINUX_2.6>:
 [...]
 7dc:   0320f809        jalr    t9
 [...]

Restore booting mips64/mips64el malta by backporting the above commit:
  * 310-v5.6-mips-vdso-fix-jalr-t9-crash-in-vdso-code.patch

Fixes: 54310a3aa02f ("malta: add kernel 5.4 config")
Fixes: FS#3277
Ref: https://bugs.openwrt.org/index.php?do=details&task_id=3277

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
4 years agomac80211: add missing backports for building with 4.14 kernels
Felix Fietkau [Fri, 14 Aug 2020 14:32:23 +0000 (16:32 +0200)]
mac80211: add missing backports for building with 4.14 kernels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agolibselinux: fix Makefile style
Daniel Golle [Fri, 14 Aug 2020 01:41:39 +0000 (02:41 +0100)]
libselinux: fix Makefile style

Also fix line order in libselinux Makefile.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agolibsepol: fix Makefile style
Daniel Golle [Fri, 14 Aug 2020 01:40:47 +0000 (02:40 +0100)]
libsepol: fix Makefile style

Fix line ordering (cosmetic).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agopcre: clean up Makefile line order
Daniel Golle [Fri, 14 Aug 2020 01:38:21 +0000 (02:38 +0100)]
pcre: clean up Makefile line order

The most recent patch added add lines in one block instead of in the
appropriate places to keep Makefiles in consistent style. Fix that.

Fixes: ff02e1561f ("pcre: add host variant of libpcre")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agopcre: add host variant of libpcre
Thomas Petazzoni [Tue, 14 Jul 2020 21:32:28 +0000 (16:32 -0500)]
pcre: add host variant of libpcre

This is needed to build the host variant of libselinux.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
4 years agoath79: add support for TP-Link TL-WPA8630 v1
Adrian Schmutzler [Thu, 9 Jul 2020 10:49:17 +0000 (12:49 +0200)]
ath79: add support for TP-Link TL-WPA8630 v1

This ports the TP-Link TL-WPA8630 v1 from ar71xx to ath79.

Specifications:

SoC: QCA9563
CPU: 750 MHz
Flash/RAM: 8 / 128 MiB
Ethernet: 3x 1G ports (QCA8337 switch)
WLAN: 2.4 GHz b/g/n, 5 GHz a/n/ac (ath10k)

Buttons, LEDs and network setup appear to be almost identical
to the v2 revision.

Powerline interface is connected to switch port 5 (Label LAN4).

Installation:

No "fresh" device was available for testing the factory image.

It is not known whether flashing via OEM firmware GUI is possible
or not. A discussion from 2018 [1] about that indicates a few
adjustments are necessary, but it is not clear whether those
are already implemented with the TPLINK_HEADER_VERSION = 2 or not.

Note that for the TL-WPA8630P v1, the TPLINK_HWID needs to be
changed to 0x86310001 to allow factory flashing.

[1] https://forum.openwrt.org/t/solved-tl-wpa8630p-lede-does-not-install/8161/27

Recovery:

Recovery is only possible via serial.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agompc85xx: tidy up 10-fix-wifi-mac
Adrian Schmutzler [Thu, 13 Aug 2020 18:22:30 +0000 (20:22 +0200)]
mpc85xx: tidy up 10-fix-wifi-mac

This applies some cosmetic style fixes, mostly by removing useless
echo commands.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolibselinux: fix build on non-Linux systems
Felix Fietkau [Thu, 13 Aug 2020 18:04:34 +0000 (20:04 +0200)]
libselinux: fix build on non-Linux systems

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agolibsepol: fix build on non-Linux systems
Felix Fietkau [Thu, 13 Aug 2020 18:03:43 +0000 (20:03 +0200)]
libsepol: fix build on non-Linux systems

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agotools/coreutils: install ln
Felix Fietkau [Thu, 13 Aug 2020 18:02:50 +0000 (20:02 +0200)]
tools/coreutils: install ln

It is needed for libsepol on non-GNU systems

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: add AQL improvements
Felix Fietkau [Wed, 12 Aug 2020 15:12:03 +0000 (17:12 +0200)]
mac80211: add AQL improvements

Add AQL support for HE drivers.
Improve assumed aggregation length based on tx rate

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: update to the latest version
Felix Fietkau [Thu, 13 Aug 2020 15:56:46 +0000 (17:56 +0200)]
mt76: update to the latest version

34aed01ca865 mt76: mt7915: use ieee80211_free_txskb to free tx skbs
efc8669db5f9 mt76: mt7915: fix max_mpdu_size field for A-MSDU

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agolibselinux: don't depend on kernel config symbols
Daniel Golle [Thu, 13 Aug 2020 13:05:26 +0000 (14:05 +0100)]
libselinux: don't depend on kernel config symbols

Dependencies are meant to express actual run-time dependencies and
strictly speaking, libselinux can be build and used on kernels without
SELinux (not in a very meaningful way, but never mind).

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoprocd: remove duplicate confguration menu
Daniel Golle [Thu, 13 Aug 2020 13:04:30 +0000 (14:04 +0100)]
procd: remove duplicate confguration menu

Fixes: 962e73c1a4 ("procd: add selinux variant")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoiproute2: disable SELinux for now
Daniel Golle [Thu, 13 Aug 2020 12:59:01 +0000 (13:59 +0100)]
iproute2: disable SELinux for now

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoath79/mikrotik: add function for loading ath9k caldata
Adrian Schmutzler [Wed, 12 Aug 2020 12:40:00 +0000 (14:40 +0200)]
ath79/mikrotik: add function for loading ath9k caldata

The commands to read ath9k caldata on mikrotik subtarget are
mostly repetitive, so let's put them into a function to make
writing and reading them easier.

This function will only be required when patching the MAC address.
For cases where it is put correctly into the calibration data by
the vendor, caldata_sysfsload_from_file can be used directly as
done for ath10k at the moment.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: add support for MikroTik RouterBOARD 760iGS (hEX S)
John Thomson [Wed, 10 Jun 2020 22:15:40 +0000 (08:15 +1000)]
ramips: add support for MikroTik RouterBOARD 760iGS (hEX S)

This patch adds support for the MikroTik RouterBOARD 760iGS router.
It is similar to the already supported RouterBOARD 750Gr3.
The 760iGS device features an added SFP cage, and passive
PoE out on port 5 compared to the RB750Gr3.

https://mikrotik.com/product/hex_s

Specifications:

- SoC: MediaTek MT7621A
- CPU: 880MHz
- Flash: 16 MB
- RAM:  256 MB
- Ethernet: 5x 10/100/1000 Mbps
- SFP cage
- USB port
- microSD slot

Unsupported:

- Beeper (requires PWM driver)
- ZT2046Q (ADS7846 compatible) on SPI as slave 1 (CS1)
  The linux driver requires an interrupt, and pendown GPIO
  These are unknown, and not needed with the touchscreen
  only used for temperature and voltage monitoring.
  ads7846 hwmon:
  temp0 is degrees Celsius
  temp1 is voltage * 32

GPIOs:

- 07:  input passive PoE out (lan5) compatible (Mikrotik) device connected
- 17:  output passive PoE out (lan5) switch

Installation through RouterBoot follows the usual MikroTik method
https://openwrt.org/toh/mikrotik/common

To boot to intramfs image in RAM:

1. Setup TFTP server to serve intramfs image.
2. Plug Ethernet cable into WAN port.
3. Unplug power, hold reset button and plug power in.
   Wait (~25 seconds) for beep and then release reset button.
   The SFP LED will be lit in RouterBoot, but will not be lit in OpenWRT.
4. Wait for a minute. Router should be running OpenWrt,
   check by plugging in to port 2-5 and going to 192.168.1.1.

To install OpenWrt to flash:

1. Follow steps above to boot intramfs image in RAM.
2. Flash the sysupgrade.bin image with web interface or sysupgrade.
3. Once the router reboots you will be running OpenWrt from flash.

OEM firmware differences:

- RouterOS assigns a different MAC address for each port
- The first address (E01 on the sticker) is used for wan (ether1 in OEM).
- The next address is used for lan2.
- The last address (E06 on the sticker) is used for sfp.

[Initial port work, shared dtsi]
Signed-off-by: Vince Grassia <vincenzo.grassia@zionark.com>
[SFP support and GPIO identification]
Signed-off-by: Luka Logar <luka.logar@iname.com>
[Misc. fixes and submission]
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
[rebase, drop uart3 from state_default on 750gr3, minor commit
title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips/mt7621: create common DTSI for Mikrotik devices
Adrian Schmutzler [Wed, 12 Aug 2020 18:10:12 +0000 (20:10 +0200)]
ramips/mt7621: create common DTSI for Mikrotik devices

This moves some common definitions for Mikrotik devices, mainly
routerboot partitions and reset key, to a common DTSI file.

While at it, remove unused hard_config DT label.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomusl-fts: import from packages feed
Daniel Golle [Thu, 13 Aug 2020 10:43:18 +0000 (11:43 +0100)]
musl-fts: import from packages feed

libselinux requires musl-fts to build with musl. Import it from
packages feed as well.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agopcre: import from packages feeds
Daniel Golle [Thu, 13 Aug 2020 10:27:39 +0000 (11:27 +0100)]
pcre: import from packages feeds

libselinux require pcre, import to to core so it can build without
packages feeds.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoprocd: add selinux variant
Paul Spooren [Wed, 12 Aug 2020 04:49:44 +0000 (18:49 -1000)]
procd: add selinux variant

This commit adds a `selinux` variant to `procd` allowing to load an
SELinux policy at boot.

Signed-off-by: Paul Spooren <mail@aparcar.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agolibselinux: add new package
Thomas Petazzoni [Tue, 11 Aug 2020 23:48:33 +0000 (18:48 -0500)]
libselinux: add new package

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[rebase, update to 3.1]
Signed-off-by: W. Michael Petullo <mike@flyn.org>
4 years agolibsepol: add new package
Thomas Petazzoni [Tue, 11 Aug 2020 14:43:51 +0000 (09:43 -0500)]
libsepol: add new package

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[rebase, update to 3.1]
Signed-off-by: W. Michael Petullo <mike@flyn.org>
4 years agoramips: use gpio-export for Mikrotik RouterBOARD 750Gr3 beeper
John Thomson [Mon, 10 Aug 2020 09:40:55 +0000 (19:40 +1000)]
ramips: use gpio-export for Mikrotik RouterBOARD 750Gr3 beeper

This beeper hardware requires a PWM driver for frequency selection.
Since the GPIO driver does not provide that, revert the beeper
support to a simple gpio-export.

This effectively reverts the corresponding changes from
6ba58b7b020c ("ramips: cleanup the RB750Gr3 support")

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
[commit title/message facelift]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: usb: move phy-qcom-ipq806x-usb to ipq806x modules.mk
Ansuel Smith [Sun, 9 Aug 2020 14:31:05 +0000 (16:31 +0200)]
kernel: usb: move phy-qcom-ipq806x-usb to ipq806x modules.mk

This driver is only used by ipq806x SoCs. Move it there and drop
dependency from ipq40xx since it's not used anywere.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[rebase on changes to previous patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
4 years agoipq806x: replace nvmem qcom patch with upstream version
Ansuel Smith [Mon, 10 Aug 2020 11:46:35 +0000 (13:46 +0200)]
ipq806x: replace nvmem qcom patch with upstream version

- Replace nvmem qcom patch with upstream version
- Update compatible

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[refresh patches, minor commit message rewording]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
4 years agoipq806x: replace phy dwc3 patch with upstream version
Ansuel Smith [Mon, 10 Aug 2020 11:56:15 +0000 (13:56 +0200)]
ipq806x: replace phy dwc3 patch with upstream version

- Replace dwc3 phy patch with upstream version
- Rework the dts to use the upstream bindings
- Update changed config flags
- Rename module to reflect config name

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[fix qcom,tx-deamp_3_5db typo, refresh patches, rename kmod]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Paul Blazejowski <paulb@blazebox.homeip.net> [R7800]
4 years agodropbear: fix ssh alternative when dbclient isn't built
Rui Salvaterra [Mon, 20 Jul 2020 22:26:42 +0000 (23:26 +0100)]
dropbear: fix ssh alternative when dbclient isn't built

The ssh symlink was still being created even when dbclient was disabled in the
build configuration. Fix this annoyance.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
4 years agoath79: routerboard-92x: ensure explicit bios size in DTSI
Adrian Schmutzler [Wed, 12 Aug 2020 14:49:34 +0000 (16:49 +0200)]
ath79: routerboard-92x: ensure explicit bios size in DTSI

The missing "size" property was acceptable in the context of a single
DTS as the underlying device is known to have a 64KB flash, and thus
the bios partition fit exactly between the preceding and following ones.

However as this block has moved in a DTSI, for the sake of clarity and
explicitness the size property is added to ensure that if the flash
happens to be larger than expected, the bios partition remains properly
sized.

Suggested-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: harmonize appearance of ethX nodes in qca953x DTSes
Adrian Schmutzler [Wed, 12 Aug 2020 12:20:18 +0000 (14:20 +0200)]
ath79: harmonize appearance of ethX nodes in qca953x DTSes

This harmonizes the appearance of ethX nodes in qca953x DTSes by:
- having the same order of nodes and properties
- removing redundant status property on eth1 (set in qca953x.dtsi)

This is meant to help both copy-pasters and reviewers, since
deviations and errors can be spotted easier.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: add CGROUPS and IOSCHED_BFQ back to config
Adrian Schmutzler [Wed, 12 Aug 2020 11:53:47 +0000 (13:53 +0200)]
kernel: add CGROUPS and IOSCHED_BFQ back to config

After those symbols have been removed from generic kernel config,
they were added to the target config during every kernel config
refresh. As that's not desirable, add them back to the generic
config.

Fixes: d1a8217d87bf ("kernel: clean-up build-configurable kernel config symbols")
Fixes: cfe235c43686 ("kernel: modules: add package kmod-iosched-bfq")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobuild: fix README.md reference after rename
Adrian Schmutzler [Wed, 12 Aug 2020 11:42:33 +0000 (13:42 +0200)]
build: fix README.md reference after rename

The README file is displayed on "make help", but updating the
command has been overlooked during the README -> README.md
rename.

Fix it.

Fixes: d0113711a31f ("README: port to 21st century")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for MikroTik SXT 5nD r2 (SXT Lite5)
Roger Pueyo Centelles [Thu, 11 Jun 2020 12:22:54 +0000 (14:22 +0200)]
ath79: add support for MikroTik SXT 5nD r2 (SXT Lite5)

The MikroTik SXT Lite5 (product code RBSXT5nDr2, also SXT 5nD r2) is
an outdoor 5GHz CPE with a 16 dBi integrated antenna built around the
Atheros AR9344 SoC. It is based on the "sxt5n" board platform.

Specifications:
 - SoC: Atheros AR9344
 - RAM: 64 MB
 - Storage: 128 MB NAND
 - Wireless: Atheros AR9340 (SoC) 802.11a/n 2x2:2
 - Ethernet: Atheros AR8229 switch (SoC), 1x 10/100 port,
    8-32 Vdc PoE in
 - 6 user-controllable LEDs:
  · 1x power (blue)
  · 1x wlan (green)
  · 4x rssi (green)
 - 1 GPIO-controlled buzzer

 See https://mikrotik.com/product/RBSXT5nDr2 for more details.

Notes:
 The device was already supported in the ar71xx target. There, the
 Ethernet port was handled by GMAC1. Here in ath79 it is handled by
 GMAC0, which allows to get link information (loss, speed, duplex) on
 the eth0 interface.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Acknowledgments:
 Michael Pratt (@mpratt14) for helping on the network settings.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
[rebase, use mikrotik LED label prefix, make names consistent,
add reg for bootloader2, use led_user for boot indication etc.,
minor cosmetic changes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for MikroTik RouterBOARD 921GS-5HPacD-15s
Sven Roederer [Mon, 22 Jun 2020 21:05:51 +0000 (23:05 +0200)]
ath79: add support for MikroTik RouterBOARD 921GS-5HPacD-15s

The MikroTik RouterBOARD 921GS-5HPacD-15s (mANTBox 15s) is an outdoor
antenna for 5 GHz with an built-in router. This ports the board from
ar71xx.

See https://mikrotik.com/product/RB921GS-5HPacD-15S for more info.

Specifications:
 - SoC: Qualcomm Atheros QCA9558 (720 MHz)
 - RAM: 128 MB
 - Storage: 128 MB NAND
 - Wireless: external QCA9892 802.11a/ac 2x2:2
 - Ethernet: 1x 1000/100/10 Mbps, integrated, via AR8031 PHY, passive PoE in
 - SFP: 1x host

Working:
 - NAND storage detection
 - Ethernet
 - Wireless
 - 1x user LED (blinks during boot, sysupgrade)
 - Reset button
 - Sysupgrade

Untested:
 - SFP cage (probably not working)

Installation (untested):
 - Boot initramfs image via TFTP and then flash sysupgrade image

As the embedded RB921-pcb is a stripped down version of the RB922 this patch
adds a common dtsi for this series and includes this to the final dts-files.

Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
[move ath10k-leds closer to ath10k definition in DTS files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for MikroTik RouterBOARD LHG 2nD
Roger Pueyo Centelles [Tue, 9 Jun 2020 10:30:35 +0000 (12:30 +0200)]
ath79: add support for MikroTik RouterBOARD LHG 2nD

The MikroTik RouterBOARD LHG 2nD (sold as LHG 2) is a 2.4 GHz
802.11b/g/n outdoor device with a feed and an integrated dual
polarization grid dish antenna based on the LHG-HB platform.

See https://mikrotik.com/product/lhg_2 for more info.

Specifications:
 - SoC: Qualcomm Atheros QCA9533
 - RAM: 64 MB
 - Storage: 16 MB NOR
 - Wireless: Atheros AR9531 (SoC) 802.11b/g/n 2x2:2, 18 dBi antenna
 - Ethernet: Atheros AR8229 (SoC), 1x 10/100 port, 12-28 Vdc PoE in
 - 8 user-controllable LEDs:
   · 1x power (blue)
   · 1x user (green)
   · 1x lan (green)
   · 1x wlan (green)
   · 4x rssi (green)

Note:
 The rssihigh LED is disabled, as it shares GPIO 16 with the reset
 button.

Flashing:
 TFTP boot initramfs image and then perform sysupgrade. Follow common
 MikroTik procedure as in https://openwrt.org/toh/mikrotik/common.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
[rebase, remove rssiled setup, adjust commit message, add DTSIs]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomediatek: disable btif in device tree to make the WMAC work again
Felix Fietkau [Wed, 12 Aug 2020 10:58:35 +0000 (12:58 +0200)]
mediatek: disable btif in device tree to make the WMAC work again

btif and wmac access the same resources and at the moment enabling one
breaks the other

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomediatek: fix PCI device tree node for elecom wrc-2533gent
Felix Fietkau [Wed, 12 Aug 2020 10:58:06 +0000 (12:58 +0200)]
mediatek: fix PCI device tree node for elecom wrc-2533gent

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: update to the latest version
Felix Fietkau [Wed, 12 Aug 2020 10:30:20 +0000 (12:30 +0200)]
mt76: update to the latest version

8d9a62e4def7 mt76: mt7915: fix crash on tx rate report for invalid stations
825343467df4 mt76: fix double DMA unmap of the first buffer on 7615/7915
99804560372b mt76: mt7615: register ext_phy if DBDC is detected
93407be934b2 mt76: mt7615: move drv_own/fw_own in mt7615_mcu_ops
e7774de844e8 mt76: mt7663s: move drv_own/fw_own in mt7615_mcu_ops
a5602514ab03 mt76: mt7615: hold mt76 lock queueing wd in mt7615_queue_key_update
5c42061ce181 mt76: do not inject packets if MT76_STATE_PM is set
ae4757a0ae90 mt76: mt7615: reschedule runtime-pm receiving a tx interrupt
c4544d1e8a1a mt76: mt76s: fix oom in mt76s_tx_queue_skb_raw
dc73103874cc mt76: mt76s: move tx processing in a dedicated wq
c828c84cb134 mt76: mt7663s: move rx processing in txrx wq
2b34f2f6b0ef mt76: mt76s: move status processing in txrx wq
f957b050d848 mt76: mt76s: move tx/rx processing in 2 separate works
6fe964295bd9 mt76: mt76s: get rid of unused variable
43d6127d8851 mt76: mt7915: enable U-APSD on AP side
58774b605f1c mt76: set interrupt mask register to 0 before requesting irq
06f722d8046c mt76: mt7915: clean up and fix interrupt masking in the irq handler
2fbd6baac103 mt76: mt7615: only clear unmasked interrupts in irq tasklet
5ea8b6187da2 mt76: mt76x02: clean up and fix interrupt masking in the irq handler
f2e71f0c1b7e mt76: mt7615: do not do any work in napi poll after calling napi_complete_done()
1eb94624bb12 mt76: mt7915: do not do any work in napi poll after calling napi_complete_done()
5e0c587b9ac1 mt76: mt7915: clean up station stats polling and rate control update
9ab20dfbf7b1 mt76: mt7915: increase tx retry count
fa69dd96f9c0 mt76: mt7915: enable offloading of sequence number assignment
9816f9812adb mt76: move mt76_check_agg_ssn to driver tx_prepare calls
ad90170b0af9 mt76: mt7615: remove mtxq->agg_ssn assignment
335cd51be4c6 mt76: mt7915: simplify aggregation session check
21f7734cbb49 mt76: mt7915: add missing flags in WMM parameter settings
21182f90d947 mt76: mt7915: add Tx A-MSDU offloading support
27670514328f mt76: mt7615: use v1 MCU API on MT7615 to fix issues with adding/removing stations

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agoath10k-ct-firmware: update firmware images
Michael Yartys [Tue, 14 Jul 2020 12:55:54 +0000 (14:55 +0200)]
ath10k-ct-firmware: update firmware images

Not a large change from last time, but should fix at least one rare wave-2
crash. The htt-mgt-community builds are trimmed for supporting lots of
stations (typically 150+ stations per radio).

Tested on Netgear R7800.

Signed-off-by: Michael Yartys <michael.yartys@gmail.com>
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agotreewide: bump PKG_RELEASE after replacing `which`
Adrian Schmutzler [Wed, 12 Aug 2020 09:17:22 +0000 (11:17 +0200)]
treewide: bump PKG_RELEASE after replacing `which`

Bump PKG_RELEASE for the affected packages as replacing "which" by
"command -v" represents a content change.

Fixes: 1fdf6b745cc3 ("treewide: replace `which` with `command -v`")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agotreewide: replace `which` with `command -v`
Paul Spooren [Mon, 10 Aug 2020 01:33:37 +0000 (15:33 -1000)]
treewide: replace `which` with `command -v`

Fix shellcheck SC2230
> which is non-standard. Use builtin 'command -v' instead.

Using `command -v` is POSIX compliant while `which` is not.  Also to
mention, `command -v` is a shell builtin whereas `which` is a separate
busybox applet.

Once applied to everything concerning OpenWrt we can disable the busybox
feature `which` and save 3.8kB.

Acked-by: Stijn Tintel <stijn@linux-ipv6.be>
Signed-off-by: Paul Spooren <mail@aparcar.org>
[also replace cases in zram-swap]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobusybox: delete redundant patch
Magnus Kroken [Fri, 24 Jul 2020 12:15:17 +0000 (14:15 +0200)]
busybox: delete redundant patch

This problem has been fixed in upstream commit
6b6a3d9339f1c08efaa18a7fb7357e20b48bdc95. This patch now (harmlessly)
adds the same definition a second time.

Signed-off-by: Magnus Kroken <mkroken@gmail.com>
[bump PKG_RELEASE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobcm47xx: use vendor_model scheme for device/image names
Adrian Schmutzler [Fri, 7 Aug 2020 19:11:14 +0000 (21:11 +0200)]
bcm47xx: use vendor_model scheme for device/image names

Most targets have been updated to consistently use the vendor_model
scheme for device definitions and thus, image names.

Apply this to bcm47xx as well. This does _not_ apply any other
specific naming changes.

Cc: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobcm53xx: use vendor_model scheme for device/image names
Adrian Schmutzler [Tue, 4 Aug 2020 14:02:56 +0000 (16:02 +0200)]
bcm53xx: use vendor_model scheme for device/image names

Most targets have been updated to consistently use the vendor_model
scheme for device definitions and thus, image names.

Apply this to bcm53xx as well. This does _not_ apply any other
specific naming changes.

Cc: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agouboot-mediatek: resync patches with upstream
David Woodhouse [Tue, 4 Aug 2020 09:31:11 +0000 (10:31 +0100)]
uboot-mediatek: resync patches with upstream

Now that my patches have been merged into upstream U-Boot, resync the
cosmetic changes and the commit IDs from the final commits.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
4 years agolibjson-c: fix pkgconfig file
Rosen Penev [Sun, 19 Jul 2020 20:34:45 +0000 (13:34 -0700)]
libjson-c: fix pkgconfig file

The pkgconfig file references the host directories, not the openwrt
ones. Used SED to fix as is done elsewhere. Removed CMAKE_INSTALL as a
result.

Removed now pointless CFLAGS.

Added PKG_BUILD_PARALLEL for faster compilation.

Various rearrangements for consistency between packages.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years agoppp: update to latest git HEAD
Hans Dedecker [Tue, 11 Aug 2020 19:08:05 +0000 (21:08 +0200)]
ppp: update to latest git HEAD

677aa53 Fix -W option for pppoe-discovery utility (#157)
115c419 Accept Malformed Windows Success Message (#156)
5bdb148 pppd: Add documentation of stop-bits option to pppd man page (#154)
2a7981f Add ipv6cp-accept-remote option
0678d3b pppd: Fix the default value for ipv6cp-accept-local to false

Refresh patches

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agokernel: Fix cake patch for kernel 4.19.138
Hauke Mehrtens [Tue, 11 Aug 2020 10:31:19 +0000 (12:31 +0200)]
kernel: Fix cake patch for kernel 4.19.138

This fixes the following build problem with cake:
net/sched/act_ctinfo.c: In function 'tcf_ctinfo_act':
net/sched/act_ctinfo.c:99:6: error: implicit declaration of function 'tc_skb_protocol'; did you mean 'skb_protocol'? [-Werror=implicit-function-declaration]
  if (tc_skb_protocol(skb) == htons(ETH_P_IP)) {
      ^~~~~~~~~~~~~~~
      skb_protocol
  CC [M]  net/sched/sch_hfsc.o

Fixes: fdac05b7416b ("kernel: Update kernel 4.19 to version 4.19.138")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agokernel: Create UBIFS v5 volume
Hauke Mehrtens [Sat, 8 Aug 2020 15:28:42 +0000 (17:28 +0200)]
kernel: Create UBIFS v5 volume

In commit 87b35c16adcf ("kernel: ubifs: create use file system format 4
by default") we changed the default UBIFS version used when the kernel
creates a new volume from 5 to 4. UBIFS v5 was added in kernel 4.10 and
only kernel 4.10 and later can read it.
We changed the kernel to create version 4 volumes also on more recent
kernel versions to make it possible to downgrade to an OpenWrt version
with kernel 4.9, the upgrade still works. This is probably not needed
any more and we can remove this patch.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agobcm63xx: switch to upstream CFE detection patch
Álvaro Fernández Rojas [Mon, 10 Aug 2020 15:17:52 +0000 (17:17 +0200)]
bcm63xx: switch to upstream CFE detection patch

This patch has been merged in linux 5.9.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agomalta: disable unnecessary built-in CDROM support
Tony Ambardar [Thu, 6 Aug 2020 13:46:11 +0000 (06:46 -0700)]
malta: disable unnecessary built-in CDROM support

The CDROM is not needed for booting and can be included by selecting the
loadable module as a package instead.

This also avoids triggering a memory allocation failure during probing of
the CDROM due to lack of low 16MB DMA memory, as decribed in FS#3278:
https://bugs.openwrt.org/index.php?do=details&task_id=3278

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/3289
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
4 years agooxnas: reduce size of ATA DMA descriptor space
Daniel Golle [Mon, 10 Aug 2020 22:33:00 +0000 (23:33 +0100)]
oxnas: reduce size of ATA DMA descriptor space

After years of trying to find the reason for random kernel crashes
while both CPU and SATA are under load it has been found.
Some odd commented-out #defines in kref's single-port driver [1] which
were copied from the vendor driver made me develop a theory:
The IO-mapped memory area for DMA descriptors apparetly got some holes
just before the alignment boundaries.
This feels like an off-by-one bug in the hardware or maybe those fields
are used internally by the SATA controller's firmware.
Whatever the cause is: they cannot be used and trying to use them
results in reading back unexpected stuff and ends up with oopsing
Unable to handle kernel paging request at virtual address d085c004

Work around the issue by reducing the area used for bmdma descriptors.
This reduces SATA performance (iops) quite a bit, but finally makes
things work reliably. Possibly one could optimize this much more by
really just skipping the holes in that memory area -- however, that
seems to be non-trivial with the driver and libata in it's current form
(suggestions are welcome).
The 'proper' way to have good SATA performance would be to make use of
the hardware RAID features (one can use the JBOD mode to access even
just a single disc transparently through the RAID controller integrated
in the SATA host instead of accessing the SATA ports 'raw' as we do
now).

[1]: https://github.com/kref/linux-oxnas/blob/master/drivers/ata/sata_oxnas.c#L25

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoar71xx: fix ZyXEL NBG6616 wifi switch
Christoph Krapp [Mon, 10 Aug 2020 19:22:26 +0000 (21:22 +0200)]
ar71xx: fix ZyXEL NBG6616 wifi switch

The device uses a rf-kill switch instead of a button. Furthermore the
GPIO is active high.

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
4 years agotoolchain/binutils: fix broken build of binutils 2.34 on mips64
Tony Ambardar [Sat, 8 Aug 2020 06:34:56 +0000 (23:34 -0700)]
toolchain/binutils: fix broken build of binutils 2.34 on mips64

Commit 53470bdf32 ("toolchain/binutils: Add binutils 2.34") logs refreshed
patches, but also adds a typo causing failed builds on mipsel64 platforms,
including the malta subtarget. Update the patch to fix this.

This fixes the following build error:
make[7]: *** No rule to make target 'elf64ltsmip.o', needed by 'ld-new'.  Stop.

Fixes: FS#3276
Fixes: 53470bdf32 ("toolchain/binutils: Add binutils 2.34")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
4 years agokernel: Move CONFIG_IONIC to generic kernel config
Hauke Mehrtens [Sun, 9 Aug 2020 15:28:39 +0000 (17:28 +0200)]
kernel: Move CONFIG_IONIC to generic kernel config

It is deactivated everywhere, just set this in the generic config.

Acked-by: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agomalta: Refresh kernel configuration
Hauke Mehrtens [Sun, 9 Aug 2020 12:43:53 +0000 (14:43 +0200)]
malta: Refresh kernel configuration

This refreshes the kernel configuration on top of kernel 5.4.
It now builds without asking to select some kernel options on all 4
subtargets.
It still does not boot up, there is a different problem.

Tested-By: Yousong Zhou <yszhou4tech@gmail.com>
Acked-By: Yousong Zhou <yszhou4tech@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agobintuils: Pack libctf-nobfd.so in addition
Hauke Mehrtens [Sun, 9 Aug 2020 12:42:14 +0000 (14:42 +0200)]
bintuils: Pack libctf-nobfd.so in addition

readelf is linked against this library on MIPS64BE
This fixes a build problem on MIPS64BE.

In addition also explicitly activate it in the configure command.

Fixes: 60f595daab45 ("binutils: update to version 2.34")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agokernel: Update kernel 4.14 to version 4.14.193
Hauke Mehrtens [Fri, 31 Jul 2020 17:55:39 +0000 (19:55 +0200)]
kernel: Update kernel 4.14 to version 4.14.193

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agokernel: Update kernel 4.19 to version 4.19.138
Hauke Mehrtens [Fri, 31 Jul 2020 17:41:26 +0000 (19:41 +0200)]
kernel: Update kernel 4.19 to version 4.19.138

Compile and run tested on lantiq/xrx200

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agomac80211: Update to version 5.8
Hauke Mehrtens [Thu, 6 Aug 2020 18:37:44 +0000 (20:37 +0200)]
mac80211: Update to version 5.8

The removed patches were applied upstream.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agouboot-envtools: ath79: add ZyXEL NBG6616 uboot env support
Christoph Krapp [Sun, 9 Aug 2020 11:25:51 +0000 (13:25 +0200)]
uboot-envtools: ath79: add ZyXEL NBG6616 uboot env support

This adds support for ZyXEL NBG6616 uboot-env access

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
4 years agoath79: add support for ZyXEL NBG6616
Christoph Krapp [Sun, 9 Aug 2020 11:00:05 +0000 (13:00 +0200)]
ath79: add support for ZyXEL NBG6616

Specifications:

  SoC: Qualcomm Atheros QCA9557
  RAM: 128 MB (Nanya NT5TU32M16EG-AC)
  Flash: 16 MB (Macronix MX25L12845EMI-10G)
  Ethernet: 5x 10/100/1000 (1x WAN, 4x LAN)
  Wireless: QCA9557 2.4GHz (nbg), QCA9882 5GHz (ac)
  USB: 2x USB 2.0 port
  Buttons: 1x Reset
  Switches: 1x Wifi
  LEDs: 11 (Pwr, WAN, 4x LAN, 2x Wifi, 2x USB, WPS)

MAC addresses:

WAN *:3f uboot-env ethaddr + 3
LAN *:3e uboot-env ethaddr + 2
2.4GHz *:3c uboot-env ethaddr
5GHz *:3d uboot-env ethaddr + 1

The label contains all four MAC addresses, however the one without
increment is first, so this one is taken for label MAC address.

Notes:

The Wifi is controlled by an on/off button, i.e. has to be implemented
by a switch (EV_SW). Despite, it appears that GPIO_ACTIVE_HIGH needs
to be used, just like recently fixed for the NBG6716.
Both parameters have been wrong at ar71xx.

Flash Instructions:

At first the U-Boot variables need to be changed in order to boot the
new combined image format. ZyXEL uses a split kernel + root setup and
the current kernel is too large to fit into the partition. As resizing
didnt do the trick, I've decided to use the prefered combined image
approach to be future-kernel-enlargement-proof (thanks to blocktrron for
the assistance).

First add a new variable called boot_openwrt:
setenv boot_openwrt bootm 0x9F120000

After that overwrite the bootcmd and save the environment:
setenv bootcmd run boot_openwrt
saveenv

After that you can flash the openwrt factory image via TFTP. The servers
IP has to be 192.168.1.33. Connect to one of the LAN ports and hold the
WPS Button while booting. After a few seconds the NBG6616 will look for
a image file called 'ras.bin' and flash it.

Return to vendor firmware is possible by resetting the bootcmd:
setenv bootcmd run boot_flash
saveenv
and flashing the vendor image via the TFTP method as described above.

Accessing the U-Boot Shell:
ZyXEL uses a proprietary loader/shell on top of u-boot: "ZyXEL zloader v2.02"
When the device is starting up, the user can enter the the loader shell
by simply pressing a key within the 3 seconds once the following string
appears on the serial console:

|    Hit any key to stop autoboot:  3

The user is then dropped to a locked shell.

| NBG6616> ?
| ATEN x,(y)     set BootExtension Debug Flag (y=password)
| ATSE x         show the seed of password generator
| ATSH           dump manufacturer related data in ROM
| ATRT (x,y,z,u) ATRT RAM read/write test (x=level, y=start addr, z=end addr, u=iterations
| ATGO           boot up whole system
| ATUR x         upgrade RAS image (filename)

In order to escape/unlock a password challenge has to be passed.
Note: the value is dynamic! you have to calculate your own!

First use ATSE $MODELNAME (MODELNAME is the hostname in u-boot env)
to get the challange value/seed.

| NBG6616> ATSE NBG6616
00C91D7EAC3C

This seed/value can be converted to the password with the help of this
bash script (Thanks to http://www.adslayuda.com/Zyxel650-9.html authors):

- tool.sh -
ror32() {
  echo $(( ($1 >> $2) | (($1 << (32 - $2) & (2**32-1)) ) ))
}
v="0x$1"
a="0x${v:2:6}"
b=$(( $a + 0x10F0A563))
c=$(( 0x${v:12:14} & 7 ))
p=$(( $(ror32 $b $c) ^ $a ))
printf "ATEN 1,%X\n" $p
- end of tool.sh -

| # bash ./tool.sh 00C91D7EAC3C
| ATEN 1,10FDFF5

Copy and paste the result into the shell to unlock zloader.

| NBG6616> ATEN 1,10FDFF5

If the entered code was correct the shell will change to
use the ATGU command to enter the real u-boot shell.

| NBG6616> ATGU
| NBG6616#

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
[move keys to DTSI, adjust usb_power DT label, remove kernel config
change, extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agotreewide: make dependency on kmod-usb-net selective
Adrian Schmutzler [Wed, 5 Aug 2020 10:03:13 +0000 (12:03 +0200)]
treewide: make dependency on kmod-usb-net selective

A bunch of kernel modules depends on kmod-usb-net, but does not
select it. Make AddDepends/usb-net selective, so we can drop
some redundant +kmod-usb-net definitions for DEVICE_PACKAGES.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for Telco T1
Nicholas Smith [Fri, 3 Jul 2020 23:09:08 +0000 (09:09 +1000)]
ath79: add support for Telco T1

Description:
    2x 100Mbps Etherent ports
    24V passive PoE
    64MB RAM
    16MB Flash
    2.4GHz WiFi
    1x WiFi antenna (RP-SMA connector)
    1x LTE antenna (SMA connector)
    Sierra Wireless MC7430 LTE modem

Flash instructions:
    Original firmware is based on OpenWrt.
    Flash using sysupgrade -n

SUPPORTED_DEVICES is added to support factory firmware.

Signed-off-by: Nicholas Smith <nicholas.smith@telcoantennas.com.au>
[add missing led_rssi0 DT label, add SUPPORTED_DEVICES]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: increase spi frequency on TL-WDR3500/3600/4300/4310
Aleksander Jan Bajkowski [Sun, 19 Jul 2020 08:07:24 +0000 (10:07 +0200)]
ath79: increase spi frequency on TL-WDR3500/3600/4300/4310

SPI Flash chip supports up to 33 MHz wihout fast read opcode.
Available frequencies are 112.5, 56.25, 37.5, 28.125, 22.5 etc.
This patch increases the nominal maximum frequency to 33 MHz,
reaching an effective increase from 22.5 to 28.125 MHz.

Formula to calculate SPI frequency:
Freq = 225 MHz / 2 / div

Before:

$ time dd if=/dev/mtd1 of=/dev/null bs=8M
0+1 records in
0+1 records out
real 0m 3.58s
user 0m 0.00s
sys 0m 3.57s

After:

$ time dd if=/dev/mtd1 of=/dev/null bs=8M
0+1 records in
0+1 records out
real 0m 2.95s
user 0m 0.00s
sys 0m 2.93s

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[minor commit message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips/mt7628: fix portmap based on board.d port assignment
Adrian Schmutzler [Fri, 7 Aug 2020 10:18:41 +0000 (12:18 +0200)]
ramips/mt7628: fix portmap based on board.d port assignment

When comparing to the port assignment in board.d/02_network, a few
devices seem to use the wrong setup of mediatek,portmap.

The corrects the values for mt76x8 subtarget based on the location
of the wan port.

A previous cleanup of obviously wrong values has already been done in
7a387bf9a0d7 ("ramips: mt76x8: fix bogus mediatek,portmap")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for TP-Link TL-WPA8630P v2
Andreas Böhler [Sat, 14 Mar 2020 23:20:22 +0000 (00:20 +0100)]
ath79: add support for TP-Link TL-WPA8630P v2

The TL-WPA8630P v2 is a HomePlug AV2 compatible device with a QCA9563 SoC
and 2.4GHz and 5GHz WiFi modules.

Specifications
--------------

  - QCA9563 750MHz, 2.4GHz WiFi
  - QCA9888 5GHz WiFi
  - 8MiB SPI Flash
  - 128MiB RAM
  - 3 GBit Ports (QCA8337)
  - PLC (QCA7550)

MAC address assignment
----------------------

WiFi 2.4GHz and LAN share the same MAC address as printed on the label.
5GHz WiFi uses LAN-1, based on assumptions from similar devices.

LAN Port assignment
-------------------

While there are 3 physical LAN ports on the device, there will be 4
visible ports in OpenWrt. The fourth port (internal port 5) is used
by the PowerLine Communication SoC and thus treated like a regular
LAN port.

Versions
--------

Note that both TL-WPA8630 and TL-WPA8630P, as well as the different
country-versions, differ in partitioning, and therefore shouldn't be
cross-flashed.

This adds support for the two known partitioning variants of the
TL-WPA8630P, where the variants can be safely distinguished via the
tplink-safeloader SupportList. For the non-P variants (TL-WPA8630),
at least two additional partitioning schemes exist, and the same
SupportList entry can have different partitioning.
Thus, we don't support those officially (yet).

Also note that the P version for Germany (DE) requires the international
image version, but is properly protected by SupportList.

In any case, please check the OpenWrt Wiki pages for the device
before flashing anything!

Installation
------------

Installation is possible from the OEM web interface. Make sure to
install the latest OEM firmware first, so that the PLC firmware is
at the latest version. However, please also check the Wiki page
for hints according to altered partitioning between OEM firmware
revisions.

Additional thanks to Jon Davies and Joe Mullally for bringing
order into the partitioning mess.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
[minor DTS adjustments, add label-mac-device, drop chosen, move
common partitions to DTSI, rename de to int, add AU support strings,
adjust TPLINK_BOARD_ID, create common node in generic-tp-link.mk,
adjust commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoprocd: add SELinux support
Thomas Petazzoni [Sat, 18 Jul 2020 12:52:13 +0000 (07:52 -0500)]
procd: add SELinux support

This commit adds a patch to procd to support loading the SELinux
policy early at boot time, and adjusts the procd package to use this
SELinux support when libselinux is enabled.

The procd patch has been submitted separately [1]: obviously the
intent is to have it merged in the procd Git repository rather than
have it in OpenWrt itself.

[1] http://lists.infradead.org/pipermail/openwrt-devel/2019-November/025791.html

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[rebase, add commit message]
Signed-off-by: W. Michael Petullo <mike@flyn.org>
[split commit into openwrt.git and procd.git]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agokernel: further clean-up options and defaults
Daniel Golle [Mon, 10 Aug 2020 08:40:14 +0000 (09:40 +0100)]
kernel: further clean-up options and defaults

Remove `if !SMALL_FLASH` in places which are anyway already augmented
by `if !SMALL_FLASH`.
Always enable CONFIG_BLK_DEV_THROTTLING on !SMALL_FLASH devices rather
than just enabling it on bcm27xx.
Enabled CPU bandwidth provisioning for FAIR_GROUP_SCHED on !SMALL_FLASH
devices as CONFIG_FAIR_GROUP_SCHED is already enabled and becomes more
useful for cgroups with that option enbled as well.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agokernel: modules: add package kmod-iosched-bfq
Daniel Golle [Thu, 6 Aug 2020 20:03:32 +0000 (21:03 +0100)]
kernel: modules: add package kmod-iosched-bfq

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agotools: add fakeroot
Thomas Petazzoni [Fri, 7 Aug 2020 21:12:59 +0000 (11:12 -1000)]
tools: add fakeroot

SELinux support requires setting the appropriate SELinux security context
to files and directories, which needs to happen at build time in order
to support read-only root filesystem scenarios. In order to create these
security contexts, we will have to run some SELinux-specific tools on
the host machine, but that requires root access. This adds support for
fakeroot, which the build process will use to run the SELinux security
context creation and the image creation.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Apply to current master, and adjust commit message

Thomas' original work is available at
http://lists.infradead.org/pipermail/openwrt-devel/2019-November/025976.html.

Signed-off-by: W. Michael Petullo <mike@flyn.org>
[add rules.mk FAKEROOT variable]
Signed-off-by: Paul Spooren <mail@aparcar.org>
[update, fix macos build]
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agotools/cmake: fix typo in parallel make patch
Piotr Stefaniak [Sat, 8 Aug 2020 22:38:21 +0000 (00:38 +0200)]
tools/cmake: fix typo in parallel make patch

The variable in the case argument was mistyped, so the case always
checked against an empty string and never matched.

Fix the variable name. Add a PKG_RELEASE to Makefile so we can bump it.

Fixes: d6de31310cc1 ("cmake: restore parallel build support for bootstrap")
Signed-off-by: Piotr Stefaniak <pstef@freebsd.org>
[add commit message, add PKG_RELEASE, fix commit title, add Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoRevert "build: fix typo in cmake patch"
Adrian Schmutzler [Sun, 9 Aug 2020 21:59:20 +0000 (23:59 +0200)]
Revert "build: fix typo in cmake patch"

This reverts commit 685570858dc6b19329594c6efd2c20f1898976f9.

The commit had several formal flaws, revert it and hopefully apply
it properly next time.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agouboot-envtools: ar71xx: add ZyXEL NBG6616 uboot env support
Christoph Krapp [Sun, 9 Aug 2020 11:39:05 +0000 (13:39 +0200)]
uboot-envtools: ar71xx: add ZyXEL NBG6616 uboot env support

This adds support for ZyXEL NBG6616 uboot-env access

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
[add "ar71xx" to commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoar71xx: change u-boot-env to read-write for ZyXEL NBG6616
Christoph Krapp [Sun, 9 Aug 2020 11:40:26 +0000 (13:40 +0200)]
ar71xx: change u-boot-env to read-write for ZyXEL NBG6616

As the ath79 port of this device uses a combined kernel + root
partition the uboot bootcmd variable needs to be changed. As using
cli/luci is more convenient than opening up the case and using a uart
connection, lets unlock the uboot-env partition for write access.

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
4 years agobuild: fix typo in cmake patch
Piotr Stefaniak [Sat, 8 Aug 2020 22:38:21 +0000 (00:38 +0200)]
build: fix typo in cmake patch

The variable in the case argument was mistyped, so the case always
checked against an empty string and never matched.

Fix the variable name.

Signed-off-by: Piotr Stefaniak <pstef@freebsd.org>
[add commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: add missing config symbols
Felix Fietkau [Sat, 8 Aug 2020 19:43:42 +0000 (21:43 +0200)]
kernel: add missing config symbols

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: fix spurious disconnect issues with disassoc_low_ack=1 (default)
Felix Fietkau [Sat, 8 Aug 2020 17:28:07 +0000 (19:28 +0200)]
mac80211: fix spurious disconnect issues with disassoc_low_ack=1 (default)

mac80211 reports a packet loss event to user space when 50 consecutive packets
were not acked. On a high throughput link with long aggregates and sudden
link changes, this can trigger way too easily.
Mitigate false positives by only triggering the event on a packet loss if
no ACK was received for at least a second

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agotreewide: add sysupgrade comment for early DSA-adopters
Adrian Schmutzler [Sat, 8 Aug 2020 18:53:38 +0000 (20:53 +0200)]
treewide: add sysupgrade comment for early DSA-adopters

Add a specific comment for early DSA-adopters that they can keep
their config when prompted due to compat-version increase.

This is a temporary solution, the patch should be simply reverted
before any release.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for TP-Link TL-WA901ND v3
Adrian Schmutzler [Wed, 15 Apr 2020 11:19:33 +0000 (13:19 +0200)]
ath79: add support for TP-Link TL-WA901ND v3

This ports support for the TL-WA901ND v3 from ar71xx to ath79.
Most of the hardware is shared with the TL-WA850/860RE v1 range
extenders. It completes the TL-WA901ND series in ath79.

Specifications:
  Board: AP123 / AR9341
  Flash/RAM: 4/32 MiB
  CPU: 535 MHz
  WiFi: 2.4 GHz b/g/n
  Ethernet: 1 port (100M)

Flashing instructions:
  Upload the factory image via the vendor firmware upgrade option.

This has not been tested on device, but port from ar71xx is
straightforward and the device will be disabled by default anyway.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoipq806x: replace patches with upstream version
Ansuel Smith [Sat, 8 Aug 2020 15:05:48 +0000 (17:05 +0200)]
ipq806x: replace patches with upstream version

Replace all the custom patches with the backported upstream version

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[refresh patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: drop redundant kmods-leds-gpio
Adrian Schmutzler [Wed, 5 Aug 2020 10:05:24 +0000 (12:05 +0200)]
ath79: drop redundant kmods-leds-gpio

The ath79 target has CONFIG_LEDS_GPIO=y set in kernel config, so
no need to pull the kmod-leds-gpio module for specific devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: mt7621: implement compatibility version for DSA migration
Adrian Schmutzler [Tue, 14 Jul 2020 14:42:40 +0000 (16:42 +0200)]
ramips: mt7621: implement compatibility version for DSA migration

This implements the newly introduced compat-version to prevent
broken upgrade between swconfig and DSA for ramips' mt7621 subtarget.

In order to make the situation more transparent for the user, and
to prevent large switch-cases for devices, it is more convenient to
have the entire subtarget 1.1-by-default. This means that new devices
will be added with 1.1 from the start, but in contrast we don't need
to switch them in board.d files. Apart from that, users that manually
backport devices to 19.07 with swconfig will have an equivalent
upgrade experience to officially supported devices.

Since DSA support on mt7621 is out for a while already, this applies
the same uci-defaults workaround for early adopters as already
done for kirkwood and mvebu in previous commits.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobuild: improve message for incompatible image on "legacy" devices
Adrian Schmutzler [Thu, 6 Aug 2020 13:14:49 +0000 (15:14 +0200)]
build: improve message for incompatible image on "legacy" devices

It has been reported that the current message displayed during
upgrade with compat_version change is misleading for "legacy"
devices, i.e. those without the "new" fwtool. This is partially
caused by the fact that we need to exploit the supported_devices
string to get some message text displayed for these devices.

This patch modifies the message to make it more helpful and
include additional information, e.g.

  Device linksys,wrt3200acm not supported by this image
  Supported devices: linksys,wrt3200acm linksys-whateverelse - Image
  version mismatch: image 1.1, device 1.0. Please wipe config during
  upgrade (force required) or reinstall. Reason: Config cannot be
  migrated from swconfig to DSA

Note that the line breaks (except the one before Supported devices)
are added manually here, I hesitate to hack \n into the
supported_devices as well. The "Reason:" will only be displayed if
DEVICE_COMPAT_MESSAGE is set for the device, otherwise
"Please check documentation ..." will be shown instead.

While at it, also rearrange the code in image-commands.mk to
make lines shorter and remove the double filter-out command.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokirkwood: fix sysupgrade experience for early DSA-adopters
Adrian Schmutzler [Thu, 6 Aug 2020 12:59:51 +0000 (14:59 +0200)]
kirkwood: fix sysupgrade experience for early DSA-adopters

Conceptually, the compat-version during sysupgrade is meant to
describe the config. Therefore, if somebody starts with a device on
19.07 and swconfig, and that person does a forceful upgrade into a
DSA-based firmware without wiping his/her config, then the local
compat-version should stay at 1.0 according to the config present
(and not get updated).

However, this poses a problem for those people that early-adopted
DSA in master, as they already have adjusted their config for DSA,
but it still is "1.0" as far as sysupgrade is concerned. This can
be healed by a simple

   uci set system.@system[0].compat_version="1.1"
   uci commit system

But this needs to be applied _after_ the upgrade (as the "old" fwtool
on the old installation does not know about compat_version) and it
requires access via SSH (i.e. no pure GUI solution is available for
this group of people, apart from wiping their config _again_ for
no technical reason). Despite, the situation will not become
obvious to those just upgrading via GUI, they will just have the
experience of a "broken upgrade".

This is a conflict which cannot be resolved by achieving both goals,
we have to decide to either keep the strict concept or improve the
situation for early adopters.

In this patch, we address the issue by providing a uci-defaults
script that will raise the compat_version for _all_ people upgrading
into a 1.1 image, no matter whether they have reset config or not.
The idea is to implement this as a _temporary_ solution, so early
adopters can upgrade into the new mechanism without issues, and
after a few weeks/months we could remove the uci-defaults script
again.

If we e.g. remove the script just before 20.xx.0-rc1, early adopters
should have moved on by then, and existing stable users would still
get the intended experience.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomvebu: fix sysupgrade experience for early DSA-adopters
Adrian Schmutzler [Thu, 6 Aug 2020 12:43:16 +0000 (14:43 +0200)]
mvebu: fix sysupgrade experience for early DSA-adopters

Conceptually, the compat-version during sysupgrade is meant to
describe the config. Therefore, if somebody starts with a device on
19.07 and swconfig, and that person does a forceful upgrade into a
DSA-based firmware without wiping his/her config, then the local
compat-version should stay at 1.0 according to the config present
(and not get updated).

However, this poses a problem for those people that early-adopted
DSA in master, as they already have adjusted their config for DSA,
but it still is "1.0" as far as sysupgrade is concerned. This can
be healed by a simple

   uci set system.@system[0].compat_version="1.1"
   uci commit system

But this needs to be applied _after_ the upgrade (as the "old" fwtool
on the old installation does not know about compat_version) and it
requires access via SSH (i.e. no pure GUI solution is available for
this group of people, apart from wiping their config _again_ for
no technical reason). Despite, the situation will not become
obvious to those just upgrading via GUI, they will just have the
experience of a "broken upgrade".

This is a conflict which cannot be resolved by achieving both goals,
we have to decide to either keep the strict concept or improve the
situation for early adopters.

In this patch, we address the issue by providing a uci-defaults
script that will raise the compat_version for _all_ people upgrading
into a 1.1 image, no matter whether they have reset config or not.
The idea is to implement this as a _temporary_ solution, so early
adopters can upgrade into the new mechanism without issues, and
after a few weeks/months we could remove the uci-defaults script
again.

If we e.g. remove the script just before 20.xx.0-rc1, early adopters
should have moved on by then, and existing stable users would still
get the intended experience.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: use lzma-loader for RT5350F-OLinuXino devices
Sungbo Eo [Tue, 4 Aug 2020 16:04:59 +0000 (01:04 +0900)]
ramips: use lzma-loader for RT5350F-OLinuXino devices

The bootloader fails to extract a big kernel, e.g. v5.4 kernel image
with ALL_KMODS enabled. This can be fixed by using lzma-loader.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoramips: adjust LZMA_TEXT_START for 32MB RAM devices
Sungbo Eo [Tue, 4 Aug 2020 16:03:42 +0000 (01:03 +0900)]
ramips: adjust LZMA_TEXT_START for 32MB RAM devices

Currently the lzma-loader is placed in RAM at 32MB offset, which does not
make sense for devices with only 32MB RAM. If we adjust LZMA_TEXT_START to
24MB offset, then the lzma-loader can be used on those devices and still
about 24MB memory will be available for uncompressed image, which should be
enough for most use cases.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agomac80211: exchange mesh 6GHz IE patch for upstream accepted
David Bauer [Fri, 7 Aug 2020 22:32:49 +0000 (00:32 +0200)]
mac80211: exchange mesh 6GHz IE patch for upstream accepted

Exchange the patch fixing the kernel ringbuffer WARNING flood for the
one accepted upstream.

Fixes commit a956c14d6aa4 ("mac80211: util: don't warn on missing sband
iftype data")

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agohostapd: recognize option "key" as alias for "auth_secret"
Jo-Philipp Wich [Fri, 7 Aug 2020 19:19:29 +0000 (21:19 +0200)]
hostapd: recognize option "key" as alias for "auth_secret"

The hostapd configuration logic is supposed to accept "option key" as
legacy alias for "option auth_secret". This particular fallback option
failed to work though because "key" was not a registered configuration
variable.

Fix this issue by registering the "key" option as well, similar to the
existing "server" nad "port" options.

Ref: https://github.com/openwrt/openwrt/pull/3282
Suggested-by: Michael Jones <mike@meshplusplus.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agohostapd: make "key" option optional if "wpa_psk_file" is provided
Jo-Philipp Wich [Fri, 7 Aug 2020 18:50:55 +0000 (20:50 +0200)]
hostapd: make "key" option optional if "wpa_psk_file" is provided

If an existing "wpa_psk_file" is passed to hostapd, the "key" option may
be omitted.

While we're at it, also improve the passphrase length checking to ensure
that it is either exactly 64 bytes or 8 to 63 bytes.

Fixes: FS#2689
Ref: https://github.com/openwrt/openwrt/pull/3283
Suggested-by: Michael Jones <mike@meshplusplus.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoexfat: add dependency on nls-base
David Bauer [Thu, 6 Aug 2020 19:24:43 +0000 (21:24 +0200)]
exfat: add dependency on nls-base

Add a dependency on kmod-nls-base for the new exfat driver. Otherwise
the build fails on ramips and ath79 on kernel 5.4:

Package kmod-fs-exfat is missing dependencies for the following libraries:
nls_base.ko

Fixes commit cd41234d2f63 ("exfat: add out of tree module")

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agoom-watchdog: fix board name for teltonika,rut5xx
Adrian Schmutzler [Fri, 7 Aug 2020 14:29:23 +0000 (16:29 +0200)]
om-watchdog: fix board name for teltonika,rut5xx

The board name is equivalent to the compatible, not the device
definition. Fix it.

Fixes: b4588c853838 ("kernel/om-watchdog: Apply device renames from ramips")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: switch rt288x subtarget to kernel 5.4
Adrian Schmutzler [Fri, 7 Aug 2020 12:47:31 +0000 (14:47 +0200)]
ramips: switch rt288x subtarget to kernel 5.4

The sbutarget has testing support for kernel 5.4 for quite a while
and builds fine, however, only one devices there is > 4 MiB.

Since it's unlikely to get a Tested-by for that device, and the other
ralink subtargets appear to be working with 5.4 so far, let's set
this target to 5.4 by default as well.

That way, even if the device happens to break, we'll still have at
least usable SDK and IB for people to use.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agonat46: update to latest git HEAD
Hans Dedecker [Fri, 7 Aug 2020 11:35:18 +0000 (13:35 +0200)]
nat46: update to latest git HEAD

71e9f09 nat46-core: fix compilation with kernel 5.4

Remove 100-kernel-5.4-compat patch as upstream accepted

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agoramips/mt7620: fix portmap based on board.d port assignment
Adrian Schmutzler [Mon, 3 Aug 2020 21:11:01 +0000 (23:11 +0200)]
ramips/mt7620: fix portmap based on board.d port assignment

When comparing to the port assignment in board.d/02_network, many
devices seem to use the wrong setup of mediatek,portmap.

The corrects the values for mt7620 subtarget based on the location
of the wan port.

A previous cleanup of obviously wrong values has already been done in
d3c0a944059b ("ramips: mt7620/mt7621: remove invalid mediatek,portmap")

Cc: Sungbo Eo <mans0n@gorani.run>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agohostapd: add wpad-basic-wolfssl variant
Petr Štetiar [Tue, 4 Aug 2020 14:24:35 +0000 (16:24 +0200)]
hostapd: add wpad-basic-wolfssl variant

Add package which provides size optimized wpad with support for just
WPA-PSK, SAE (WPA3-Personal), 802.11r and 802.11w.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
[adapt to recent changes, add dependency for WPA_WOLFSSL config]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>