openwrt/staging/rmilecki.git
3 years agobuild: use numeric uid/gid on cpio calls
Felix Fietkau [Wed, 3 Mar 2021 15:09:04 +0000 (16:09 +0100)]
build: use numeric uid/gid on cpio calls

There are systems that don't have the 'root' group, so don't rely on host
specific user/group names

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agoarm-trusted-firmware-mediatek: remove {e,sd}mmc headers
Daniel Golle [Wed, 3 Mar 2021 00:56:31 +0000 (00:56 +0000)]
arm-trusted-firmware-mediatek: remove {e,sd}mmc headers

Turned out those are simply MBR with active boot partition. And not
needed at all on emmc. Remove them as ptgen can now generate hybrid
MBR sufficient to boot MT7622 from SD Card.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: change image generation
Oskari Lemmela [Tue, 2 Mar 2021 19:42:11 +0000 (21:42 +0200)]
mediatek: mt7622: change image generation

- set only one EFI system partition
- use shorter path for DEVICE_DTS file

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
3 years agomediatek: mt7622: use ptgen generated MBR header
Oskari Lemmela [Tue, 2 Mar 2021 19:42:10 +0000 (21:42 +0200)]
mediatek: mt7622: use ptgen generated MBR header

mt7622 uses MBR partition for booting from SD card.
Add hybrid MBR entry with boot flag after PMBR entry.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
3 years agofirmware-utils/ptgen: change GPT to LBA addressing
Oskari Lemmela [Tue, 2 Mar 2021 19:42:09 +0000 (21:42 +0200)]
firmware-utils/ptgen: change GPT to LBA addressing

Do not align partitions with sectors. Only kb align
for GPT is supported.

Use 254 heads and 63 sectors for PMBR.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
3 years agofirmware-utils/ptgen: add support for hybrid MBR
Oskari Lemmela [Tue, 2 Mar 2021 19:42:08 +0000 (21:42 +0200)]
firmware-utils/ptgen: add support for hybrid MBR

Adding -H option copies partition to MBR after pmbr entry.
Max 3 partitions can be copied to MBR.

Hybrid MBR is needed only in special cases.
For example mt7622 SD card boot needs MBR entry with boot
flag enabled.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
3 years agofirmware-utils/ptgen: fix partition guid and name
Oskari Lemmela [Tue, 2 Mar 2021 19:42:07 +0000 (21:42 +0200)]
firmware-utils/ptgen: fix partition guid and name

guid and name function should be called before storing
partition info.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
3 years agofirmware-utils/ptgen: fix compile warnings
Oskari Lemmela [Tue, 2 Mar 2021 19:42:06 +0000 (21:42 +0200)]
firmware-utils/ptgen: fix compile warnings

remove extra arguments from printf message

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
3 years agofstools: update to git HEAD
Daniel Golle [Tue, 2 Mar 2021 19:15:28 +0000 (19:15 +0000)]
fstools: update to git HEAD

 19d7d93 libfstools: partname: several fixes

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoprocd: update to git HEAD
Daniel Golle [Tue, 2 Mar 2021 19:12:25 +0000 (19:12 +0000)]
procd: update to git HEAD

 64e9f3a procd: fix compilation with newer musl

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agolibubox: update to git HEAD
Daniel Golle [Tue, 2 Mar 2021 19:09:11 +0000 (19:09 +0000)]
libubox: update to git HEAD

 2e52c7e libubox: fix BLOBMSG_CAST_INT64 (do not override BLOBMSG_TYPE_DOUBLE)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agobmips: switch to upstream brcmnand patch
Álvaro Fernández Rojas [Tue, 2 Mar 2021 17:05:32 +0000 (18:05 +0100)]
bmips: switch to upstream brcmnand patch

This patch has been accepted upstream for v5.13.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agoRevert "toolchain: add autoconf-lean"
Daniel Golle [Tue, 2 Mar 2021 11:34:24 +0000 (11:34 +0000)]
Revert "toolchain: add autoconf-lean"

autoconf-lean was not ready yet. Revert it until things get sorted.

This reverts commit 32c664ff02910bf39a3fbd5a5a4a8bff3191dd03.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoRevert "build: use config.site generated by autoconf-lean, drop hardcoded sitefiles"
Daniel Golle [Tue, 2 Mar 2021 11:34:22 +0000 (11:34 +0000)]
Revert "build: use config.site generated by autoconf-lean, drop hardcoded sitefiles"

This reverts commit f439e291304a93b982e912dc91b80ca950a594f3.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoRevert "toolchain/autoconf-lean: add check for ssize_t"
Daniel Golle [Tue, 2 Mar 2021 11:34:18 +0000 (11:34 +0000)]
Revert "toolchain/autoconf-lean: add check for ssize_t"

This reverts commit 6b7b064492ddf339d0213779fb84d50ee3dc5eb7.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agokernel-5.10: backport chacha non block size optimizations
Jason A. Donenfeld [Tue, 2 Mar 2021 08:51:42 +0000 (09:51 +0100)]
kernel-5.10: backport chacha non block size optimizations

These make a big difference when doing WireGuard with small armv7
routers, and the 5.4 backport already has it.

Suggested-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
3 years agokernel-5.4: backport fd16931a2f51 for chacha neon
Jason A. Donenfeld [Tue, 2 Mar 2021 08:24:45 +0000 (09:24 +0100)]
kernel-5.4: backport fd16931a2f51 for chacha neon

Without this patch, the chacha block counter is not incremented on neon
rounds, resulting in incorrect calculations and corrupt packets.

This also switches to using `--no-numbered --zero-commit` so that future
diffs are smaller.

Reported-by: Hans Geiblinger <cybrnook2002@yahoo.com>
Reviewed-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: David Bauer <mail@david-bauer.net>
Cc: Petr Štetiar <ynezz@true.cz>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
3 years agobcm53xx: add support for reading NVRAM based on DT mapping
Rafał Miłecki [Tue, 2 Mar 2021 08:04:48 +0000 (09:04 +0100)]
bcm53xx: add support for reading NVRAM based on DT mapping

This is required for devices that use NVRAM data for detecting currently
used firmware partition (e.g. Linksys devices).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agouboot-mediatek: bpi-r64: make sure eMMC installation runs only once
Daniel Golle [Tue, 2 Mar 2021 01:42:34 +0000 (01:42 +0000)]
uboot-mediatek: bpi-r64: make sure eMMC installation runs only once

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: make sure image generation can run in parallel
Daniel Golle [Tue, 2 Mar 2021 01:41:00 +0000 (01:41 +0000)]
mediatek: mt7622: make sure image generation can run in parallel

The previous approach of referencing artifacts in follow-up artifacts
can't work with parallel builds in the current way image.mk is built.
Refactor things so this is not needed.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: blue LED should be active high as well
Daniel Golle [Mon, 1 Mar 2021 21:46:38 +0000 (21:46 +0000)]
mediatek: mt7622: blue LED should be active high as well

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agouboot-mediatek: bpi-r64: fix eMMC installation menu label
Daniel Golle [Mon, 1 Mar 2021 20:09:31 +0000 (20:09 +0000)]
uboot-mediatek: bpi-r64: fix eMMC installation menu label

Change boot menu label for eMMC installation to tell what it does now.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: bpi-r64: fix sysupgrade on empty disk
Daniel Golle [Mon, 1 Mar 2021 19:31:51 +0000 (19:31 +0000)]
mediatek: mt7622: bpi-r64: fix sysupgrade on empty disk

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: bpi-r64: simplify eMMC install procedure
Daniel Golle [Mon, 1 Mar 2021 14:07:33 +0000 (14:07 +0000)]
mediatek: mt7622: bpi-r64: simplify eMMC install procedure

