openwrt/staging/blocktrron.git
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>
4 years agoramips: invert wpad selection for mt7621
Adrian Schmutzler [Fri, 7 Aug 2020 09:56:43 +0000 (11:56 +0200)]
ramips: invert wpad selection for mt7621

For ramips/mt7621, the wpad-basic package is not selected by default,
but added for every device individually as needed.

While this might be technically correct if the SoC does not come with
a Wifi module, only 18 of 97 devices for that platform are set up
_without_ wpad-basic currently.

Therefore, it seems more convenient to add wpad-basic by default for
the subtarget and then just remove it for the 18 mentioned devices,
instead of having to add it for about 60 times instead.

This would also match the behavior of the 5 other subtargets, where
wpad-basic/wpad-mini is added by default as well, and thus be more
obvious to developers without detailed SoC knowledge.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobcm63xx: add missing endif board comnents
Álvaro Fernández Rojas [Fri, 7 Aug 2020 09:04:22 +0000 (11:04 +0200)]
bcm63xx: add missing endif board comnents

This provides better context for board patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobase-files: functions.sh: fix config_get() on invalid identifiers
Jo-Philipp Wich [Wed, 5 Aug 2020 07:07:00 +0000 (09:07 +0200)]
base-files: functions.sh: fix config_get() on invalid identifiers

When passing a section or option value to config_get() which contains
characters that happen to be valid variable interpolation expressions,
the function returns a nonsensical expression result instead of the
expected empty string.

When the passed section or option name contains other characters which
are not valid within a shell variable name, a substitution error is
occuring instead.

The issue can be easily reproduced by one of the following examples:

    root@OpenWrt:~# . /lib/functions.sh
    root@OpenWrt:~# config load system
    root@OpenWrt:~# config_get variable invalid-section option
    root@OpenWrt:~# echo "$variable"
    section_option:-

    root@OpenWrt:~# . /lib/functions.sh
    root@OpenWrt:~# config load system
    root@OpenWrt:~# config_get variable section invalid-option
    root@OpenWrt:~# echo "$variable"
    option:-

    root@OpenWrt:~# . /lib/functions.sh
    root@OpenWrt:~# config load system
    root@OpenWrt:~# config_get variable section invalid@option
    -ash: eval: syntax error: bad substitution

Fix this issue by only performing interpolations when the given section
and option arguments are free of illegal characters.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agobcm63xx: merge RTA770BW and RTA770W board patches
Álvaro Fernández Rojas [Fri, 7 Aug 2020 08:30:07 +0000 (10:30 +0200)]
bcm63xx: merge RTA770BW and RTA770W board patches

The only difference between both boards is the DSL annex.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: add missing fallback SPROMs
Álvaro Fernández Rojas [Fri, 7 Aug 2020 08:22:44 +0000 (10:22 +0200)]
bcm63xx: add missing fallback SPROMs

A couple of SPROM IDs are missing.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: add missing OHCI nodes
Álvaro Fernández Rojas [Fri, 7 Aug 2020 08:11:01 +0000 (10:11 +0200)]
bcm63xx: add missing OHCI nodes

All boards with EHCI enabled should also have OHCI enabled.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: remove invalid EHCI nodes
Álvaro Fernández Rojas [Fri, 7 Aug 2020 08:06:34 +0000 (10:06 +0200)]
bcm63xx: remove invalid EHCI nodes

There's no EHCI controller on BCM6348.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: refactor board patches
Álvaro Fernández Rojas [Fri, 7 Aug 2020 07:14:15 +0000 (09:14 +0200)]
bcm63xx: refactor board patches

Current board patches format is crazy.
Let's try to put some order.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agodnsmasq: abort when dnssec requested but not available
Yousong Zhou [Tue, 4 Aug 2020 04:00:22 +0000 (12:00 +0800)]
dnsmasq: abort when dnssec requested but not available

Before this commit, if uci option "dnssec" was set, we pass "--dnssec"
and friends to dnsmasq, let it start and decide whether to quit and
whether to emit message for diagnosis

  # dnsmasq --dnssec; echo $?
  dnsmasq: DNSSEC not available: set HAVE_DNSSEC in src/config.h
  1

DNSSEC as a feature is different from others like dhcp, tftp in that
it's a security feature.  Better be explicit.  With this change
committed, we make it so by not allowing it in the first in the
initscript, should dnsmasq later decides to not quit (not likely) or
quit without above explicit error (unlikely but less so ;)

So this is just being proactive.  on/off choices with uci option
"dnssec" are still available like before

Link: https://github.com/openwrt/openwrt/pull/3265#issuecomment-667795302
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
4 years agotools/firmware-utils: use UTC for image timestamps
Sander Vanheule [Thu, 6 Aug 2020 20:10:32 +0000 (22:10 +0200)]
tools/firmware-utils: use UTC for image timestamps

By using localtime() to determine the timestamp that goes into factory
images, the resulting image depends on the timezone of the build system.
Use gmtime() instead, which results in more reproducible images.

Signed-off-by: Sander Vanheule <sander@svanheule.net>
4 years agoramips: switch rt3883 subtarget to kernel 5.4
Adrian Schmutzler [Thu, 6 Aug 2020 21:48:32 +0000 (23:48 +0200)]
ramips: switch rt3883 subtarget to kernel 5.4

The target has testing support for kernel 5.4 for quite a while,
compiles fine for all devices, and has been run-tested on Asus
RT-N56U successfully.

Let's set it to kernel 5.4 by default to increase the audience
before an 20.xx stable branch.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Eneas U de Queiroz <cotequeiroz@gmail.com> [Asus RT-N56U]
4 years agobcm63xx: switch to upstream CFE version detection patch
Álvaro Fernández Rojas [Thu, 6 Aug 2020 14:20:30 +0000 (16:20 +0200)]
bcm63xx: switch to upstream CFE version detection patch

The patch improving CFE version detection has been merged (linux 5.9).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: switch to upstream endif comments patch
Álvaro Fernández Rojas [Thu, 6 Aug 2020 14:12:21 +0000 (16:12 +0200)]
bcm63xx: switch to upstream endif comments patch

This allows better context for board patches and we no longer need a
downstream patch for that.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agobcm63xx: switch to upstream LED patch
Álvaro Fernández Rojas [Thu, 6 Aug 2020 06:52:55 +0000 (08:52 +0200)]
bcm63xx: switch to upstream LED patch

The patch adding support for the second LED HW blinking interval has been
merged (linux 5.9).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
4 years agoRevert "dsaconfig: introduce package for UCI configuration of VLAN filter rules"
Jo-Philipp Wich [Thu, 6 Aug 2020 17:13:04 +0000 (19:13 +0200)]
Revert "dsaconfig: introduce package for UCI configuration of VLAN filter rules"

