openwrt/staging/rmilecki.git
4 years agoramips: remove model name from LED labels
Adrian Schmutzler [Sun, 27 Sep 2020 17:40:51 +0000 (19:40 +0200)]
ramips: remove model name from LED labels

Like in the previous patch for ath79 target, this will remove the
"devicename" from LED labels in ramips as well.

The devicename is removed in DTS files and 01_leds, consolidation
of definitions into DTSI files is done where (easily) possible,
and migration scripts are updated.

For the latter, all existing definitions were actually just
devicename migrations anyway. Therefore, those are removed and
a common migration file is created in target base-files. This is
actually another example of how the devicename removal makes things
easier.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobase-files: allow exceptions when removing devicename from LEDs
Adrian Schmutzler [Fri, 2 Oct 2020 12:23:59 +0000 (14:23 +0200)]
base-files: allow exceptions when removing devicename from LEDs

Without the model-based devicename for LEDs, there are still cases
where a third component is required, typically when it refers to
internal "devices" like phys etc. An example are the following two
found on ramips:

  - rt2800soc-phy0::radio
  - rt2800pci-phy0::radio

So far, the rt2800*-phy: prefixes would be removed by the devicename
removal ("migration") script, and the configuration for these LEDs
would be broken.

To address this, this patch allows to add arguments to a call of
remove_devicename_leds, which will be compared against the first
part of the LED names/labels, and then be ignored by the routine,
and thus not removed:

  remove_devicename_leds "rt2800soc-phy0" "rt2800pci-phy0"

This mechanism is supposed to be used when a "devicename" applies
to several devices. If only a single device is affected, it might
be more effective to use a case statement and exclude the device
from migration by that entirely.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agonetfilter: ship nft_chain_nat on 5.1+ kernels
Jo-Philipp Wich [Fri, 2 Oct 2020 12:28:00 +0000 (14:28 +0200)]
netfilter: ship nft_chain_nat on 5.1+ kernels

The former nft_chain_nat_ipv4 and nft_chain_nat_ipv6 modules have been merged
into a common nft_chain_nat module starting with Linux 5.1.

Ensure that this common module is shipped along with kmod-nft-nat on recent
kernels.

While we're at it, also apply version constraints to other nft modules that
have been merged into the core with newer kernels.

Ref: https://bugs.openwrt.org/index.php?do=details&task_id=2815#comment8016
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
4 years agoath79: remove model name from LED labels
Adrian Schmutzler [Sat, 26 Sep 2020 15:31:17 +0000 (17:31 +0200)]
ath79: remove model name from LED labels

Currently, we request LED labels in OpenWrt to follow the scheme

  modelname:color:function

However, specifying the modelname at the beginning is actually
entirely useless for the devices we support in OpenWrt. On the
contrary, having this part actually introduces inconvenience in
several aspects:

  - We need to ensure/check consistency with the DTS compatible
  - We have various exceptions where not the model name is used,
    but the vendor name (like tp-link), which is hard to track
    and justify even for core-developers
  - Having model-based components will not allow to share
    identical LED definitions in DTSI files
  - The inconsistency in what's used for the model part complicates
    several scripts, e.g. board.d/01_leds or LED migrations from
    ar71xx where this was even more messy

Apart from our needs, upstream has deprecated the label property
entirely and introduced new properties to specify color and
function properties separately. However, the implementation does
not appear to be ready and probably won't become ready and/or
match our requirements in the foreseeable future.

However, the limitation of generic LEDs to color and function
properties follows the same idea pointed out above. Generic LEDs
will get names like "green:status" or "red:indicator" then, and
if a "devicename" is prepended, it will be the one of an internal
device, like "phy1:amber:status".

With this patch, we move into the same direction, and just drop
the boardname from the LED labels. This allows to consolidate
a few definitions in DTSI files (will be much more on ramips),
and to drop a few migrations compared to ar71xx that just changed
the boardname. But mainly, it will liberate us from a completely
useless subject to take care of for device support review and
maintenance.
To also drop the boardname from existing configurations, a simple
migration routine is added unconditionally.

Although this seems unfamiliar at first look, a quick check in kernel
for the arm/arm64 dts files revealed that while 1033 lines have
labels with three parts *:*:*, still 284 actually use a two-part
labelling *:*, and thus is also acceptable and not even rare there.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agobase-files: add function to remove devicename from LED labels
Adrian Schmutzler [Sun, 27 Sep 2020 15:25:15 +0000 (17:25 +0200)]
base-files: add function to remove devicename from LED labels

Currently, we request LED labels in OpenWrt to follow the scheme

  modelname:color:function

However, specifying the modelname at the beginning is actually
entirely useless for the devices we support in OpenWrt. In patches
subsequent to this one, we will thus remove the modelname from
the label definitions on various targets.

To migrate the existing definitions from older installations,
a migration script needs to be deployed that does

  modelname:color:function -> color:function

e.g.

  dir-789:green:status -> green:status

This patch introduces two functions that do exactly that:
For each entry in /etc/config/system, the routine will check whether
two (or more) colons are present, and then remove everything up to
(and including) the first colon.

For now, this will be applied unconditionally, i.e. if the function
is called for a device, all labels will be cut like this.

However, for a future case of mixed three-part and two-part labels,
it should not be too hard to provide a function argument with
exceptions to the removal.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolantiq: move dts-v1 statement to top-level DTSI files
Adrian Schmutzler [Thu, 1 Oct 2020 16:08:17 +0000 (18:08 +0200)]
lantiq: move dts-v1 statement to top-level DTSI files

The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In lantiq, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent SoC-based DTSI files already determines the DTS
version, so putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the top-level
SoC-based DTSI files, and removes all other occurences.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes accordingly where necessary.

Changes are applied to files-5.4 only, files-4.19 remains untouched.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agopolicycoreutils: add missing gettext dependency
Paul Spooren [Mon, 28 Sep 2020 19:48:26 +0000 (09:48 -1000)]
policycoreutils: add missing gettext dependency

Add missing build dependency to both host and target build. The `msgfmt`
is required which is missing without gettext-full.

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agoath79: ar8216: make switch register access atomic
Chuanhong Guo [Mon, 21 Sep 2020 06:57:44 +0000 (14:57 +0800)]
ath79: ar8216: make switch register access atomic

reg accesses on integrated ar8229 sometimes fails. As a result, phy read
got incorrect port status and wan link goes down and up mysteriously.
After comparing ar8216 with the old driver, these local_irq_save/restore
calls are the only meaningful differences I could find and it does fix
the issue.
The same changes were added in svn r26856 by Gabor Juhos:
ar71xx: ag71xx: make switch register access atomic

As I can't find the underlying problem either, this hack is broght
back to fix the unstable link issue.
This hack is only suitable for ath79 mdio and may easily break the
driver on other platform. Limit it to ath79-only as a target patch.

Fixes: FS#2216
Fixes: FS#3226
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
4 years agorefpolicy: fix path to setfiles and checkpolicy
Paul Spooren [Tue, 29 Sep 2020 09:09:22 +0000 (23:09 -1000)]
refpolicy: fix path to setfiles and checkpolicy

Directly set path via MAKE vars instead of defning TESTTOOLS. This way
setfiles, which is required by the ImageBuilder, ends up in /host/bin
while checkpolicy can stay in hostpkg/bin.

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agorockchip: rk3328: add compatible to NanoPi R2S ethernet PHY
David Bauer [Mon, 28 Sep 2020 20:57:35 +0000 (22:57 +0200)]
rockchip: rk3328: add compatible to NanoPi R2S ethernet PHY

This adds the compatible property to the NanoPi R2S ethernet PHY node.
Otherwise, the PHY might not be probed, as the PHY ID reads all 0xff
when it is still in reset.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agouboot-rockchip: update NanoPi R2S patches
David Bauer [Mon, 28 Sep 2020 15:55:21 +0000 (17:55 +0200)]
uboot-rockchip: update NanoPi R2S patches

Update the patches required for the NanoPi R2S to match the DTS accepted
for upstream Linux. The U-Boot patch meanwhile is still pending
upstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agomac80211: add support for specifying a per-device scan list
Felix Fietkau [Mon, 28 Sep 2020 13:12:56 +0000 (15:12 +0200)]
mac80211: add support for specifying a per-device scan list