Write everything needed for eMMC install into the gaps between
partitions on SD card. In that way, installation to eMMC only needs
the SD card, no additional files need to be loaded via TFTP any more.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agokernel: add the latest mtd patch extending ofpart parser
Rafał Miłecki [Mon, 1 Mar 2021 17:12:48 +0000 (18:12 +0100)]
kernel: add the latest mtd patch extending ofpart parser

This adds the latest version of ofpart commit. It hopefully
1. Doesn't break compilation
2. Doesn't break partitioning
(this time).

It's required to implement fixed partitioning with some quirks. It's
required by bcm53xx, bcm4908, kirkwood, lantiq and mvebu.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agotools/xxd: fix source URL
Daniel Golle [Mon, 1 Mar 2021 16:38:46 +0000 (16:38 +0000)]
tools/xxd: fix source URL

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agobmips: switch to upstream SMP CPU mappings patch
Álvaro Fernández Rojas [Mon, 1 Mar 2021 16:26:00 +0000 (17:26 +0100)]
bmips: switch to upstream SMP CPU mappings patch

The patch has been accepted upstream with some minor modifications.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agobuild: prevent dupes in autotools.mk
Sebastian Kemper [Mon, 1 Mar 2021 16:13:07 +0000 (17:13 +0100)]
build: prevent dupes in autotools.mk

autotools.mk does not have any protection currently that would prevent
it from being sourced multiple times. Note that both package.mk and
host-build.mk source autotools.mk. So any package Makefile that includes
both will cause hooks to be added twice (at least twice).

This is fixed by declaring a new variable, __autotools_inc, and only
continuing if this variable doesn't equal 1. The same is done by
rules.mk already.

Also, this commit does away with an ifneq that checks PKG_FIXUP (instead
of HOST_FIXUP) for patch-libtool before adding to the host pre-configure
hook. This does not make sense.

The second ifneq is amended. The current one manually does what the
define patch_libtool_host is already doing. It can just use the define.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
3 years agotoolchain/autoconf-lean: add check for ssize_t
Sebastian Kemper [Mon, 1 Mar 2021 16:02:23 +0000 (17:02 +0100)]
toolchain/autoconf-lean: add check for ssize_t

This was provided by the old static config.site files and is required by
some software, i.e. freeswitch.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
3 years agotools: xxd: use more convenient source tarball
Daniel Golle [Mon, 1 Mar 2021 14:06:33 +0000 (14:06 +0000)]
tools: xxd: use more convenient source tarball

Don't download all of vim just to build xxd. Use a tight tarball
containing only xxd sources instead.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: enable CONFIG_SPI_MTK_NOR
Daniel Golle [Mon, 1 Mar 2021 11:56:23 +0000 (11:56 +0000)]
mediatek: mt7622: enable CONFIG_SPI_MTK_NOR

Somehow this got disabled in the transition to 5.10.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7622: rename mt7622-ubi to mt7622-rfb1-ubi
Daniel Golle [Mon, 1 Mar 2021 11:42:27 +0000 (11:42 +0000)]
mediatek: mt7622: rename mt7622-ubi to mt7622-rfb1-ubi

This profile is meant to be used on MT7622 rfb1 AP, indicate that in
the name to make things less confusing.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agobcm4908: backport Ethernet driver fixes from the 5.12
Rafał Miłecki [Mon, 1 Mar 2021 07:14:49 +0000 (08:14 +0100)]
bcm4908: backport Ethernet driver fixes from the 5.12

The most noticeable one is fix for RX stopping on high traffic.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agotreewide: fix spelling 'seperate' -> 'separate'
Daniel Golle [Sun, 28 Feb 2021 23:58:10 +0000 (23:58 +0000)]
treewide: fix spelling 'seperate' -> 'separate'

This popular spelling mistake was also introduced by myself lately.
Fix it everywhere.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agohostapd: P2P: Fix a corner case in peer addition based on PD Request
Stefan Lippers-Hollmann [Sat, 27 Feb 2021 22:55:08 +0000 (23:55 +0100)]
hostapd: P2P: Fix a corner case in peer addition based on PD Request

p2p_add_device() may remove the oldest entry if there is no room in the
peer table for a new peer. This would result in any pointer to that
removed entry becoming stale. A corner case with an invalid PD Request
frame could result in such a case ending up using (read+write) freed
memory. This could only by triggered when the peer table has reached its
maximum size and the PD Request frame is received from the P2P Device
Address of the oldest remaining entry and the frame has incorrect P2P
Device Address in the payload.

Fix this by fetching the dev pointer again after having called
p2p_add_device() so that the stale pointer cannot be used.

This fixes the following security vulnerabilities/bugs:

- CVE-2021-27803 - A vulnerability was discovered in how p2p/p2p_pd.c
  in wpa_supplicant before 2.10 processes P2P (Wi-Fi Direct) provision
  discovery requests. It could result in denial of service or other
  impact (potentially execution of arbitrary code), for an attacker
  within radio range.

Fixes: 17bef1e97a50 ("P2P: Add peer entry based on Provision Discovery Request")
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>
3 years agompc85xx: p2020: Fix nand driver probe
Pawel Dembicki [Wed, 24 Feb 2021 13:33:49 +0000 (14:33 +0100)]
mpc85xx: p2020: Fix nand driver probe

At this moment driver start fail with error:
[    3.771991] fsl,elbc-fcm-nand: probe of ffa00000.nand failed with error -22

elbc-fcm-nand driver use legacy method of ecc mode detection. It detect hw/sw
ecc mode when system configure it to "none". [1]

This patch adds 'nand-ecc-mode = "none"' propoerty to use generic driver
ecc mode detection.

[1] https://elixir.bootlin.com/linux/v5.10.18/source/drivers/mtd/nand/raw/fsl_elbc_nand.c#L730

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
3 years agompc85xx: add testing kernel 5.10
Pawel Dembicki [Wed, 24 Feb 2021 13:30:54 +0000 (14:30 +0100)]
mpc85xx: add testing kernel 5.10

Subtargets p1010 and p1020 have already added.

Compile and run tested on: P2020RDB

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
3 years agompc85xx: p2020: fix cfi-nor detection
Pawel Dembicki [Mon, 11 Jan 2021 20:38:22 +0000 (21:38 +0100)]
mpc85xx: p2020: fix cfi-nor detection

At this moment p2020rdb has broken images, because NOR memory connected
to eLBC bus isn't detected.

In 642b1e8dbed7 linux tree commit, config dependencies of MTD_PHYSMAP_OF
was changed and now MTD_PHYSMAP is required.

This patch adds MTD_PHYSMAP option to kernel config in p2020 subtarget
and fix booting of p2020rdb.

Fixes: 13b1db795f05 ("mpc85xx: add support for kernel 5.4")
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
3 years agox86: add support for AWS T3 instances
Alberto Bursi [Sat, 6 Feb 2021 19:25:32 +0000 (20:25 +0100)]
x86: add support for AWS T3 instances

Amazon AWS T3 cloud instances require kernel support
for the Elastic Fabric Adapter to access storage
and for Elastic Network Adapter to use network
interfaces.

Since the Fabric Adapter is needed to access
root filesystem, enable in x86_64 kernel.

Elastic Network Adapter goes in a module,
and add this module to default list in x86_64.
The module is set to AutoLoad because AutoProbe does
not seem to load it.

Signed-off-by: Alberto Bursi <bobafetthotmail@gmail.com>
3 years agoigmpproxy: update to version 0.3
Jan Pavlinec [Thu, 28 Jan 2021 15:01:33 +0000 (16:01 +0100)]
igmpproxy: update to version 0.3