This reverts commit 96b87196b0788d4cdaa81a49a65d198d9f6c90d2.

This commit was not meant to go into master.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoRevert "add vfconfig"
Jo-Philipp Wich [Thu, 6 Aug 2020 17:13:01 +0000 (19:13 +0200)]
Revert "add vfconfig"

This reverts commit 34553e8cc9ad4530d3f52c3423e5c52fdacac539.

This commit was not meant to go into master.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoprocd: update to git HEAD
Daniel Golle [Thu, 6 Aug 2020 15:16:02 +0000 (16:16 +0100)]
procd: update to git HEAD

 47a9f0d service: add method to query available container features
 afbaba9 initd: attempt to mount cgroup2
 ead60fe jail: use pidns semantics also for timens
 759e9f8 jail: make use of BLOBMSG_CAST_INT64 for OCI rlimits
 83053b6 instance: add instances into unified cgroup hierarchy
 16159bb jail: parse OCI cgroups resources
 282ff0c jail: only free cgroups if they were allocated
 ab55357 jail: fix freeing cgroups avl

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoRevert "procd: update to git HEAD"
Daniel Golle [Thu, 6 Aug 2020 14:57:22 +0000 (15:57 +0100)]
Revert "procd: update to git HEAD"

This reverts commit e0e607f0d000e62c6af8d822d7c3f57c2a582136.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoath79/nand: add support for Netgear WNDR4300TN
Davy Hollevoet [Mon, 22 Jun 2020 12:45:14 +0000 (14:45 +0200)]
ath79/nand: add support for Netgear WNDR4300TN

This patch adds support for the WNDR4300TN, marketed by Belgian ISP
Telenet. The hardware is the same as the WNDR4300 v1, without the
fifth ethernet port (WAN) and the USB port. The circuit board has
the traces, but the components are missing.

Specifications:
* SoC: Atheros AR9344
* RAM: 128 MB
* Flash: 128 MB NAND flash
* WiFi: Atheros AR9580 (5 GHz) and AR9344 (2.4 GHz)
* Ethernet: 4x 1000Base-T
* LED: Power, LAN, WiFi 2.4GHz, WiFi 5GHz, WPS
* UART: on board, to the right of the RF shield at the top of the board

Installation:

* Flashing through the OEM web interface:
  + Connect your computer to the router with an ethernet cable and browse
    to http://192.168.0.51/
  + Log in with the default credentials are admin:password
  + Browse to Advanced > Administration > Firmware Upgrade in the Telenet
    interface
  + Upload the Openwrt firmware: openwrt-ath79-nand-netgear_wndr4300tn-squashfs-factory.img
  + Proceed with the firmware installation and give the device a few
    minutes to finish and reboot.

* Flashing through TFTP:
  + Configure your wired client with a static IP in the 192.168.1.x range,
    e.g. 192.168.1.10 and netmask 255.255.255.0.
  + Power off the router.
  + Press and hold the RESET button (the factory reset button on the bottom
    of the device, with the gray circle around it, next to the Telenet logo)
    and turn the router on while keeping the button pressed.
  + The power LED will start flashing orange. You can release the button
    once it switches to flashing green.
  + Transfer the image over TFTP:
    $ tftp 192.168.1.1 -m binary -c put openwrt-ath79-nand-netgear_wndr4300tn-squashfs-factory.img