This is useful to bring up multiple client mode interfaces on a single
channel much faster without having to scan through a lot of channels

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: backport sched_set_fifo_low
Felix Fietkau [Mon, 28 Sep 2020 13:12:28 +0000 (15:12 +0200)]
mac80211: backport sched_set_fifo_low

This is needed for newer mt76 updates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: another fix for the sta connection monitor
Felix Fietkau [Mon, 28 Sep 2020 13:11:51 +0000 (15:11 +0200)]
mac80211: another fix for the sta connection monitor

Make the code more closely match the original behavior

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agorefpolicy: mark as architecture independent
Daniel Golle [Tue, 29 Sep 2020 03:02:03 +0000 (04:02 +0100)]
refpolicy: mark as architecture independent

Use PKGARCH:=all to declare this package to be free of any
architecture dependent code.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoconfig: prepare for choice of SELinux policy
Daniel Golle [Tue, 29 Sep 2020 01:47:25 +0000 (02:47 +0100)]
config: prepare for choice of SELinux policy

Only 'targeted' from refpolicy is supported for now.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoimage.mk: evaluate /etc/selinux/config to choose SELinux policy
Daniel Golle [Tue, 29 Sep 2020 00:46:25 +0000 (01:46 +0100)]
image.mk: evaluate /etc/selinux/config to choose SELinux policy

Instead of hardcoding 'targeted' policy, evaluate /etc/selinux/config
in rootfs to choose according to which policy files in the rootfs got
to be labeled.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agopolicycoreutils: install to host/bin not hostpkg
Paul Spooren [Mon, 28 Sep 2020 08:37:53 +0000 (22:37 -1000)]
policycoreutils: install to host/bin not hostpkg

By installing policycoreutils to host/bin it is also available within
the ImageBuilder and SDK, allowing to correctly label both filesystems
and packages.

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agoimagebuilder: add missing libfakeroot files
Paul Spooren [Sun, 27 Sep 2020 21:50:40 +0000 (11:50 -1000)]
imagebuilder: add missing libfakeroot files

The `libfakeroot` files are currently missing in the ImageBuilder. As
`fakeroot` is always built, copy those files unconditionally.

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agotoolchain: nasm: update to 2.15.05
Daniel Golle [Mon, 28 Sep 2020 22:40:27 +0000 (23:40 +0100)]
toolchain: nasm: update to 2.15.05

Compile-tested libx264 and ffmpeg with x86-asm, worked fine.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agorockchip: refresh NanoPi R2S patches
David Bauer [Sun, 13 Sep 2020 04:45:52 +0000 (06:45 +0200)]
rockchip: refresh NanoPi R2S patches

Update the patches for the NanoPi R2S to the v3 sent (and accepted)
upstream.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agoath10k-firmware: package Wave1 from linux-firmware
David Bauer [Sun, 27 Sep 2020 08:11:11 +0000 (10:11 +0200)]
ath10k-firmware: package Wave1 from linux-firmware

The firmware for Wave1 chips was updated to the latest release
10.2.4-1.0-00047 at the end of 2019 (commit 513d70cc50b).
Package firmware for these chips from linux-firmware.

This avoids downloading the ath10k-firmware repository.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agokernel: bump 5.4 to 5.4.68
John Audia [Sat, 26 Sep 2020 17:30:16 +0000 (13:30 -0400)]
kernel: bump 5.4 to 5.4.68

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x, ath79/generic, bcm72xx/bcm2711
Run-tested: ipq806x (R7800)

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
4 years agoath79: add WiFi migration for AR913x
David Bauer [Sat, 26 Sep 2020 20:14:32 +0000 (22:14 +0200)]
ath79: add WiFi migration for AR913x

This adds the automatic WiFi path migration for AR913x platforms.

Tested on: TP-Link TL-WA901ND v2

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agoopenssl: bump to 1.1.1h
Eneas U de Queiroz [Sun, 27 Sep 2020 22:01:27 +0000 (19:01 -0300)]
openssl: bump to 1.1.1h

This is a bug-fix release.  Patches were refreshed.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
4 years agoath79: add support for Hak5 WiFi Pineapple NANO
Piotr Dymacz [Wed, 19 Aug 2020 14:01:25 +0000 (16:01 +0200)]
ath79: add support for Hak5 WiFi Pineapple NANO

Hak5 WiFi Pineapple NANO is an "USB dongle" device dedicated for Wi-Fi
pentesters. This device is based on Atheros AR9331 and AR9271. Support
for it was first introduced in 950b278c81 (ar71xx). FCC ID: 2AB87-NANO.

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR1)
- 16 MB of flash (SPI NOR)
- 1T1R 2.4 GHz Wi-Fi (AR9331)
- 1T1R 2.4 GHz Wi-Fi (AR9271L), with ext. PA and LNA (Qorvo RFFM4203)
- 2x RP-SMA antenna connectors
- 1x USB 2.0 to 10/100 Ethernet bridge (ASIX AX88772A)
- integrated 4-port USB 2.0 HUB: Alcor Micro AU6259:
  - 1x USB 2.0
  - 1x microSD card reader (Genesys Logic GL834L)
  - Atheros AR9271L
- 1x LED, 1x button
- UART (4-pin, 2 mm pitch) header on PCB
- USB 2.0 Type-A plug for power and AX88772A

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for Hak5 Packet Squirrel
Piotr Dymacz [Wed, 19 Aug 2020 13:10:04 +0000 (15:10 +0200)]
ath79: add support for Hak5 Packet Squirrel

Hak5 Packet Squirrel is a pocket-sized device dedicated for pentesters
(MITM attacks). This device is based on Atheros AR9331 but it lacks
WiFi. Support for it was first introduced in 950b278c81 (ar71xx).

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x RJ45 10/100 Mbps Ethernet (AR9331)
- 1x USB 2.0
- 1x RGB LED, 1x button, 1x 4-way mechanical switch
- 1x Micro USB Type-B for main power input

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for Hak5 LAN Turtle
Piotr Dymacz [Wed, 19 Aug 2020 12:20:54 +0000 (14:20 +0200)]
ath79: add support for Hak5 LAN Turtle

Hak5 LAN Turtle is an "USB Ethernet Adapter" shaped device dedicated for
sysadmins and pentesters. This device is based on Atheros AR9331 but it
lacks WiFi. Support for it was first introduced in 950b278c81 (ar71xx).

Two different versions of this device exist and it's up to the user to
install required drivers (generic image supports only common features):

- LAN Turtle 3G with Quectel UG96 3G modem
- LAN Turtle SD with microSD card reader (Alcorlink AU6435R)

Specifications:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 1x RJ45 10/100 Mbps Ethernet (AR9331)
- 1x USB 2.0 to 10/100 Ethernet bridge (Realtek RTL8152B)
- 2x LED (power, system), 1x button (inside, on the PCB)
- USB 2.0 Type-A plug for power and RTL8152B

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ath79: add support for ALFA Network N5Q
Piotr Dymacz [Tue, 12 May 2020 21:44:44 +0000 (23:44 +0200)]
uboot-envtools: ath79: add support for ALFA Network N5Q

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for ALFA Network N5Q
Piotr Dymacz [Tue, 12 May 2020 21:44:10 +0000 (23:44 +0200)]
ath79: add support for ALFA Network N5Q

ALFA Network N5Q is a successor of previous model, the N5 (outdoor
CPE/AP, based on Atheros AR7240 + AR9280). New version is based on
Atheros AR9344.

Support for this device was first introduced in 4b0eebe9df (ar71xx
target) but users are advised to migrate from ar71xx target without
preserving settings as ath79 support includes some changes in network
and LED default configuration. They were aligned with vendor firmware
and recently added N2Q model (both Ethernet ports as LAN, labelled as
LAN1 and LAN2).

Specifications:

- Atheros AR9344
- 550/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet, with passive PoE support (24 V)
- 2T2R 5 GHz Wi-Fi, with ext. PA (RFPA5542) and LNA, up to 27 dBm
- 2x IPEX/U.FL or MMCX antenna connectors (for PCBA version)
- 8x LED (7 are driven by GPIO)
- 1x button (reset)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- header for optional 802.3at/af PoE module
- DC jack for main power input (optional, not installed by default)
- UART (4-pin, 2.54 mm pitch) header on PCB
- LEDs (2x 5-pin, 2.54 mm pitch) header on PCB

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on OpenWrt/LEDE. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ath79: add support for ALFA Network N2Q
Piotr Dymacz [Fri, 18 Sep 2020 17:02:29 +0000 (19:02 +0200)]
uboot-envtools: ath79: add support for ALFA Network N2Q

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for ALFA Network N2Q
Piotr Dymacz [Fri, 18 Sep 2020 16:55:23 +0000 (18:55 +0200)]
ath79: add support for ALFA Network N2Q

ALFA Network N2Q is an outdoor N300 AP/CPE based on Qualcomm/Atheros
QCA9531 v2. This model is a successor of the old N2 which was based
on Atheros AR7240. FCC ID: 2AB8795311.

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 650/400/200 MHz (CPU/DDR/AHB)
- 128 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2T2R 2.4 GHz Wi-Fi with ext. PA (Skyworks SE2623L) and LNA
- 2x 10/100 Mbps Ethernet with passive PoE input in one port (24 V)
- PoE pass through in second port (controlled by GPIO)
- support for optional 802.3af/at PoE module
- 1x mini PCIe slot (PCIe bus, extra 4.2 V for high power cards)
- 2x IPEX/U.FL connectors on PCB
- 1x USB 2.0 mini Type-B (power controlled by GPIO)
- 8x LED (7 of them are driven by GPIO)
- 1x button (reset)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- UART (4-pin, 2.54 mm pitch) header on PCB
- LEDs (2x 5-pin, 2.54 mm pitch) header on PCB

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ath79: add support for ALFA Network R36A
Piotr Dymacz [Thu, 2 Jul 2020 05:03:49 +0000 (07:03 +0200)]
uboot-envtools: ath79: add support for ALFA Network R36A

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for ALFA Network R36A
Piotr Dymacz [Thu, 2 Jul 2020 05:03:33 +0000 (07:03 +0200)]
ath79: add support for ALFA Network R36A

ALFA Network R36A is a successor of the previous model, the R36 (Ralink
RT3050F based). New version is based on Qualcomm/Atheros QCA9531 v2, FCC
ID: 2AB879531.

Support for this device was first introduced in af8f0629df (ar71xx
target). When updating from previous release (and/or ar71xx target),
user should only adjust the WAN LED trigger type (netdev in ar71xx,
switch port in ath79).

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 650/400/200 MHz (CPU/DDR/AHB)
- 128 MB (R36AH/-U2) or 64 MB (R36A) of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet
- Passive PoE input support (12~36 V) in RJ45 near DC jack
- 2T2R 2.4 GHz Wi-Fi with Qorvo RFFM8228P FEM
- 2x IPEX/U.FL connectors on PCB
- 1x USB 2.0 Type-A
- 1x USB 2.0 mini Type-B in R36AH-U2 version
- USB power is controlled by GPIO
- 6/7x LED (5/6 of them are driven by GPIO)
- 2x button (reset, wifi/wps)
- external h/w watchdog (EM6324QYSP5B, enabled by default)
- DC jack with lock, for main power input (12 V)
- UART (4-pin, 2.54 mm pitch) header on PCB

Optional/additional features in R36A series (R36A was the first model):
- for R36AH:    USB 2.0 hub*
- for R36AH-U2: USB 2.0 hub*, 1x USB 2.0 mini Type-B, one more LED

*) there are at least three different USB 2.0 hub in R36AH/-U2 variants:
- Terminus-Tech FE 1.1
- Genesys Logic GL852G
- Genesys Logic GL850G (used in latests revision)

Flash instruction:

You can use sysupgrade image directly in vendor firmware which is based
on LEDE/OpenWrt. Alternatively, you can use web recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with one of RJ45 ports, press the reset button, power up
   device, wait for first blink of all LEDs (indicates network setup),
   then keep button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ath79: add support for Samsung WAM250
Piotr Dymacz [Fri, 18 Sep 2020 12:11:23 +0000 (14:11 +0200)]
uboot-envtools: ath79: add support for Samsung WAM250

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for Samsung WAM250
Piotr Dymacz [Fri, 18 Sep 2020 12:11:13 +0000 (14:11 +0200)]
ath79: add support for Samsung WAM250

Samsung WAM250 is a dual-band (selectable, not simultaneous) wireless
hub, dedicated for Samsung Shape Wireless Audio System. The device is
based on Atheros AR9344 (FCC ID: A3LWAM250). Support for this device
was first introduced in e58e49bdbe (ar71xx target).

Specifications:

- Atheros AR9344
- 560/450/225 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of flash (SPI NOR)
- 2x 10/100 Mbps Ethernet
- 2T2R 2.4/5 GHz Wi-Fi, with ext. PA (SE2598L, SE5003L) and LNA
- 1x USB 2.0
- 4x LED (all are driven by GPIO)
- 2x button (reset, wps/speaker add)
- DC jack for main power input (14 V)
- UART header on PCB (J4, RX: 3, TX: 5)

Flash instruction:

This device uses dual-image (switched between upgrades) with a common
jffs2 config partition. Fortunately, there is a way to disable this mode
so that more flash space can be used by OpenWrt image.

You can easily access this device over telnet, using root/root
credentials (the same also work for serial console access).

1. Make sure that your device uses second (bootpart=2) image using
   command: "fw_printenv bootpart".
2. If your device uses first image (bootpart=1), perform upgrade to the
   latest vendor firmware (after the update, device should boot from
   second partition) using web gui (default login: admin/1234567890).
3. Rename "sysupgrade" image to "firmware.bin", download it (you can use
   wget, tftp or ftpget) to "/tmp" and issue below commands:

   mtd_debug erase /dev/mtd3 0 $(wc -c /tmp/firmware.bin | awk -F' ' '{print $1}')
   mtd_debug write /dev/mtd3 0 $(wc -c /tmp/firmware.bin)
   fw_setenv bootpart
   fw_setenv bootcmd "bootm 0x9f070000"
   reboot

Revert to vendor firmware instruction:

1. Download vendor firmware to "/tmp" device and issue below commands:

   fw_setenv bootpart 1
   sysupgrade -n -F SS_BHUB_v2.2.05.bin

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: image: don't combine kmod-usb2 with kmod-usb-chipidea2
Piotr Dymacz [Fri, 18 Sep 2020 11:56:53 +0000 (13:56 +0200)]
ath79: image: don't combine kmod-usb2 with kmod-usb-chipidea2

Include of kmod-usb-chipidea2 is enough to support USB host mode in
devices with Atheros AR9331 WiSOC.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ath79: add support for Wallys DR531
Piotr Dymacz [Sun, 6 Sep 2020 07:53:12 +0000 (09:53 +0200)]
uboot-envtools: ath79: add support for Wallys DR531

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for Wallys DR531
Piotr Dymacz [Sun, 6 Sep 2020 07:52:43 +0000 (09:52 +0200)]
ath79: add support for Wallys DR531

Wallys DR531 is based on Qualcomm Atheros QCA9531 v2. Support for this
device was first introduced in e767980eb8 (ar71xx target).

Specifications:

- Qualcomm/Atheros QCA9531 v2
- 550/400/200 MHz (CPU/DDR/AHB)
- 2x 10/100 Mbps Ethernet
- 64 MB of RAM (DDR2)
- 8 MB of flash (SPI NOR)
- 2T2R 2.4 GHz Wi-Fi, with external PA (SE2576L), up to 30 dBm
- 2x MMCX connectors (optional IPEX/U.FL)
- mini PCIe connector (PCIe/USB buses and mini SIM slot)
- 7x LED, 1x button, 1x optional buzzer
- UART, JTAG and LED headers on PCB