Changes:
- Remove custom Build/Compile because it's no longer needed
- Remove std=gnu99 which is added automaticaly by igmpproxy if needed
- Remove -Dlog from CFLAGS because igmpproxy doesn't have log function

Signed-off-by: Jan Pavlinec <jan.pavlinec@nic.cz>
3 years agolibunwind: Add MIPS64 dep check
Donald Hoskins [Sun, 14 Feb 2021 20:35:45 +0000 (15:35 -0500)]
libunwind: Add MIPS64 dep check

libunwind dependency check does not allow for MIPS64 arch.  Add MIPS64 awareness.

libunwind seems to support MIPS64 without issues, it was limited by the dep arch
check in the Makefile.

Used to compile Suricata6/Rust locally without issue.

Signed-off-by: Donald Hoskins <grommish@gmail.com>
3 years agouboot-sunxi: add missing type __u64
Georgi Valkov [Sat, 20 Feb 2021 13:49:51 +0000 (15:49 +0200)]
uboot-sunxi: add missing type __u64

Non Linux systems e.g. macOS lack the __u64 type and produce build errors:
In file included from tools/aisimage.c:9:
In file included from include/image.h:19:
In file included from ./arch/arm/include/asm/byteorder.h:29:
In file included from include/linux/byteorder/little_endian.h:13:
include/linux/types.h:146:9: error: unknown type name '__u64'; did you mean '__s64'?
typedef __u64 __bitwise __le64;

Resolved by declaring __u64 in include/linux/types.h
Build tested on macOS and Ubuntu.

Signed-off-by: Georgi Valkov <gvalkov@abv.bg>
3 years agobpftools: update to latest stable 5.11.2
Tony Ambardar [Wed, 24 Feb 2021 17:37:28 +0000 (09:37 -0800)]
bpftools: update to latest stable 5.11.2

Compile and run-tested on malta/mip32be, using bpftool directly and also
libbpf (linked with tc) to inspect and load simple eBPF programs.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
3 years agoiproute2: update to 5.11.0
Tony Ambardar [Sat, 20 Feb 2021 16:56:20 +0000 (08:56 -0800)]
iproute2: update to 5.11.0

The latest iproute2 version brings various improvements and fixes:
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/log/?qt=range&q=v5.10.0..v5.11.0

In particular, ip and tc now use libbpf as the standard way to load BPF
programs, rather than the old, limited custom loader. This allows more
consistent and featureful BPF program handling e.g. support for global
initialized variables.

Also fix a longstanding problem with iproute2 builds where unneeded DSO
dependencies are added to most utilities, bloating their installation
footprint. From research and testing, explicitly using a "--as-needed"
linker flag avoids the issue. Update accordingly and drop extra package
dependencies from Makefile.

Additional build and packaging updates include:

  - install missing development header to iproute2/bpf_elf.h
  - propagate OpenWrt verbose flag during build
  - update and refresh patches

Compile and run tested: QEMU/malta-mips32be on kernels 5.4 & 5.10.

All iproute2 packages were built and installed to the test image. Some
regression testing using ip-full and tc was successfully performed to
exercise several kmods, tc modules, and simple BPF programs.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
3 years agoramips: fix partition layout of hiwifi hc5x61
Shiji Yang [Wed, 24 Feb 2021 13:37:14 +0000 (21:37 +0800)]
ramips: fix partition layout of hiwifi hc5x61

Changes:
 * Increase "oem" partition size from 0x10000 to 0x20000
 * Correct partition lables, synchronize with official firmware

Evidence:
It should be the same as hiwifi hc5x61a and the fact indeed the
case. Here is part of dmesg boot log read from official firmware:
[    1.470000] Creating 7 MTD partitions on "raspi":
[    1.470000] 0x000000000000-0x000000030000 : "u-boot"
[    1.480000] 0x000000030000-0x000000040000 : "hw_panic"
[    1.490000] 0x000000040000-0x000000050000 : "Factory"
[    1.490000] 0x000000fc0000-0x000000fe0000 : "oem"
[    1.500000] 0x000000fe0000-0x000000ff0000 : "bdinfo"
[    1.510000] 0x000000ff0000-0x000001000000 : "backup"
[    1.510000] 0x000000050000-0x000000fc0000 : "firmware"

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
3 years agolibpcap: update to 1.10.0
Rosen Penev [Mon, 4 Jan 2021 23:46:42 +0000 (15:46 -0800)]
libpcap: update to 1.10.0

Simplify cmake option handling by putting everything in blocks.

Add openssl patch as there's no easy way to disable.

Rebase the skip manpages patch.

Remove the monitor mode patch as it no longer applies.

Remove flex patch as normal Makefile is no longer used.

Remove USB path patch. While it is deprecated, the codepath is never
taken. /sys/bus/usb/devices is checked before hand. If it exists, the
function does stuff and returns. Additionally, this path is used
elsewhere in the code.

Refresh other patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agokernel/zram: remove obsolete symbol
Rui Salvaterra [Tue, 2 Feb 2021 09:03:08 +0000 (09:03 +0000)]
kernel/zram: remove obsolete symbol

Zsmalloc page table mappings are dead and gone [1]. Drop the respective kconfig
symbol.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.4.y&id=69dc72f058c9b98f9b66bed184cfab7c2e9f49b0

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
3 years agobusybox: sysntpd: option to bind server to iface
Alexey Dobrovolsky [Tue, 23 Feb 2021 14:43:02 +0000 (17:43 +0300)]
busybox: sysntpd: option to bind server to iface

NTPD in busybox has option -I to bind server to IFACE.
However, capabilities of the busybox are limited, the -I option cannot be
repeated and only one interface can be effectively specified in it.
This option is currently not configurable via UCI.
The patch adds an interface option to the system config, ntp section.
Also sort options for uci_load_validate alphabetically.

Signed-off-by: Alexey Dobrovolsky <dobrovolskiy.alexey@gmail.com>
3 years agomvebu/omnia: fix the device tree
Rui Salvaterra [Tue, 23 Feb 2021 23:10:52 +0000 (23:10 +0000)]
mvebu/omnia: fix the device tree

Backport [1] and fix [2] hardware buffer management. Also fix the IRQ storm
caused by a misconfiguration of the PCA9538 interrupt pin [3].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/armada-385-turris-omnia.dts?id=018b88eee1a2efda26ed2f09aab33ccdc40ef18f
[2] https://lore.kernel.org/linux-arm-kernel/20210217153038.1068170-1-rsalvaterra@gmail.com/
[3] https://lore.kernel.org/linux-arm-kernel/20210220231144.32325-1-kabel@kernel.org/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
3 years agouboot-envtools: adjust compile patch to version v2021.01
Ronny Kotzschmar [Sun, 28 Feb 2021 22:31:35 +0000 (23:31 +0100)]
uboot-envtools: adjust compile patch to version v2021.01

with u-boot v2020.07 some variables have been renamed so this patch needs to be adjusted
otherwise at least with macOS as build system there are build errors

Signed-off-by: Ronny Kotzschmar <ro.ok@me.com>
3 years agolantiq: vr9: set the usb led trigger via devicetree
Mathias Kresin [Wed, 17 Feb 2021 19:52:12 +0000 (20:52 +0100)]
lantiq: vr9: set the usb led trigger via devicetree

Assign the usbdev trigger via devicetree and drop the userspace
handling of the usb leds.

Drop the now unused userspace helper code as well.

Signed-off-by: Mathias Kresin <dev@kresin.me>
Acked-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agolantiq: ltq-tapi: disable KPI and QOS
Mathias Kresin [Tue, 16 Feb 2021 18:35:12 +0000 (19:35 +0100)]
lantiq: ltq-tapi: disable KPI and QOS

