openwrt/openwrt.git
3 years agokernel: DSA roaming fix for Marvell mv88e6xxx
DENG Qingfang [Mon, 22 Feb 2021 05:38:11 +0000 (13:38 +0800)]
kernel: DSA roaming fix for Marvell mv88e6xxx

Marvell mv88e6xxx switch series cannot perform MAC learning from
CPU-injected (FROM_CPU) DSA frames, which results in 2 issues.
- excessive flooding, due to the fact that DSA treats those addresses
as unknown
- the risk of stale routes, which can lead to temporary packet loss

Backport those patch series from netdev mailing list, which solve these
issues by adding and clearing static entries to the switch's FDB.

Add a hack patch to set default VID to 1 in port_fdb_{add,del}. Otherwise
the static entries will be added to the switch's private FDB if VLAN
filtering disabled, which will not work.

The switch may generate an "ATU violation" warning when a client moves
from the CPU port to a switch port because the static ATU entry added by
DSA core still points to the CPU port. DSA core will then clear the static
entry so it is not fatal. Disable the warning so it will not confuse users.

Link: https://lore.kernel.org/netdev/20210106095136.224739-1-olteanv@gmail.com/
Link: https://lore.kernel.org/netdev/20210116012515.3152-1-tobias@waldekranz.com/
Ref: https://gitlab.nic.cz/turris/turris-build/-/issues/165
Signed-off-by: DENG Qingfang <dqfext@gmail.com>
(cherry picked from commit 920eaab1d8179035d0ae1047e75cf9a50da6a6eb)

3 years agox86/base-files: add support for Sophos SG/XG-105
Stan Grishin [Wed, 24 Mar 2021 16:18:08 +0000 (16:18 +0000)]
x86/base-files: add support for Sophos SG/XG-105

This adds detection of the Sophos SG-105 and Sophos XG-105 models
and assignment of ethernet ports these models have to LAN/WAN.

Signed-off-by: Stan Grishin <stangri@melmac.net>
(cherry picked from commit 64eaf633ff7f9280e04e65ae290eb8b65dd9e021)

3 years agoiproute2: fix libbpf detection with NLS enabled
Tony Ambardar [Sat, 27 Mar 2021 12:43:03 +0000 (05:43 -0700)]
iproute2: fix libbpf detection with NLS enabled