Flash instruction (do it under U-Boot, using UART):

  tftpb 0x80060000 openwrt-ath79-...-dr531-squashfs-sysupgrade.bin
  erase 0x9f050000 +$filesize
  cp.b $fileaddr 0x9f050000 $filesize
  setenv bootcmd "bootm 0x9f050000"
  saveenv && reset

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agouboot-envtools: ath79: add support for ALFA Network AP121FE
Piotr Dymacz [Sat, 21 Mar 2020 22:20:38 +0000 (23:20 +0100)]
uboot-envtools: ath79: add support for ALFA Network AP121FE

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: add support for ALFA Network AP121FE
Piotr Dymacz [Sat, 21 Mar 2020 22:20:31 +0000 (23:20 +0100)]
ath79: add support for ALFA Network AP121FE

The AP121FE is a slightly modified version of already supported AP121F
model (added to ar71xx in 0c6165d21a and to ath79 in 334bbc5198).

The differences in compare to AP121F:

- no micro SD card reader
- USB data lines are included in Type-A plug
- USB bus switched to device/peripheral mode (permanently, in bootstrap)

Other than that, specifications are the same:

- Atheros AR9331
- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR1)
- 16 MB of flash (SPI NOR)
- 1x 10/100 Mbps Ethernet
- 1T1R 2.4 GHz Wi-Fi, up to 15 dBm
- 1x IPEX/U.FL connector, internal PCB antenna
- 3x LED, 1x button, 1x switch
- 4-pin UART header on PCB (2 mm pitch)
- USB 2.0 Type-A plug (power and data)

Flash instruction (under U-Boot web recovery mode):

1. Configure PC with static IP 192.168.1.2/24.
2. Connect PC with RJ45 port, press the reset button, power up device,
   wait for first blink of all LEDs (indicates network setup), then keep
   button for 3 following blinks and release it.
3. Open 192.168.1.1 address in your browser and upload sysupgrade image.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: enable usbgadget feature
Piotr Dymacz [Sun, 16 Aug 2020 15:46:20 +0000 (17:46 +0200)]
ath79: enable usbgadget feature

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoath79: increase SPI clock and enable fast-read on AP121F
Piotr Dymacz [Sun, 16 Aug 2020 15:44:32 +0000 (17:44 +0200)]
ath79: increase SPI clock and enable fast-read on AP121F

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agotarget.mk: enable iwinfo by default with any wpad variant
Piotr Dymacz [Tue, 24 Mar 2020 23:02:08 +0000 (00:02 +0100)]
target.mk: enable iwinfo by default with any wpad variant

There are currently several variants of 'wpad' package but the 'iwinfo'
is included by default only if 'wpad', 'wpad-{basic*,mini}' or 'nas'
packages are included in {DEVICE,DEFAULT}_PACKAGES. Use 'wpad-*'
pattern to include 'iwinfo' with any 'wpad' variant.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
4 years agoramips: merge ethernet setup for RT-AC51U/RT-AC54U
Adrian Schmutzler [Sun, 27 Sep 2020 22:04:33 +0000 (00:04 +0200)]
ramips: merge ethernet setup for RT-AC51U/RT-AC54U

The ethernet setup/label MAC address for RT-AC51U and RT-AC54U are
the same, so move them into the shared DTSI.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agolibsepol: break out chkcon utility
Daniel Golle [Sun, 27 Sep 2020 16:21:23 +0000 (17:21 +0100)]
libsepol: break out chkcon utility

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agopolicycoreutils: fix host utils rpath and bin directory
Daniel Golle [Sun, 27 Sep 2020 16:10:34 +0000 (17:10 +0100)]
policycoreutils: fix host utils rpath and bin directory

'setfiles' and others should be installed to $(STAGING_DIR_HOSTPKG)/bin
rather than $(...)/sbin which isn't in PATH.
Also using -Wl,-rpath to set library search location instead of setting
LD_LIBRARY_PATH when calling setfiles in image.mk.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agoath79: fix LED labels for PowerCloud CAP324
Adrian Schmutzler [Sun, 27 Sep 2020 13:51:18 +0000 (15:51 +0200)]
ath79: fix LED labels for PowerCloud CAP324

The order of function and color in the labels in inverted for the
LAN LEDs. Fix it.

Fixes: 915966d86121 ("ath79: Port PowerCloud Systems CAP324 support")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: fix rssi-low LED for My Net Range Extender
Adrian Schmutzler [Sun, 27 Sep 2020 13:21:31 +0000 (15:21 +0200)]
ath79: fix rssi-low LED for My Net Range Extender

The LED color was missing in 01_leds.

Fixes: 745dee11ac78 ("ath79: add support for WD My Net Wi-Fi Range
Extender")

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoipq40xx: tidy up device recipe for Edgecore OAP100
Sungbo Eo [Sat, 26 Sep 2020 08:49:35 +0000 (17:49 +0900)]
ipq40xx: tidy up device recipe for Edgecore OAP100

* split up DEVICE_TITLE into DEVICE_{VENDOR,MODEL}
* use SOC instead of DEVICE_DTS

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
4 years agoramips: move dts-v1 statement to top-level DTSI files
Adrian Schmutzler [Fri, 25 Sep 2020 20:20:56 +0000 (22:20 +0200)]
ramips: move dts-v1 statement to top-level DTSI files

The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In ramips, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent mtxxxx/rtxxxx DTSI files already determines the DTS
version, so putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the top-level
SoC-based DTSI files, and removes all other occurences.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes accordingly where necessary.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: move dts-v1 statement to ath79.dtsi
Adrian Schmutzler [Fri, 25 Sep 2020 19:52:57 +0000 (21:52 +0200)]
ath79: move dts-v1 statement to ath79.dtsi

The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In ath79, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent ath79.dtsi file already determines the DTS version, so
putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the parent
ath79.dtsi, which is (indirectly) included by all DTS files. All
other occurences are removed.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes to make sure the ath79.dtsi or its
descendants are always included first.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: move ath79-clk.h include to ath79.dtsi
Adrian Schmutzler [Fri, 25 Sep 2020 21:24:09 +0000 (23:24 +0200)]
ath79: move ath79-clk.h include to ath79.dtsi

ath79.dtsi uses ATH79_CLK_MDIO, so the include

  <dt-bindings/clock/ath79-clk.h>

needs to be moved there.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoipq40xx: tidy up dts-v1 statements
Adrian Schmutzler [Fri, 25 Sep 2020 19:10:41 +0000 (21:10 +0200)]
ipq40xx: tidy up dts-v1 statements

The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

Therefore, adding it to a DTS _and_ a DTSI file is actually wrong,
as it will be present twice then (though the compiler does not
complain about it).

In ipq40xx, the dts-v1 statement is already included in
qcom-ipq4019.dtsi, so we don't have to add it anywhere at all.
However, based on the conditions stated above, this requires
qcom-ipq4019.dtsi to be included as the first file in any DTS(I).

Consequently, this patch removes all cases of dts-v1 for the
ipq40xx target, and moves the includes accordingly where necessary.

While at it, remove a few obviously unneeded includes on the way.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: move engenius_loader_okli recipe before devices
Adrian Schmutzler [Fri, 25 Sep 2020 18:04:54 +0000 (20:04 +0200)]
ath79: move engenius_loader_okli recipe before devices

Move engenius_loader_okli image recipe in front of all Engenius
devices, so adding new device entries will not have them sorted
before the shared recipe.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agogemini: Bring up DSA switches
Linus Walleij [Wed, 9 Sep 2020 21:10:11 +0000 (23:10 +0200)]
gemini: Bring up DSA switches

First group the interfaces on the DSA switch into the
right LAN/WAN groups. Tested successfully on the
D-Link DIR-685 with the RTL8366RB DSA switch.

The RTL8366RB is DSA custom tagged and now handled
by the kernel tag parser. (Backported.)

The Vitesse switches are not capable of supporting
DSA per-port tagging. We suspect they must be handled
using some custom VLAN set-up.

Cc: Pawel Dembicki <paweldembicki@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
[sorted devices alphabetically]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoipq40xx: fix DTS warning in qcom-ipq4029-gl-s1300.dts
Christian Lamparter [Fri, 25 Sep 2020 17:02:09 +0000 (19:02 +0200)]
ipq40xx: fix DTS warning in qcom-ipq4029-gl-s1300.dts

.dts:226.17-230.4: Warning (spi_bus_reg): /soc/spi@78b6000/spi@1:
SPI bus unit address format error, expected "0"

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoipq40xx: fix DTS warning in qcom-ipq4019-cm520-79f.dts
Christian Lamparter [Fri, 25 Sep 2020 16:57:50 +0000 (18:57 +0200)]
ipq40xx: fix DTS warning in qcom-ipq4019-cm520-79f.dts

.dts:121.4-14: Warning (reg_format): /led_spi/led_gpio@0:reg: \
property has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1)
.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
.dts:119.24-126.5: Warning (avoid_default_addr_size): /led_spi/led_gpio@0: \
Relying on default #size-cells value

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agobcm53xx: add Cisco Meraki MR32
Christian Lamparter [Sat, 29 Aug 2020 21:48:00 +0000 (23:48 +0200)]
bcm53xx: add Cisco Meraki MR32