The QOS feature depends on KPI2UDP which was removed from the tree with
commit a95775e4b2a9 ("drop unmaintained packages") in 2012.

Since QOS was the last user of the KPI, the feature can be disabled by
default.

Signed-off-by: Mathias Kresin <dev@kresin.me>
3 years agoltq-vdsl-app: fix -Wundef warnings
Mathias Kresin [Tue, 16 Feb 2021 18:35:07 +0000 (19:35 +0100)]
ltq-vdsl-app: fix -Wundef warnings

The following warnings are shown during build:

/usr/include/vdsl/cmv_message_format.h:33:6: warning: "MEI_SUPPORT_DEBUG_STREAMS" is not defined, evaluates to 0 [-Wundef]
 #if (MEI_SUPPORT_DEBUG_STREAMS == 1)
      ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/vdsl/drv_mei_cpe_interface.h:2256:6: warning: "MEI_SUPPORT_OPTIMIZED_FW_DL" is not defined, evaluates to 0 [-Wundef]
 #if (MEI_SUPPORT_OPTIMIZED_FW_DL == 1)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~

The headers are provided by the MEI driver, but the defines are never
set by the vdsl app. While the struct with the
MEI_SUPPORT_OPTIMIZED_FW_DL conditional isn't used by the vdsl app,
however CMV_USED_PAYLOAD_8BIT_SIZE which value depends on
MEI_SUPPORT_DEBUG_STREAMS is.

Since the MEI driver doesn't provide an autogenerated header with
compile flags, the flags are hardcoded for the vdsl app.

Set them for the MEI driver as well, to indicate a relation to the
values used for the vdsl app and to be not surprised by a changed
default in case the MEI driver gets updated. Use the current default
values defined in the MEI driver.

Signed-off-by: Mathias Kresin <dev@kresin.me>
3 years agolantiq: set maximum kernel size
Mathias Kresin [Tue, 16 Feb 2021 18:35:01 +0000 (19:35 +0100)]
lantiq: set maximum kernel size

These boards have a fixed size kernel partition but do not limit the
kernel size during image building.

Disable image building for both boards as well, since the kernel of the
last release as well as master are to big to fit into the 2 MByte kernel
partition.

Signed-off-by: Mathias Kresin <dev@kresin.me>
3 years agolantiq: ARV752DPW22: set the usb led trigger via devicetree
Mathias Kresin [Tue, 16 Feb 2021 18:34:48 +0000 (19:34 +0100)]
lantiq: ARV752DPW22: set the usb led trigger via devicetree

Assign the usbdev trigger via devicetree and drop the userspace
handling of the usb leds

Add the PCI attached usb controller as trigger sources for the usb led
as well.

Signed-off-by: Mathias Kresin <dev@kresin.me>
3 years agoocteon: re-enable CONFIG_CAVIUM_CN63XXP1 and EdgeRouter image
Adrian Schmutzler [Fri, 26 Feb 2021 13:11:18 +0000 (14:11 +0100)]
octeon: re-enable CONFIG_CAVIUM_CN63XXP1 and EdgeRouter image

The symbol CONFIG_CAVIUM_CN63XXP1 was disabled during the bump to
4.19 (see Fixes:) with the following reason:

  No supported hardware uses CN63XXP1 and it causes "slight decrease
  in performance"

However, it later turned out that the edgerouter image needed it,
which led to having the device disabled in [1].
Still, dropping support of a device seems a harsh action for just
removing a "slight" decrease in performance from the other devices.

Thus, this enables CONFIG_CAVIUM_CN63XXP1 again, and essentially
restores the situation present until (including) kernel 4.14 on
this target.

For OpenWrt as a platform, it seems more desirable to support all
devices (and have them tested regularly via the snapshots) in this
case.
Users interested in maximum performance might still just remove
the symbol again in their local build.

[1] 3824fa26d256 ("octeon: disable edgerouter image")

Fixes: 6c22545225cd ("target/octeon: Add Linux 4.19 support")
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoocteon: refresh config for kernel 5.4
Adrian Schmutzler [Fri, 26 Feb 2021 13:08:22 +0000 (14:08 +0100)]
octeon: refresh config for kernel 5.4

Simple run of 'make kernel_oldconfig'

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agotools: add xxd (from vim)
Daniel Golle [Sun, 28 Feb 2021 19:26:07 +0000 (19:26 +0000)]
tools: add xxd (from vim)

U-Boot requires xxd to create the default environment from an external
file as done in uboot-mediatek.
Build xxd (only, not the rest of vim) as part of tools to make sure it
is present on the buildhost.

Reported-by: David Bauer <mail@david-bauer.net>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoselinux-policy: update to version 0.7
Daniel Golle [Sun, 28 Feb 2021 18:00:33 +0000 (18:00 +0000)]
selinux-policy: update to version 0.7

 a857b45 resolv/locale: eventually this should be more efficient
 11ed281 some more optimization
 764a475 add redundant calls to file.search_conffile_dirs()
 7d4558e fs: treat devtmpfs that same as tmpfs
 81b677e adds irqbalance skeleton
 5506244 irqbalance rules
 cc96cd8 adds usbutil and gtpfdisk skels
 01e2a55 some fsck, gptfdisk, mkfs and usbutil rules
 d6d1e7d usbutil: output to terminal
 da576fa fsck, gptfdisk and usbutil rules
 09b39e9 unbound
 241a029 hotplugcall: allow dac_read_search (is a subset of dac_override)
 af0fe90 adds label for tcsh
 160f79e adds tcpdump
 6d02b96 adds coreutil execfile for busybox alternatives
 ac54884 coreutilexecfile: these are known to require privileges, so exclude
 8cb3b66 adds chrootexecfile
 6d329d3 this saves 9KiB and its a bit more robust
 88e2425 move addpart/delpart/partx to gptfdisk.cil
 261012d ntphotplug: reads ubox data files
 0473ace various
 740e820 work through to genfs_seclabel_symlinks loose ends (Linux 5.10)
 bef21f5 TODO adds a note about how I dont need to upgrade to polver 33 from 31
 cb2e5a3 ubus uses ntpdhotplug fd, and some genfs_seclabel_symlink changes
 07df9b9 luci, rpcd and wpad (mainly genfs_selabel related but not all)
 8d86cab genfs_seclabel loose ends for blockmount, hotplugcall, irqbalance, zram-swap
 b8156cd adds a note about how i forgot to target blockd
 6e82ab8 adds blockd and related
 254ff43 Makefile: exclude blockd from mintesttgt
 4dc6bc2 pppd update related and unbound-odhcp rules

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: add missing 5.10 patches
David Bauer [Sun, 28 Feb 2021 10:15:37 +0000 (11:15 +0100)]
mediatek: add missing 5.10 patches

These patches are required for the Ubiquiti UniFi 6 LR to work. They
were already present for kernel 5.4 but got lost when adding 5.10
support.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agomediatek: rework support for BananaPi BPi-R64
Daniel Golle [Sat, 27 Feb 2021 14:17:09 +0000 (14:17 +0000)]
mediatek: rework support for BananaPi BPi-R64

**What's new**

 * Bring support for the Bananapi BPi-R64 to the level desirable for
   a nice hackable routerboard.
 * Use ARM Trusted Firmware A from source. (goodbye binary preloader)
 * Use Das U-Boot from source. (see previous commit)
 * Assemble SD-card image using OpenWrt image-commands.
   (no gen_sd_cruz_foo.sh added, this is not Raspbian)
 * Updated kernel options to support root filesystem.
 * Updated DTS to match OpenWrt LAN ports, known LEDs, buttons, ...
 * Detect root device, handle sysupgrade, config restore, ...
 * Wire up (known) LEDs and buttons in OpenWrt-fashion.
 * Build one set of images from SD-card and eMMC.
 * Hopefully provide a good example of how things can be done right
   from scratch.