Upstream iproute2 detects libbpf using a one-line $CC test-compile, which
normally ignores LDFLAGS. With NLS enabled however, LDFLAGS includes an
"rpath-link" linker option needed to resolve libintl.so. Its absence
causes both the compile and libbpf detection to fail:

  ld: warning: libintl.so.8, needed by libbpf.so, not found (try using
      -rpath or -rpath-link)
  ld: libelf.so.1: undefined reference to `libintl_dgettext'
  collect2: error: ld returned 1 exit status

Fix this by directly including $LDFLAGS in the test-compile command.

Reported-by: Ian Cooper <iancooper@hotmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit aab3a04ce87c27996b7ce9ea306db8c6eed86941)

3 years agobinutils: fix libbfd missing DSO dependency if NLS enabled
Tony Ambardar [Sun, 28 Mar 2021 07:40:31 +0000 (00:40 -0700)]
binutils: fix libbfd missing DSO dependency if NLS enabled

The libbfd package definition uses $(ICONV_DEPENDS) and $(INTL_DEPENDS)
but links against neither, leading to libbfd detection failures in other
packages (e.g. bpftools) and on-target relocation problems with libintl.so:

  root@OpenWrt:/# ldd /usr/lib/libbfd.so
        ldd (0x77db6000)
        libc.so => ldd (0x77db6000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77c6d000)
  Error relocating /usr/lib/libbfd.so: libintl_dgettext: symbol not found

Add NLS-conditional linking of "libintl" to fix this. Also remove libbfd
package dependency $(ICONV_DEPENDS) which is not used during building or
linking.

Tested with QEMU on malta/be32, after building all packages from binutils,
bpftools and iproute2, using different libc options musl and glibc.

Fixes: 08e817569630 ("binutils: use nls.mk to fix libbfd link errors in
other packages")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 9a59f62f613b1ca774032ccd80c51c74491b142c)

3 years agobpftools: drop unneeded libintl linking for NLS
Tony Ambardar [Sun, 28 Mar 2021 08:12:22 +0000 (01:12 -0700)]
bpftools: drop unneeded libintl linking for NLS

There is no direct linking of libintl from bpftools, only secondary linking
through libelf, so remove "-lintl" from TARGET_LDFLAGS.

Fixes: 5582fbd6135f ("bpftools: support NLS, fix ppc build and update to 5.8.9")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit c8c638a19b63bf6c3bf8094aebd8fde6feda36ba)

3 years agoiproute2: separate tc into tiny and full variants
Tony Ambardar [Tue, 2 Mar 2021 01:14:50 +0000 (17:14 -0800)]
iproute2: separate tc into tiny and full variants

This change was investigated previously [1] but not deemed necessary. With
the recent addition [2] of modern BPF loader support, however, tc gained
dependencies on libelf and libbpf, with a larger installation footprint.

Similar to ip-tiny/ip-full, split tc into tc-full and tc-tiny variants,
where the latter excludes the eBPF loader, uses a smaller executable, and
avoids libelf and libbpf package dependencies. Both variants provide the
'tc' virtual package, with tc-tiny as the default.

The previous tc package included a loadable module for iptables actions.
Separate this out into a common package, tc-mod-iptables, which both
variants depend on. Some package sizes on mips_24kc:

Before:
  148343  tc_5.11.0-1_mips_24kc.ipk

After:
  144833  tc-full_5.11.0-2_mips_24kc.ipk
  138430  tc-tiny_5.11.0-2_mips_24kc.ipk  (and no libelf or libbpf)
    4115  tc-mod-iptables_5.11.0-2_mips_24kc.ipk

Also fix up some Makefile indentation.

[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447619962
[2] b048a305a3d3 ("iproute2: update to 5.11.0")

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 72885e9608d9c0fa06abce6bdb6dd054c2116eb7)

3 years agokernel/modules: relocate teql hotplug from iproute2 to kmod-sched
Tony Ambardar [Tue, 2 Mar 2021 04:59:04 +0000 (20:59 -0800)]
kernel/modules: relocate teql hotplug from iproute2 to kmod-sched

The link equalizer sch_teql.ko of package kmod-sched relies on a hotplug
script historically included in iproute2's tc package. In previous
discussion [1], consensus was the hotplug script is best located together
with the module in kmod-sched, but this change was deferred at the time.

Relocate the hotplug script now. This change also simplifies adding a tc
variant for minimal size with reduced functionality.

[1] https://github.com/openwrt/openwrt/pull/1627#issuecomment-447923636

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 863ce4f15f74a674f01ab47f445b362c113b113b)

3 years agoiproute2: add missing limits.h includes
Tony Ambardar [Sat, 13 Mar 2021 04:58:28 +0000 (20:58 -0800)]
iproute2: add missing limits.h includes

This patch has been submitted upstream to fix an error reported by a few
users. One instance seen using gcc 10.2.0, binutils 2.35.1 and musl 1.1.24:

bpf_glue.c: In function 'get_libbpf_version':
bpf_glue.c:46:11: error: 'PATH_MAX' undeclared (first use in this function);
did you mean 'AF_MAX'?
   46 |  char buf[PATH_MAX], *s;
      |           ^~~~~~~~
      |           AF_MAX

Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 10ffefe60299637bc592ec4ef0dde93e0e2e8344)

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>
(cherry picked from commit b048a305a3d3cbb5375e32757e70aa129b4c7c4f)

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>
(cherry picked from commit cbcddc9f318607881799e329b327a68c4e76d5cb)

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>
(cherry picked from commit 0b53d6f7fa8cc35cec5b22e1c64a2407fab6dfe3)

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>
(cherry picked from commit e0f7f5bbce0d03e5192b5dad5a24fcb8566da97f)

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>
(cherry picked from commit 06351f1bd0455abacb700db5098bb798f66948fc)
(cherry picked from commit 464451d9ab824c2ed62f7da33f0a965f562714c8)

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>
(cherry picked from commit 3888fa78802354ab7bbd19b7d061fd80a16ce06b)
(cherry picked from commit d54072587146dd0db9bb52b513234d944edabda3)
(cherry picked from commit 196f3d586f11d96ba4ab60068cfb12420bcd20fd)
(cherry picked from commit 3500fd7938a6d0c0e320295f0aa2fa34b1ebc08d)
(cherry picked from commit 23b801d3ba57e34cc609ea40982c7fbed08164e9)
(cherry picked from commit 0c0cb97da7f5cc06919449131dd57ed805f8f78d)
(cherry picked from commit 2a27f6f90a430342cdbe84806e8b10acff446a2d)
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>
(cherry picked from commit 7d00f632b7b245bcf25783797308325aa255b020)

3 years agobcm4908: enable Netgear R8000P bootloader image
Rafał Miłecki [Thu, 8 Apr 2021 08:39:56 +0000 (10:39 +0200)]
bcm4908: enable Netgear R8000P bootloader image

This enables building BCM4908 "raw" image that can be flashed using
bootloader web UI. It requires serial console access & stopping booting
by the "Press any key to stop auto run".

It's easy to build vendor like CHK image but it can't be safely flashed
using vendor UI at this point. Netgear implements method called "NAND
incremental flashing" that doesn't seem to flash bootfs partition as
provided.

Above method seems to update vmlinux.lz without updating 94908.dtb. It
prevents OpenWrt kernel from booting due to incomplete DTB file. Full
Netgear R8000P support can be enabled after finding a way to make vendor
firmware flash OpenWrt firmware including the 94908.dtb update.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit d92a9c97bf3700e90af1d3c9157502af660365c0)

3 years agobcm4908: enable target & Asus GT-AC5300 image
Rafał Miłecki [Thu, 8 Apr 2021 07:12:43 +0000 (09:12 +0200)]
bcm4908: enable target & Asus GT-AC5300 image

OpenWrt was succesfully tested on the GT-AC5300 model. It's possible to:
1. Install OpenWrt using vendor UI
2. Perform UBI aware sysupgrade
3. Install vendor firmware using OpenWrt sysupgrade

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 5e78cb9b85a045f436abf6a03aa5c774d30e1090)

3 years agofirmware-utils: bcm4908img: convert into a package
Rafał Miłecki [Thu, 1 Apr 2021 15:06:47 +0000 (17:06 +0200)]
firmware-utils: bcm4908img: convert into a package

bcm4908img is a tool managing BCM4908 platform images. It's used for
creating them as well as checking, modifying and extracting data from.

It's required by both: host (for building firmware images) and target
(for sysupgrade purposes). Make it a host/target package.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 9b4fc4cae9fa0cd0cd9060e1c9d33320c3249ced)

3 years agofirmware-utils: bcm4908img: fix uninitialized var usage
Rafał Miłecki [Thu, 8 Apr 2021 07:10:20 +0000 (09:10 +0200)]
firmware-utils: bcm4908img: fix uninitialized var usage

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 5a2086d230063b2f83a436ed37b0f6a92706bcb9)

3 years agobcm4908: fix Netgear R8000P image
Rafał Miłecki [Wed, 7 Apr 2021 12:38:45 +0000 (14:38 +0200)]
bcm4908: fix Netgear R8000P image

Use vendor format to allow flashing using Negear UI.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit f2c8c62d98f2137d8af896e56d5e29759cf48715)

3 years agobcm4908: add sysupgrade support
Rafał Miłecki [Wed, 7 Apr 2021 12:14:57 +0000 (14:14 +0200)]
bcm4908: add sysupgrade support

It supports flashing OpenWrt images (bootfs & UBI upgrade) as well as
vendor images (whole MTD partition write).

Upgrading cferom is unsupported. It requires copying device specific
data (like MAC) to target image before flashing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit a6a0b252baa6c19dfc62611ea910b56527ce4fa5)

3 years agobcm4908: pad firmware image bootfs JFFS2 partition to 8 MiB
Rafał Miłecki [Wed, 7 Apr 2021 07:30:30 +0000 (09:30 +0200)]
bcm4908: pad firmware image bootfs JFFS2 partition to 8 MiB

This way MTD "bootfs" partition will be always 8+ MiB. This should be
enough for any custom / future firmware to fit its bootfs (e.g. big
kernel) without having to repertition whole flash. That way we can
preserve UBI and its erase counters during sysupgrade.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit ca9b1f15c424d68af0f372c37c8eee81b36ee7e1)

3 years agofirmware-utils: bcm4908img: extract bootfs without padding
Rafał Miłecki [Wed, 7 Apr 2021 05:59:57 +0000 (07:59 +0200)]
firmware-utils: bcm4908img: extract bootfs without padding

JFFS2 bootfs partition in a BCM4908 image usually includes some padding.
For flashing it individually (writing to designed MTD partition) we want
just JFFS2 data.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit ed7edf88e20c9dd0026e5c5629d8a6500d3e3f80)

3 years agofirmware-utils: bcm4908img: fix extracting cferom
Rafał Miłecki [Tue, 6 Apr 2021 22:17:40 +0000 (00:17 +0200)]
firmware-utils: bcm4908img: fix extracting cferom

Fix offset to extract proper data when image contains vendor header.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit dcbde11af181055f2d1c77ebc19f50c29bbab96e)

3 years agofirmware-utils: bcm4908img: support extracting bootfs & rootfs
Rafał Miłecki [Mon, 5 Apr 2021 17:30:06 +0000 (19:30 +0200)]
firmware-utils: bcm4908img: support extracting bootfs & rootfs

It's required for upgrading firmware using single partitions instead of
just blindly writing whole image.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e33957c241abf8f0dbf5f3713058d126fb4599b4)

3 years agofirmware-utils: bcm4908img: replace size with offset
Rafał Miłecki [Mon, 5 Apr 2021 23:06:52 +0000 (01:06 +0200)]
firmware-utils: bcm4908img: replace size with offset

It's much easier to operate on BCM4908 image data with absolute offset
of each section stored. It doesn't require summing sizes over and over.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 5314cab729b743d3b8b08db4e01c3095017f4e68)

3 years agobcm4908: rename bootfs dummy file to the 1-openwrt
Rafał Miłecki [Mon, 5 Apr 2021 22:03:31 +0000 (00:03 +0200)]
bcm4908: rename bootfs dummy file to the 1-openwrt

The purpose of that dummy file is to make CFE work properly with OpenWrt
bootfs. CFE for some reason ignores JFFS2 files with ino 0.

Rename it to 1-openwrt so:
1. It's consistent with bcm63xx
2. It's OpenWrt specific so sysupgrade can distinguish it from vendor
   images

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 880c8b44223c9cbce3dd14da78c33676c6f1a8a6)

3 years agobcm4908: enable JFFS2 support
Rafał Miłecki [Mon, 5 Apr 2021 08:44:46 +0000 (10:44 +0200)]
bcm4908: enable JFFS2 support

It's needed for accessing JFFS2 bootfs partition.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 180c4635265b4907221a62b3068ac89447cd83d7)

3 years agofirmware-utils: bcm4908img: add bootfs support
Rafał Miłecki [Fri, 2 Apr 2021 15:28:21 +0000 (17:28 +0200)]
firmware-utils: bcm4908img: add bootfs support

This adds support for accessing bootfs JFFS2 partition in the BCM4908
image. Support includes:
1. Listing files
2. Renaming file (requires unchanged name length)

Above commands are useful for flashing BCM4908 images which by defualt
come with cferom.000 file and require renaming it.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit ed847ef5f340dcae1556cbc6dfaa6657a5179be6)

3 years agofirmware-utils: bcm4908img: support extracting image data
Rafał Miłecki [Fri, 2 Apr 2021 14:31:43 +0000 (16:31 +0200)]
firmware-utils: bcm4908img: support extracting image data

It's useful for upgrading cferom, firmware, etc.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 9c039d56a154bb416492bf5657093576d50cc220)

3 years agofirmware-utils: bcm4908img: find cferom size
Rafał Miłecki [Fri, 2 Apr 2021 13:04:46 +0000 (15:04 +0200)]
firmware-utils: bcm4908img: find cferom size

It's important for modifying / extracting firmware content. cferom is
optional image content at the file beginning.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 6af45b842bd22633fa3ccd57edaf073a759525bb)

3 years agofirmware-utils: bcm4908img: use "info" command displaying file info
Rafał Miłecki [Fri, 2 Apr 2021 12:12:58 +0000 (14:12 +0200)]
firmware-utils: bcm4908img: use "info" command displaying file info

BCM4908 image format contains some info that may be useful for info /
debugging purposes.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 9b9184f1782489163eb204f3b238de778ae1214b)

3 years agofirmware-utils: bcm4908img: support reading from stdin
Rafał Miłecki [Sun, 4 Apr 2021 12:53:00 +0000 (14:53 +0200)]
firmware-utils: bcm4908img: support reading from stdin

1. Don't allow pipe stdin as we need to fseek()
2. Don't alow TTY as it doesn't make sense for binary input

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit d533b27bc09eb5323a05ed44589235a86edcda0d)

3 years agofirmware-utils: bcm4908img: detect Netgear vendor firmware
Rafał Miłecki [Fri, 2 Apr 2021 11:59:02 +0000 (13:59 +0200)]
firmware-utils: bcm4908img: detect Netgear vendor firmware

Netgear uses CHK header which needs to be skipped when validating
BCM4908 image. Detect it directly in the bcm4908img tool. Dealing with
binary structs and endianess is way simpler in C.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit a39f85d8b66125f07c4bcbea46b296946de60dc7)

3 years agofirmware-utils: bcm4908img: extract parsing code
Rafał Miłecki [Fri, 2 Apr 2021 11:02:51 +0000 (13:02 +0200)]
firmware-utils: bcm4908img: extract parsing code

Move code parsing existing firmware file to separated function. This
cleans up existing code and allows reusing parsing code for other
commands.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 7d5f7439428d2b4c6952af47b36acc010b846372)

3 years agobcm4908: backport DT patch adding Ethernet MAC address
Rafał Miłecki [Wed, 31 Mar 2021 21:14:24 +0000 (23:14 +0200)]
bcm4908: backport DT patch adding Ethernet MAC address

This tells OS (Linux) where from MAC should be read (bootloader MTD
partition).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 1cc5eb45d5192b41d97d5da58c34353f4c3240f9)

3 years agofirmware-utils: bcm4908kernel: name struct fields
Rafał Miłecki [Wed, 24 Mar 2021 21:44:14 +0000 (22:44 +0100)]
firmware-utils: bcm4908kernel: name struct fields

Less magic names / values.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit a3611432a6c3490fb2b6fdbc1ce664cf70900668)

3 years agokernel: create bootfs partition when parsing on BCM4908
Rafał Miłecki [Wed, 24 Mar 2021 17:20:13 +0000 (18:20 +0100)]
kernel: create bootfs partition when parsing on BCM4908

It's helpful for accessing booting data (DTS, kernel, etc.). It has to
be used carefully as CFE's JFFS2 support is quite dumb. It doesn't
recognize deleted files and has problems handling 0 inode.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 6dd727ac24fa36ac3f23e9a5cf6781a7d1c6b797)

3 years agofirmware-utils: bcm4908img: name fields & values
Rafał Miłecki [Wed, 24 Mar 2021 16:29:30 +0000 (17:29 +0100)]
firmware-utils: bcm4908img: name fields & values

Less magic numbers

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 1ff7569387f69550e8a9356a109a875e4fdb4412)

3 years agobcm4908: backport the latest bcm_sf2 commits
Rafał Miłecki [Mon, 22 Mar 2021 07:09:53 +0000 (08:09 +0100)]
bcm4908: backport the latest bcm_sf2 commits

1. CFP support for BCM4908
2. Upstream RGMII regs fix

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit a49fd9db0a2bfad8ea9a09f32fadbd3cc7e46205)

3 years agobcm4908: backport DTS patch with Ethernet TX IRQ
Rafał Miłecki [Mon, 22 Mar 2021 06:40:38 +0000 (07:40 +0100)]
bcm4908: backport DTS patch with Ethernet TX IRQ

It allows bcm4908_enet Linux driver to work more efficiently.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 13d9904acdd24e002aab3d6c3dd7879826b54008)

3 years agobcm53xx: enhance support for Linksys EA9500
Vivek Unune [Fri, 13 Nov 2020 13:43:00 +0000 (08:43 -0500)]
bcm53xx: enhance support for Linksys EA9500

1. Add leds and configs
2. Add network configs
3. Add script to clear partial boot flag
4. Hack to use port 5 as cpu port as port 8 connected to eth2
   wont pass any frames
5. Enable EA9500 image generation

Hardware Info:

- Processor - Broadcom BCM4709C0KFEBG dual-core @ 1.4 GHz
- Switch - BCM53012 in BCM4709C0KFEBG & external BCM53125
- DDR3 RAM - 256 MB
- Flash - 128 MB (Toshiba TC58BVG0S3HTA00)
- 2.4GHz - BCM4366 4×4 2.4/5G single chip 802.11ac SoC
- Power Amp - Skyworks SE2623L 2.4 GHz power amp (x4)
- 5GHz x 2 - BCM4366 4×4 2.4/5G single chip 802.11ac SoC
- Power Amp - PLX Technology PEX8603 3-lane, 3-port PCIe switch
- Ports - 8 Ports, 1 WAN Ports
- Antennas - 8 Antennas
- Serial Port - @j6 [GND,TX,RX] (VCC NC) 115200 8n1

Flashing Instructions:

1. Connect a USB-TTL table to J6 on the router as well as a
   ethernet cable to a lan port and your PC.
2. Power-on the router.
3. Use putty or a serial port program to view the terminal.
   Hit Ctrl+C and interrupt the CFE terminal terminal.
4. Setup a TFTP server on your local machine at setup you
   local IP to 192.168.1.2
5. Start the TFTP Server
6. Run following commands at the CFE terminal

   flash -noheader 192.168.1.2:/openwrt.trx nflash0.trx
   flash -noheader 192.168.1.2:/openwrt.trx nflash0.trx2
   nvram set bootpartition=0 && nvram set partialboots=0 && nvram commit

7. Reboot router to be presented by OpenWrt

Note: Only installation method via serial cable is supported at the moment.
The trx firmware has to be flashed to both the partitions using following
commands from CFE prompt. This will cover US and Non-US variants.

Signed-off-by: Vivek Unune <npcomplete13@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 209c5918b511d9e406a094ba246a985b640e519f)

3 years agobcm53xx: use upstream Linksys EA9500 fixes
Rafał Miłecki [Thu, 1 Apr 2021 05:00:06 +0000 (07:00 +0200)]
bcm53xx: use upstream Linksys EA9500 fixes

One fix was accepted, one was added.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 22369ad7887e98bdb9d1999f221dfcd5fbb2f389)

3 years agobcm53xx: fix Linksys EA9500 partitions
Rafał Miłecki [Mon, 29 Mar 2021 07:28:47 +0000 (09:28 +0200)]
bcm53xx: fix Linksys EA9500 partitions

Use proper DT binding.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit f8669c174ee17bbb8d59f901d639f57449dcf751)

3 years agobcm53xx: backport Linksys Panamera (EA9500) patches
Vivek Unune [Fri, 13 Nov 2020 13:39:43 +0000 (08:39 -0500)]
bcm53xx: backport Linksys Panamera (EA9500) patches

These patches have been already accepted.

302-ARM-dts-BCM5301X-Update-Northstar-pinctrl-binding.patch had to
be updated.

[rmilecki: use actual upstream accepted patches
           replace v5.10 with v5.11 to match actual upstream kernel
           recover dropped part of the pinctrl compatible patch
           update filenames
           refresh patches]

Signed-off-by: Vivek Unune <npcomplete13@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 39ed2265dde1bc8817f9dc6ba053268bb6939ae6)

3 years agokernel: backport 5.13 mtd partitioning changes
Rafał Miłecki [Mon, 29 Mar 2021 06:16:17 +0000 (08:16 +0200)]
kernel: backport 5.13 mtd partitioning changes

1. Use upstream accepted NVMEM patches
2. Minor fix for BCM4908 partitioning
3. Support for Linksys firmware partitions on Northstar

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 3fd0a4222b6efbfbdb560c5b13e899ecda627494)

3 years agomac80211: merge a few pending tx related fixes
Felix Fietkau [Sun, 28 Mar 2021 10:15:42 +0000 (12:15 +0200)]
mac80211: merge a few pending tx related fixes

Improve performance and fix potential mgmt tx hangs/warnings

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 571aedbc6cbb7a9bfc96bcad543a39d158925cbc)

3 years agomac80211: backport upstream patches for driver disconnect
Felix Fietkau [Sun, 14 Mar 2021 23:05:42 +0000 (00:05 +0100)]
mac80211: backport upstream patches for driver disconnect

Needed for an mt76 update

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 5dc501507222b38d731b89c3311d8253b73dd0e7)

3 years agobuild: use -nostdinc and -isystem in NOSTDINC_FLAGS for out-of-tree kernel modules
Felix Fietkau [Thu, 18 Mar 2021 06:22:11 +0000 (07:22 +0100)]
build: use -nostdinc and -isystem in NOSTDINC_FLAGS for out-of-tree kernel modules

This resolves issues uncovered by musl updates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry-picked from commit 9ac47ee46918c45b91f4e4d1fa76b1e26b9d57fe)

3 years agogeneric: add missing symbols
David Bauer [Mon, 22 Feb 2021 01:00:02 +0000 (02:00 +0100)]
generic: add missing symbols

Signed-off-by: David Bauer <mail@david-bauer.net>
(cherry picked from commit 55ed4bf6d7bf80b705d015c3b73f772db485ba9c)

3 years agoath79: fix label_mac for NEC Aterm WG1200CR
INAGAKI Hiroshi [Wed, 24 Mar 2021 15:15:57 +0000 (00:15 +0900)]
ath79: fix label_mac for NEC Aterm WG1200CR

On NEC Aterm WG1200CR, the MAC address for WAN is printed in the label
on the case, not LAN.
This patch fixes this issue.

Fixes: 50fdc0374b ("ath79: provide label MAC address")
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
(cherry picked from commit e2331fb5491e52e3e21ab18b58d064b344e093e5)

3 years agoramips: correct switch config of Youku yk1
Shiji Yang [Sun, 21 Mar 2021 09:01:49 +0000 (17:01 +0800)]
ramips: correct switch config of Youku yk1

There are only two lan ports and one wan port on Youku yk1

Fixes: e9baf8265bb8 ("ramips: add support for Youku YK1")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[add Fixes:]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit b88d2850c66d7dc937e570661a047c647c588af5)

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>
(cherry picked from commit ea6d4bdde20a3fecbfc44b99f53373e1d0666e34)

3 years agoipq40xx: net: phy: qca807x: fix GPIO driver
Robert Marko [Thu, 4 Mar 2021 11:38:31 +0000 (12:38 +0100)]
ipq40xx: net: phy: qca807x: fix GPIO driver

While rebasing into setting bits instead of magic values,
I accidentally forgot to actually set the force bit.

Without it using the pins as GPIO-s did not actually work.

Fixes: b5c93ed ("ipq40xx: add Qualcomm QCA807x driver")
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit 7f2d9ccd09a1d3034aaf9c943747fc1631da5cac)

3 years agobpftools: fix libbpf pkgconfig file
Tony Ambardar [Mon, 1 Mar 2021 09:07:45 +0000 (01:07 -0800)]
bpftools: fix libbpf pkgconfig file

The pkgconfig file hardcodes a host library directory which cannot be
overridden by OpenWrt during builds. Use SED to fix this and potential
include directory problems, as is done with several other packages.

This fixes a strange issue intermittently seen building iproute2 on the
oxnas target:

iptables modules directory: /usr/lib/iptables
libc has setns: yes
SELinux support: no
libbpf support: no
libbpf version 0.3.0 is too low, please update it to at least 0.1.0
LIBBPF_FORCE=on set, but couldn't find a usable libbpf

Fixes: 2f0d672088c3 ("bpftools: add utility and library packages
supporting eBPF usage")
Reported-by: Russell Senior <russell@personaltelco.net>
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 9e64e4ce26719ea81637b0e3d9754bd5190f0c21)

3 years agogitignore: add .vscode for VS Code users
Álvaro Fernández Rojas [Mon, 8 Mar 2021 09:46:06 +0000 (10:46 +0100)]
gitignore: add .vscode for VS Code users

For Visual Studio Code users, .vscode is created inside the workspace.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit 12dbad1a86ebdbb4c9bd71b14eec245bc6373844)

3 years agoath79: fix RS-485 on Teltonika RUT-955
Daniel Golle [Wed, 17 Mar 2021 03:39:51 +0000 (03:39 +0000)]
ath79: fix RS-485 on Teltonika RUT-955

DTR GPIO isn't actually needed and triggers boot warning.
TX pin was off by one (GPIO 19 instead of GPIO 18).

Reported-by: @tophirsch
Fixes: d1130ad265 ("ath79: add support for Teltonika RUT955")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 53a7d5d614050a38a4e78f5a9e153e7612d587f0)

3 years agolantiq: set maximum kernel size for ARV7519RW22
Aleksander Jan Bajkowski [Wed, 3 Mar 2021 21:46:50 +0000 (22:46 +0100)]
lantiq: set maximum kernel size for ARV7519RW22

Some users report that current snapshot producies non-bootable images.
Stock uboot can boot images if the kernel is smaller than 2MB.

Set maximum kernel size and disable image building for this board.

Ref: https://forum.openwrt.org/t/astoria-arv7519rw22-bootloops-after-upgrade/89843
Signed-off-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
(cherry picked from commit c027dbac5a5222e6be4706a7a6a0effefce8ae76)

3 years agoppp: compile fix: unset FILTER variable in Makefile
Eike Ritter [Sun, 14 Mar 2021 18:50:21 +0000 (18:50 +0000)]
ppp: compile fix: unset FILTER variable in Makefile

If the environment variable FILTER is set before compilation,
compilation of the ppp-package will fail with the error message

Package ppp is missing dependencies for the following libraries:
libpcap.so.1

The reason is that the OpenWrt-patch for the Makefile only comments
out the line FILTER=y. Hence the pcap-library will be dynamically
linked if the environment variable FILTER is set elsewhere, which
causes compilation to fail. The fix consists on explicitly unsetting
the variable FILTER instead.

Signed-off-by: Eike Ritter <git@rittere.co.uk>
(cherry picked from commit 46cd0765d0c585dc0b48c8c0a3f116ef83cd580f)

3 years agobusybox: udhcpc, allow zero length dhcp options
Russell Senior [Tue, 16 Mar 2021 08:24:18 +0000 (01:24 -0700)]
busybox: udhcpc, allow zero length dhcp options

This patch skips zero length DHCP options instead of failing.

Signed-off-by: Russell Senior <russell@personaltelco.net>
(cherry picked from commit 1c0436507156dc136d9e2668507817395434109e)

3 years agomvebu: Fix mac addresses for GL.iNet GL-MV1000
Sven Eckelmann [Thu, 25 Mar 2021 12:26:15 +0000 (13:26 +0100)]
mvebu: Fix mac addresses for GL.iNet GL-MV1000

The original GL.iNet firmware has two different mac addresses in the
factory/art partition. The first one is for the WAN interface only and the
second one is for both lan0 and lan1.

But the original submission for OpenWrt didn't initialize the mac
addresses of the LAN ports for the DSA device at all. The ethernet mac
address was then used for all DSA ports.

Fixes: 050c24f05c85 ("mvebu: add support for GL.iNet GL-MV1000")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
(cherry picked from commit c20ac84803242e5a6451184009dabc36ba83b96e)

3 years agomvebu: Add button support for GL.iNet GL-MV1000
Sven Eckelmann [Thu, 25 Mar 2021 12:26:15 +0000 (13:26 +0100)]
mvebu: Add button support for GL.iNet GL-MV1000

The original patch to support this device advertised support for the reset
button and the "switch" in the commit message. But neither were actually
integrated in the device tree or documented anywere.

The button itself is now used to trigger a reset (as described in the
official GL.iNet documentation). The switch itself is registered as BTN_0
like other devices from GL.iNet in ath79.

Fixes: 050c24f05c85 ("mvebu: add support for GL.iNet GL-MV1000")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
(cherry picked from commit 01b911a9381426314762822f97e3a7e658295f50)

3 years agomvebu: enable WRT1900AC v1 and WRT32X for buildbots
Tad Davanzo [Tue, 9 Feb 2021 22:42:54 +0000 (17:42 -0500)]
mvebu: enable WRT1900AC v1 and WRT32X for buildbots

Kernel size limits have been dealt with.
Effective revert of a1eb2c46 and ac9730c4.

Signed-off-by: Tad Davanzo <tad@spotco.us>
(cherry picked from commit b4f76d9f0d61779b5e04228d1eb3f2ba412ffd26)

3 years agomvebu: venom resize kernel to 6MB
Tad Davanzo [Sat, 6 Feb 2021 03:42:47 +0000 (22:42 -0500)]
mvebu: venom resize kernel to 6MB

venom has a 3MB kernel partition as specified by the DTS.
3MB is not sufficient for building with many kernel modules or newer
kernel versions.

venom uboot however as set from factory will load up to 6MB.
This can be observed by looking a uboot log:
NAND read: device 0 offset 0x900000, size 0x600000
6291456 bytes read: OK
and from uboot environment variables:
$ fw_printenv | grep "priKernSize";
priKernSize=0x0600000

Resize the root partitions from 120MB to 117MB to let kernel expand
into it another 3MB.
And set kernel target size to 6MB.

Lastly set the kernel-size-migration compatibility version on venom to
prevent sysupgrading without first reinstalling from a factory image.

Signed-off-by: Tad Davanzo <tad@spotco.us>
(cherry picked from commit 15309f5133d55e92bec3ed91dfb3ac9d124f6a96)

3 years agomvebu: mamba resize kernel to 4MB
Tad Davanzo [Sat, 6 Feb 2021 03:38:03 +0000 (22:38 -0500)]
mvebu: mamba resize kernel to 4MB

mamba has a 3MB kernel partition as specified by the DTS.
3MB is not sufficient for building with many kernel modules or newer
kernel versions.

mamba uboot however as set from factory will load up to 4MB.
This can be observed by looking a uboot log:
NAND read: device 0 offset 0xa00000, size 0x400000
4194304 bytes read: OK
and from uboot environment variables:
$ fw_printenv | grep "pri_kern_size";
pri_kern_size=0x400000

Resize the root partitions from 37MB to 36MB to let kernel expand
into it another 1MB.
And set kernel target size to 4MB.

Lastly add a compatibility version message: kernel-size-migration.
And set it on mamba to prevent sysupgrading without first reinstalling from
a factory image.

Signed-off-by: Tad Davanzo <tad@spotco.us>
(cherry picked from commit 10415d5e7016b69dc71c5f1b03e8e17b586f8edd)

3 years agofirewall3: update to latest git HEAD
Tony Ambardar [Fri, 26 Mar 2021 05:47:36 +0000 (22:47 -0700)]
firewall3: update to latest git HEAD

This includes several improvements and fixes:

  61db17e rules: fix device and chain usage for DSCP/MARK targets
  7b844f4 zone: avoid duplicates in devices list
  c2c72c6 firewall3: remove last remaining sprintf()
  12f6f14 iptables: fix serializing multiple weekdays
  00f27ab firewall3: fix duplicate defaults section detection
  e8f2d8f ipsets: allow blank/commented lines with loadfile
  8c2f9fa fw3: zones: limit zone names to 11 bytes
  78d52a2 options: fix parsing of boolean attributes

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(cherry picked from commit 0d75aa27d4093625c85f2d2233dd5392a7e2aa32)

3 years agokernel: backports: mt7530: fix TRGMII mode after reset
Ilya Lipnitskiy [Tue, 16 Mar 2021 05:29:55 +0000 (22:29 -0700)]
kernel: backports: mt7530: fix TRGMII mode after reset

Backport upstream patch that fixes TRGMII mode now that mt7530 is
actually resetting the switch on ramips devices.

Patches apply to both Linux 5.4 and 5.10, since TRGMII is broken on both.

Fixes: 69551a244292 ("ramips: manage low reset lines")
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
(cherry picked from commit 680f91d0e5444d58815af03bf41c12592438f9d8)

3 years agokernel: Deactivate CONFIG_VFIO in generic kernel config
Hauke Mehrtens [Thu, 25 Mar 2021 10:27:31 +0000 (11:27 +0100)]
kernel: Deactivate CONFIG_VFIO in generic kernel config

Instead of deactivating this in every target config, deactivate it once
in the generic kernel config. I was asked for this config option in a
x86 64 build in OpenWrt 21.02.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 7d6553c72edada262ada8dbe871243c35400573d)

3 years agokernel: bump 5.4 to 5.4.108
Hauke Mehrtens [Wed, 24 Mar 2021 20:47:36 +0000 (21:47 +0100)]
kernel: bump 5.4 to 5.4.108

Refreshed all patches.

Compile-tested on: x86_64, ath79, lantiq
Runtime-tested on: x86_64, ath79

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3 years agoath79: Add support for Buffalo WZR-HP-G300NH
Mauri Sandberg [Mon, 7 Sep 2020 19:04:26 +0000 (22:04 +0300)]
ath79: Add support for Buffalo WZR-HP-G300NH

This device is a wireless router working on 2.4GHz band based on
Qualcom/Atheros AR9132 rev 2 SoC and is accompanied by Atheros AR9103
wireless chip and Realtek RTL8366RB/S switches. Due to two different
switches being used also two different devices are provided.

  Specification:
  - 400 MHz CPU
  - 64 MB of RAM
  - 32 MB of FLASH (NOR)
  - 3x3:2 2.4 GHz 802.11bgn
  - 5x 10/100/1000 Mbps Ethernet
  - 4x LED, 3x button, On/Off slider, Auto/On/Off slider
  - 1x USB 2.0
  - bare UART header place on PCB

  Flash instruction:
  - NOTE: Pay attention to the switch variant and choose the image to
    flash accordingly. (dmesg / kernel logs can tell it)
  - Methods for flashing
    - Apply factory image in OEM firmware web-gui.
    - Sysupgrade on top of existing OpenWRT image
    - U-Boot TFPT recovery for both stock or OpenWRT images:
      The device U-boot contains a TFTP server that by default has
      an address 192.168.11.1 (MAC 02:AA:BB:CC:DD:1A). During the boot
      there is a time window, during which the device allows an image to
      be uploaded from a client with address 192.168.11.2. The image will
      be written on flash automatically.

      1) Have a computer with static IP address 192.168.11.2 and the
         router device switched off.
      2) Connect the LAN port next to the WAN port in the device and the
         computer using a network switch.
      3) Assign IP 192.168.11.1 the MAC address 02:AA:BB:CC:DD:1A
         arp -s 192.168.11.1 02:AA:BB:CC:DD:1A
      4) Initiate an upload using TFTP image variant
         curl -T <imagename> tftp://192.168.11.1
      5) Switch on the device. The image will be uploaded subsequently.
         You can keep an eye on the diag light on the device, it should
         keep on blinking for a while indicating the writing of the image.

  General notes:
  - In the stock firmware the MAC address is the same among all
    interfaces so it is left here that way too.

  Recovery:
  - TFTP method
  - U-boot serial console

  Differences to ar71xx platform
  - This device is split in two different targets now due to hardware
    being a bit different under the hood. Dynamic solution within the same
    image is left for later time.
  - GPIOs for a sliding On/Off switch, marked 'Movie engine' on the device
    cover, were the wrong way around and were renamed qos_on -> movie_off,
    qos_off -> movie_on. Associated key codes remained the same they were.

  The device tree source code is mostly based on musashino's work

Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
(cherry picked from commit bc356de2850f14629cb1301be719772fa1212e72)

3 years agoath79: cfi: cmdset_0002: amd chip 0x2201 - write words
Mauri Sandberg [Mon, 14 Sep 2020 19:45:15 +0000 (22:45 +0300)]
ath79: cfi: cmdset_0002: amd chip 0x2201 - write words

Generally, in upstream CFI flash memory driver uses buffers for write
operations. That does not work with AMD chip with id 0x2201 and we must
resort to writing word sized chunks only. That is, to not apply general
buffer write functionality for this given chip.

Without the patch kernel logs will be flooded with entries like below:

MTD do_erase_oneblock(): ERASE 0x01fa0000
MTD do_write_buffer(): WRITE 0x01fa0000(0x00001985)
MTD do_erase_oneblock(): ERASE 0x01f80000
MTD do_write_buffer(): WRITE 0x01f80000(0x00001985)
MTD do_write_buffer_wait(): software timeout, address:0x01f8000a.
jffs2: Write clean marker to block at 0x01a60000 failed: -5
MTD do_erase_oneblock(): ERASE 0x01f60000
MTD do_write_buffer(): WRITE 0x01f60000(0x00001985)
MTD do_write_buffer_wait(): software timeout, address:0x01f6000a.
jffs2: Write clean marker to block at 0x01a40000 failed: -5

References: http://patchwork.ozlabs.org/project/linux-mtd/patch/20210309174859.362060-1-sandberg@mailfence.com/
Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
[added link to usptream fix submission]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 8cc0fa8faceadac85353bb1a96e074518ef124e2)

3 years agopackages: kernel: add gpio-nxp-74hc153
Mauri Sandberg [Thu, 21 May 2020 06:59:52 +0000 (09:59 +0300)]
packages: kernel: add gpio-nxp-74hc153

NXP 74HC153 is a GPIO expander. Its original source cide sits in ar71xx
architecture tree. It has been slightly modified to get GPIO pin
configuration from the device tree rather than a MACH file.

 Changes to the source file:
  - Remove struct nxp_74hc153_config
  - in nxp_74hc153_probe(), fetch GPIO configuration from device tree
  - allow GPIO framework decide the base number by passing -1 to it
  - remove support for kernel versions below 4.5.0
  - add OF device compatibility string

 Create a package for inclusion in image.

References: https://lore.kernel.org/linux-gpio/545111184.50061.1615922388276@ichabod.co-bxl/
Signed-off-by: Mauri Sandberg <sandberg@mailfence.com>
[added link to driver usptreaming work in progress]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 6a6f9e73dd65f9201bee911d2fae8595f86c093b)

3 years agoopenssl: bump to 1.1.1k
Eneas U de Queiroz [Fri, 26 Mar 2021 17:46:29 +0000 (14:46 -0300)]
openssl: bump to 1.1.1k

This version fixes 2 security vulnerabilities, among other changes:

 - CVE-2021-3450: problem with verifying a certificate chain when using
   the X509_V_FLAG_X509_STRICT flag.

 - CVE-2021-3449: OpenSSL TLS server may crash if sent a maliciously
   crafted renegotiation ClientHello message from a client.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit 0bd0de7d43b3846ad0d7006294e1daaadfa7b532)

3 years agobuild,json: backport default_packages fixes
Paul Spooren [Fri, 26 Mar 2021 08:53:28 +0000 (22:53 -1000)]
build,json: backport default_packages fixes

Remove duplicate packages by running in `target/linux/` rather than
`target/linux/<target>/<subtarget>` and sort packages alphabetically.

Squash commit of:
7880a64848 build,json: 3rd fixup of default_packages
b36068d35d build,json: fixup fixup of arch_packages
1bf2b3fe90 build,json: fixup missing arch_packages

Signed-off-by: Paul Spooren <mail@aparcar.org>
3 years agomwlwifi: add PKG_FLAGS:=nonshared
Daniel Golle [Wed, 24 Mar 2021 09:47:12 +0000 (09:47 +0000)]
mwlwifi: add PKG_FLAGS:=nonshared

This should fix the problem of mwlwifi-firmware-* not being found
when using the ImageBuilder.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 9b3aaf1cdb873cc2a7b2f2ef4e72ddb716afba38)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agobuild,json: fix duplicates in default_packages
Paul Spooren [Sun, 21 Mar 2021 09:23:34 +0000 (23:23 -1000)]
build,json: fix duplicates in default_packages

Calling without the DUMP=1 argument causes the target specific Makefile
to be "included" again which adds the target specific packages twice,
once on the actual run and once included from `include/target.mk`.

This led to duplicate package entries, causing confusion in downstream
projects using the generated JSON files.

While at it, apply `black` style to Python script.

Signed-off-by: Paul Spooren <mail@aparcar.org>
(cherry picked from commit 7f4c2b1a4f9216218dced64794318f2197565c85)

3 years agobase-files: add logging for configuration import
Florian Eckert [Mon, 1 Feb 2021 09:58:09 +0000 (10:58 +0100)]
base-files: add logging for configuration import

Make sysupgrade backup import more verbose.

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit fdbdbe8eaaa6aa3acacdcb3ae1308b2a2055fc39)

3 years agoramips: add support for ELECOM WRC-1750GST2
INAGAKI Hiroshi [Wed, 17 Mar 2021 09:35:34 +0000 (18:35 +0900)]
ramips: add support for ELECOM WRC-1750GST2

ELECOM WRC-1750GST2 is a 2.4/5 GHz band 11ac (Wi-Fi 5) router, based on
MT7621A.

Specification:

- SoC : MediaTek MT7621A
- RAM : DDR3 256 MiB (NT5CC128M16JR-EK)
- Flash : SPI-NOR 32 MiB (MX25L25645GMI-08G)
- WLAN : 2.4/5 GHz 3T3R (2x MediaTek MT7615)
- Ethernet : 10/100/1000 Mbps x5
  - Switch : MediaTek MT7530 (SoC)
- LEDs/Keys : 4x/6x (2x buttons, 1x slide-switch)
- UART : through-hole on PCB
  - J4: 3.3V, GND, TX, RX, from ethernet port side
  - 57600n8
- Power : 12 VDC, 1.5 A

Flash instruction using factory image:

1. Boot WRC-1750GST2 normally with "Router" mode
2. Access to "http://192.168.2.1/" and open firmware update page
   ("ファームウェア更新")
3. Select the OpenWrt factory image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing

MAC addresses:

LAN : 04:AB:18:xx:xx:23 (Factory, 0xE000 (hex))
WAN : 04:AB:18:xx:xx:24 (Factory, 0xE006 (hex))
2.4GHz : 04:AB:18:xx:xx:25 (Factory, 0x4    (hex))
5GHz : 04:AB:18:xx:xx:26 (Factory, 0x8004 (hex))

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
(cherry picked from commit b3ca1f30efd7bb96a22f72b766d302e552265276)

3 years agoath79: fix lan port display order for sitecom wlr-7100
Walter Sonius [Sun, 21 Mar 2021 19:06:33 +0000 (20:06 +0100)]
ath79: fix lan port display order for sitecom wlr-7100

Physical port order watched from the back of the device is:
4 / 3 / 2 / 1 / WAN which also matches corresponding leds.
This patch corrects LuCI switch webpage LAN port order.

Signed-off-by: Walter Sonius <walterav1984@gmail.com>
[improve commit title, fix sorting in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
(cherry picked from commit 46c0634b508f731df487a7909c439b2794445e26)

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>
(cherry picked from commit 6e0c780eb3b4ba1e52216c1d671897749dd81829)

3 years agobcm27xx: bcm2711: correctly disable HW_RANDOM_BCM2835
Álvaro Fernández Rojas [Sun, 21 Mar 2021 11:39:47 +0000 (12:39 +0100)]
bcm27xx: bcm2711: correctly disable HW_RANDOM_BCM2835

It was removed in bac74aff5e36, but it should have been disabled.
More info: https://forum.openwrt.org/t/make-image-stops-at-random-number-generator-bcm27xx/91429/7

Fixes: bac74aff5e36 ("bcm27xx: bcm2711: disable HW_RANDOM_BCM2835")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry picked from commit f93b544f01)

3 years agouhttpd: update to git HEAD
Hauke Mehrtens [Sun, 21 Mar 2021 21:34:13 +0000 (22:34 +0100)]
uhttpd: update to git HEAD

15346de client: Always close connection with request body in case of error

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 1170655f8b792b34f899350cb0272ad94bb2d3e2)

3 years agouhttpd: Execute uci commit and reload_config once
Hauke Mehrtens [Sat, 20 Mar 2021 12:26:20 +0000 (13:26 +0100)]
uhttpd: Execute uci commit and reload_config once

Instead of doing uci commit and reload_config for each setting do it
only once when one of these options was changed. This should make it a
little faster when both conditions are taken.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 501221af542b5154fbf8788f8426bc7f5443764a)

3 years agouhttpd: Reload config after uhttpd-mod-ubus was added
Hauke Mehrtens [Sat, 20 Mar 2021 12:19:22 +0000 (13:19 +0100)]
uhttpd: Reload config after uhttpd-mod-ubus was added

Without this change the config is only committed, but the uhttpd daemon
is not reloaded. This reload is needed to apply the config. Without the
reload of uhttpd, the ubus server is not available over http and returns
a Error 404.

This caused problems when installing luci on the snapshots and
accessing it without reloading uhttpd.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit d25d281fd6686bda67636f6c1df918145b6cb738)

3 years agombedtls: update to 2.16.10
Magnus Kroken [Sun, 14 Mar 2021 18:42:33 +0000 (19:42 +0100)]
mbedtls: update to 2.16.10

This release of Mbed TLS provides bug fixes and minor enhancements. This
release includes fixes for security issues.

Security fixes:
* Fix a buffer overflow in mbedtls_mpi_sub_abs()
* Fix an errorneous estimation for an internal buffer in
mbedtls_pk_write_key_pem()
* Fix a stack buffer overflow with mbedtls_net_poll() and
mbedtls_net_recv_timeout()
* Guard against strong local side channel attack against base64 tables
by making access aceess to them use constant flow code

Full release announcement:
https://github.com/ARMmbed/mbedtls/releases/tag/v2.16.10

Signed-off-by: Magnus Kroken <mkroken@gmail.com>
(cherry picked from commit dbde2bcf60b5d5f54501a4b440f25fe7d02fbe5d)

3 years agoglibc: update to latest 2.33 commit
Hans Dedecker [Sat, 20 Mar 2021 20:00:05 +0000 (21:00 +0100)]
glibc: update to latest 2.33 commit

db32fc27e7 test-container: Always copy test-specific support files [BZ #27537]
79c6be6a0a nptl: Remove private futex optimization [BZ #27304]
f90d6b0484 pthread_once hangs when init routine throws an exception [BZ #18435]
dd8023c2ac elf: ld.so --help calls _dl_init_paths without a main map [BZ #27577]
ea5a537e87 elf: Always set l in _dl_init_paths (bug 23462)
64f6c287ad x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444]
32b9280f1d io: Return EBAFD for negative file descriptor on fstat (BZ #27559)

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
(cherry picked from commit 956490ad6abead94c8b06e55b687074fa2fd5c62)

3 years agoarchs38: Add CONFIG_HZ=100
Hauke Mehrtens [Fri, 19 Mar 2021 16:59:12 +0000 (17:59 +0100)]
archs38: Add CONFIG_HZ=100

This kernel config option was missing and resulted in a question when
building.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 047b7621bb3ac266d193cf110a468e42f844be4f)

3 years agoglibc: update to latest 2.33 commit (BZ #27462, BZ #27318, BZ #27389)
Hans Dedecker [Wed, 10 Mar 2021 19:48:02 +0000 (20:48 +0100)]
glibc: update to latest 2.33 commit (BZ #27462, BZ #27318, BZ #27389)

a151f2e05a nscd: Fix double free in netgroupcache [BZ #27462]
ee9f98d9ca x86: Set minimum x86-64 level marker [BZ #27318]
3e880d7337 nss: Re-enable NSS module loading after chroot [BZ #27389]
71b2463f61 x86: Add CPU-specific diagnostics to ld.so --list-diagnostics
a1eb3915e7 x86: Automate generation of PREFERRED_FEATURE_INDEX_1 bitfield
33dc1dd602 ld.so: Implement the --list-diagnostics option
8d4241b897 string: Work around GCC PR 98512 in rawmemchr
6efa2d44c8 S390: Add new hwcap values.

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
(cherry picked from commit 0ef3c58ac83397dcc81ad739ffe09702bc7f58ff)

3 years agobcm53xx: backport first 5.13 DTS changes
Rafał Miłecki [Sun, 14 Mar 2021 18:10:18 +0000 (19:10 +0100)]
bcm53xx: backport first 5.13 DTS changes

This adds NVMEM bindings that are needed for proper booting on Linksys
devices.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 98d456a14e00e24acec36247fb5bd379da90f84e)

3 years agobcm47xx: make WGT634U NVRAM patch apply again
Rafał Miłecki [Fri, 12 Mar 2021 20:08:24 +0000 (21:08 +0100)]
bcm47xx: make WGT634U NVRAM patch apply again

Fixes: 1c48eee5b2bc ("kernel: backport Broadcom NVRAM driver cleanups")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 9530b9bb78845910de711d425f1e4b1c7d539b13)

3 years agobcm53xx: initialize NVRAM from NVMEM driver
Rafał Miłecki [Fri, 12 Mar 2021 17:10:09 +0000 (18:10 +0100)]
bcm53xx: initialize NVRAM from NVMEM driver

NVRAM access may be needed early in boot process. Reading it using mtd
happens quite late in the init process. Add NVRAM initialization to the
NVMEM driver which comes up early and depends on IO mapping only.

This is required by Linksys devices which use NVRAM content for proper
partitioning (detecting current firmware partition).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit baf04eed028a838518c65be48cbaabe0892343aa)

3 years agokernel: backport Broadcom NVRAM driver cleanups
Rafał Miłecki [Fri, 12 Mar 2021 17:07:57 +0000 (18:07 +0100)]
kernel: backport Broadcom NVRAM driver cleanups

Refactoring of bcm47xx_nvram driver. It's used by bcm47xx and bcm53xx.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 1c48eee5b2bcfaf9815cc9a6f6664392d17164cb)

3 years agobcm53xx: backport NVMEM NVRAM driver
Rafał Miłecki [Wed, 10 Mar 2021 22:22:18 +0000 (23:22 +0100)]
bcm53xx: backport NVMEM NVRAM driver

It supports NVRAM access described using DT binding. Right now NVRAM
data is exposed using /sys/bus/nvmem/ only.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 01b1b375281b77233d65eb0ebda8e4e3a1bd2407)

3 years agobcm53xx: backport more upstream dts stuff from kernel 5.11
Rafał Miłecki [Thu, 25 Feb 2021 19:45:02 +0000 (20:45 +0100)]
bcm53xx: backport more upstream dts stuff from kernel 5.11

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 8078d89a5357d13dc3f2e2055fd9d663c4f1bd04)

3 years agobcm53xx: group dts backports by upstream kernel version
Rafał Miłecki [Thu, 25 Feb 2021 18:34:21 +0000 (19:34 +0100)]
bcm53xx: group dts backports by upstream kernel version

It's a simple renaming thing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit d0ee398c36983ccb2ee514e71f10d3c274546f17)

3 years agobcm4908: backport recent bcm_sf2 changes
Rafał Miłecki [Wed, 17 Mar 2021 06:40:49 +0000 (07:40 +0100)]
bcm4908: backport recent bcm_sf2 changes

One 5.12 link fix and 5.13 crossbar support.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e1b4fd52a8efe1dfcad4f4fbe59f1c35a09be0bd)

3 years agobcm4908: backport recent bcm4908_enet changes
Rafał Miłecki [Tue, 16 Mar 2021 22:35:45 +0000 (23:35 +0100)]
bcm4908: backport recent bcm4908_enet changes

This includes 5.12 fix and 5.13 improvements.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 7091e312307f4563d4a7afb5946140120cfa87fa)

3 years agobcm4908: backport first PHY 5.13 patches
Rafał Miłecki [Mon, 15 Mar 2021 19:30:21 +0000 (20:30 +0100)]
bcm4908: backport first PHY 5.13 patches

1. Upstream accepted version of Kconfig change
2. Documentation binding fix

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit d7c8ca4d0b5c18c08e645f010fd0012f54c1c102)

3 years agobcm4908: use accepted 5.13 DTS patches
Rafał Miłecki [Sun, 14 Mar 2021 18:22:18 +0000 (19:22 +0100)]
bcm4908: use accepted 5.13 DTS patches

Some patches were slightly cleaned up. One things worth mentioning is
that adding:
phy-mode = "rgmii"
broke SF2 driver. It made it access random register breaking switch
setup.

That's why this commit also adds a quick sf2 fix.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 05dbfe616d551bce1a19d3846c8949c047325624)

3 years agokernel: add pending mtd patches adding NVMEM support
Rafał Miłecki [Fri, 12 Mar 2021 17:30:01 +0000 (18:30 +0100)]
kernel: add pending mtd patches adding NVMEM support

It's meant to provide upstream support for mtd & NVMEM. It's required
e.g. for reading MAC address from mtd partition content. It seems to be
in a final shape so it's worth testing.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit e90e75b12c818c49704755b9e530491aee2d554c)