This patch adds support for Cisco Meraki MR32.
The unit was donated by Chris Blake. Thank you!

WARNING:
Only the 1x1:1 abgn Air Marshal WIPS wifi is currently supported by b43:
 b43-phy2: Found PHY: Analog 9, Type 4 (N), Revision 16
 b43-phy2: Found Radio: Manuf 0x17F, ID 0x2057, Revision 9, Version 1
 b43-phy2: Loading firmware version 784.2 (2012-08-15 21:35:19)
 and only as 802.11ABG!

while WIFI1 and WIFI2 (both BCM4352) are not:
 b43-phy0: Broadcom 4352 WLAN found (core revision 42)
 b43-phy0 ERROR: FOUND UNSUPPORTED PHY (Analog 12, Type 11 (AC), Revision 1)

Hardware Highlights:

SoC: Broadcom BCM53016A1 (1 GHz, 2 cores)
RAM: 128 MiB
NAND: 128 MiB Spansion S34ML01G2 (~114 MiB useable)
ETH: 1GBit Ethernet Port - PoE
WIFI1: Broadcom BCM43520 an+ac (2x2:2 - id: 0x4352)
WIFI2: Broadcom BCM43520 bgn (2x2:2 - id: 0x4352)
WIFI3: Broadcom BCM43428 abgn (1x1:1 - id: 43428)