**Installation and images**

 * Have an empty SD-card at hand
 * Write stuff to the card, as root (card device is /dev/mmcblkX)
   - write header, gpt, bl2, atf, u-boot and recovery kernel:
     `cat *bpi-r64-boot-sdcard.img *bpi-r64-initramfs-recovery.fit > /dev/mmcblkX`
   - rescan partitions:
     `blockdev --rereadpt /dev/mmcblkX`
   - write main system to production partition:
     `cat *bpi-r64-squashfs-sysupgrade.fit > /dev/mmcblkXp5`

 * Installation to eMMC works using SD-card bootloader via TFTP
   When running OpenWrt of SD-card, issue this to trigger installation
   to eMMC:
   `fw_setenv bootcmd run emmc_init`
   Be prepared to serve the content of bin/targets/mediatek/mt7622 on
   TFTP server address 192.168.1.254.

**What's missing**

 * The red LED is always on, probably a hardware bug.
 * AHCI (probably needs DTS changes)
 * Ship SD-card image ready with every needed for eMMC install.
 * The eMMC has a second, currently unused boot partition. This would
   be ideal to store the WiFi EEPROM and Ethernet MAC address(es).
   @sinovoip ideas?

Thanks to Thomas Hühn @thuehn for providing the hardware!

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agouboot-envtools: add defaults for Bananapi BPi-R64
Daniel Golle [Sat, 27 Feb 2021 23:02:59 +0000 (23:02 +0000)]
uboot-envtools: add defaults for Bananapi BPi-R64

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomt7623n-preloader: remove mt7622-preloader
Daniel Golle [Sat, 27 Feb 2021 19:29:11 +0000 (19:29 +0000)]
mt7623n-preloader: remove mt7622-preloader

mt7622-preloader has been superseeded by arm-trusted-firmware-mediatek.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agouboot-mediatek: rework support for Bananapi BPi-R64 board
Daniel Golle [Sat, 27 Feb 2021 15:14:02 +0000 (15:14 +0000)]
uboot-mediatek: rework support for Bananapi BPi-R64 board

Provide U-Boot variants for SD-card as well as eMMC boot, so we can
generate whole-disk images for the device.
While at it, rename 'mt7622' to 'mt7622-rfb1' to make it less confusing
now that more boards are being added.

Thanks to Frank Wunderlich (@frank-w) for making that nice SVG image
explaining the MMC boot process[1] and for providing the necessary
binary header blobs.

[1]: https://github.com/frank-w/BPI-R64-ATF
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agofirmware-utils/ptgen: set GPT partition attributes and name
Daniel Golle [Thu, 25 Feb 2021 22:49:55 +0000 (22:49 +0000)]
firmware-utils/ptgen: set GPT partition attributes and name

Allow setting GPT partition names as used by TF-A bl2 to identify the
FIP volume to load from eMMC and SD-card.
While at it, also allow setting 'required' attribute as it should be
used for volumes which are essential for the system to boot.
Also properly handle setting the LEGACY_BOOT flag on the partition
selected as 'active', as this is how it is specified in the spec.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: add alternative UBI NAND layout for Linksys E8450
Daniel Golle [Tue, 9 Feb 2021 23:07:42 +0000 (23:07 +0000)]
mediatek: add alternative UBI NAND layout for Linksys E8450

The vendor flash layout of the Linksys E8450 is problematic as it uses
the SPI-NAND chip without any wear-leveling while at the same time
wasting a lot of space for padding.
Use an all-UBI layout instead, storing the kernel+dtb+squashfs in
uImage.FIT standard format in UBI volume 'fit', the read-write
overlay in UBI volume 'rootfs_data' as well as reduntant U-Boot
environments 'ubootenv' and 'ubootenv2', and a 'recovery'
kernel+dtb+initramfs uImage.FIT for dual-boot.

** WARNING **
THIS PROCEDURE CAN EASILY BRICK YOUR DEVICE PERMANENTLY IF NOT CARRIED
OUT VERY CAREFULLY AND EXACTLY AS DESCRIBED!

Step 0

 * Configure your PC to have the static IPv4 address 192.168.1.254/24
 * Provide bin/targets/mediatek/mt7622 via TFTP

Now continue EITHER with step 1A or 1B, depending on your preference
(and on having serial console wired up or not).

Step 1A (Using the vendor web interface (or non-UBI OpenWrt install))

