openwrt/openwrt.git
4 years agobuild: add PKG_SOURCE_URL_FILE support
Kamil Wcislo [Thu, 5 Jul 2018 19:40:19 +0000 (21:40 +0200)]
build: add PKG_SOURCE_URL_FILE support

It seems that there is a missing PKG_SOURCE_URL_FILE support.
This little fix adds the support for packages to change the name of the
downloaded file.

Sometimes it is desirable to change the downloaded archive file name, like
for mitigating name conflicts for different packages (some files on the server
could be named like, e.g. 2018-01-01.tar.gz) or for the cases that there is
no name for the file in the URL (e.g. http://someserver.com/download).

Signed-off-by: Kamil Wcislo <kamil.wcislo@lpnplant.io>
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
4 years agoath79: improve TP-Link CPE DTSI names for ar9344 SOC
Adrian Schmutzler [Fri, 22 Nov 2019 10:50:00 +0000 (11:50 +0100)]
ath79: improve TP-Link CPE DTSI names for ar9344 SOC

The initial DTSI names for the TP-Link CPE devices have become
quite confusing, as several non-V1 devices now use the *-v1.dtsi,
the *cpe510-v1.dts does not use the cpe510.dtsi, etc.

This introduces a new naming scheme based on whether devices have
one or two ports, which should be easier to grasp.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agotplink-safeloader: shorten version number of TP-Link WBS210 v2
Bernhard Geier [Fri, 22 Nov 2019 22:11:24 +0000 (23:11 +0100)]
tplink-safeloader: shorten version number of TP-Link WBS210 v2

"2.0" instead of "2.00" is sufficient and more in line with the
other definitions.

Signed-off-by: Bernhard Geier <freifunk@geierb.de>
[commit message/title adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobase-files: config_generate: split macaddr with multiple ifaces
Sungbo Eo [Mon, 11 Nov 2019 16:20:45 +0000 (01:20 +0900)]
base-files: config_generate: split macaddr with multiple ifaces

netifd does not handle network.@device[x].name properly if it
contains multiple ifaces separated by spaces. Due to this, board.d
lan_mac setup does not work if multiple ifaces are set to LAN by
ucidef_set_interface_lan.

To fix this, create a device node for each member iface when
running config_generate instead. Those are named based on the
member ifname:

  ucidef_set_interface_lan "eth0 eth1.1"
  ucidef_set_interface_macaddr "lan" "yy:yy:yy:yy:yy:01"

will return

  config device 'lan_eth0_dev'
        option name 'eth0'
        option macaddr 'yy:yy:yy:yy:yy:01'

  config device 'lan_eth1_1_dev'
        option name 'eth1.1'
        option macaddr 'yy:yy:yy:yy:yy:01'

ref: https://github.com/openwrt/openwrt/pull/2542

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[always use new scheme, extend description, change commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: DTS style improvement for Ubiquiti XM and BZ devices
Adrian Schmutzler [Tue, 19 Nov 2019 14:47:11 +0000 (15:47 +0100)]
ath79: DTS style improvement for Ubiquiti XM and BZ devices

This applies minor style improvements and removes commented pll
clock adjustments from ubnt_xm DTSI. The latter were introduced
(already commented out) when adding ath79 target and have never
been touched since then. For Unifi (BZ board), similar clock
adjustments are employed and used.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: nf_conntrack_rtcache: fix cleanup on netns delete and rmmod
Yousong Zhou [Wed, 13 Nov 2019 17:03:12 +0000 (17:03 +0000)]
kernel: nf_conntrack_rtcache: fix cleanup on netns delete and rmmod

Fixes FS#1472, FS#2353, FS#2426

Fixes: b3f95490 ("kernel: generic: Add kernel 4.14 support")
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agomac80211: add default value for noscan
Sebastian Kemper [Sat, 23 Nov 2019 10:25:02 +0000 (11:25 +0100)]
mac80211: add default value for noscan

Commit b3d8b3a introduced a new test:

[ -n "$noscan" -a "$noscan" -gt 0 ] && hostapd_noscan=1

But if length of "$noscan" is zero (noscan is not set) this doesn't stop
the shell to evaluate the rest of the test.

root@hank2:~# [ -n "$noscan" -a "$noscan" -gt 0 ]
ash: out of range
root@hank2:~#

So when radios are brought up this shows in the log:

Sat Nov 23 10:51:38 2019 daemon.info procd: - init complete -
Sat Nov 23 10:52:24 2019 daemon.notice netifd: radio1 (1243): sh: out of range
Sat Nov 23 10:52:25 2019 user.notice firewall: Reloading firewall due to ifup of wan (eth0.2)
Sat Nov 23 10:52:25 2019 daemon.notice netifd: radio0 (1242): sh: out of range
Sat Nov 23 10:52:26 2019 authpriv.info dropbear[1536]: Not backgrounding

This commit sets noscan to 0 if unset and removes the gratuitous length
check, preventing the warning.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
4 years agodnsmasq: correct sense & usage of dnsseccheckunsigned
Kevin Darbyshire-Bryant [Fri, 22 Nov 2019 14:04:02 +0000 (14:04 +0000)]
dnsmasq: correct sense & usage of dnsseccheckunsigned

dnsmasq v2.80 made 'dnssec-check-unsigned' the default, thus the uci
option was rendered ineffectual: we checked unsigned zones no matter the
setting.

Disabling the checking of unsigned zones is now achieve with the
"--dnssec-check-unsigned=no" dnsmasq option.

Update init script to pass required option in the disabled case.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
4 years agoe2fsprogs: Fix CVE-2019-5094 in libsupport
Hauke Mehrtens [Fri, 22 Nov 2019 21:43:25 +0000 (22:43 +0100)]
e2fsprogs: Fix CVE-2019-5094 in libsupport

This adds the following patch from debian:
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?h=debian/stable&id=09fe1fd2a1f9efc3091b4fc61f1876d0785956a8
libsupport: add checks to prevent buffer overrun bugs in quota code

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agomac80211: update to version 5.4-rc8
Hauke Mehrtens [Thu, 21 Nov 2019 21:20:20 +0000 (22:20 +0100)]
mac80211: update to version 5.4-rc8

This updates mac80211 to backports based on kernel 5.4-rc8.

The deleted patches were applied upstream.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agokernel: Add missing configuration option
Hauke Mehrtens [Fri, 22 Nov 2019 19:13:55 +0000 (20:13 +0100)]
kernel: Add missing configuration option

This was found by the build bot.

Fixes: e29500eb849a ("kernel: bump 4.19 to 4.19.85")
Fixes: db9e9e838216 ("kernel: bump 4.14 to 4.14.155")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
4 years agofirewall: update to latest Git HEAD
Jo-Philipp Wich [Fri, 22 Nov 2019 17:53:03 +0000 (18:53 +0100)]
firewall: update to latest Git HEAD

8174814 utils: persist effective extra_src and extra_dest options in state file
72a486f zones: fix emitting match rules for zones with only "extra" options

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agocns3xxx: use proper macros for defining partition regions
Koen Vandeputte [Fri, 22 Nov 2019 08:58:50 +0000 (09:58 +0100)]
cns3xxx: use proper macros for defining partition regions

While at it, also reorder the items for
improved readability.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.19 to 4.19.85
Koen Vandeputte [Thu, 21 Nov 2019 13:09:35 +0000 (14:09 +0100)]
kernel: bump 4.19 to 4.19.85

Refreshed all patches.

Altered patches:
- 080-sata_support.patch

Remove upstreamed:
- 034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch
- 001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch
- 073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.155
Koen Vandeputte [Thu, 21 Nov 2019 13:03:58 +0000 (14:03 +0100)]
kernel: bump 4.14 to 4.14.155

Refreshed all patches.

Altered patches:
- 707-dpaa-ethernet-support-layerscape.patch

Remove upstreamed:
- 034-v4.20-MIPS-BCM47XX-Enable-USB-power-on-Netgear-WNDR3400v3.patch
- 001-4.21-01-BCM63XX-fix-switch-core-reset-on-BCM6368.patch
- 073-qcom-ipq4019-fix-cpu0-s-qcom-saw2-reg-value.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoath79: add support for the TP-LINK WBS510 V1
Andrew Cameron [Fri, 8 Nov 2019 03:36:02 +0000 (21:36 -0600)]
ath79: add support for the TP-LINK WBS510 V1

This adds support for a popular low-cost 5GHz N based AP

Specifications:
- SoC: Atheros AR9344
- RAM: 64MB
- Storage: 8 MB SPI NOR
- Wireless: 5GHz 300 Mbps, 2x RP-SMA connector, 27 dBm TX power
- Ethernet: 1x 10/100 Mbps with 24V POE IN, 1x 10/100 Mbps

Installation:
Flash factory image through stock firmware WEB UI
or through TFTP
To get to TFTP recovery just hold reset button while powering on for
around 4-5 seconds and release.
Rename factory image to recovery.bin
Stock TFTP server IP:192.168.0.100
Stock device TFTP adress:192.168.0.254

Signed-off-by: Andrew Cameron <apcameron@softhome.net>
4 years agoath79: add support for the TP-LINK WBS510 V2
Andrew Cameron [Thu, 7 Nov 2019 02:12:55 +0000 (20:12 -0600)]
ath79: add support for the TP-LINK WBS510 V2

This adds support for a popular low-cost 5GHz N based AP

Specifications:
 - SoC: Atheros AR9344
 - RAM: 64MB
 - Storage: 8 MB SPI NOR
 - Wireless: 5GHz 300 Mbps, 2x RP-SMA connector, 27 dBm TX power
 - Ethernet: 1x 10/100 Mbps with 24V POE IN, 1x 10/100 Mbps

Installation:
Flash factory image through stock firmware WEB UI
or through TFTP
To get to TFTP recovery just hold reset button while powering on for
around 4-5 seconds and release.
Rename factory image to recovery.bin
Stock TFTP server IP:192.168.0.100
Stock device TFTP adress:192.168.0.254

Signed-off-by: Andrew Cameron <apcameron@softhome.net>
4 years agowireless-regdb: Make it build with python2
Hauke Mehrtens [Sun, 17 Nov 2019 22:59:37 +0000 (23:59 +0100)]
wireless-regdb: Make it build with python2

This backports a patch to build it work with python2 in addition to
python3.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Petr Štetiar <ynezz@true.cz>
4 years agoar71xx: ubnt-(xm,xw): add rssileds package
Lech Perczak [Sun, 17 Nov 2019 19:58:27 +0000 (20:58 +0100)]
ar71xx: ubnt-(xm,xw): add rssileds package

In order to make RSSI indicator on the device work out of box,
include "rssileds" package in per-device rootfs image by default
for Ubiquiti XM and XW devices, namely:
- Bullet M (XM/XW)
- Rocket M (XM/XW)
- Nanostation M (XM/XW)
- Nanostation Loco-M (XW)

This moves the package addition to the individual devices in order
to prevent accidental inclusions of the package when not looking
at the parent node carefully enough.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
[add bullet-m-xw, remove rocket-m-ti, extend commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add PoE passthrough switch for Ubiquiti Nanostation (XM/XW)
Adrian Schmutzler [Mon, 18 Nov 2019 22:59:06 +0000 (23:59 +0100)]
ath79: add PoE passthrough switch for Ubiquiti Nanostation (XM/XW)

This adds the gpio switch to enable PoE passthrough on Ubiquiti
Nanostation (XM/XW).

Values are copied from the implementation in ar71xx.

GPIO values checked on:
- NanoStation M5 XW
- NanoStation M2 XM

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agouboot-mvebu: add uDPU board
Vladimir Vid [Mon, 9 Sep 2019 16:50:26 +0000 (18:50 +0200)]
uboot-mvebu: add uDPU board

* add u-boot support for uDPU
* add line to copy u-boot binary to STAGING_DIR_IMAGE, this can later be used
as BL33 variable required for ATF build
* add patch to increase max gunzip size in mvebu_armada-37xx.h which is
required for booting the itb recovery images

Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
4 years agopackages/boot: add arm-trusted-firmware-mvebu and initial uDPU support
Vladimir Vid [Fri, 25 Oct 2019 15:24:38 +0000 (17:24 +0200)]
packages/boot: add arm-trusted-firmware-mvebu and initial uDPU support

ATF mvebu is required for building a functional bootloader for A7K/A8K and
A37xx platforms. uDPU device is added as the first target.

A3700 platform has a wide range of settings which can be used per device, so
options are defined under the Device sections.

Platform also required WTP (recovery) tools and mv-ddr package for the DDR
topology configuration. 32-bit cross compiler is used for building the WTMI
image.

After the build, flash-image.bin can be used with the bubt command from the
u-boot shell to flash the new version of u-boot.

Signed-off-by: Vladimir Vid <vladimir.vid@sartura.hr>
4 years agonetifd: dhcp proto convert release to norelease
Kevin Darbyshire-Bryant [Tue, 19 Nov 2019 15:12:42 +0000 (15:12 +0000)]
netifd: dhcp proto convert release to norelease

Change dhcp no/release on shutdown to 'norelease' uci option to match
existing proto dhcpv6 usage.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Acked-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agoam33x-cm3: remove
Andre Heider [Thu, 3 Oct 2019 16:11:17 +0000 (18:11 +0200)]
am33x-cm3: remove

This is currently unused and not working anyway, since the used upstream
kernel loads am335x-pm-firmware.elf and not am335x-pm-firmware.bin [0].

The last downstream patches using the latter were removed with e4eef7e6.

Remove it instead of fixing it since the rtc-only sleep state can even
damage the hardware [1].

[0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ccbbb9faac946ce61c241ce9f08b3486fabf031d
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a6cb0abe1aa63334f3ded6d2b6c8eca80e72302

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: support booting off different mmc devices
Andre Heider [Sat, 7 Sep 2019 10:36:52 +0000 (12:36 +0200)]
omap: support booting off different mmc devices

Tested with installing to/sysupgrading from sd and emmc on boneblack.

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: switch from uEnv.txt to generic distro booting
Andre Heider [Fri, 6 Sep 2019 20:53:23 +0000 (22:53 +0200)]
omap: switch from uEnv.txt to generic distro booting

Which makes supporting different boot devices easy.

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: update uboot to 2019.10
Andre Heider [Fri, 6 Sep 2019 09:25:30 +0000 (11:25 +0200)]
omap: update uboot to 2019.10

All patches have been dropped, they're either redundant (e.g. due to the
new and unset CONFIG_SPL_FAT_WRITE), break compilation (thumb hacks) or
have been applied upstream.

The defconfig for am335x_boneblack has been removed upstream [0], so use
am335x_evm for boneblack too.

Size changes (before, after, file):

ti_am335x-evm and ti_am335x-bone-black:
  79804 110832 MLO
 623836 756148 u-boot.img

ti_omap3-beagle:
  54148  57708 MLO
 496272 665728 u-boot.img

ti_omap4-panda:
  39356  40204 MLO
 284648 366672 u-boot.img

Tested on boneblack, which has the biggest spl size increase. The beagle and
panda spl sizes seem reasonable to not break booting.

[0] https://gitlab.denx.de/u-boot/u-boot/commit/8fa7f65dd02c176ee6021eaf40114560b8954ba2

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: switch to kernel 4.19
Andre Heider [Fri, 6 Sep 2019 07:48:22 +0000 (09:48 +0200)]
omap: switch to kernel 4.19

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: enable new sound kernel options
Andre Heider [Fri, 6 Sep 2019 10:00:17 +0000 (12:00 +0200)]
omap: enable new sound kernel options

This gets rid of a boot time warning about the missing edma module.
Enable SND_OMAP_SOC_HDMI_AUDIO while here.
All enabled options default to y.

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: disable excess kernel debug options
Andre Heider [Sun, 13 Oct 2019 03:56:46 +0000 (05:56 +0200)]
omap: disable excess kernel debug options

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: run `make oldconfig` for kernel 4.19
Andre Heider [Fri, 6 Sep 2019 07:48:00 +0000 (09:48 +0200)]
omap: run `make oldconfig` for kernel 4.19

The only manually enabled config is the new OMAP4_DSS_HDMI_CEC, which
defaults to y.

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoomap: copy the kernel 4.14 config for 4.19
Andre Heider [Fri, 6 Sep 2019 07:22:29 +0000 (09:22 +0200)]
omap: copy the kernel 4.14 config for 4.19

Signed-off-by: Andre Heider <a.heider@gmail.com>
4 years agoipq40xx: fix build error
Koen Vandeputte [Wed, 20 Nov 2019 07:50:24 +0000 (08:50 +0100)]
ipq40xx: fix build error

Add missing brace which was accidentally omitted

Fixes: d6aea46a50d9 ("kernel: bump 4.14 to 4.14.154")
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agobrcm2708: remove useless patches
Koen Vandeputte [Wed, 20 Nov 2019 06:57:36 +0000 (07:57 +0100)]
brcm2708: remove useless patches

The first adds some stuff while the second one
just reverts it.

Remove both patches.

This is done is a separate commit on purpose to make it clear.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agomac80211: refresh patches
Koen Vandeputte [Tue, 19 Nov 2019 11:09:03 +0000 (12:09 +0100)]
mac80211: refresh patches

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agomac80211: backport upstream fixes
Koen Vandeputte [Wed, 6 Nov 2019 12:38:51 +0000 (13:38 +0100)]
mac80211: backport upstream fixes

This potentially fixes some issues seen on IBSS
when interfaces go out of range and then re-appear.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agotoolchain/gcc: bump to 7.5.0
Koen Vandeputte [Tue, 19 Nov 2019 09:38:45 +0000 (10:38 +0100)]
toolchain/gcc: bump to 7.5.0

This updates the GCC to the next minor release which fixes +213 bugs.
Tested on ARMv6, ARMv7, MIPS R2, x86

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.19 to 4.19.84
Koen Vandeputte [Mon, 18 Nov 2019 09:17:50 +0000 (10:17 +0100)]
kernel: bump 4.19 to 4.19.84

Refreshed all patches.

Altered patches:
- 950-0748-net-bcmgenet-Workaround-for-Pi-4B-network-issue.patch
- 950-0754-Revert-net-bcmgenet-Workaround-for-Pi-4B-network-iss.patch
- 902-debloat_proc.patch

Remove upstreamed:
- 150-MIPS-bmips-mark-exception-vectors-as-char-arrays.patch

New symbols:
X86_INTEL_MPX
X86_INTEL_MEMORY_PROTECTION_KEYS
X86_INTEL_TSX_MODE_OFF
X86_INTEL_TSX_MODE_ON
X86_INTEL_TSX_MODE_AUTO

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

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.154
Koen Vandeputte [Mon, 18 Nov 2019 09:17:24 +0000 (10:17 +0100)]
kernel: bump 4.14 to 4.14.154

Refreshed all patches.

Altered patches:
- 902-debloat_proc.patch
- 040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch
- 807-usb-support-layerscape.patch
- 809-flexcan-support-layerscape.patch
- 816-pcie-support-layerscape.patch

Remove upstreamed:
- 150-MIPS-bmips-mark-exception-vectors-as-char-arrays.patch
- 303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch

New symbols:
X86_INTEL_MPX
X86_INTEL_MEMORY_PROTECTION_KEYS
X86_INTEL_TSX_MODE_OFF
X86_INTEL_TSX_MODE_ON
X86_INTEL_TSX_MODE_AUTO
SGL_ALLOC

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

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.9 to 4.9.202
Koen Vandeputte [Mon, 18 Nov 2019 09:08:18 +0000 (10:08 +0100)]
kernel: bump 4.9 to 4.9.202

Refreshed all patches.

Altered patches:
- 902-debloat_proc.patch

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

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agoar71xx: fix buttons for TP-Link TL-WDR4900 v2
Adrian Schmutzler [Thu, 14 Nov 2019 12:01:39 +0000 (13:01 +0100)]
ar71xx: fix buttons for TP-Link TL-WDR4900 v2

TP-Link TL-WDR4900 v2 only has one combined WPS/Reset button, so
don't set up an RFKILL for this device.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoar71xx: fix LED setup for TL-WDR4900 v2
Adrian Schmutzler [Thu, 14 Nov 2019 11:45:15 +0000 (12:45 +0100)]
ar71xx: fix LED setup for TL-WDR4900 v2

In ar71xx there is only one combined mach file for Archer C5/C7 and
TL-WDR4900 v2. This one uses the same LED struct for all devices,
defining "green" LEDs for them. However, WDR4900 uses blue front
LEDs, while only C5/C7 uses green ones. Despite, in base-files
WDR4900 is actually set up with "blue" for the mentioned LEDs.

Thus, this patch creates a separate LED struct for WDR4900, so the
LEDs can be set up correctly. Despite, the wlan5g LED is removed as
it is controlled by ath9k chip for WDR4900 (in contrast to C5/C7).

Note: While front LEDs are blue, USB LEDs (on the back) are green,
so colors are mixed intentionally for the WDR4900 v2.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: fix DTS node names for Ubiquiti XM partitions
Adrian Schmutzler [Mon, 18 Nov 2019 23:14:38 +0000 (00:14 +0100)]
ath79: fix DTS node names for Ubiquiti XM partitions

Some node names were inconsistent with the reg property. Fix it.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomac80211: Adapt to changes to skb_get_hash_perturb()
Hauke Mehrtens [Mon, 18 Nov 2019 06:05:41 +0000 (07:05 +0100)]
mac80211: Adapt to changes to skb_get_hash_perturb()

The skb_get_hash_perturb() function now takes a siphash_key_t instead of
an u32. This was changed in commit 55667441c84f ("net/flow_dissector:
switch to siphash"). Use the correct type in the fq header file
depending on the kernel version.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
4 years agomac80211: brcmfmac: fix PCIe reset crash and WARNING
Rafał Miłecki [Mon, 18 Nov 2019 13:45:59 +0000 (14:45 +0100)]
mac80211: brcmfmac: fix PCIe reset crash and WARNING

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agobase-files: include 'reconf' in help output of 'wifi' command
Daniel Golle [Mon, 18 Nov 2019 11:57:54 +0000 (12:57 +0100)]
base-files: include 'reconf' in help output of 'wifi' command

Reported-by: Dirk Brenken <dev@brenken.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agomediatek: pass console inside bootargs on mt7629
John Crispin [Sun, 17 Nov 2019 17:13:28 +0000 (18:13 +0100)]
mediatek: pass console inside bootargs on mt7629

Signed-off-by: John Crispin <john@phrozen.org>
4 years agomediatek: drop leading + from config
John Crispin [Sun, 17 Nov 2019 17:12:08 +0000 (18:12 +0100)]
mediatek: drop leading + from config

Signed-off-by: John Crispin <john@phrozen.org>
4 years agoramips: set uImage name of WeVO 11AC NAS and W2914NS v2
Sungbo Eo [Mon, 7 Oct 2019 12:33:51 +0000 (21:33 +0900)]
ramips: set uImage name of WeVO 11AC NAS and W2914NS v2

The stock firmware and bootloader only accept uImage with names that
match certain patterns. This patch enables OpenWrt installation from
stock firmware without having to reflash the bootloader or access the
UART console.

Installation via web interface:
1.  Flash **initramfs** image through the stock web interface.
2.  Boot into OpenWrt and perform sysupgrade with sysupgrade image.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoar71xx: fix MAC address setup for TL-WDR4900 v2
Adrian Schmutzler [Thu, 14 Nov 2019 11:26:05 +0000 (12:26 +0100)]
ar71xx: fix MAC address setup for TL-WDR4900 v2

The MAC address setup of the TL-WDR4900 v2 is different from the
C5/C7. This aligns ar71xx with the setup in ath79:

wlan0 (5GHz) : -2
wlan1 (2.4GHz) : -1
eth1 (LAN) : 0
eth0 (WAN) : 1

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: remap D-Link DIR-859 A1 WPS button to WPS
Christian Lamparter [Sat, 16 Nov 2019 21:42:07 +0000 (22:42 +0100)]
ath79: remap D-Link DIR-859 A1 WPS button to WPS

The WPS button was mapped to the restart/reset. This patch
changes it to emit the KEY_WPS_BUTTON keycode so pressing
the WPS button does initiate WPS.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoramips: assign correct key-code to wps buttons
Christian Lamparter [Sat, 16 Nov 2019 21:37:51 +0000 (22:37 +0100)]
ramips: assign correct key-code to wps buttons

The ASUS WL-330N(3G) and the Edimax RG21S had the
reset keycode assigned to the WPS button. This patch
changes all three devices to use KEY_WPS_BUTTON in
the hopes that this fixes unwanted restarts/
unexpected behavior from the users point of view.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agomac80211: detect existing interface before adding
Daniel Golle [Sat, 16 Nov 2019 15:29:45 +0000 (16:29 +0100)]
mac80211: detect existing interface before adding

Keep existing wdev when creating new nl80211 interfaces if phy and
type match, delete it otherwise.
To make this work, also remove left-over debugging function which
prevented the return-value of the 'iw' command to be taken into
account in mac80211_iw_interface_add().
As 4addr-mode (WDS) was setup during interface creation for station
interfaces, also set it after interface creation to make sure an
existing sta interface ends up with the right mode.

Fixes: a5bc9787d4 ("mac80211: add support for dynamically
                    reconfiguring wifi")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoRevert "mac80211: restore mac80211_interface_cleanup()"
Daniel Golle [Sat, 16 Nov 2019 14:49:44 +0000 (15:49 +0100)]
Revert "mac80211: restore mac80211_interface_cleanup()"

This reverts commit 000b7687bc50be5b0f1161f4bf8ceb85c495c395.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoath79: fix firmware partition attributes for GL-AR300M16 and -Lite
Jeff Kletsky [Fri, 15 Nov 2019 16:51:43 +0000 (08:51 -0800)]
ath79: fix firmware partition attributes for GL-AR300M16 and -Lite

During the introduction of the ath79/nand images for the GL-AR300M
series the firmware partition label and compatible were altered,
but the necessary adjustments have not been made for the
GL-AR300M16 and the GL-AR300M-Lite. This will result in a
non-bootable partition setup for these devices.

This patch adds the necessary definitions to those two devices.

Fixes: 55e6c903ae20 ("ath79: GL-AR300M: provide NAND support;
       increase to 4 MB kernel")
Fixes: b591cabd3989 ("ath79: add GL.iNet GL-AR300M16 as NOR-only
       board")

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
[extend commit message, alter commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomediatek: drop accidentially commited file
John Crispin [Fri, 15 Nov 2019 06:52:57 +0000 (07:52 +0100)]
mediatek: drop accidentially commited file

Signed-off-by: John Crispin <john@phrozen.org>
4 years agomediatek: fix bootup problem on mt7629 EVB
John Crispin [Fri, 15 Nov 2019 06:51:32 +0000 (07:51 +0100)]
mediatek: fix bootup problem on mt7629 EVB

Signed-off-by: John Crispin <john@phrozen.org>
4 years agoath79: fix sysupgrade from ar71xx for WNDR3700 V2 and WNDR3800(CH)
Adrian Schmutzler [Thu, 14 Nov 2019 16:26:44 +0000 (17:26 +0100)]
ath79: fix sysupgrade from ar71xx for WNDR3700 V2 and WNDR3800(CH)

ar71xx has just one board name "wndr3700" for WNDR3700 V1/V2,
WNDR3800 and WNDR3800CH, whereas ath79 provides separate images for
the boards. So, update SUPPORTED_DEVICES to store the correct
ar71xx board names.

Fixes: FS#2510
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: add support for Netgear WNDR3700v4
Paul Blazejowski [Wed, 13 Nov 2019 19:19:32 +0000 (14:19 -0500)]
ath79: add support for Netgear WNDR3700v4

This patch adds ath79 support for Netgear WNDR3700v4.
Router was previously supported by ar71xx target only.
Note: device requires 'ar934x-nand' driver in kernel.

Specification
=============
  * Description: Netgear WNDR3700v4
  * Loader: U-boot
  * SOC: Atheros AR9344 (560 MHz)
  * RAM: 128 MiB
  * Flash: 128 MiB (NAND)
    - U-boot binary: 256 KiB
    - U-boot environment: 256 KiB
    - ART: 256 KiB
    - POT: 512 KiB
    - Language: 2 MiB
    - Config: 512 KiB
    - Traffic Meter: 3 MiB
    - Firmware: 25 MiB
    - ART Backup: 256 KiB
    - Reserved: 96 MiB
  * Ethernet: 5 x 10/100/1000 (4 x LAN, 1 x WAN) (AR8327)
  * Wireless:
    - 2.4 GHz b/g/n (internal)
    - 5 GHz a/n (AR9580)
  * USB: yes, 1 x USB 2.0
  * Buttons:
    - Reset
    - WiFi (rfkill)
    - WPS
  * LEDs:
    - Power (amber/green)
    - WAN (amber/green)
    - WLAN 2G (green)
    - WLAN 5G (blue)
    - 4 x LAN (amber/green)
    - USB (green)
    - WPS (amber/green)
  * UART: 4-pin connector JP1, 3.3V (Vcc, TX, RX, GND), 115200 8N1
  * Power supply: DC 12V 2.5A
  * MAC addresses: LAN=WLAN2G on case label, WAN +1, WLAN5G +2

Installation
============
  * TFTP recovery
  * TFTP via U-boot prompt
  * sysupgrade
  * Web interface

Note about partitioning: firmware partition offset (0x6c0000) is
hardcoded into vendor's u-boot, so this partition cannot be moved
and resized to include Netgear-specific flash areas (pot, language,
config, traffic_meter) not used by OpenWrt.

Test build configuration
========================
CONFIG_TARGET_ath79=y
CONFIG_TARGET_ath79_nand=y
CONFIG_TARGET_ath79_nand_DEVICE_netgear_wndr3700-v4=y
CONFIG_ALL_KMODS=y
CONFIG_DEVEL=y
CONFIG_CCACHE=y
CONFIG_COLLECT_KERNEL_DEBUG=y
CONFIG_IMAGEOPT=y

Signed-off-by: Paul Blazejowski <paulb@blazebox.homeip.net>
4 years agoath79: split dts file for Netgear WNDR4300
Michal Cieslakiewicz [Wed, 13 Nov 2019 19:19:31 +0000 (14:19 -0500)]
ath79: split dts file for Netgear WNDR4300

Move board configuration to dtsi file in preparation for WNDR3700v4
router support.

Signed-off-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
4 years agoath79: fix indent in TP-Link TL-WDR4900 v2 DTS
Adrian Schmutzler [Thu, 14 Nov 2019 12:03:49 +0000 (13:03 +0100)]
ath79: fix indent in TP-Link TL-WDR4900 v2 DTS

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: improve common DTSI name for TP-Link Archer C5, C7 v1/v2
Adrian Schmutzler [Thu, 14 Nov 2019 11:19:16 +0000 (12:19 +0100)]
ath79: improve common DTSI name for TP-Link Archer C5, C7 v1/v2

As the former qca9558_tplink_archer-c7.dtsi is also used for
Archer C5 v1 this patch removes the number from the DTSI name
to indicate that.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agofwtool: update to latest Git head
Petr Štetiar [Thu, 14 Nov 2019 21:42:41 +0000 (22:42 +0100)]
fwtool: update to latest Git head

 8f7fe925ca20 cmake: use extra compiler warnings only on gcc6+

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agouci: update to latest Git head
Petr Štetiar [Thu, 14 Nov 2019 21:31:02 +0000 (22:31 +0100)]
uci: update to latest Git head

 8dd50da20de0 lua: fix error handling
 a2cab3b088a2 ucimap: fix possible use of memory after it is freed
 9cf978bc7964 delta: prevent possible null pointer use
 7736f497d2d9 cli: remove unused variable assigment
 39093f3b040d lua: fix memory leak in set method
 19ceff323f1e lua: fix memory leak in changes method
 18049a84fe40 tests: add cram based unit tests
 2b549cc050de lua: fix copy&paste in error string
 f5dd5217d627 cli: fix realloc issue spotted by cppcheck
 af59f86a0db9 iron out all extra compiler warnings
 1637d2918692 tests: shunit2: run all tests under Valgrind by default
 c1af73bfb023 cmake: enable extra compiler checks
 be69504e3666 cmake: build Lua module only if enabled
 38a2f12ec5ab tests: shunit2: fix issues reported by shellcheck
 266fc9e94c1e add initial GitLab CI support
 17d6144a49c6 tests: shunit2: make it working under CMake
 a6e8bbefd860 cmake: add unit testing option and shunit2 tests
 0ca93fec701a test: move shunit2 tests under standalone subdirectory

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agolibnl-tiny: update to latest Git head
Petr Štetiar [Thu, 14 Nov 2019 20:06:47 +0000 (21:06 +0100)]
libnl-tiny: update to latest Git head

 0219008cc876 remove never used err variable assignment disliked by scan-build
 7ce813fcd667 silence use after the free clang analyzer warning
 1f73b6a8e678 use offsetof macro to make scan-build happy

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agobuild: prereq: add support for Python 3.8
Thomas Weißschuh [Thu, 14 Nov 2019 15:41:10 +0000 (16:41 +0100)]
build: prereq: add support for Python 3.8

Add support for Python 3.8 which was released Oct. 14, 2019.

Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de>
[added missing commit description, simplified version check]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agobuild: prereq: simplify Python 3 version checks
Petr Štetiar [Thu, 14 Nov 2019 15:50:18 +0000 (16:50 +0100)]
build: prereq: simplify Python 3 version checks

We don't need to check if python3.5 binary is actually Python 3.5+.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agobase-files: rc.common: fix missing EXTRA_HELP texts
Peter Stadler [Tue, 12 Nov 2019 14:54:53 +0000 (15:54 +0100)]
base-files: rc.common: fix missing EXTRA_HELP texts

Commit ed5b9129d7a4 ("base-files: implement generic service_running")
has added EXTRA_HELP variable, thus overriding already available
EXTRA_HELP text available in other init scripts, resulting in the
missing help text from services like dropbear for example.

So fix this regression by appending EXTRA_HELP text provided by the
other init scripts into the one provided by the script itself.

Fixes: ed5b9129d7a4 ("base-files: implement generic service_running")
Signed-off-by: Peter Stadler <peter.stadler@student.uibk.ac.at>
[commit title/description facelift, fixes tag, fixed From:, pkg bump]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agoath79: remove obsolete OF PCI related config symbols
Petr Štetiar [Mon, 11 Nov 2019 21:14:21 +0000 (22:14 +0100)]
ath79: remove obsolete OF PCI related config symbols

Those symbols were removed in kernel 4.16:

 commit 4670d610d59233b017a6ea1fa25bbf06dabbff42
 Author:     Rob Herring <robh@kernel.org>

    PCI: Move OF-related PCI functions into PCI core

Fixes: FS#2588
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agokernel-build: fix kernel_menuconfig breakage by forcing YACC
Petr Štetiar [Mon, 11 Nov 2019 20:37:45 +0000 (21:37 +0100)]
kernel-build: fix kernel_menuconfig breakage by forcing YACC

Commit 965f341aa9fd ("build: fix host menu config targets using
ncurses") has moved host's path with pkg-config (usually /usr/bin) at
the first place in PATH variable, which is now causing issues with bison
as BISON_PKGDATADIR points into STAGING_DIR_HOST, but the actual bison
used is the one under host PATH (usually /usr/bin/bison), leading to the
following strange failures:

 $ make target/linux/clean kernel_menuconfig V=sc

 export MAKEFLAGS= ;make -C /somewhere/linux-4.19.81 menuconfig
 make -f ./scripts/Makefile.build obj=scripts/kconfig menuconfig
  ...
  bison -oscripts/kconfig/zconf.tab.c -t -l scripts/kconfig/zconf.y
  staging_dir/host/bin/m4: cannot open `staging_dir/host/share/bison/bison.m4': No such file or directory
  staging_dir/host/bin/m4: cannot open `staging_dir/host/share/bison/c-skel.m4': No such file or directory
  ...
  gcc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d <...snip...> -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
  gcc: error: scripts/kconfig/zconf.tab.c: No such file or directory
  gcc: fatal error: no input files

Fix this by forcing usage of bison under STAGING_DIR_HOST/bin via YACC
make variable.

Cc: Thomas Albers <thomas.gameiro@gmail.com>
Cc: Stijn Tintel <stijn@linux-ipv6.be>
Cc: Eneas U de Queiroz <cotequeiroz@gmail.com>
Tested-by: Ivan Revyakin <LovingFox@GMail.com>
Tested-by: Thomas Albers <thomas.gameiro@googlemail.com>
Ref: https://forum.openwrt.org/t/bpi-r64-kernel-4-19-kernel-menuconfig-error
Fixes: 965f341aa9fd ("build: fix host menu config targets using ncurses")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agokernel: fix typo in fb-sys-fops autoload
Sungbo Eo [Mon, 11 Nov 2019 16:16:28 +0000 (01:16 +0900)]
kernel: fix typo in fb-sys-fops autoload

AutoLoad parameter must match the exact kernel module name. Fix it.

Fixes: 125f1ce9ad0c ("kernel: video: add DRM core and IMX DRM support for HDMI/LVDS")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoath79: include rssileds package for ubnt devices with LEDs
Roger Pueyo Centelles [Wed, 13 Nov 2019 15:18:59 +0000 (09:18 -0600)]
ath79: include rssileds package for ubnt devices with LEDs

Some Ubiquiti devices had the RSSI LEDs configured in 01_leds but
were missing the rssileds package, while others that don't have
RSSI LEDS had the package included.

This commit includes the rssileds package only for those devices
that need it.

Tested on a NanoStation M XW.

Signed-off-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
4 years agomac80211: restore mac80211_interface_cleanup()
Daniel Golle [Thu, 14 Nov 2019 13:02:56 +0000 (14:02 +0100)]
mac80211: restore mac80211_interface_cleanup()

Changes introduced for dynamic wifi reconfiguration left behind
unmanaged interface types. Restore parts of the old function to
also clean (unencrypted, non-DFS) mesh and ad-hoc interfaces.

Fixes: a5bc9787d4 ("mac80211: add support for dynamically
                    reconfiguring wifi")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoath79: GL-AR750S: provide NAND support; increase kernel to 4 MB
Jeff Kletsky [Sun, 2 Jun 2019 15:18:34 +0000 (08:18 -0700)]
ath79: GL-AR750S: provide NAND support; increase kernel to 4 MB

The GL.iNet GL-AR750S has been supported by the ar71xx and ath79
platforms with access to its 16 MB NOR flash, but not its 128 MB
SPI NAND flash.

This commit provides support for the NAND through the upstream
SPI-NAND framework.

At this time, the OEM U-Boot appears to only support loading the
kernel from NOR. This configuration is preserved as this time,
with the glinet,gl-ar750s-nand name reserved for a potential,
future, NAND-only boot.

The family of GL-AR750S devices on the ath79 platform now includes:

  * glinet,gl-ar750m-nor-nand   "nand" target
  * glinet,gl-ar750m-nor        "nand" target (NAND-aware)

NB: This commit increases the kernel size from 2 MB to 4 MB

"Force-less" sysupgrade is presently supported from the current
versions of following NOR-based firmwre images to the version of
glinet,gl-ar750s-nor firmware produced by this commit:

  * glinet,gl-ar750s     -- OpenWrt 19.07 ar71xx
  * glinet,gl-ar750s     -- OpenWrt 19.07 ath79

Users who have sucessfully upgraded to glinet,gl-ar750m-nor may then
flash glinet,gl-ar750m-nor-nand with sysupgrade to transtion to the
NAND-based variant.

Other upgrades to these images, including directly to the NAND-based
glinet,gl-ar750s-nor-nand firmware, can be accomplished through U-Boot.

NB: See "ath79: restrict GL-AR750S kernel build-size to 2 MB" which
enables flashing of NAND factory.img with the current GL-iNet U-Boot,
"U-Boot 1.1.4-gcf378d80-dirty (Aug 16 2018 - 07:51:15)"

The GL-AR750S OEM U-Boot allows upload and flashing of either NOR
firmware (sysupgrade.bin) or NAND firmware (factory.img) through its
HTTP-based GUI. Serial connectivity is not required.

The glinet,gl-ar750s-nor and glinet,gl-ar750s-nor-nand images
generated after this commit flash each other directly.

This commit changes the control of the USB VBUS to gpio-hog from
regulator-fixed introduced by commit 0f6b944c92. This reduces the
compressed kernel size by ~14 kB, with no apparent loss of
functionality. No other ath79-nand boards are using regulator-fixed
at this time.

Note: mtd_get_mac_binary art 0x5006 does not return the proper MAC
and the GL.iNet source indicates that only the 0x0 offset is valid

The ar71xx targets are unmodified.

Cc: Alexander Wördekemper <alexwoerde@web.de>
Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
4 years agoath79: add GL.iNet GL-AR300M16 as NOR-only board
Jeff Kletsky [Sun, 2 Jun 2019 13:43:00 +0000 (06:43 -0700)]
ath79: add GL.iNet GL-AR300M16 as NOR-only board

The GL.iNet GL-AR300M series of devices includes variants without NAND
and only the 16 MB NOR flash. These include the GL-AR300M16 and the
GL-AR300M-Lite (already with its own board name).

This board-name addition provides disambiguation from the NAND-bearing
GL-AR300M devices, both for OpenWrt code and for end users.

Kernel and firmware support for NAND and UBI will add ~320 kB to the
overall firmware size at this time. This NOR-only option continues to
provide more compact firmware for both the GL-AR300M16 as well as
those who wish to use it as an alternate or primary, NOR-resident
firmware on the GL-AR300M.

The ar71xx targets are unmodified.

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

Install through OEM U-Boot (HTTP-based) or `sysupgrade --force` when
booted from NOR and running OEM or OpenWrt, NOR-based firmware.

As one of the intentions is disambiguation from NAND-bearing units,
users who have flashed this firmware onto a device with NAND would
need to use U-Boot or `sysupgrade --force` to flash firmware that
again supports NAND.

There are no additional SUPPORTED_DEVICES as it is not possible to
determine if a device does or does not have NAND based on
either the OEM's or OpenWrt's board names prior to this patch.

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
4 years agoath79: GL-AR300M: provide NAND support; increase to 4 MB kernel
Jeff Kletsky [Sun, 2 Jun 2019 00:51:17 +0000 (17:51 -0700)]
ath79: GL-AR300M: provide NAND support; increase to 4 MB kernel

The GL.iNet GL-AR300M has been supported by the ar71xx and ath79
platforms with access to its 16 MB NOR flash, but not its 128 MB
SPI NAND flash.

This commit provides support for the NAND through the upstream
SPI-NAND framework. Devices with both NOR and NAND flash can support
independent firmware on each, with U-Boot able to boot from either.
The OEM U-Boot will fall back to the NOR firmware after three
"unsuccessful" boots.

The family of GL-AR300M devices on the ath79 platform now includes:

  * glinet,gl-ar300m-lite       "generic" target, NOR-only board
  * glinet,gl-ar300m-nand       "nand" target
  * glinet,gl-ar300m-nor        "nand" target (NAND-aware)

NB: This commit increases the kernel size from 2 MB to 4 MB

"Force-less" sysupgrade is presently supported from the current
versions of following NOR-based firmwre images to the version of
glinet,gl-ar300m-nor firmware produced by this commit:

  * gl-ar300m            -- OEM v3 NOR    ar71xx (openwrt-ar300m16-*.bin)
  * gl-ar300m            -- OpenWrt 18.06 ar71xx
  * gl-ar300m            -- OpenWrt 19.07 ar71xx

Other upgrades to these images should be performed through U-Boot.

The GL-AR300M OEM U-Boot allows upload and flashing of either NOR
firmware (sysupgrade.bin) or NAND firmware (factory.img) through its
HTTP-based GUI. Serial connectivity is not required.

The glinet,gl-ar300m-nand and glinet,gl-ar300m-nor images generated
after this commit should safely flash each other using sysupgrade.

The boot counter is implemented by the OEM using u-boot-env. At this
time, it does not appear that the switch on the side of the unit can
be used to select NOR vs. NAND boot and the fail-over is only from
NAND to NOR. To save flash wear, it is only reset when running the
glinet,gl-ar300m-nand firmware.

NAND-specific base-files are used to remove impact on existing
generic and tiny targets.

As there is now no "generic" build appropriate for the GL-AR300M16,
(or for users of the GL-AR300M that do not need access to NAND)
it will be introduced in a subsequent commit.

Note: `mtd_get_mac_binary art 0x6` does not return the proper MAC
and the GL.iNet source indicates that only the 0x0 offset is valid

The ar71xx targets are unmodified.

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
4 years agoath79: prepare NAND subtarget for upstream support of SPI NAND
Jeff Kletsky [Tue, 14 May 2019 16:47:40 +0000 (09:47 -0700)]
ath79: prepare NAND subtarget for upstream support of SPI NAND

Linux 4.19 supplies the upstream spi-nand framework,
permitting porting and support of boards with SPI NAND.

  * Adjusted nand/target.mk to provide FEATURES += squashfs nand

  * Updated config-default to provide current MTD and UBI support

Defaults selected for:

  CONFIG_MTD_UBI_WL_THRESHOLD=4096
  CONFIG_MTD_UBI_BEB_LIMIT=20
  # CONFIG_MTD_UBI_FASTMAP is not set
  # CONFIG_MTD_UBI_GLUEBI is not set

The bad-block reservation limit technically should be 21 for Paragon
SPI NAND but most other devices in the class are 20 blocks per Gbit.
In Linux 5.2 this is specified on a per-chip basis through NAND_MEMORG

Contents adjusted to remove declarations provided at the target level
by commit 08a134820f5 (Oct 23, 2019) ath79: enable PCI for whole target

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
Tested-by: Michal Cieslakiewicz <michal.cieslakiewicz@wp.pl>
4 years agouboot-envtools: ramips: add support for ALFA Network Quad-E4G
Piotr Dymacz [Sun, 3 Nov 2019 11:17:52 +0000 (12:17 +0100)]
uboot-envtools: ramips: add support for ALFA Network Quad-E4G

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoramips: add support for ALFA Network Quad-E4G
Piotr Dymacz [Sun, 3 Nov 2019 11:12:44 +0000 (12:12 +0100)]
ramips: add support for ALFA Network Quad-E4G

ALFA Network Quad-E4G is a universal Wi-Fi/4G platform, which offers
three miniPCIe (PCIe, USB 2.0, SIM) and a single M.2 B-key (dual-SIM,
USB 3.0) slots, RTC and five Gigabit Ethernet ports with PoE support.

Specification:

- MT7621A (880 MHz)
- 256/512 MB of RAM (DDR3)
- 16/32+ MB of FLASH (SPI NOR)
- optional second SPI flash (8-pin WSON/SOIC)
- 1x microSD (SDXC) flash card reader
- 5x 10/100/100 Mbps Ethernet, with passive PoE support (24 V) in LAN1
- optional 802.3at/af PoE module for WAN
- 3x miniPCIe slot (with PCIe and USB 2.0 buses, micro SIM and 5 V)
- 1x M.2/NGFF B-key 3042 (USB 3.0/2.0, mini + micro SIM)
- RTC (TI BQ32002, I2C bus) with backup battery (CR2032)
- external hardware watchdog (EM Microelectronic EM6324)
- 1x USB 2.0 Type-A
- 1x micro USB Type-B for system serial console (Holtek HT42B534)
- 11x LED (5 for Ethernet, 5 driven by GPIO, 1x power indicator)
- 3x button (reset, user1, user2)
- 1x I2C (4-pin, 2.54 mm pitch) header on PCB
- 4x SIM (6-pin, 2.00 mm pitch) headers on PCB
- 2x UART2/3 (4-pin, 2.54 mm pitch) headers on PCB
- 1x mechanical power switch
- 1x DC jack with lock (24 V)

Other:

- U-Boot selects default SIM slot, based on value of 'default_sim' env
  variable: '1' or unset -> SIM1 (mini), '2' -> SIM2 (micro). This board
  has additional logic circuit for M.2 SIM switching. The 'sim-select'
  will work only if both SIM slots are occupied. Otherwise, always slot
  with SIM inside is selected, no matter 'sim-select' value.
- U-Boot enables power in all three miniPCIe and M.2 slots before
  loading the kernel
- this board supports 'dual image' feature (controlled by 'dual_image'
  U-Boot environment variable)
- all three miniPCIe slots have additional 5 V supply on pins 47 and 49
- the board allows to install up to two oversized miniPCIe cards (vendor
  has dedicated MediaTek MT7615N/D cards for this board)
- this board has additional logic circuit controlling PERSTn pins inside
  miniPCIe slots. By default, PERSTn (GPIO19) is routed to all miniPCIe
  slots but setting GPIO22 to high allows PERSTn control per slot, using
  GPIO23-25 (value is inverted)

You can use the 'sysupgrade' image directly in vendor firmware which is
based on OpenWrt (make sure to not preserve settings - use 'sysupgrade
-n -F ...' command). Alternatively, use web recovery mode in U-Boot:

1. Power the device with reset button pressed, the modem LED will start
   blinking slowly and after ~3 seconds, when it starts blinking faster,
   you can release the button.
2. Setup static IP 192.168.1.2/24 on your PC.
3. Go to 192.168.1.1 in browser and upload 'sysupgrade' image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoramips: mt7621: refresh kernel config
Piotr Dymacz [Fri, 1 Nov 2019 20:40:37 +0000 (21:40 +0100)]
ramips: mt7621: refresh kernel config

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoramips: provide label MAC for ALFA Network Tube-E4G
Piotr Dymacz [Wed, 30 Oct 2019 21:55:42 +0000 (22:55 +0100)]
ramips: provide label MAC for ALFA Network Tube-E4G

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ramips: add support for ALFA Network R36M-E4G
Piotr Dymacz [Wed, 30 Oct 2019 20:48:09 +0000 (21:48 +0100)]
uboot-envtools: ramips: add support for ALFA Network R36M-E4G

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoramips: add support for ALFA Network R36M-E4G
Piotr Dymacz [Tue, 29 Oct 2019 23:10:40 +0000 (00:10 +0100)]
ramips: add support for ALFA Network R36M-E4G

ALFA Network R36M-E4G is a dual-SIM, N300 Wi-Fi, compact size platform
based on MediaTek MT7620A WiSoC. This product is designed for operation
with 4G modem (can be bought in bundle with Quectel EC25, EG25 or EP06)
but supports also Wi-Fi modules (miniPCIe slot has USB and PCIe buses).

Specification:

- MT7620A (580 MHz)
- 64/128/256 MB of RAM (DDR2)
- 16/32+ MB of FLASH (SPI NOR)
- 2x 10/100 Mbps Ethernet, with passive PoE support (24 V)
- 2T2R 2.4 GHz (MT7620A), with ext. LNA (RFFM4227)
- 1x miniPCIe slot (with PCIe and USB 2.0 buses and optional 5 V)
- 2x SIM slot (mini, micro) with detect and switch driven by GPIO
- 2x u.fl antenna connectors (for Wi-Fi)
- 8x LED (7 driven by GPIO)
- 2x button (reset, wifi)
- 2x UART (4-pin/2.54 mm pitch, 10-pin/1.27 mm pitch) headers on PCB
- 1x I2C (4-pin, 1.27 mm pitch) header on PCB
- 1x LED (8-pin, 1.27 mm pitch) header on PCB
- 1x DC jack with lock (12 V)

Other:

- there is a dedicated, 4-pin connector for optional RTC module (Holtek
  HT138x) with 'enable' input, not available at the time of preparing
  support for this board
- miniPCIe slot supports additional 5 V supply on pins 47 and 49 but a
  jumper resistor (R174) is not installed by default
- U-Boot selects default SIM slot, based on value of 'default_sim' env
  variable: '1' or unset -> SIM1 (mini), '2' -> SIM2 (micro). This will
  work only if both slots are occupied, otherwise U-Boot will always
  select slot with SIM card inside (user can override it later, in
  user-space)
- U-Boot resets the modem, using PERSTn signal, before starting kernel
- this board supports 'dual image' feature (controlled by 'dual_image'
  U-Boot environment variable)

Flash instruction:

You can use the 'sysupgrade' image directly in vendor firmware which is
based on OpenWrt (make sure to not preserve settings - use 'sysupgrade
-n -F ...' command). Alternatively, use web recovery mode in U-Boot:

1. Power the device with reset button pressed, the modem LED will start
   blinking slowly and after ~3 seconds, when it starts blinking faster,
   you can release the button.
2. Setup static IP 192.168.1.2/24 on your PC.
3. Go to 192.168.1.1 in browser and upload 'sysupgrade' image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoramips: support dual image feature on ALFA Network boards
Piotr Dymacz [Tue, 29 Oct 2019 22:25:56 +0000 (23:25 +0100)]
ramips: support dual image feature on ALFA Network boards

New U-Boot version for MediaTek MT76x8/MT762x based ALFA Network boards
includes support for a 'dual image' feature. Users can enable it using
U-Boot environment variable 'dual_image' ('1' -> enabled).

When 'dual image' feature is enabled, U-Boot will modify DTB and divide
the original 'firmware' flash area into two, equal in size and aligned
to 64 KB partitions: 'firmware' and 'backup'. U-Boot will also adjust
size of 'firmware' area to match installed flash chip size.

U-Boot will load kernel from active partition which is marked with env
variable 'bootactive' ('1' -> first partition, '2' -> second partition)
and rename both partitions accordingly ('firmware' <-> 'backup').

There are 3 additional env variables used to control 'dual image' mode:
- bootlimit   - maximum number of unsuccessful boot tries (default: '3')
- bootcount   - current number of boot tries
- bootchanged - flag which informs that active partition was changed; if
                it is set and 'bootcount' reaches 'bootlimit' value,
                U-Boot will start web-based recovery which then updates
                both partitions with provided image

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agobase-files: add /usr/share/libubox/jshn.sh to sysupgrade stage2
Russell Senior [Tue, 12 Nov 2019 23:33:48 +0000 (15:33 -0800)]
base-files: add /usr/share/libubox/jshn.sh to sysupgrade stage2

Discovered recent changes had broken sysupgrade for ar71xx mikrotik
rb-493g, traced the problem to missing /usr/share/libubox/jshn.sh after
switching to tmpfs.

Signed-off-by: Russell Senior <russell@personaltelco.net>
4 years agoramips: add usb-ledtrig-usbport to DEVICE_PACKAGES of CY-SWR1100
Sungbo Eo [Wed, 13 Nov 2019 14:23:17 +0000 (23:23 +0900)]
ramips: add usb-ledtrig-usbport to DEVICE_PACKAGES of CY-SWR1100

CY-SWR1100 has a USB LED but kmod-usb-ledtrig-usbport is missing
in default images. This commit adds it.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
[changed commit title]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: change status LED of Samsung CY-SWR1100
Sungbo Eo [Wed, 13 Nov 2019 14:47:14 +0000 (23:47 +0900)]
ramips: change status LED of Samsung CY-SWR1100

Use power LED for status indication and free WPS LED for other uses.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoramips: improve Samsung CY-SWR1100 support
Sungbo Eo [Wed, 13 Nov 2019 14:29:21 +0000 (23:29 +0900)]
ramips: improve Samsung CY-SWR1100 support

This patch does the following:

- rename "devdata" flash partition and make it read-only
- switch from gpio-keys-polled to gpio-keys
- add missing power LED
- set correct PCI ID to compatible string in wifi node
- remove ralink,5ghz property in wifi node
- provide label MAC address

Rename devdata partition to devconf as indicated in the stock firmware
partition table:
00030000-00040000: "devdata"
00040000-00050000: "devconf"

Power LED can be controlled by SoC GPIO. Add it in the dts leds node.

RT3092L supports only bgn mode, so it is unnecessary to disable 5GHz band.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoramips: fix MAC address setup for Samsung CY-SWR1100
Sungbo Eo [Wed, 13 Nov 2019 14:22:54 +0000 (23:22 +0900)]
ramips: fix MAC address setup for Samsung CY-SWR1100

Ethernet MAC address setup has been broken since c3e420f28cf1. Restore
original setting.

Fixes: c3e420f28cf1 ("ramips: Add support for D-Link DCH-M225")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoar71xx: fix MAC addresses for Archer C5 v1, C7 v1/v2, WDR4900 v2
Adrian Schmutzler [Wed, 13 Nov 2019 14:05:29 +0000 (15:05 +0100)]
ar71xx: fix MAC addresses for Archer C5 v1, C7 v1/v2, WDR4900 v2

As discussed in 1d18a14a90c7 ("ath79: really fix TP-Link Archer C7
v2 MAC address"), stock firmware MAC address assignment is
actually as follows:

wlan0 (5GHz) : -1
wlan1 (2.4GHz) : 0
eth1 (LAN) : 0
eth0 (WAN) : 1

This has never been fixed for ar71xx, so let's do it now.
Note that with WDR4900 v2 even both wlan0 and wlan1 where assigned
to basemac-1 before ...

Fixes: FS#408
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: read label MAC address from flash instead of using phy0/phy1
Adrian Schmutzler [Sun, 10 Nov 2019 23:22:33 +0000 (00:22 +0100)]
ath79: read label MAC address from flash instead of using phy0/phy1

This replaces all uses of $(cat /sys/class/ieee80211/phyX/macaddress)
by retrieval from the proper flash locations. This will make
02_network independent of WiFi setup again.

For future reference:

The MAC addresses of the FRITZ!WLAN Repeater 300E can be extracted
from the urlader key value store:

maca        *:6B
macb        *:6C
macwlan     *:6D
macdsl      *:6E

and be set by e.g.
addr=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: read label MAC address from flash instead of using phy0/phy1
Adrian Schmutzler [Sun, 10 Nov 2019 23:18:45 +0000 (00:18 +0100)]
ramips: read label MAC address from flash instead of using phy0/phy1

This replaces all uses of $(cat /sys/class/ieee80211/phyX/macaddress)
by retrieval from the proper flash locations. This will make
02_network independent of WiFi setup again.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobase-files: remove shebang from uci-defaults files
Adrian Schmutzler [Thu, 7 Nov 2019 21:29:21 +0000 (22:29 +0100)]
base-files: remove shebang from uci-defaults files

uci-defaults are sourced and non-executable, so they do not require
a shebang.

While at it, apply consistent naming scheme.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobuild: image: posix compatibility cut v head
Kevin Darbyshire-Bryant [Tue, 12 Nov 2019 14:27:06 +0000 (14:27 +0000)]
build: image: posix compatibility cut v head

Replace 2 instances of non posix use of 'head' with posix compliant
'cut'.

'head -c n' cuts 'n' bytes from the passed string and happens to work on
Linux & Mac OS X even though '-c' is not posix.

'head --bytes n' does the same thing and happens to work on linux but
not on Mac OS X and is also not posix.

'cut -b1-8' cuts the first 8 bytes from the passed string and is posix
compliant, hence works on Linux & Mac OS X.

Our usage of 'head --bytes' was particularly unfortunate since it was
used to calculated the RootFS UUID passed to grub - the net result being
a non-functioning system waiting for the root file system to appear.

Thanks to karlp, ynezz & others for pointers on solving this.

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
4 years agobase-files: add 'wifi reconf'
John Crispin [Wed, 30 Oct 2019 15:59:14 +0000 (16:59 +0100)]
base-files: add 'wifi reconf'

Now that netifd and hostapd allow dynamic reconfiguration, add a
command to trigger it.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agomac80211: add support for dynamically reconfiguring wifi
John Crispin [Wed, 30 Oct 2019 15:58:19 +0000 (16:58 +0100)]
mac80211: add support for dynamically reconfiguring wifi

Change scripts to use ubus interface of hostapd/wpa_supplicant to
add/remove/modify wireless interfaces instead of (re-)starting the
services.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agohostapd: add ubus reload
John Crispin [Wed, 30 Oct 2019 15:57:22 +0000 (16:57 +0100)]
hostapd: add ubus reload

Add ubus interface to hostapd and wpa_supplicant to allow dynamically
reloading wiface configuration without having to restart the hostapd
process.
As a consequence, both hostapd and wpa_supplicant are now started
persistently on boot for each wifi device in the system and then
receive ubus calls adding, modifying or removing interface
configuration.
At a later stage it would be desirable to reduce the services to one
single instance managing all radios.

Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agonetifd: add dynamic wireless reconfiguration
Daniel Golle [Thu, 31 Oct 2019 10:30:11 +0000 (11:30 +0100)]
netifd: add dynamic wireless reconfiguration

 7a723d0 wireless: add ubus method for reloading configuration
 e15147c wireless: make reconf opt-in and allow serializing configuration

Set new option 'reconf' in 'wifi-device' section to enable dynamic
re-configuration on that radio.
If necessary, also set option 'serialize' which forced netifd to
configure interfaces of wireless devices one-by-one.
Both options are disabled by default.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agokernel: bump 4.19 to 4.19.82
Koen Vandeputte [Wed, 6 Nov 2019 16:19:11 +0000 (17:19 +0100)]
kernel: bump 4.19 to 4.19.82

Refreshed all patches.

Remove upstreamed:
- 950-0295-sc16is7xx-Fix-for-Unexpected-interrupt-8.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
4 years agokernel: bump 4.14 to 4.14.152
Koen Vandeputte [Wed, 6 Nov 2019 16:18:34 +0000 (17:18 +0100)]
kernel: bump 4.14 to 4.14.152

Refreshed all patches.

Altered patches:
- 301-arch-support-layerscape.patch

Compile-tested on: cns3xxx
Runtime-tested on: cns3xxx

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>