BLE: Broadcom BCM20732 (ttyS1)
LEDS:   1 x Programmable RGB Status LED (driven by a PWM)
1 x White LED (GPIO)
1 x Orange LED Fault Indicator (GPIO)
2 x LAN Activity / Speed LEDs (On the RJ45 Port)
BUTTON: one Reset button
MISC:   AT24C64 8KiB EEPROM (i2c - stores Ethernet MAC + Serial#!)
ina219 hardware monitor (i2c)
Kensington Lock

SERIAL:
WARNING: The serial port needs a TTL/RS-232 3V3 level converter!
The Serial setting is 115200-8-N-1. The board has a populated
right angle 1x4 0.1" pinheader.
The pinout is: VCC, RX, TX, GND. (Use a multimeter)

Flashing needs a serial adaptor (due to the lack of a working dropbear on
the original firmware).

This flashing procedure for the MR32 was tested with firmware:
"r23-149867:150252-aacharya".

0. Create a seperate Ethernet LAN which does not have access to the internet.
   Ideally use 192.168.1.2 for your PC. Make sure to reserve 192.168.1.1 it
   will be used later on by the OpenWrt firmware. The original Meraki firmware
   will likely try to setup the network via DHCP Discovery, so make sure your
   PC is running a DHCP-Server (i.e.: dnsmasq)
   '# dnsmasq -i eth# -F 192.168.1.5,192.168.1.50
   Furthermore, the PC needs a supported ssh/http/ftp server in order to
   retrieve the initramfs + dtb file

1. Disassemble the MR32 device by removing all screws (4 screws are located
   under the 4 rubber feets!) and prying open the plastic covers without
   breaking the plastic retention clips. Once inside, remove all the screws
   on the outer metal shielding to get to the PCB. It's not necessary to
   remove the antennas!

2. Connect the serial cable to the serial header.

3. Partially reassemble the outer metal shielding to ensure that the SoC
   has a proper heat sink.

4. Connect the Ethernet patch cable to the device and the power cable.

5. Wait for the device to boot and enter the root shell.
   (rooting is not discussed in detail here please refer to
   Chris Blake - "pwning the meraki mr18" blog post:
   <https://servernetworktech.com/2016/02/pwning-the-meraki-mr18/>
   (The same method works with the MR32's r23-149867:150252-aacharya)

   Wait for the MR32 to enter the "<Meraki>" prompt and enter:
   <Meraki> odm serial_num read
   (Verify that it matches what's on the S/N Sticker on the back!)
   <Meraki> odm serial_num write Q2XX-XXXX-XXXV
   <Meraki> odm serial_num read
   (Verify that the S/N has changed - and the LED start to flash)

   now to flash the firmware:
   <Meraki> odm firmware part.safe "http://192.168.1.2/mr32-initramfs.bin"

Once OpenWrt booted use sysupgrade to permanently install
OpenWrt. To do this: Download the latest sysupgrade.bin file
for the MR32 to the device and use sysupgrade *sysupgrade.bin
to install it.

WARNING: DO NOT DELETE the "storage" ubi volume!

To flash later MR32 Firmwares like r25-201804051805-G885d6d78-dhow-rel
requires in-circut-i2c tools to access the I2C EEPROM AT24C64 next to
the SoC. The idea is pretty much the same as from Step 5 from above:
Change the serial number to Q2XXXXXXXXXV (should be around 0x7c), then
attach a serial cable, ethernet (but make sure the device can't reach
the internet!) hit "s" (the small s!) during boot to enter the root-shell
and add the following commands to the /storage/config there:

serial_allow_odm true
serial_access_enabled true
serial_access_check false
valid_config true

and then hit exit to let it finish booting.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agokernel: package bcm53xx i2c module
Christian Lamparter [Sun, 30 Aug 2020 01:04:42 +0000 (03:04 +0200)]
kernel: package bcm53xx i2c module

The BCM5301x SoCs do have i2c. Since this is only
being used by the Meraki MR32, this will be packaged
as a module.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agokernel: add default for new config symbols
Christian Lamparter [Sun, 30 Aug 2020 01:10:44 +0000 (03:10 +0200)]
kernel: add default for new config symbols

Provide disabled defaults for I2C_SLAVE_EEPROM and IPMB_DEVICE_INTERFACE.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agobcm53xx: backport uart2 and pcie2 device-nodes
Christian Lamparter [Sat, 29 Aug 2020 21:23:32 +0000 (23:23 +0200)]
bcm53xx: backport uart2 and pcie2 device-nodes

These have made their way into -next. This patch
also includes the portion of the bcm53xx kernel
patch refreshes as the hunks in
302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch
moved slightly due to the added nodes.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agobcm53xx: enable PWM for bcm53xx
Christian Lamparter [Sat, 29 Aug 2020 20:53:18 +0000 (22:53 +0200)]
bcm53xx: enable PWM for bcm53xx

The Meraki MR32 (BCM53016A1) uses the pwm to drive the
tricolor LED. The driver has been available in upstream
for a long time. Only the Device-Tree definition was
missing, but it has been queued recently.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agobuild: define PWM_SUPPORT arch feature flag
Christian Lamparter [Sat, 29 Aug 2020 21:07:28 +0000 (23:07 +0200)]
build: define PWM_SUPPORT arch feature flag

As the PWM has its own sub-system in the Linux kernel,
I think it should be handled in the same way as GPIO, RTC, PCI...

This patch introduces a specific feature flag "pwm" and the
"leds-pwm" kernel module as the first customer.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoscripts: mkits.sh make it possible to specify fdt@#
Christian Lamparter [Sat, 29 Aug 2020 20:48:49 +0000 (22:48 +0200)]
scripts: mkits.sh make it possible to specify fdt@#

Some bootloaders are really keen on just one special
fdt in a multi-image fit image. This is a problem, because
currently this is fixed to "fdt@1".

This patch introduces a new device variable:
DEVICE_FDT_NUM that allows to specify the right
fdt number.

If the value is absent "1" will be chosen.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoipq40xx: Add support for Linksys MR8300 (Dallas)
Hans Geiblinger [Wed, 9 Sep 2020 22:45:02 +0000 (18:45 -0400)]
ipq40xx: Add support for Linksys MR8300 (Dallas)

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

Hardware Highlights:

SoC: IPQ4019 at 717 MHz (4 CPUs)
RAM: 512MB RAM

SoC: Qualcomm IPQ4019 at 717 MHz (4 CPUs)
RAM: 512M DDR3
FLASH: 256 MB NAND (Winbond W29N02GV, 8-bit parallel)
ETH: Qualcomm QCA8075 (4x GigE LAN, 1x GigE Internet Ethernet Jacks)
BTN: Reset and WPS
USB: USB3.0, single port on rear with LED
SERIAL: Serial pads internal (unpopulated)
LED: Four status lights on top + USB LED
WIFI1: 2x2:2 QCA4019 2.4 GHz radio on ch. 1-14
WIFI2:  2x2:2 QCA4019 5 GHz radio on ch. 36-64
WIFI3:  2x2:2 QCA9888 5 GHz radio on ch. 100-165

Support is based on the already supported EA8300.
Key differences:
EA8300 has 256MB RAM where MR8300 has 512MB RAM.
MR8300 has a revised top panel LED setup.

Installation:
"Factory" images may be installed directly through the OEM GUI using
URL: https://ip-of-router/fwupdate.html (Typically 192.168.1.1)

Signed-off-by: Hans Geiblinger <cybrnook2002@yahoo.com>
[copied Hardware-highlights from EA8300. Fixed alphabetical order.
fixed commit subject, removed bogus unit-address of keys,
fixed author (used Signed-off-By to From:) ]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoipq40xx: add support for Luma Home WRTQ-329ACN
Tomasz Maciej Nowak [Sun, 30 Aug 2020 11:28:10 +0000 (13:28 +0200)]
ipq40xx: add support for Luma Home WRTQ-329ACN

Luma Home WRTQ-329ACN, also known as Luma WiFi System, is a dual-band
wireless access point.

Specification
SoC: Qualcomm Atheros IPQ4018
RAM: 256 MB DDR3
Flash: 2 MB SPI NOR
       128 MB SPI NAND
WIFI: 2.4 GHz 2T2R integrated
      5 GHz 2T2R integrated
Ethernet: 2x 10/100/1000 Mbps QCA8075
USB: 1x 2.0
Bluetooth: 1x 4.0 CSR8510 A10, connected to USB bus
LEDS: 16x multicolor LEDs ring, controlled by MSP430G2403 MCU
Buttons: 1x GPIO controlled
EEPROM: 16 Kbit, compatible with AT24C16
UART: row of 4 holes marked on PCB as J19, starting count from the side
      of J19 marking on PCB
      1. GND, 2. RX, 3. TX, 4. 3.3V
      baud: 115200, parity: none, flow control: none

The device supports OTA or USB flash drive updates, unfotunately they
are signed. Until the signing key is known, the UART access is mandatory
for installation. The difficult part is disassembling the casing, there
are a lot of latches holding it together.

Teardown
Prepare three thin, but sturdy, prying tools. Place the device with back
of it facing upwards. Start with the wall having a small notch. Insert
first tool, until You'll feel resistance and keep it there. Repeat the
procedure for neighbouring walls. With applying a pressure, one edge of
the back cover should pop up. Now carefully slide one of the tools to
free the rest of the latches.
There's no need to solder pins to the UART holes, You can use hook clips,
but wiring them outside the casing, will ease debuging and recovery if
problems occur.

Installation
1. Prepare TFTP server with OpenWrt initramfs image.
2. Connect to UART port (don't connect the voltage pin).
3. Connect to LAN port.
4. Power on the device, carefully observe the console output and when
   asked quickly enter the failsafe mode.
5. Invoke 'mount_root'.
6. After the overlayfs is mounted run:
     fw_setenv bootdelay 3
   This will allow to access U-Boot shell.
7. Reboot the device and when prompted to stop autoboot, hit any key.
8. Adjust "ipaddr" and "serverip" addresses in U-Boot environment, use
   'setenv' to do that, then run following commands:
     tftpboot 0x84000000 <openwrt_initramfs_image_name>
     bootm 0x84000000
   and wait till OpenWrt boots.
9. In OpenWrt command line run following commands:
     fw_setenv openwrt "setenv mtdids nand1=spi_nand; setenv mtdparts mtdparts=spi_nand:-(ubi); ubi part ubi; ubi read 0x84000000 kernel; bootm 0x84000000"
     fw_setenv bootcmd "run openwrt"
10. Transfer OpenWrt sysupgrade image to /tmp directory and flash it
    with:
     ubirmvol /dev/ubi0 -N ubi_rootfs
     sysupgrade -v -n /tmp/<openwrt_sysupgrade_image_name>
11. After flashing, the access point will reboot to OpenWrt, then it's
    ready for configuration.

Reverting to OEM firmware
1. Execute installation guide steps: 1, 2, 3, 7, 8.
2. In OpenWrt command line run following commands:
     ubirmvol /dev/ubi0 -N rootfs_data
     ubirmvol /dev/ubi0 -N rootfs
     ubirmvol /dev/ubi0 -N kernel
     ubirename /dev/ubi0 kernel1 kernel ubi_rootfs1 ubi_rootfs
     ubimkvol /dev/ubi0 -S 34 -N kernel1
     ubimkvol /dev/ubi0 -S 320 -N ubi_rootfs1
     ubimkvol /dev/ubi0 -S 264 -N rootfs_data
     fw_setenv bootcmd bootipq
3. Reboot.

Known issues
The LEDs ring doesn't have any dedicated driver or application to control
it, the only available option atm is to manipulate it with 'i2cset'
command. The default action after applying power to device is spinning
blue light. This light will stay active at all time. To disable it
install 'i2c-tools' with opkg and run:
 i2cset -y 2 0x48 3 1 0 0 i
The light will stay off until next cold boot.

Additional information
After completing 5. step from installation guide, one can disable asking
for root password on OEM firmware by running:
 sed -e 's/root:x:/root::/' -i /etc/passwd
This is useful for investigating the OEM firmware. One can look
at the communication between the stock firmware and the vendor's
cloud servers or as a way of making a backup of both flash chips.
The root password seems to be constant across all sold devices.
This is output of 'led_ctl' from OEM firmware to illustrate
possibilities of LEDs ring:

Usage: led_ctl [status | upgrade | force_upgrade | version]
       led_ctl solid    COLOR <brightness>
       led_ctl single   COLOR INDEX <brightness 0 - 15>
       led_ctl spinning COLOR <period 1 - 16 (lower = faster)>
       led_ctl fill     COLOR <period 1 - 16 (lower = faster)>
                                             ( default is 5 )
       led_ctl flashing COLOR <on dur 1 - 128>  <off dur 1 - 128>
                              (default is  34)  ( default is 34 )
       led_ctl pulsing  COLOR
COLOR: red, green, blue, yellow, purple, cyan, white

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
[squash "ipq-wifi: add BDFs for Luma Home WRTQ-329ACN" into commit,
changed ubi volumes for easier integration, slightly reworded
commit message, changed ubi volume layout to use standard names all
around]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agoipq40xx: add open-drain support to pinctrl-msm
Brian Norris [Sat, 18 Jul 2020 20:51:47 +0000 (20:51 +0000)]
ipq40xx: add open-drain support to pinctrl-msm

Submitted upstream. Shouldn't affect existing devices, but enables new
device support.

https://lore.kernel.org/linux-gpio/20200703080646.23233-1-computersforpeace@gmail.com/

Currently queued for-next:
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git/commit/?h=for-next&id=13355ca35cd16f5024655ac06e228b3c199e52a9

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
[refresh patch]
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
4 years agodnsmasq: fix handling ignore condition for dnssec
Yousong Zhou [Fri, 25 Sep 2020 02:28:19 +0000 (10:28 +0800)]
dnsmasq: fix handling ignore condition for dnssec

It should return false to indicate that the option should not be ignored

Fixes 064dc1e8 ("dnsmasq: abort when dnssec requested but not
available")

Reported-by: Sami Olmari <sami@olmari.fi>
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
4 years agodnsmasq: support tftp_unique_root in /etc/config/dhcp
W. Michael Petullo [Thu, 24 Sep 2020 02:42:00 +0000 (21:42 -0500)]
dnsmasq: support tftp_unique_root in /etc/config/dhcp

The TFTP server provided by dnsmasq supports serving a select boot image
based on the client's MAC or IP address. This allows an administrator
to activate this feature in /etc/config/dhcp. Here is an example
/etc/config/dhcp that configures dnsmasq with --tftp-unique-root=mac:

...

config dnsmasq
option enable_tftp 1
option tftp_root /usr/libexec/tftpboot
option tftp_unique_root mac

config boot router
option serveraddress 192.168.1.1
option servername tftp.example.com
option filename openwrt-initramfs-kernel.bin

...

With this configuration, dnsmasq will serve
/usr/libexec/tftpboot/00-11-22-33-44-55/openwrt-initramfs-kernel.bin to
the client with MAC address 00:11:22:33:44:55.

Signed-off-by: W. Michael Petullo <mike@flyn.org>
4 years agovxlan: fix rsc config option
Hans Dedecker [Thu, 24 Sep 2020 20:04:39 +0000 (22:04 +0200)]
vxlan: fix rsc config option

Fix route short circuit config option; fixes commit 036221ce5a899eb99ef1c1623fc9460af00a69e7

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agokernel: bump 5.4 to 5.4.67
John Audia [Wed, 23 Sep 2020 12:39:37 +0000 (08:39 -0400)]
kernel: bump 5.4 to 5.4.67

All modifications made by update_kernel.sh

Build system: x86_64
Build-tested: ipq806x, lantiq/xrx200 and ath79/generic
Run-tested: ipq806x (R7800), lantiq (Easybox 904 xDSL)

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
[add test on lantiq]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agovxlan: add extra config options
Hans Dedecker [Mon, 14 Sep 2020 19:55:01 +0000 (21:55 +0200)]
vxlan: add extra config options

Add config options:
  srcportmin/srcportmax : range of port numbers to use as  UDP source ports
                          to communicate to the remote VXLAN tunnel endpoint
  ageing                : lifetime in seconds of FDB entries learnt by the kernel
  maxaddress            : maximum number of FDB entries
  learning              : enable/disable entering unknown source link layer addresses
                          and IP addresses into the VXLAN device FDB.
  rsc                   : enable/disable route short circuit
  proxy                 : enable/disable ARP proxy
  l2miss                : enable/disable netlink LLADDR miss notifications
  l3miss                : enable/disable netlink IP ADDR miss notifications
  gbp                   : enable/disable the Group Policy extension

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
4 years agoramips: add support for Linksys EA7300 v2
J. Scott Heppler [Wed, 23 Sep 2020 02:30:45 +0000 (19:30 -0700)]
ramips: add support for Linksys EA7300 v2

This submission relied heavily on the work of
Santiago Rodriguez-Papa <contact at rodsan.dev>

Specifications:

*  SoC:            MediaTek  MT7621A            (880  MHz  2c/4t)
*  RAM:            Winbond W632GG6MB-12         (256M  DDR3-1600)
*  Flash:          Winbond W29N01HVSINA         (128M  NAND)
*  Eth:            MediaTek  MT7621A            (10/100/1000  Mbps  x5)
*  Radio:          MT7603E/MT7615N              (2.4  GHz  &  5  GHz)
                     4  antennae:  1  internal  and  3  non-deatachable
*  USB:            3.0  (x1)
*  LEDs:
          White    (x1  logo)
          Green    (x6  eth  +  wps)
          Orange   (x5,  hardware-bound)
*  Buttons:
          Reset    (x1)
          WPS      (x1)

Installation:

Flash factory image through GUI.

This might fail due to the A/B nature of this device. When flashing, OEM
firmware writes over the non-booted partition. If booted from 'A',
flashing over 'B' won't work. To get around this, you should flash the
OEM image over itself. This will then boot the router from 'B' and
allow you to flash OpenWRT without problems.

Reverting to factory firmware:

Hard-reset the router three times to force it to boot from 'B.' This is
where the stock firmware resides. To remove any traces of OpenWRT from
your router simply flash the OEM image at this point.

Signed-off-by: J. Scott Heppler <shep971@centurylink.net>
4 years agomt76: update to the latest version
Felix Fietkau [Wed, 23 Sep 2020 06:36:47 +0000 (08:36 +0200)]
mt76: update to the latest version

73301065ac32 mt76: mt7615: reduce maximum VHT MPDU length to 7991
8c47ed12c2be mt76: mt7915: add offchannel condition in switch channel command
1449e602fa10 mt76: Convert to DEFINE_SHOW_ATTRIBUTE
b22977c2727d mt76: mt7663s: remove max_tx_fragments limitation

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agomac80211: update sta connection monitor regression fix
Felix Fietkau [Tue, 22 Sep 2020 11:16:18 +0000 (13:16 +0200)]
mac80211: update sta connection monitor regression fix

Reset the connection monitor on all acked frames

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agotarget: update SPDX license names
Adrian Schmutzler [Tue, 22 Sep 2020 18:49:55 +0000 (20:49 +0200)]
target: update SPDX license names

SPDX moved from GPL-2.0 to GPL-2.0-only and from GPL-2.0+ to
GPL-2.0-or-later. Reflect that in the SPDX license headers.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoscripts: update SPDX license names
Paul Spooren [Tue, 22 Sep 2020 08:46:30 +0000 (22:46 -1000)]
scripts: update SPDX license names

SPDX moved from GPL-2.0 to GPL-2.0-only and from GPL-2.0+ to
GPL-2.0-or-later. Reflect that in the SPDX license headers.

Signed-off-by: Paul Spooren <mail@aparcar.org>
[adjust commit title, update remaining files]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoath79: remove DTS from ATH79 target name
Paul Spooren [Mon, 21 Sep 2020 21:16:09 +0000 (11:16 -1000)]
ath79: remove DTS from ATH79 target name

The legacy ar71xx target is removed and multiple targets use DTS now, so
there is no need to point that out for ATH79 specifically.

Signed-off-by: Paul Spooren <mail@aparcar.org>
4 years agohostapd: ubus: make (B)SSID optional for neighbor report
David Bauer [Sun, 20 Sep 2020 21:49:35 +0000 (23:49 +0200)]
hostapd: ubus: make (B)SSID optional for neighbor report

Make the BSSID and SSID fields optional when configuring a neighbor
report into hostapd.

Both options can now be an empty string. For the BSSID, the first 6 byte
are copied from the neighbor report. For the SSID, the SSID for the
affected hostapd BSS is used.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agohostapd: ubus: send notification instead of event
David Bauer [Tue, 22 Sep 2020 13:25:57 +0000 (15:25 +0200)]
hostapd: ubus: send notification instead of event

Rafal Milecki pointed out that ubus events are meant for low-level ubus
events only (e.g. addition or removal of an object). Higher level
events should happen as notifications on the ubus object itself.

Dispatch BSS events on the main hostapd ubus object instead of
publishing them as ubus events.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agomediatek: mt7622: select bluetooth module instead of firmware
Chuanhong Guo [Tue, 22 Sep 2020 13:13:54 +0000 (21:13 +0800)]
mediatek: mt7622: select bluetooth module instead of firmware

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
4 years agomediatek: build btmtkuart as a kernel module
Chuanhong Guo [Tue, 22 Sep 2020 13:04:02 +0000 (21:04 +0800)]
mediatek: build btmtkuart as a kernel module

bluetooth on mt7622 needs a firmware to start. It can't be built-in or
it tries to load firmware before rootfs is mounted, and then fails.
build it as a kernel module to fix that.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
4 years agohostapd: ubus: fix infinite loop when configuring RRM NR
David Bauer [Mon, 21 Sep 2020 07:18:27 +0000 (09:18 +0200)]
hostapd: ubus: fix infinite loop when configuring RRM NR

The return-code was set, however it was never returned, nor was
the loop interrupted.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agohostapd: send procd event on BSS update
David Bauer [Fri, 18 Sep 2020 13:53:16 +0000 (15:53 +0200)]
hostapd: send procd event on BSS update

Dispatch ubus events also to procd in order to trigger service reloads
on hostapd updates.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agohostapd: send ubus event on BSS update
David Bauer [Thu, 17 Sep 2020 23:11:13 +0000 (01:11 +0200)]
hostapd: send ubus event on BSS update

hostapd will emit a ubus event with the eventname hostapd.<ifname>.<event>
when adding, removing or reloading a BSS.

This way, services which install state (for example the RMM neighbor
list) can on-demand reinstall this information for the BSS without
polling this state.

Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agoodhcpd: number UCI defaults script
Stijn Segers [Sun, 20 Sep 2020 21:03:32 +0000 (23:03 +0200)]
odhcpd: number UCI defaults script

UCI defaults scripts are supposed to be numbered, but odhcpd's lacked numbering, which
turned out to mess up my custom scripts numbered 9[0-9]_*. The idea is to have high number
(custom) scripts executed last. Jow confirmed numbering is the default case, not the
exception (thanks).

Signed-off-by: Stijn Segers <foss@volatilesystems.org>
4 years agopolicycoreutils: fix ALTERNATIVES install location
Daniel Golle [Mon, 21 Sep 2020 17:51:37 +0000 (18:51 +0100)]
policycoreutils: fix ALTERNATIVES install location

Fixes: 7817c831ef ("policycoreutils: break into smaller packages")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agopolicycoreutils: break into smaller packages
Daniel Golle [Mon, 21 Sep 2020 17:12:24 +0000 (18:12 +0100)]
policycoreutils: break into smaller packages

Instead of vaguely describing dependencies in the package description
actually split-up into individual packages, each with their
dependencies expressed accurately.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agolibselinux: split utility packages and add PKG_LICENSE
Daniel Golle [Mon, 21 Sep 2020 12:47:57 +0000 (13:47 +0100)]
libselinux: split utility packages and add PKG_LICENSE

Split utility packages similar to coreutils in packages feed, adding
ALTERNATIVES for those which are also provided by busybox-selinux.
Also add missing license information.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
4 years agomac80211: fix regression in station connection monitor optimization
Felix Fietkau [Mon, 21 Sep 2020 15:56:04 +0000 (17:56 +0200)]
mac80211: fix regression in station connection monitor optimization

When the nulldata frame was acked, the probe send count needs to be reset,
otherwise it will keep increasing until the connection is considered dead,
even though it fine.

Reported-by: Georgi Valkov <gvalkov@abv.bg>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 years agozram-swap: explicitly use mkswap/swapon/swapoff from /sbin
Rui Salvaterra [Fri, 14 Aug 2020 12:21:22 +0000 (13:21 +0100)]
zram-swap: explicitly use mkswap/swapon/swapoff from /sbin

The required BusyBox applets are enabled by default, so we can rely on them
being present in the system. This way, we make sure there are no conflicts
with less featured variants of these same applets which might also be
present in the system.

Fixes: 0bd7dfa3ed60 ("zram-swap: enable swap discard")
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[wrap commit description]
Signed-off-by: David Bauer <mail@david-bauer.net>
4 years agomac80211: select the first available channel for 5GHz interfaces
Davide Fioravanti [Thu, 17 Sep 2020 13:40:27 +0000 (15:40 +0200)]
mac80211: select the first available channel for 5GHz interfaces

Some 5GHz wifi interfaces, especially in Tri-band routers, can't use
channel 36. In these cases, the default configuration for 5GHz
interfaces, once enabled, doesn't work.

This patch selects the first non-disabled channel for 5GHz interfaces.

Signed-off-by: Davide Fioravanti <pantanastyle@gmail.com>
4 years agomediatek: mt7623: use bash for generating bootable images
David Woodhouse [Tue, 8 Sep 2020 08:26:34 +0000 (09:26 +0100)]
mediatek: mt7623: use bash for generating bootable images

It turns out that 'echo -e' isn't portable; it doesn't work in the dash
builtin echo and Ubuntu users are complaining.

I can't even get octal (specified by POSIX) to work consistently because
those  variants of 'echo' which *do* support -e don't seem to interpret
octalwithout it.

I could switch to /bin/echo but using -e with that isn't actually
portable *either* even though it works today.

For now just stick with bash, and use its builtin. We may end up using
something else entirely; perhaps perl.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
4 years agomediatek: fix missing pause on switch port for Banana Pi R2
David Woodhouse [Tue, 8 Sep 2020 08:26:33 +0000 (09:26 +0100)]
mediatek: fix missing pause on switch port for Banana Pi R2

This causes rx drops when running iperf.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
4 years agomediatek: mt7623n-preloader: add preloader for Banana Pi R64
David Woodhouse [Tue, 8 Sep 2020 08:26:32 +0000 (09:26 +0100)]
mediatek: mt7623n-preloader: add preloader for Banana Pi R64

We want to be able to make full system images for this system too, just
as we now can for the MT7623 platforms.

The package directory (mt7623n) is now a bit misnamed as it's overly
specific, but the precise set of platforms which we support this way
is evolving and we'll fix it up when the dust settles and we know what
nomenclature makes most sense.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
4 years agoipq806x: fix support of Edgecore ECW5410 support
Adrian Schmutzler [Sat, 19 Sep 2020 11:16:52 +0000 (13:16 +0200)]
ipq806x: fix support of Edgecore ECW5410 support

This fixes several stylistic and functional errors of the recently
added Edgecore ECW5410:

  - fix call in 11-ath10k-caldata
  - use hex notation in 11-ath10k-caldata
  - remove redundant definitions from DTS that are already in DTSI
  - use proper sorting in image/Makefile
  - use DEVICE_VENDOR/DEVICE_MODEL instead of DEVICE_TITLE
  - use SOC instead of DEVICE_DTS

Fixes: 59f0a0fd839e ("ipq806x: add Edgecore ECW5410 support")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: bump 5.4 to 5.4.66
John Audia [Thu, 17 Sep 2020 13:51:25 +0000 (09:51 -0400)]
kernel: bump 5.4 to 5.4.66

All modifications made by update_kernel.sh/no manual intervention needed

Run-tested: ipq806x (R7800), ath79 (Archer C7v5), x86/64

No dmesg regressions, everything appears functional

Signed-off-by: John Audia <graysky@archlinux.us>
[add run test from PR]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agokernel: fix mtd partition erase < parent_erasesize writes
John Thomson [Wed, 5 Aug 2020 21:13:54 +0000 (07:13 +1000)]
kernel: fix mtd partition erase < parent_erasesize writes

This bug applied where mtd partition end address,
or erase start address, was not cleanly divisible by parent mtd erasesize.

This error would cause the bits following the end of the partition
to the next erasesize block boundary to be erased,
and this partition-overflow data to be written to the partition erase
address (missing additional partition offset address)
of the mtd (top) parent device.

Fixes: FS#2428
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
Tested-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
[shorten commit title, add Fixes, fix kernel 4.19 as well]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
4 years agoarm-trusted-firmware-mvebu: add support for espressobin
Andre Heider [Sat, 2 Nov 2019 12:14:08 +0000 (13:14 +0100)]
arm-trusted-firmware-mvebu: add support for espressobin

Use build variants to cover all 11 hardware options [0]:
espressobin-512mb
espressobin-v3-v5-1gb-1cs
espressobin-v3-v5-1gb-1cs-emmc
espressobin-v3-v5-1gb-2cs
espressobin-v3-v5-1gb-2cs-emmc
espressobin-v3-v5-2gb
espressobin-v3-v5-2gb-emmc
espressobin-v7-1gb
espressobin-v7-1gb-emmc
espressobin-v7-2gb
espressobin-v7-2gb-emmc

CLOCKSPRESET is set to CPU_800_DDR_800 for all builds, which is the only
stable configuration. That actually matches what Globalscale shipped as
CPU_1000_DDR_800 combined with kernel versions < v4.19.42. [1][2].

[0] https://github.com/ARM-software/arm-trusted-firmware/blob/master/docs/plat/marvell/armada/build.rst
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8db82563451f976597ab7b282ec655e4390a4088
[2] https://forum.armbian.com/topic/10335-espressobin-update-to-585-results-in-kernel-panic/?tab=comments#comment-79916

Signed-off-by: Andre Heider <a.heider@gmail.com>