In order to update to the new bootloader and UBI-based firmware,
use the web browser of your choice to open the routers web-interface
accessible on http://192.168.1.1

 * Navigate to
   'Configuration' -> 'Administration' -> 'Firmware Upgrade'

 * Upload the file
    openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
   and proceed with the upgrade.

 * Once OpenWrt comes up, use SCP to upload the new bootloader files to
   /tmp on the router:
    *-mt7622-linksys_e8450-ubi-preloader.bin
    *-mt7622-linksys_e8450-ubi-bl31-uboot.fip

 * Connect via SSH as you will now need to replace the bootloader in
   the Flash.

    ssh root@192.168.1.1
    (the usual warnings)

 * First of all, backup all the flash now:

    for mtd in /dev/mtdblock*; do
     dd if=$mtd of=/tmp/$(basename $mtd);
    done

 * Then use SCP to copy /tmp/mtdblock* from the router and keep them
   safe. You will need them should you ever want to return to the
   factory firmware!

 * Now flow the uploaded files:
    mtd -e /dev/mtd0 write /tmp/*linksys_e8450-ubi-preloader.bin /dev/mtd0
    mtd -e /dev/mtd1 write /tmp/*linksys_e8450-ubi-bl31-uboot.fip /dev/mtd1

   If and only if both writes look like the completed successfully
   reboot the router. Now continue with step 2.

Step 1B (Using the vendor bootloader serial console)

 * Use the serial to backup all /dev/mtd* devices before using the
   stock firmware (you got root shell when connected to serial).

 * Then reboot and select 'U-Boot Console' in the boot menu.

 * Copy the following lines, one by one:

tftpboot 0x40080000 openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin
tftpboot 0x40100000 openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip
nand erase 0x0 0x180000
nand write 0x40080000 0x0 0x180000
reset

Now continue with step 2

Step 2

Once the new bootchain comes up, the loader will initialize UBI and the
ubootenv volumes. It will then of course fail to find any bootable
volume and hence resort to load kernel via TFTP from server
192.168.1.254 while giving itself the address 192.168.1.1

The requested file is called
openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
and your TFTP server should provide exactly that :)
It will be written to UBI as recovery image and booted.
You can then continue and flash the production OS image, either
by using sysupgrade in the booted initramfs recovery OS, or by using
the bootloader menu and TFTP.

That's it. Go ahead and mess around with a bootchain built almost
completely from source (only DRAM calibration blobs are fitted in bl2,
and the irreplacable on-chip ROM loader remains, of course).
And enjoy U-Boot built with many great features out-of-the-box.

You can access the bootloader environment from within OpenWrt using the
'fw_printenv' and 'fw_setenv' commands. Don't be afraid, once you got
the new bootchain installed the device should be fairly unbrickable
(holding reset button before and during power-on resets things and
allows reflashing recovery image via TFTP)

Special thanks to @dvn0 (Devan Carpenter) for providing amazingly fast
infra for test-builds, allowing for `make clean ; make -j$(nproc)` in
less than two minutes :)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agouboot-envtools: add defaults for linksys-e8450-ubi
Daniel Golle [Fri, 12 Feb 2021 03:09:39 +0000 (03:09 +0000)]
uboot-envtools: add defaults for linksys-e8450-ubi

Add U-Boot environment configuration for the Linksys E8450 (UBI) to
allow access to the bootloader environment from OpenWrt via
'fw_printenv' and 'fw_setenv'.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agouboot-mediatek: add support for Linksys E8450
Daniel Golle [Sat, 30 Jan 2021 13:58:16 +0000 (13:58 +0000)]
uboot-mediatek: add support for Linksys E8450

Build U-Boot for the Linksys E8450 in order to have support for UBI.
The loader has a default environment with scripts handling the reset
button as well as fall-back to recovery firmware. If the loader comes
up without a valid environment found in UBI, it will automatically
make sure UBI is formatted and create a new environment and proceed
to load recovery firmware (either from UBI or via TFTP if recovery is
corrupted or unavailable).

If the button is held down during power-on, the yellow status LED
turns on and the bootloader environment is reset to factory defaults.
If the button is released at this point, the recovery firmware (if
existing) is loaded from UBI and booted.
If the button is continously held down even beyond the point that
the yellow LED turned on, the loader will try to load the recovery
firmware via TFTP from server 192.168.1.254, write it to UBI and
boot.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoarm-trusted-firmware-mediatek: add patch for Fidelix SPI NAND
Daniel Golle [Sat, 6 Feb 2021 03:17:28 +0000 (03:17 +0000)]
arm-trusted-firmware-mediatek: add patch for Fidelix SPI NAND

The Linksys E8450 aka. Belkin RT3200 comes with a rather fresh brand
of SPI NAND storage. Add support for it to the nandx driver in
arm-trusted-firmware-mediatek, so we can boot from that chip.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: add Linksys E8450 support
John Crispin [Tue, 2 Feb 2021 15:29:58 +0000 (16:29 +0100)]
mediatek: add Linksys E8450 support

The Linksys E8450, also known as Belkin RT3200, is a dual-band
IEEE 802.11bgn/ac/ax router based on MediaTek MT7622BV and
MediaTek MT7915AN chips.

FCC: K7S-03571 and K7S-03572

Hardware highlights:
 - CPU: MediaTek MT7622BV (2x ARM Cortex-A53 @ 1350 MHz max.)
 - RAM: 512MB DDR3
 - Flash: 128MB SPI-NAND (2k+64)
 - Ethernet: MT7531BE switch with 5 1000Base-T ports
             CPU port connected with 2500Base-X
 - WiFi 2.4 GHz: 802.11bgn 4T4R built-in antennas
                 MT7622VB built-in
 - WiFi   5 GHz: 802.11ac/ax 4T4R built-in antennas
                 MT7915AN chip on-board via PCIe
                 MT7975AN front-end
 - Buttons: Reset and WPS
 - LEDS: 3 user controllable LEDs, 4 wired to switch
 - USB: USB2.0, single port
 - no Bluetooth (supported by SoC, not wired on board)
 - Serial: JST PH 2.0MM 6 Pin connector inside device
            ----_____________----
           [  GND RX - TX  -  -  ]
            ---------------------
 - JTAG:   unpopulated ARM JTAG 20-pin connector (works)

This commit adds support for the device in a way that is compatible
with the vendor firmware's bootloader and dual-boot flash layout, the
resulting image can directly be flashed using the vendor firmware.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agokernel: add support for enabling fit firmware partition parser via cmdline
Felix Fietkau [Wed, 3 Feb 2021 19:37:03 +0000 (20:37 +0100)]
kernel: add support for enabling fit firmware partition parser via cmdline

This is useful for dual-boot setups where the loader sets variables depending
on the flash boot partition.
For example the Linksys E8450 sets mtdparts=master for the first partition
and mtdparts=slave for the second one.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomediatek: add support for configuring BMT table size via device tree
Felix Fietkau [Wed, 3 Feb 2021 18:34:29 +0000 (19:34 +0100)]
mediatek: add support for configuring BMT table size via device tree

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomediatek: mt7622: add Linux 5.10 support
Felix Fietkau [Sat, 24 Oct 2020 19:15:20 +0000 (21:15 +0200)]
mediatek: mt7622: add Linux 5.10 support

Switch mt7622 subtarget to Linux 5.10, it has been tested by many of us
on several devices for a couple of weeks already.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomediatek: implement bad-block management table support
Felix Fietkau [Thu, 9 Apr 2020 07:53:24 +0000 (09:53 +0200)]
mediatek: implement bad-block management table support

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agobuild: use config.site generated by autoconf-lean, drop hardcoded sitefiles
Felix Fietkau [Fri, 2 Mar 2018 13:17:10 +0000 (14:17 +0100)]
build: use config.site generated by autoconf-lean, drop hardcoded sitefiles

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agotoolchain: add autoconf-lean
Felix Fietkau [Fri, 2 Mar 2018 13:12:18 +0000 (14:12 +0100)]
toolchain: add autoconf-lean

Use it to generate a more comprehensive configure sitefile

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agobase-files: add support for restoring config from tmpfs
Daniel Golle [Sat, 27 Feb 2021 22:21:09 +0000 (22:21 +0000)]
base-files: add support for restoring config from tmpfs

Instead of only relying in /sysupgrade.tgz being present in rootfs to
restore configuration, also grab /tmp/sysupgrade.tar which may have
magically gotten there during preinit...

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agofstools: update to git HEAD
Daniel Golle [Sat, 27 Feb 2021 22:19:18 +0000 (22:19 +0000)]
fstools: update to git HEAD

 bad1835 fstools: add partname volume driver

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoimage: extend FIT partition parser for use on eMMC/SDcard
Daniel Golle [Sat, 27 Feb 2021 03:18:46 +0000 (03:18 +0000)]
image: extend FIT partition parser for use on eMMC/SDcard

Introduce a magic GUID_PARTITION_LINUX_FIT_GUID to designate a GPT
partition to be interpreted by the FIT partition parser.
In that way, sub-partitions for (external-data) uImage.FIT stored
directly in a partition can be split, similar like we do for devices
with raw flash storage.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoinclude: use cpio from staging dir
David Bauer [Sat, 27 Feb 2021 18:12:10 +0000 (19:12 +0100)]
include: use cpio from staging dir

As we built our own CPIO now, use this version instead of whatever the
host may or may not provide.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agotools: add cpio
David Bauer [Sat, 27 Feb 2021 18:12:09 +0000 (19:12 +0100)]
tools: add cpio

mediatek-mt7622 as well as mediatek-mt7623 require CPIO to create their
initramfs images. So build CPIO as part of the host toolchain.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agokernel: backport pending fix to select CPU_MIPS64
Jason A. Donenfeld [Sat, 27 Feb 2021 12:41:25 +0000 (13:41 +0100)]
kernel: backport pending fix to select CPU_MIPS64

The CPU_MIPS64 and CPU_MIPS32 variables are supposed to be able to
distinguish broadly between 64-bit and 32-bit MIPS CPUs. However, they
weren't selected by the specialty CPUs, Octeon and Loongson, which meant
it was possible to hit a weird state of:

   MIPS=y, CONFIG_64BIT=y, CPU_MIPS64=n

This commit rectifies the issue by having CPU_MIPS64 be selected when
the missing Octeon or Loongson models are selected.

In particular, this affects our octeonplus target.

It has been posted to LKML here:
https://lore.kernel.org/linux-mips/20210227122605.2680138-1-Jason@zx2c4.com/

Cc: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Cc: David Bauer <mail@david-bauer.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
3 years agokernel: bump 5.4 to 5.4.101
John Audia [Fri, 26 Feb 2021 11:25:34 +0000 (06:25 -0500)]
kernel: bump 5.4 to 5.4.101

Ran update_kernel.sh in a fresh clone without any existing toolchains.

Build system: x86_64
Build-tested: ipq806x/R7800
Run-tested: ipq806x/R7800

No dmesg regressions, everything functional.

Signed-off-by: John Audia <graysky@archlinux.us>
3 years agokernel: move some new symbols available on 5.10 to generic
Aleksander Jan Bajkowski [Sat, 27 Feb 2021 13:53:32 +0000 (14:53 +0100)]
kernel: move some new symbols available on 5.10 to generic

Move some disabled config options found in sunxi target to generic.

Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
3 years agokernel: no chacha-mips.ko on mips32 r1 targets
Ilya Lipnitskiy [Fri, 26 Feb 2021 22:35:24 +0000 (14:35 -0800)]
kernel: no chacha-mips.ko on mips32 r1 targets

CHACHA_MIPS depends on CPU_MIPS32_R2. Therefore,
kmod-crypto-lib-chacha20 should not contain chacha-mips.ko on MIPS32 R1
targets. Enforce that in the target-specific definition.

Fixes bcm47xx, bcm63xx, lantiq/ase, ath25 builds.

Fixes: 06351f1 ("kernel: migrate wireguard into the kernel tree")
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
3 years agokernel: b53: update the BCM5365 UID
Daniel González Cabanelas [Fri, 26 Feb 2021 19:49:00 +0000 (20:49 +0100)]
kernel: b53: update the BCM5365 UID

BCM63XX internal PHYs and BCM5365 SoC internal switch are both using the
same phy_driver->phy_id, causing conflicts and unnecessary probes. E.g
the BCM63XX phy internal IRQ is lost on the first probe.

The full BCM5365 UID is 0x00406370.

Use an additional byte to mask the BCM5365 UID to avoid duplicate driver
phy_id's. This will fix the IRQ issue in internal BCM63XX PHYs and avoid
more conflicts in the future.

Signed-off-by: Daniel González Cabanelas <dgcbueu@gmail.com>
3 years agowireguard-tools: depend on kmod-wireguard
Ilya Lipnitskiy [Thu, 25 Feb 2021 18:20:12 +0000 (10:20 -0800)]
wireguard-tools: depend on kmod-wireguard

To the vast majority of the users, wireguard-tools are not useful
without the underlying kernel module. The cornercase of only generating
keys and not using the secure tunnel is something that won't be done on
an embedded OpenWrt system often. On the other hand, maintaining a
separate meta-package only for this use case introduces extra
complexity. WireGuard changes for Linux 5.10 remove the meta-package.
So let's make wireguard-tools depend on kmod-wireguard
to make WireGuard easier to use without having to install multiple
packages.

Fixes: ea980fb9 ("wireguard: bump to 20191226")
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agokernel: fix kmod-wireguard package fields
Ilya Lipnitskiy [Thu, 25 Feb 2021 18:20:11 +0000 (10:20 -0800)]
kernel: fix kmod-wireguard package fields

Use NETWORK_SUPPORT_MENU like all other modules in netsupport.mk. Drop
SECTION and CATEGORY fields as they are set by default and to match
other packages in netsupport.mk. Use better TITLE for kmod-wireguard
(taken from upstream drivers/net/Kconfig).

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agowireguard-tools: bump to 1.0.20210223
Jason A. Donenfeld [Tue, 23 Feb 2021 21:10:38 +0000 (22:10 +0100)]
wireguard-tools: bump to 1.0.20210223

Simple version bump with accumulated fixes.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
3 years agokernel: 5.4: generic: add missing symbols
Ilya Lipnitskiy [Tue, 23 Feb 2021 20:32:19 +0000 (12:32 -0800)]
kernel: 5.4: generic: add missing symbols

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agokernel: migrate wireguard into the kernel tree
Ilya Lipnitskiy [Fri, 19 Feb 2021 16:22:08 +0000 (08:22 -0800)]
kernel: migrate wireguard into the kernel tree

On Linux 5.4, build WireGuard from backports. Linux 5.10 contains
wireguard in-tree.

Add in-kernel crypto libraries required by WireGuard along with
arch-specific optimizations.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agokernel: 5.4: fix patches after wireguard backport
Ilya Lipnitskiy [Fri, 19 Feb 2021 16:04:26 +0000 (08:04 -0800)]
kernel: 5.4: fix patches after wireguard backport

No major problems, just a minor Kconfig fix and a refresh.

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agokernel: 5.4: import wireguard backport
Jason A. Donenfeld [Fri, 19 Feb 2021 13:29:04 +0000 (14:29 +0100)]
kernel: 5.4: import wireguard backport

Rather than using the clunky, old, slower wireguard-linux-compat out of
tree module, this commit does a patch-by-patch backport of upstream's
wireguard to 5.4. This specific backport is in widespread use, being
part of SUSE's enterprise kernel, Oracle's enterprise kernel, Google's
Android kernel, Gentoo's distro kernel, and probably more I've forgotten
about. It's definately the "more proper" way of adding wireguard to a
kernel than the ugly compat.h hell of the wireguard-linux-compat repo.
And most importantly for OpenWRT, it allows using the same module
configuration code for 5.10 as for 5.4, with no need for bifurcation.

These patches are from the backport tree which is maintained in the
open here: https://git.zx2c4.com/wireguard-linux/log/?h=backport-5.4.y
I'll be sending PRs to update this as needed.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
3 years agokernel: 5.10: wireguard: backport 5.12-rc1 changes in net.git
Jason A. Donenfeld [Wed, 24 Feb 2021 12:15:08 +0000 (13:15 +0100)]
kernel: 5.10: wireguard: backport 5.12-rc1 changes in net.git

These will eventually make their way to 5.10, but it could be a while.

https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=ee576c47db60432c37e54b1e2b43a8ca6d3a8dca
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=5a0598695634a6bb4126818902dd9140cd9df8b6
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=99fff5264e7ab06f45b0ad60243475be0a8d0559
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=8b5553ace83cced775eefd0f3f18b5c6214ccf7a
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=bce2473927af8de12ad131a743f55d69d358c0b9

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
[Rename 082-wireguard-kconfig... to 083-wireguard-kconfig...]
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agozynq: Enable CONFIG_KERNEL_MODE_NEON
Ilya Lipnitskiy [Fri, 19 Feb 2021 23:41:42 +0000 (15:41 -0800)]
zynq: Enable CONFIG_KERNEL_MODE_NEON

This flag is set on all other platforms. And Zynq 7000 SoC does have
NEON support:
https://www.xilinx.com/support/documentation/application_notes/xapp1206-boost-sw-performance-zynq7soc-w-neon.pdf

Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
3 years agodownload: add mirror alias for Debian
David Bauer [Sat, 20 Feb 2021 20:17:26 +0000 (21:17 +0100)]
download: add mirror alias for Debian

Add an alias for Debian packages and download them from the Debian
mirror redirector.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agodownload: use mirror redirector for GNOME downloads
David Bauer [Sat, 20 Feb 2021 18:18:32 +0000 (19:18 +0100)]
download: use mirror redirector for GNOME downloads

Use the GNOME mirror redirector as the primary download source for GNOME
packages.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agompc85xx: remove fdt.bin image
David Bauer [Fri, 26 Feb 2021 12:16:01 +0000 (13:16 +0100)]
mpc85xx: remove fdt.bin image

When converting the fdt binary to be created as an artifact, the image
receipt was dropped but the entry in the target images list was not.

Fixes commit 1e41de2f48e2 ("mpc85xx: convert TL-WDR4900 v1 to simpleImage")

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agoramips: add support for ZTE MF283+
Lech Perczak [Sat, 6 Feb 2021 12:56:46 +0000 (13:56 +0100)]
ramips: add support for ZTE MF283+

ZTE MF283+ is a dual-antenna LTE category 4 router, based on Ralink
RT3352 SoC, and built-in ZTE P685M PCIe MiniCard LTE modem.

Hardware highlighs:
- CPU: MIPS24KEc at 400MHz,
- RAM: 64MB DDR2,
- Flash: 16MB SPI,
- Ethernet: 4 10/100M port switch with VLAN support,
- Wireless: Dual-stream 802.11n (RT2860), with two internal antennas,
- WWAN: Built-in ZTE P685M modem, with two internal antennas and two
  switching SMA connectors for external antennas,
- FXS: Single ATA, with two connectors marked PHONE1 and PHONE2,
  internally wired in parallel by 0-Ohm resistors, handled entirely by
  internal WWAN modem.
- USB: internal miniPCIe slot for modem,
  unpopulated USB A connector on PCB.
- SIM slot for the WWAN modem.
- UART connector for the console (unpopulated) at 3.3V,
  pinout: 1: VCC, 2: TXD, 3: RXD, 4: GND,
  settings: 57600-8-N-1.
- LEDs: Power (fixed), WLAN, WWAN (RGB),
  phone (bicolor, controlled by modem), Signal,
  4 link/act LEDs for LAN1-4.
- Buttons: WPS, reset.

Installation:
As the modem is, for most of the time, provided by carriers, there is no
possibility to flash through web interface, only built-in FOTA update
and TFTP recovery are supported.

There are two installation methods:
(1) Using serial console and initramfs-kernel - recommended, as it
allows you to back up original firmware, or
(2) Using TFTP recovery - does not require disassembly.

(1) Using serial console:
To install OpenWrt, one needs to disassemble the
router and flash it via TFTP by using serial console:
- Locate unpopulated 4-pin header on the top of the board, near buttons.
- Connect UART adapter to the connector. Use 3.3V voltage level only,
  omit VCC connection. Pin 1 (VCC) is marked by square pad.
- Put your initramfs-kernel image in TFTP server directory.
- Power-up the device.
- Press "1" to load initramfs image to RAM.
- Enter IP address chosen for the device (defaults to 192.168.0.1).
- Enter TFTP server IP address (defaults to 192.168.0.22).
- Enter image filename as put inside TFTP server - something short,
  like firmware.bin is recommended.
- Hit enter to load the image. U-boot will store above values in
  persistent environment for next installation.
- If you ever might want to return to vendor firmware,
  BACK UP CONTENTS OF YOUR FLASH NOW.
  For this router, commonly used by mobile networks,
  plain vendor images are not officially available.
  To do so, copy contents of each /dev/mtd[0-3], "firmware" - mtd3 being the
  most important, and copy them over network to your PC. But in case
  anything goes wrong, PLEASE do back up ALL OF THEM.
- From under OpenWrt just booted, load the sysupgrade image to tmpfs,
  and execute sysupgrade.

(2) Using TFTP recovery
- Set your host IP to 192.168.0.22 - for example using:
sudo ip addr add 192.168.0.22/24 dev <interface>
- Set up a TFTP server on your machine
- Put the sysupgrade image in TFTP server root named as 'root_uImage'
  (no quotes), for example using tftpd:
  cp openwrt-ramips-rt305x-zte_mf283plus-squashfs-sysupgrade.bin /srv/tftp/root_uImage
- Power on the router holding BOTH Reset and WPS buttons held for around
  5 seconds, until after WWAN and Signal LEDs blink.
- Wait for OpenWrt to start booting up, this should take around a
  minute.

Return to original firmware:
Here, again there are two possibilities are possible, just like for
installation:
(1) Using initramfs-kernel image and serial console
(2) Using TFTP recovery

(1) Using initramfs-kernel image and serial console
- Boot OpenWrt initramfs-kernel image via TFTP the same as for
  installation.
- Copy over the backed up "firmware.bin" image of "mtd3" to /tmp/
- Use "mtd write /tmp/firmware.bin /dev/mtd3", where firmware.bin is
  your backup taken before OpenWrt installation, and /dev/mtd3 is the
  "firmware" partition.

(2) Using TFTP recovery
- Follow the same steps as for installation, but replacing 'root_uImage'
  with firmware backup you took during installation, or by vendor
  firmware obtained elsewhere.

A few quirks of the device, noted from my instance:
- Wired and wireless MAC addresses written in flash are the same,
  despite being in separate locations.
- Power LED is hardwired to 3.3V, so there is no status LED per se, and
  WLAN LED is controlled by WLAN driver, so I had to hijack 3G/4G LED
  for status - original firmware also does this in bootup.
- FXS subsystem and its LED is controlled by the
  modem, so it work independently of OpenWrt.
  Tested to work even before OpenWrt booted.
  I managed to open up modem's shell via ADB,
  and found from its kernel logs, that FXS and its LED is indeed controlled
  by modem.
- While finding LEDs, I had no GPL source drop from ZTE, so I had to probe for
  each and every one of them manually, so this might not be complete -
  it looks like bicolor LED is used for FXS, possibly to support
  dual-ported variant in other device sharing the PCB.
- Flash performance is very low, despite enabling 50MHz clock and fast
  read command, due to using 4k sectors throughout the target. I decided
  to keep it at the moment, to avoid breaking existing devices - I
  identified one potentially affected, should this be limited to under
  4MB of Flash. The difference between sysupgrade durations is whopping
  3min vs 8min, so this is worth pursuing.

In vendor firmware, WWAN LED behaviour is as follows, citing the manual:
- red - no registration,
- green - 3G,
- blue - 4G.
Blinking indicates activity, so netdev trigger mapped from wwan0 to blue:wwan
looks reasonable at the moment, for full replacement, a script similar to
"rssileds" would need to be developed.

Behaviour of "Signal LED" in vendor firmware is as follows:
- Off - no signal,
- Blinking - poor coverage
- Solid - good coverage.

A few more details on the built-in LTE modem:
Modem is not fully supported upstream in Linux - only two CDC ports
(DIAG and one for QMI) probe. I sent patches upstream to add required device
IDs for full support.
The mapping of USB functions is as follows:
- CDC (QCDM) - dedicated to comunicating with proprietary Qualcomm tools.
- CDC (PCUI) - not supported by upstream 'option' driver yet. Patch
  submitted upstream.
- CDC (Modem) - Exactly the same as above
- QMI - A patch is sent upstream to add device ID, with that in place,
  uqmi did connect successfully, once I selected correct PDP context
  type for my SIM (IPv4-only, not default IPv4v6).
- ADB - self-explanatory, one can access the ADB shell with a device ID
  added to 51-android.rules like so:

SUBSYSTEM!="usb", GOTO="android_usb_rules_end"
LABEL="android_usb_rules_begin"
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", ATTR{idProduct}=="1275", ENV{adb_user}="yes"
ENV{adb_user}=="yes", MODE="0660", GROUP="plugdev", TAG+="uaccess"
LABEL="android_usb_rules_end"

While not really needed in OpenWrt, it might come useful if one decides to
move the modem to their PC to hack it further, insides seem to be pretty
interesting. ADB also works well from within OpenWrt without that. O
course it isn't needed for normal operation, so I left it out of
DEVICE_PACKAGES.

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
[remove kmod-usb-ledtrig-usbport, take merged upstream patches]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agomvebu: add LED support for GL.iNet GL-MV1000
Jeff Collins [Thu, 25 Feb 2021 16:11:58 +0000 (11:11 -0500)]
mvebu: add LED support for GL.iNet GL-MV1000

This patch enables LED support for the GL.iNet GL-MV1000

Signed-off-by: Jeff Collins <jeffcollins9292@gmail.com>
[add SPDX identifier on new file, add aliases, minor cosmetic issues]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>