Signed-off-by: Davy Hollevoet <github@natox.be>
[use DT label reference for adding LEDs in DTSI files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: add support for Netgear JWNR2010 v5
Shibajee Roy [Sun, 2 Aug 2020 15:19:52 +0000 (21:19 +0600)]
ramips: add support for Netgear JWNR2010 v5

Specification:
 - CPU: MediaTek MT7620N (580 MHz)
 - Flash size: 4 MB NOR SPI
 - RAM size: 32 MB DDR1
 - Bootloader: U-Boot
 - Wireless: MT7620N 2x2 MIMO 802.11b/g/n (2.4 GHz)
 - Switch: MT7620 built-in 10/100 switch with vlan support
 - Ports: 4x LAN, 1x WAN
 - Others: 7x LED, Reset button, UART header on PCB (57600 8N1)

Flash instructions:
 1. Use ethernet cable to connect router with PC/Laptop, any router
    LAN port will work.
 2. To flash openwrt we are using nmrpflash[1].
 3. Flash commands:
      First we need to identify the correct Ethernet id.

        nmrpflash -L

        nmrpflash -i net* -f openwrt-ramips-mt7620-netgear_jwnr2010-v5-squashfs-factory.img

      This will show something like "Advertising NMRP server on net*..." (net*, *=1,2,3... etc.)

 4. Now remove the power cable from router back side and immediately connect it again.
    You will see flash notification in CMD window, once it says reboot the device just
    plug off the router and plug in again.

Revert to stock:
 1. Download the stock firmware from official netgear support[2].
 2. Follow the same nmrpflash procedure like above, this time just use the stock firmware.

        nmrpflash -i net* -f N300-V1.1.0.54_1.0.1.img

MAC addresses on stock firmware:
LAN = *:28 (label)
WAN = *:29
WLAN = *:28

On flash, the only valid MAC address is found in factory 0x4.

Special Note:
 This openwrt firmware will also support other netgear N300 routers like below as they
 share same stock firmware[3].
 JNR1010v2 / WNR614 / WNR618 / JWNR2000v5 / WNR2020 / WNR1000v4 / WNR2020v2 / WNR2050

[1] https://github.com/jclehner/nmrpflash
[2] https://www.netgear.com/support/product/JWNR2010v5.aspx
[3] http://kb.netgear.com/000059663

Signed-off-by: Shibajee Roy <ador250@protonmail.com>
[create DTSI, use netgear_sercomm_nor, disable by default, add MAC
addresses to commit message, add label MAC address]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: drop remaining m25p,chunked-io from DTS
Adrian Schmutzler [Mon, 3 Aug 2020 21:53:21 +0000 (23:53 +0200)]
ramips: drop remaining m25p,chunked-io from DTS

This option was a spi nor hack which is dropped in commit bcf4a5f474d1
("ramips: remove chunked-io patch and set spi->max_transfer_size instead")

Most of it has already been removed in
be2b61e4f1ec ("ramips: drop m25p,chunked-io from dts")

It seems all current usages were added after that. Remove them.

Cc: Chuanhong Guo <gch981213@gmail.com>
Reported-by: Sungbo Eo <mans0n@gorani.run>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: add common definition netgear_sercomm_nor
Adrian Schmutzler [Mon, 3 Aug 2020 17:23:50 +0000 (19:23 +0200)]
ramips: add common definition netgear_sercomm_nor

Like NAND-based devices, SPI-NOR based Netgear devices also share
a common setup for their images. This creates a common defition
for them in image/Makefile, so it can be reused across subtargets.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoprocd: update to git HEAD
Daniel Golle [Thu, 6 Aug 2020 14:24:41 +0000 (15:24 +0100)]
procd: update to git HEAD

 47a9f0d service: add method to query available container features
 afbaba9 initd: attempt to mount cgroup2
 ead60fe jail: use pidns semantics also for timens
 759e9f8 jail: make use of BLOBMSG_CAST_INT64 for OCI rlimits
 83053b6 instance: add instances into unified cgroup hierarchy
 16159bb jail: parse OCI cgroups resources

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agolibubox: update to git HEAD
Daniel Golle [Thu, 6 Aug 2020 14:14:46 +0000 (15:14 +0100)]
libubox: update to git HEAD

 9e52171 blobmsg: introduce BLOBMSG_CAST_INT64

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoglibc: update to latest 2.31 commit [BZ #19519 BZ #26332 BZ #26248]
Hans Dedecker [Thu, 6 Aug 2020 11:41:00 +0000 (13:41 +0200)]
glibc: update to latest 2.31 commit [BZ #19519 BZ #26332 BZ #26248]

6fdf971c9d Add NEWS entry for CVE-2016-10228 (bug 19519)
70d585151c Rewrite iconv option parsing [BZ #19519]
1c8efe848b powerpc: Fix incorrect cache line size load in memset (bug 26332)
7611339a9b nptl: Zero-extend arguments to SETXID syscalls [BZ #26248]
21b760cc2f Disable warnings due to deprecated libselinux symbols used by nss and nscd

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agoramips: tidy up MAC address setup for Linkit Smart and Omega2
Adrian Schmutzler [Thu, 6 Aug 2020 11:26:19 +0000 (13:26 +0200)]
ramips: tidy up MAC address setup for Linkit Smart and Omega2

Linkit Smart 7688 and Onion Omega 2(+) are one-port devices, and
have their port set to LAN by default. Setting up a WAN MAC address
for them doesn't make any sense, as no wan interface will be created
in uci config. Despite, these devices also set lan_mac in 02_network,
although mtd-mac-address sets a different address for the ethernet
interface in DTS.

Clean this up by moving the lan_mac value into DTS and dropping the
entries in 02_network completely. That way, the effective address
on the LAN interface should stay the same, but we get rid of the
extra (re)assignments.

As I don't have access to the devices, this does not tell anything
about whether 0x2e is actually a good choice, it just preserves
the existing assignment.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: WizFi630S use macs from factory partion
Tobias Welz [Tue, 4 Aug 2020 16:30:15 +0000 (18:30 +0200)]
ramips: WizFi630S use macs from factory partion

WIZnet WizFi630s has three mac addresses in the factory partition:
0x04 (also on the label), 0x28 for wan mac and 0x2e as lan mac.
All three macadresses are sequential series of addresses.
This is making use of them.

While at it, also add the label MAC address to 02_network.

MAC addresses as verified by OEM firmware:

use      interface   source
WLAN     ra0         factory 0x04 (label)
WAN      eth0.2      factory 0x28 (label + 1)
LAN      eth0.1      factory 0x2e (label + 2)

Signed-off-by: Tobias Welz <tw@wiznet.eu>
[fix sorting in 02_network, commit message adjustments]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: correct WizFi630S pin mappings
Tobias Welz [Tue, 4 Aug 2020 15:55:40 +0000 (17:55 +0200)]
ramips: correct WizFi630S pin mappings

WizFi630S had some pins changed in the release version of the board.
The run led, wps button and a slide switch where affected.
This patch is correcting this.
i2c is removed as it is sharing a pin with the run (system) led.
uart2 is enabled as it is also enabled in the OEM firmware.

Signed-off-by: Tobias Welz <tw@wiznet.eu>
4 years agobuild: set up host command for egrep
Felix Fietkau [Thu, 6 Aug 2020 10:53:14 +0000 (12:53 +0200)]
build: set up host command for egrep

It is used for the kernel build and uses GNU specific features

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agoipq40xx: refresh kernel 5.4 config
Adrian Schmutzler [Thu, 6 Aug 2020 10:49:02 +0000 (12:49 +0200)]
ipq40xx: refresh kernel 5.4 config

Refresh config with make kernel_oldconfig.

After d1a8217d87bf ("kernel: clean-up build-configurable kernel
config symbols"), the routine wants to add an additional
CONFIG_CGROUPS (=n), which has been removed manually again, as
this seems unintended.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agomac80211: merge performance improvement patches
Felix Fietkau [Sun, 26 Jul 2020 13:12:32 +0000 (15:12 +0200)]
mac80211: merge performance improvement patches

Fix fq_codel performance issues
Add a new rx function for batch processing

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomediatek: fix mt7622-rfb1 board support
Felix Fietkau [Mon, 20 Jul 2020 16:18:50 +0000 (18:18 +0200)]
mediatek: fix mt7622-rfb1 board support

Make GPIO keys active-low.
Add DSA support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: fix AQL issues
Felix Fietkau [Sat, 25 Jul 2020 08:49:21 +0000 (10:49 +0200)]
mac80211: fix AQL issues

- Remove bogus STA txq pending airtime underflow warning
- Improve tx airtime estimation for A-MPDU traffic

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agobinutils: update to version 2.34
Felix Fietkau [Wed, 5 Aug 2020 17:57:43 +0000 (19:57 +0200)]
binutils: update to version 2.34

Fixes perf on aarch64

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomt76: update to 2020-07-22
Felix Fietkau [Mon, 22 Jun 2020 19:51:46 +0000 (21:51 +0200)]
mt76: update to 2020-07-22

7bc58ca2b375 mt76: add missing lock configuring coverage class
43febd452110 mt76: mt7615: fix lmac queue debugsfs entry
0b9975254694 mt76: mt7615: fix hw queue mapping
4058595e146e mt76: overwrite qid for non-bufferable mgmt frames
49c7131dd0c5 mt76: mt76x02: do not access uninitialized NAPI structs
f185d90ec51c update mt7915 firmware to the latest version
0ed6a335ebc2 mt76: mt7615: re-enable offloading of sequence number assignment
2a52eabbddc5 mt76: usb: rely on mt76_for_each_q_rx
90fc1d8614e1 mt76: mt7663: introduce ARP filter offload
b57223dd01b9 mt76: mt7615: fix up typo in Kconfig for MT7663U
ec4057d685c0 mt76: add script for generating single-sku device tree data
769b030de636 mt76: add functions for parsing rate power limits from DT
1d2aedb248d0 mt76: extend DT rate power limits to support 11ax devices
a3e17ff8e624 mt76: mt7615: implement support for using DT rate power limits
a48a4ae32d48 mt76: allow more channels, allowed in ETSI domain
869ba618ef54 mt76: fix include in pci.h
b1ddec840aa4 mt76: rely on register macros
d6d9a7ea428d mt76: add U-APSD support on AP side
ee13b78367db mt76: mt7615: fix EEPROM buffer size
82a94173b162 mt76: mt7915: add missing CONFIG_MAC80211_DEBUGFS
c0dbbd930d32 mt76: mt7615: add .set_tsf callback
84d54df76996 mt76: mt7915: add a fixed AC queue mapping
dacc2d29672d mt76: mt7915: add MU-MIMO support
1ce4660a0ea3 mt76: mt7915: use ieee80211_tx_queue_params to avoid open coded
53891242a682 mt76: mt7915: add support for DT rate power limits
b3a4d78914f6 mt76: mt7915: rework the flow of txpower setting
c6ea163c019b mt76: mt7915: directly read per-rate tx power from registers
8ae83adc73a8 mt76: mt7915: overwrite qid for non-bufferable mgmt frames
740b0bfdf279 mt76: mt76x2e: rename routines in pci.c
b5eee1b52234 mt76: mt7615: schedule tx tasklet and sta poll on mac tx free
72f34107248e mt76: mt7615: add support for accessing mapped registers via bus ops
46bc8a0b5347 mt76: mt7615: add support for accessing RF registers via MCU
882cec420609 mt76: mt7615: use full on-chip memory address for WF_PHY registers
b1ddb8e35ca2 mt76: vif_mask to struct mt76_phy
3a1ea7287eb2 mt76: add API for testmode support
d7467bc018e5 mt76: mt7615: implement testmode support
3ea5da1639fe add utility for using testmode support
6789a2db7246 mt7615: fix getting wideband RSSI in test mode
7941217ffe46 mt76: mt7915: remove unused parameters in mt7915_puts_rate_txpower()
13ab1d648684 mt76: mt7915: update HE capabilities
3f0e66dc25de mt76: mt76x2: fix pci suspend/resume on mt7612e
c605f2b6940b mt76: mt76x2u: enable HC-M7662BU1
ca2b797ee52d mt76: mt7915: avoid memcpy in rxv operation
dad3f93e8f6a mt76: mt7615: avoid polling in fw_own for mt7663
ec303bfad299 mt76: move mt76 workqueue in common code
0bf82270568a mt76: mt7615: add mt7615_pm_wake utility routine
091e9b5df6af mt76: mt7615: introduce mt7615_mutex_{acquire,release} utilities
e3850966d74c mt76: mt7615: wake device before accessing regmap in debugfs
e6dcb71d7992 mt76: mt7615: wake device before configuring hw keys
050f8cd9cbe7 mt76: mt7615: introduce pm_power_save delayed work
56779a6c7dec mt76: mt7615: wake device in mt7615_update_channel before access regmap
b0bcdd66ccaa mt76: mt7615: acquire driver_own before configuring device for suspend
58369fdce235 mt76: mt7615: wake device before performing freq scan
2c188db1f7c7 mt76: mt7615: add missing lock in mt7615_regd_notifier
6fdb20a025eb mt76: mt7615: run mt7615_mcu_set_wmm holding mt76 mutex
36a789c00e4f mt76: mt7615: run mt7615_mcu_set_roc holding mt76 mutex
b8cdce45c131 mt76: mt7615: wake device before pulling packets from mac80211 queues
82e8e0525d6c mt76: mt7615: wake device before pushing frames in mt7615_tx
65ccc40c14e1 mt76: mt7615: run mt7615_pm_wake in mt7615_mac_sta_{add,remove}
2107caf92e71 mt76: mt7615: check MT76_STATE_PM flag before accessing the device
28a2f5fa6eed mt76: mt7615: do not request {driver,fw}_own if already granted
94519eac69c3 mt76: mt7615: add runtime-pm knob in mt7615 debugfs
ccc90dafea66 mt76: mt7615: enable beacon hw filter for runtime-pm
29f2bebe1a1e mt76: mt7615: add idle-timeout knob in mt7615 debugfs
58057d1f232b mt76: mt7615: improve mt7615_driver_own reliability
a873b7c8e3de mt76: mt7663u: sync probe sampling with rate configuration
b469c59c616c mt76: mt7615: avoid scheduling runtime-pm during hw scan
f1ff52acb6a7 mt76: mt7615: reschedule ps work according to last activity
1f670a534451 mt76: mt7663u: fix memory leak in set key
afff00ad2b60 mt76: mt7663u: fix potential memory leak in mcu message handler
4c9309f47ddf mt76: mt7615: fix potential memory leak in mcu message handler
379445b4aa7f mt76: mt7915: potential array overflow in mt7915_mcu_tx_rate_report()
750797b61ba8 mt76: fix copy&paste error in mt76_testmode_cmd
f9a7a2f7dbc2 testmode: fix setting tx_power
1641aa201682 mt76: mt7615: fix mt7615_mcu_set_test_param set non-bool parameters
6838d002f9de mt76: mt7615: fix tx_frames setup
8c0a25d6a38c mt76: mt7615: take into account sdio bus configuring txwi
c0cbef79eb45 mt76: mt76u: add mt76_skb_adjust_pad utility routine
98412356c959 mt76: mt7615: sdio code must access rate/key regs in preocess context
fa16627d7e3a mt76: mt7615: introduce mt7663-usb-sdio-common module
bf88e70c7a68 mt76: introduce mt76_sdio module
aa97be8e02de mt76: mt7615: introduce mt7663s support
1eb8b7d689a3 mt76: testmode: fix tx_done accounting on enqueue failures
632ce698e8ee mt76: mt7615: fix antenna settings for test mode
4d2f622190b6 mt76: mt76s: move queue accounting in mt76s_tx_queue_skb
9a3723c8febc mt76: mt7915: fix potential memory leak in mcu message handler
88fa973f59c2 mt76: mt7615: fix possible memory leak in mt7615_mcu_wtbl_sta_add
2fff7d77befd mt76: mt76u: add missing release on skb in __mt76x02u_mcu_send_msg
b5df0fbb1847 mt7615: update firmware to version 20200629

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agokernel: unify CONFIG_GPIO_SYSFS in kernel configs
Felix Fietkau [Mon, 20 Jul 2020 15:45:59 +0000 (17:45 +0200)]
kernel: unify CONFIG_GPIO_SYSFS in kernel configs

Enable it for all platforms

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agobuild: make prefix mapping of debug information optional
Felix Fietkau [Mon, 22 Jun 2020 19:44:37 +0000 (21:44 +0200)]
build: make prefix mapping of debug information optional

Remapping the local build path in debug information makes debugging
using ./scripts/remote-gdb harder, because files no longer refer to the full
path on the build host.

For local builds, debug information does not need to be reproducible,
since it will be stripped out of packages anyway.

For buildbot builds, it makes sense to keep debug information reproducible,
since the full path is not needed (nor desired) anywhere.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: make cfg80211 testmode support optional (and disabled by default)
Felix Fietkau [Wed, 10 Jun 2020 14:52:27 +0000 (16:52 +0200)]
mac80211: make cfg80211 testmode support optional (and disabled by default)

Testmode commands are typically only used for manufacturing or vendor specific
debugging features, so they should not be in the default image

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agoopenvpn: fix arguments passing to wrapped up and down scripts
Jo-Philipp Wich [Wed, 5 Aug 2020 07:25:41 +0000 (09:25 +0200)]
openvpn: fix arguments passing to wrapped up and down scripts

With the introduction of the generic OpenVPN hotplug mechanism, wrapped
--up and --down scripts got the wrong amount and order of arguments passed,
breaking existing configurations and functionality.

Fix this issue by passing the same amount of arguments in the same expected
order as if the scripts were executed by the OpenVPN daemon directly.

Ref: https://github.com/openwrt/openwrt/pull/1596#issuecomment-668935156
Fixes: 8fe9940db6 ("openvpn: add generic hotplug mechanism")
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoadd vfconfig
Jo-Philipp Wich [Thu, 23 Jul 2020 10:50:48 +0000 (12:50 +0200)]
add vfconfig

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agodsaconfig: introduce package for UCI configuration of VLAN filter rules
Jo-Philipp Wich [Tue, 7 Jul 2020 13:34:53 +0000 (15:34 +0200)]
dsaconfig: introduce package for UCI configuration of VLAN filter rules

This package provides the necessary files to translate `config dsa_vlan`
and `config dsa_port` sections  of `/etc/config/network` into appropriate
bridge vlan filter rules.

The approach of the configuration is to bridge all DSA ports into a logical
bridge device, called "switch0" by default, and to set VLAN port membership,
tagging state and PVID as specified by UCI on each port and on the switch
bridge device itself, allowing logical interfaces to reference port VLAN
groups by using "switch0.N" as ifname, where N denotes the VLAN ID.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoramips: switch rt305x subtarget to kernel 5.4
Alexey Dobrovolsky [Wed, 5 Aug 2020 19:50:53 +0000 (22:50 +0300)]
ramips: switch rt305x subtarget to kernel 5.4

RT3x5x seems to work fine with kernel 5.4. Set the default kernel
version to 5.4 to bring this to a broader audience.

Since 4 of 6 targets are on kernel 5.4 now, invert the kernel
version setup logic in Makefile/target.mk files.

Tested on ZyXEL Keenetic.

Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
[invert version setup logic]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoramips: enable flashing WizFi630S via OEM firmware
Tobias Welz [Mon, 3 Aug 2020 19:28:31 +0000 (21:28 +0200)]
ramips: enable flashing WizFi630S via OEM firmware

WIZnet WizFi630s board name is written slightly different it its OEM
OpenWrt firmware. This causes an incompatibility warning during flashing
with sysupgrade. This patch is adding the vendor board name to the
supported devices list to avoid this warning. For initial flashing you
can use sysupgrade via command line or luci beside of TFTP.
Do not keep the OEM configuration during sysupgrade.

Signed-off-by: Tobias Welz <tw@wiznet.eu>
4 years agoipq806x: use qcom-ipq8064-v1.0.dtsi from upstream
Adrian Schmutzler [Tue, 14 Jul 2020 11:14:50 +0000 (13:14 +0200)]
ipq806x: use qcom-ipq8064-v1.0.dtsi from upstream

This uses upstream qcom-ipq8064-v1.0.dtsi and modifies it by patches
instead of keeping a local version. As a consequence:

- we use a part of the shared definitions there and update device
  DTS files accordingly
- we move additional stuff from our local v1.0.dtsi to the patch
- we drop partitions, LEDs and keys from the file as we will
  implement them differently anyway

Like with the previous patch, this follows the idea that a diff
from upstream might be easier to handle than a big file of our
own with different distribution pattern of properties.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoipq806x: use qcom-ipq8064.dtsi from upstream
Adrian Schmutzler [Fri, 3 Jul 2020 09:12:10 +0000 (11:12 +0200)]
ipq806x: use qcom-ipq8064.dtsi from upstream

Though a qcom-ipq8064.dtsi file exists upstream, we still do overwrite
it with a full version of our own in the ipq806x target. About half of
the contents of our file are upstream content, the other half are local
improvements.

To prevent us from having a lot of code maintained twice in parallel,
this adjusts the target to use the upstream qcom-ipq8064.dtsi. Our
local changes are arranged into three patches, the first pulling a
commit from upstream, the second doing a few small adjustments, and
the third adding all additional stuff.

This should get us the best of both worlds.

The property "ports-implemented" on sata@29000000 is moved to
2nd-level DTSI files as kernel defines it there as well.

While at, rename 080-ARM-dts-qcom-add-gpio-ranges-property.patch to
include the kernel version where it's added upstream.

Even though this might look more complicated in the first place,
the aim is to bring our files closer to upstream, so we can benefit
from changes directly and vice-versa. After all, this drop about
650 lines just copied from the upstream DTSI file.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agouhttpd: update to the latest master
Rafał Miłecki [Wed, 5 Aug 2020 13:49:03 +0000 (15:49 +0200)]
uhttpd: update to the latest master

212f836 ubus: rename JSON-RPC format related functions
628341f ubus: use local "blob_buf" in uh_ubus_handle_request_object()
9d663e7 ubus: use BLOBMSG_TYPE_UNSPEC for "params" JSON attribute
77d345e ubus: drop unused "obj" arguments
8d9e1fc ubus: parse "call" method params only for relevant call

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agoramips: remove doublet entry in WizFi630S dts file
Tobias Welz [Mon, 3 Aug 2020 19:29:25 +0000 (21:29 +0200)]
ramips: remove doublet entry in WizFi630S dts file

&wmac entry in WIZnet WizFi630S dts file was existing two times.
This is removing one of them.

Signed-off-by: Tobias Welz <tw@wiznet.eu>
4 years agoramips: disable unused phy ports of WizFi630S
Tobias Welz [Mon, 3 Aug 2020 19:39:43 +0000 (21:39 +0200)]
ramips: disable unused phy ports of WizFi630S

WIZnet WizFi630S is using only 3 of the phy ports. The unused phy ports
draw unnecessarily power. This is disabling the unused phy ports.

Signed-off-by: Tobias Welz <tw@wiznet.eu>
4 years agobcm47xx: switch to kernel 5.4
Rafał Miłecki [Tue, 4 Aug 2020 13:49:59 +0000 (15:49 +0200)]
bcm47xx: switch to kernel 5.4

Switch, LEDs, USB, buttons, sysupgrade testedon BCM4706.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agoscripts: remove checkpatch.sh
Petr Štetiar [Tue, 4 Aug 2020 12:22:17 +0000 (14:22 +0200)]
scripts: remove checkpatch.sh

That file was added accidentally in v3 of the patch and I haven't
properly reviewed that patch before pushing it.

Fixes: 656b562aff36 ("scripts: Add Buildbot dump-target-info.pl script")
Signed-off-by: Petr Štetiar <ynezz@true.cz>
4 years agobcm53xx: switch to kernel 5.4
Rafał Miłecki [Tue, 4 Aug 2020 05:05:47 +0000 (07:05 +0200)]
bcm53xx: switch to kernel 5.4

Switch, USB, WiFi, buttons tested on BCM47094.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agobcm53xx: set HW_RANDOM_BCM2835=y
Rafał Miłecki [Tue, 4 Aug 2020 11:25:41 +0000 (13:25 +0200)]
bcm53xx: set HW_RANDOM_BCM2835=y

This enables Random Number Generator support on Northstar (described in
DT with brcm,bcm5301x-rng).

It's also a workaround for OpenWrt bug with kernel config causing:
Broadcom BCM2835/BCM63xx Random Number Generator support (HW_RANDOM_BCM2835) [Y/n/m/?] (NEW)

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agobcm53xx: update kernel 5.4 DTS to upstream 5.9 state
Rafał Miłecki [Tue, 4 Aug 2020 08:31:11 +0000 (10:31 +0200)]
bcm53xx: update kernel 5.4 DTS to upstream 5.9 state

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agobcm53xx: update kernel 5.4 config
Rafał Miłecki [Tue, 4 Aug 2020 08:53:10 +0000 (10:53 +0200)]
bcm53xx: update kernel 5.4 config

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
4 years agoscripts: Add Buildbot dump-target-info.pl script
Paul Spooren [Mon, 3 Aug 2020 17:31:43 +0000 (07:31 -1000)]
scripts: Add Buildbot dump-target-info.pl script

The script comes from buildbot.git[0] and is used to print available
targets and architectures, which are then build.

As the buildbot clones openwrt.git anyway, the script might as well live
here to be used for other cases as well, e.g. determining what
architectures are available when building Docker containers or show
developers an overview which architectures are used by which target.

It's called with either the parameter `architectures` or `targets`,
showing architectures followed by supported targets or targets, followed
by the supported architectures:

$ ./scripts/dump-target-info.pl architectures
aarch64_cortex-a53 bcm27xx/bcm2710 mediatek/mt7622 mvebu/cortexa53 sunxi/cortexa53
aarch64_cortex-a72 bcm27xx/bcm2711 mvebu/cortexa72
...

$ ./scripts/dump-target-info.pl targets
apm821xx/nand powerpc_464fp
apm821xx/sata powerpc_464fp
...

In the future the the script could be removed from the buildbot
repository and maintained only here.

Rename `dumpinfo.pl` to `dump-target-info.pl` to improve verbosity of
filename.

[0]: https://git.openwrt.org/?p=buildbot.git;a=blob;f=scripts/dumpinfo.pl;h=aa97f8d60379076a41b968402e9337cea824ece5;hb=HEAD

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agoramips: add support for TP-Link RE200 v3
Richard Fröhning [Sun, 2 Aug 2020 14:22:50 +0000 (16:22 +0200)]
ramips: add support for TP-Link RE200 v3

TP-Link RE200 v3 is a wireless range extender with Ethernet and 2.4G and 5G
WiFi with internal antennas. It's based on MediaTek MT7628AN+MT7610EN like the v2.

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

- MediaTek MT7628AN (580 Mhz)
- 64 MB of RAM
- 8 MB of FLASH
- 2T2R 2.4 GHz and 1T1R 5 GHz
- 1x 10/100 Mbps Ethernet
- 8x LED (GPIO-controlled), 2x button

Unverified:
- UART header on PCB (57600 8n1)

There are 2.4G and 5G LEDs in red and green which are controlled
separately.

MAC addresses
-------------

MAC address assignment has been done according to the RE200 v2.

The label MAC address matches the OpenWrt ethernet address.

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

Web Interface
-------------

It is possible to upgrade to OpenWrt via the web interface. Simply flash
the -factory.bin from OEM. In contrast to a stock firmware, this will not
overwrite U-Boot.

Recovery
--------

Unfortunately, this devices does not offer a recovery mode or a tftp
installation method. If the web interface upgrade fails, you have to open
your device and attach serial console.

The device has not been opened for adding support. However, it is expected
that the behavior is similar to the RE200 v2. Instructions for serial console
and recovery may be checked out in commit 6d6f36ae787c ("ramips: add support
for TP-Link RE200 v2") or on the device's Wiki page.

Signed-off-by: Richard Fröhning <misanthropos@gmx.de>
[adjust commit title/message, sort support list]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agowireguard: bump to 1.0.20200729
Jason A. Donenfeld [Mon, 3 Aug 2020 12:38:52 +0000 (14:38 +0200)]
wireguard: bump to 1.0.20200729

* compat: rhel 8.3 beta removed nf_nat_core.h
* compat: ipv6_dst_lookup_flow was ported to rhel 7.9 beta

This compat tag adds support for RHEL 8.3 beta and RHEL 7.9 beta, in addition
to RHEL 8.2 and RHEL 7.8. It also marks the first time that
<https://www.wireguard.com/build-status/> is all green for all RHEL kernels.
After quite a bit of trickery, we've finally got the RHEL kernels building
automatically.

* compat: allow override of depmod basedir

When building in an environment with a different modules install path, it's
not possible to override the depmod basedir flag by setting the DEPMODBASEDIR
environment variable.

* compat: add missing headers for ip_tunnel_parse_protocol

This fixes compilation with some unusual configurations.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
4 years agoramips: fix/tidy up 4M tplink-v2-image flash layouts
Adrian Schmutzler [Mon, 3 Aug 2020 10:02:48 +0000 (12:02 +0200)]
ramips: fix/tidy up 4M tplink-v2-image flash layouts

For the TP-Link 4M devices with tplink-v2-image recipe
(mktplinkfw2.c), there are two different flash layouts based
on the size of the (u)boot partition:

device         uboot    OEM firmware  OpenWrt (incl. config)
tl-wr840n-v5   0x20000  0x3c0000      0x3d0000
tl-wr841n-v14  0x10000  0x3d0000      0x3e0000

In both cases, the 0x10000 config partition is used for the firmware
partition as well due to the limited space available and since it's
recreated by the OEM firmware anyway.

However, the TFTP flashing process will only copy data up to the
size of the initial (OEM) firmware size. Therefore, while we can
use the bigger partition to have additional erase blocks on the
device, we have to limit the image sizes to the TFTP limits.

So far, only one layout definition has been set up in mktplinkfw2.c
for 4M mediatek devices. This adds a second one and assigns them
to the devices so the image sizes are correctly restrained.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokirkwood: get rid of BOARD_NAME and tidy up DEVICE_DTS
Adrian Schmutzler [Fri, 31 Jul 2020 11:50:37 +0000 (13:50 +0200)]
kirkwood: get rid of BOARD_NAME and tidy up DEVICE_DTS

Since most of the DTS file names follow a common scheme now, let's
update the automatically generated DEVICE_DTS value and get rid
of some DEVICE_DTS and all BOARD_NAME entries for individual devices.

This should specifically make the job easier for developers adding
new devices, as they are not tempted to copy over BOARD_NAME anymore.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agotoolchain/binutils: remove versions 2.29.1 and 2.31.1
Adrian Schmutzler [Wed, 29 Jul 2020 15:26:08 +0000 (17:26 +0200)]
toolchain/binutils: remove versions 2.29.1 and 2.31.1

We currently support four versions of binutils in parallel. Let's
just keep the latest two and drop the older ones before the next
one comes around.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agopackage: replace remaining occurrences of ifconfig with ip
Adrian Schmutzler [Thu, 30 Jul 2020 15:25:21 +0000 (17:25 +0200)]
package: replace remaining occurrences of ifconfig with ip

ifconfig is effectively deprecated for quite some time now. Let's
replace the remaining occurrences for packages by the
corresponding ip commands now.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agotarget: replace remaining occurrences of ifconfig with ip
Adrian Schmutzler [Thu, 30 Jul 2020 15:25:20 +0000 (17:25 +0200)]
target: replace remaining occurrences of ifconfig with ip

ifconfig is effectively deprecated for quite some time now. Let's
replace the remaining occurrences for our target setup by the
corresponding ip commands now.

Note that this does not touch ar71xx, as it will be dropped anyway,
and changing it would only make backports harder.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobuild: image: return sizes if check-size fails
Adrian Schmutzler [Wed, 29 Jul 2020 19:00:12 +0000 (21:00 +0200)]
build: image: return sizes if check-size fails

Instead of just printing a warning that an image is too big, also
print both actual size and limit in the string:

WARNING: Image file somename.bin is too big: 2096101 > 1048576

Since the kernel size is checked via the same function (if
KERNEL_SIZE is specified), this will also apply to the kernel
image size check.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoar71xx: restore support for boot console with arbitrary baud rates
Sungbo Eo [Sun, 12 Jan 2020 12:35:00 +0000 (21:35 +0900)]
ar71xx: restore support for boot console with arbitrary baud rates

Commit 1bfbf2de6df9 ("ar71xx: serial: core: add support for boot console
with arbitrary baud rates") added support for arbitrary baud rates which
enabled 250000 baud rate for Yun. But the patch was not ported to kernel
4.9, and since then the kernel set its baud rate to 9600. This commit ports
the patch to kernel 4.14, thereby restoring the serial console of Yun.

Cc: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoar71xx: enable ethernet LED of Arduino Yun
Sungbo Eo [Sun, 12 Jan 2020 12:35:00 +0000 (21:35 +0900)]
ar71xx: enable ethernet LED of Arduino Yun

Commit 05d73a2a7379 enabled GPIO on ethernet LED, but proper LED setup was
not added then. This commit fixes it by reverting the change on the LED.

Fixes: 05d73a2a7379 ("ar71xx: Arduino Yun board 'WLAN RST' button support")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoar71xx: fix sysupgrade for Arduino Yun
Sungbo Eo [Sun, 12 Jan 2020 12:35:00 +0000 (21:35 +0900)]
ar71xx: fix sysupgrade for Arduino Yun

Commit bb46b635df48 changed its partition scheme, but sysupgrade image
validation still uses the old format. This commit fixes it so that
force flag is not needed for sysupgrade.

Fixes: bb46b635df48 ("ar71xx: move Arduino Yun to generic building code")
Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoRevert "ar71xx: fix Arduino Yun enabling of level shifters outputs"
Sungbo Eo [Sun, 12 Jan 2020 12:33:53 +0000 (21:33 +0900)]
Revert "ar71xx: fix Arduino Yun enabling of level shifters outputs"

This reverts commit 077253dd666a30ae5231c3748222d4b5b138593d.

The output enable pins should be disabled by default, and only enabled when
used. Otherwise unwanted conflicts might occur between MCU and SoC pins.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agobuild: image: drop unused check-kernel-size recipe
Adrian Schmutzler [Wed, 29 Jul 2020 19:00:11 +0000 (21:00 +0200)]
build: image: drop unused check-kernel-size recipe

The recipe check-kernel-size is not used in the entire tree. Instead,
we already check the size of the kernel image in Device/Build/kernel
in image.mk via check-size function if KERNEL_SIZE is defined.

Therefore, drop the function. Using it would be redundant anyway.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoLICENSE: use updated GNU copy
Paul Spooren [Wed, 29 Jul 2020 09:32:28 +0000 (23:32 -1000)]
LICENSE: use updated GNU copy

The current LICENSE file contains some form feed (FF) characters instead
of recently popular line feed (LF) characters. Also update to the latest
address of the Free Software Foundation. Lastly center some captions, as
suggested by the official GNU LICENSE distribution[0].

Historical changes of GPL-2.0 LICENSE file are availalbe[1].

[0]: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
[1]: https://github.com/pombredanne/gpl-history

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agoscripts/checkpatch.pl: fix README.md file name after rename
Adrian Schmutzler [Sun, 2 Aug 2020 13:51:39 +0000 (15:51 +0200)]
scripts/checkpatch.pl: fix README.md file name after rename

checkpatch.pl uses a list of files to detect the root OpenWrt
directory. This includes README, which has been renamed to
README.md in the previous commit.

Update the file name in checkpatch.pl to prevent errors like the
following when running the script:

   Must be run from the top-level dir. of a OpenWrt tree

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoREADME: port to 21st century
Paul Spooren [Thu, 16 Jul 2020 08:19:37 +0000 (22:19 -1000)]
README: port to 21st century

The README is no longer important to only developers but also users.
Reflect that by adding valuable information for everyone new to OpenWrt!

Sunshine

Signed-off-by: Paul Spooren <mail@aparcar.org>
[remove trailing whitespace and empty line at EOF]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79/mikrotik: create shared device definitions for nor and nand
Adrian Schmutzler [Sat, 1 Aug 2020 15:39:33 +0000 (17:39 +0200)]
ath79/mikrotik: create shared device definitions for nor and nand

Move the image preparation and nand-utils package selection into
common device definitions for NOR/NAND devices.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoopenvpn: revise sample configuration
Magnus Kroken [Mon, 27 Jul 2020 18:34:49 +0000 (20:34 +0200)]
openvpn: revise sample configuration

Update the openvpn sample configurations to use modern options in favor
of deprecated ones, suggest more sane default settings and add some
warnings.

* Add tls_crypt and ncp_disable to the sample configuration
* Replace nsCertType with remote_cert_tls in client sample configuration
* Comment out "option compress", compression should not be preferred
* Advise 2048-bit Diffie-Hellman parameters by default
* Add warnings about compression and use of Blowfish (BF-CBC)

Signed-off-by: Magnus Kroken <mkroken@gmail.com>
4 years agouboot-envtools: ath79: add support for the Nanostation M (XM)
Rui Salvaterra [Sun, 26 Jul 2020 19:04:31 +0000 (20:04 +0100)]
uboot-envtools: ath79: add support for the Nanostation M (XM)

Tested on an AirGrid M2 (AG‑HP‑2G16).

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
4 years agowireguard-tools: allow compiling with MIPS16 instructions
Rui Salvaterra [Fri, 24 Jul 2020 08:02:55 +0000 (09:02 +0100)]
wireguard-tools: allow compiling with MIPS16 instructions

The wg utility compiles and runs without issues in MIPS16 mode, despite setting
PKG_USE_MIPS16:=0 in the makefile. Let's remove this, allowing for a substantial
size reduction of the wg executable. Since wg is a just a configuration utility,
it shouldn't be performance-critical, as the crypto heavy-lifting is done on the
kernel side.

wg sizes for both modes:

MIPS32: 64309 bytes
MIPS16: 42501 bytes

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
4 years agoexfat: add out of tree module
Rosen Penev [Sun, 19 Jul 2020 04:29:58 +0000 (21:29 -0700)]
exfat: add out of tree module

>From an email conversation with the person responsible for upstreaming
the exFAT driver, it seems the staging one in kernel 5.4 is not so
good. Excerpts below.

Namjae Jeon:
Hm... exfat in 5.4 kernel  that we did crap shit long time ago is
contributed by someone who we don't know.
This version is unstable and low quality code. We have been improving
it continuously.
and staging version exfat is removed from linux 5.7 kernel.

linux exfat oot  version is a backport of exfat in linux 5.7 kernel to
support lower version kernel, and it is a real.
You can see the patch history fro linux-exfat-oot.
this version support timezone and boot sector verification feature newly.
and better filesystem structure and much clean code quality that
reviewed by high profile kernel developers. and add many bug fixes.
And this version is officially maintained by me and kernel guys.

I would not recommend to use staging exfat version.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years agostaging: remove staging exfat driver
Rosen Penev [Sun, 19 Jul 2020 04:29:57 +0000 (21:29 -0700)]
staging: remove staging exfat driver

This will be replaced with the driver found in newer kernels.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
4 years agokernel: fix missing TRANSPARENT_HUGEPAGE symbols
Stijn Tintel [Sat, 1 Aug 2020 13:29:24 +0000 (16:29 +0300)]
kernel: fix missing TRANSPARENT_HUGEPAGE symbols

Enabling KERNEL_TRANSPARENT_HUGEPAGE exposes 2 missing symbols:
* CONFIG_READ_ONLY_THP_FOR_FS
* TRANSPARENT_HUGEPAGE_ALWAYS
* TRANSPARENT_HUGEPAGE_MADVISE

The first one was added in 5.4, and is marked experimental there so just
disable it in the generic config.

For the latter two, we should not force the user to use either of them,
so add them as build-configurable kernel options.

Fixes: d1a8217d87bf ("kernel: clean-up build-configurable kernel config symbols")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
4 years agokernel: add missing config symbol
Stijn Tintel [Wed, 29 Jul 2020 20:57:41 +0000 (23:57 +0300)]
kernel: add missing config symbol

This symbol is exposed on ARM64 with EFI enabled in the kernel config.
Currently this happens only on ipq807x, but as there might be new ARM64
targets with EFI in the future it is better to add the symbol to the
generic config.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Jo-Philipp Wich <jo@mein.io>
4 years agokernel: add menuconfig entry for kernel CONFIG_CGROUP_NET_CLASSID
Daniel Golle [Fri, 31 Jul 2020 21:48:49 +0000 (22:48 +0100)]
kernel: add menuconfig entry for kernel CONFIG_CGROUP_NET_CLASSID

It was removed from target defaults though it didn't exist in the
build-systems kernel configuration options. Add it there.

Fixes: d1a8217d87 ("kernel: clean-up build-configurable kernel config symbols")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agomac80211: don't kill wireless daemon on teardown
David Bauer [Fri, 31 Jul 2020 17:52:03 +0000 (19:52 +0200)]
mac80211: don't kill wireless daemon on teardown

Don't kill the wireless daemon on teardown. hostapd as well as
wpa_supplicant are managed by procd which would detect the shutdown of
either process as a crash loop.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agohostapd: fix incorrect service name
David Bauer [Fri, 31 Jul 2020 17:51:51 +0000 (19:51 +0200)]
hostapd: fix incorrect service name

When retrieving the PID for hostapd and wpa_supplicant via ubus the
wrong service name is currently used. This leads to the following error
in the log:

netifd: radio0 (1409): WARNING (wireless_add_process):
executable path /usr/sbin/wpad does not match process  path (/proc/exe)

Fixing the service name retrieves the correct PID and therefore the
warning won't occur.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agogemini: Add swap partition to DNS-313
Linus Walleij [Fri, 17 Jul 2020 15:01:00 +0000 (17:01 +0200)]
gemini: Add swap partition to DNS-313

Sometimes when using the DNS-313 memory usage can peak and
with a simple swap partition we can avoid running into the
roof and invoking the OOM killer. Set this partition to
128MB (twice the size of the memory of the DNS-313).

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
4 years agoapm821xx: disable WNDR4700 5.4 image
Christian Lamparter [Fri, 31 Jul 2020 16:17:34 +0000 (18:17 +0200)]
apm821xx: disable WNDR4700 5.4 image

The compressed image that the buildbots are building is too large for
the netgear uboot and it crashes and soft-bricks the device.

| Uncompressing Kernel Image ...
| LZMA: uncompress or overwrite error 1 - must RESET board to recover

The whole target likely needs to be switched zImage which is a major
hassle due to powerpc's legacy bootwrapper setup as compared to ARM.
So for now, disable the device.

Reported-by: Wiktor Stasiak (FS#3258)
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agokirkwood: use real model names for Linksys devices
Adrian Schmutzler [Fri, 12 Jun 2020 22:36:01 +0000 (00:36 +0200)]
kirkwood: use real model names for Linksys devices

This replaces the internal device names "Audi" and "Viper" with the
real model names, which a user would look for. This makes the
Linksys devices on this target consistent with the names recently
changed for mvebu based on the same idea.

As a consequence, the "viper" device definition is split into two
separate definitions with the correct names for both real models.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>