openwrt/staging/linusw.git
3 years agotools/cmake: update to 3.21.2
Rosen Penev [Thu, 2 Sep 2021 02:32:36 +0000 (19:32 -0700)]
tools/cmake: update to 3.21.2

Refreshed patches.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agotools/bison: update to 3.7.6
Rosen Penev [Thu, 2 Sep 2021 02:53:39 +0000 (19:53 -0700)]
tools/bison: update to 3.7.6

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agotools/dosfstools: update to 4.2
Rosen Penev [Thu, 2 Sep 2021 02:57:58 +0000 (19:57 -0700)]
tools/dosfstools: update to 4.2

Remove upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agotools/findutils: update to 4.8.0
Rosen Penev [Thu, 2 Sep 2021 03:03:01 +0000 (20:03 -0700)]
tools/findutils: update to 4.8.0

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agotools/tar: update to 1.34
Rosen Penev [Thu, 2 Sep 2021 03:04:43 +0000 (20:04 -0700)]
tools/tar: update to 1.34

Refresh patch.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agotools/zstd: update to 1.5.0
Rosen Penev [Thu, 2 Sep 2021 03:28:06 +0000 (20:28 -0700)]
tools/zstd: update to 1.5.0

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agobusybox: update to version 1.34.0
Hannu Nyman [Tue, 31 Aug 2021 15:12:44 +0000 (18:12 +0300)]
busybox: update to version 1.34.0

Update busybox to version 1.34.0

* Remove upstreamed patches (205, 530, 540)

* Remove one old patch that does not apply any more. (203)
  That was originally introduced in 2008 with 563d23459,
  but does not apply after busybox restructuring with
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=e6007c4911c3ea26925f9473b9f156a692585f30
  and
  https://git.busybox.net/busybox/commit/networking/udhcp/dhcpc.c?h=1_34_stable&id=1c7253726fcbab09917f143f0b703efbd2df55c3

* Refresh config and patches.

* Backport upstream fixes for
   - MIPS compilation breakage and
   - process substitution regression

Config refresh:

Refresh commands, run after busybox is first built once:

cd utils/busybox/
cd config/
../convert_menuconfig.pl ../../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0
cd ..
./convert_defaults.pl < ../../../build_dir/target-aarch64_cortex-a53_musl/busybox-default/busybox-1.34.0/.config > Config-defaults.in

Manual edits needed afterward:

* Config-defaults.in:  OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6
* Config-defaults.in:  OpenWrt configTARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)
* Config-defaults.in:  OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)
  BUSYBOX_DEFAULT_UDHCPC_DEFAULT_INTERFACE (just "")
* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)
* config/shell/Config.in : change at "Options common to all shells"  the symbol
  SHELL_ASH  -->  BUSYBOX_CONFIG_SHELL_ASH
   (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
     Apparently our script does not see the hidden option while
     prepending config options with "BUSYBOX_CONFIG_" which leads to a
     missed dependency when the options are later evaluated.)
* Edit Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014f)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
3 years agomediatek: add support for TOTOLINK A8000RU
Chuanhong Guo [Mon, 23 Aug 2021 16:18:23 +0000 (00:18 +0800)]
mediatek: add support for TOTOLINK A8000RU

Specifications:
- SoC: MT7622
- RAM: 512MB
- Flash: MX35LF1GE4AB 128MB SPI NAND
- Ethernet: RTL8367S 5x1GbE
- WiFi: 2.4G: MT7622 5G: MT7615N x2
- Other ports: USB3.0 x1

Flash instruction:
*important*: upgrade vendor firmware to at least V7.1cu.643_B20200521
1. hold the reset button and power on the device. wait for about 10s
   before releasing the reset button.
2. upload sysupgrade.bin via u-boot recovery page on http://192.168.1.1

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agoucode: update to latest Git HEAD
Jo-Philipp Wich [Sun, 11 Jul 2021 18:37:45 +0000 (20:37 +0200)]
ucode: update to latest Git HEAD

929c862 vm: fix toplevel function call protocol
8f34d70 fs: fix chown() and rename() error return values
03ca445 tests: disable fuzz tests for now
3b1be3d types: mark further GC roots
d49af4e types: fix comparison of differently signed integers
c79ff39 types: handle conversion errors when dealing with negative error indexes
3315b1f types: allow negative array indexes
d5b25f9 treewide: harmonize function naming
cc4ce8d module: remove unused defines
f5d7526 examples: add libucode usage examples
559eff2 types, vm: adjust GC api
e5e7e62 treewide: move header files into dedicated directory
ff6168a build: install header files
7e6ce0f main: introduce new flag `-x` to allow disabling specific functions
b1817b3 vm: fix invalid memory access on GC'ing uninitialized VM context
498fe87 main: refactor option parsing and VM setup
ff52440 treewide: consolidate typedef naming
1d60418 vm: add API to control trace mode
48f33ad vm: make root exception handler configurable
0f69f09 vm: fix invalid memory access on toplevel function calls
6bcc318 vm: fix handling exceptions in top-level function calls
4ae0568 lib, vm: reimplement exit() as exception type
2f77657 vm: extend API to allow returning result value from VM execution
111645a vm: remove module preloading logic
38ff6de main: preload modules ourselves
d5bc223 vm: add uc_vm_invoke() helper
ef0baf1 vm: cosmetic fix for outputting exceptions without source context
b11a2fa vm: move global scope allocation into uc_vm_init()
900b2a3 vm: add getter and setter for vm globals scope
0179576 lib: rename uc_add_proto_functions() to uc_add_functions()
98b9c84 lib: expose stdlib function array
1adfba0 treewide: eliminate dead code and unused functions
3974e71 treewide: replace a number of unnecessary type casts
bf85226 treewide: move ressource type registry into vm instance
e2b3d2e build: split into libucode and ucode cli
dad8f3a types: properly deal with circular data in GC mark phase
62dbd64 lexer: rename UT_ prefixed constants to UC_
bc8e465 types: fix wrong assert() on tearing down object trees
853b9f1 vm: fix potential invalid memory access in uc_vm_get_error_context()
6f05cdd lib: fix refcount imbalance in uc_require_path()
96f140b lib, vm: ensure that require() compiles modules only once
df5db5f compiler: don't segfault on invalid declaration expressions
a97c7a1 lexer: transition into EOF state on unrecognized character
2a838d1 compiler: improve mapping of binary operator tokens to instructions
9872f65 vm: add support for I_LE and I_GE instructions
4e410c3 treewide: let uc_cmp() use instruction instead of token numbers
ce6081d lexer, vm: reorder token and instruction numbers
234a4f6 lib: implement b64enc() and b64dec() functions
856a0c0 lib: only consider context of calling function for callbacks
86fb130 lib: implement min() and max() functions
3e893e6 lib: pass-through "this" context to library function callbacks
42de7ab lib: implement `sourcepath()` function
05c80a7 lib: fix negative uc_index() return value on 32bit systems
9874562 lexer: implement raw code mode
3b665c8 lexer: drop value union from keyword table
44354cf lexer, compiler: separate TK_BOOL token into TK_TRUE and TK_FALSE tokens
5879bdf syntax: drop Infinity and NaN keywords
d4edadc lib: rename uc_lib_init() to uc_load_stdlib()
d81bad7 main, lib: move allocation of globals object into lib function
c4f4b38 main: simplify REQUIRE_SEARCH_PATH initialization
54ca3aa types: fix uninitialized memory on setting non-contiguous array indexes
cbc0d78 build: let require search patch default to CMAKE_INSTALL_PREFIX
5714705 syntax: introduce `const` support
ed32c42 compiler, lexer: add NO_LEGACY define to disable legacy syntax features
ff6811f syntax: implement `delete` as proper operator
5803d86 lib: implement wildcard() function
dfb7379 fs: implement chmod(), chown(), rename() and glob() functions
1ddf5b6 lexer: skip interpreter line in any source buffer
9951a00 build: lower minimum required CMake version to v3.13
7b81ab2 main: expose argv as global ARGV array to ucode scripts
7283a70 tests: rename misnamed testcases for consistency
3f80116 compiler: fix local for-loop initializer variable declarations
f20b56f compiler: properly parse slashes in parenthesized division expressions
5c4e1ea lib: implement regexp(), a function to construct regexp instances at runtime
e546bba lib: implement render(), an include variant capturing output in a string
0cb10c6 vm: implement mechanism to change output file descriptor
eb8a64d lib: fix uc_sort()
f1ffc9f vm: truncate long values after 60 chars in trace output
850612f compiler: properly handle break/continue in nested scopes
f0a9875 compiler: properly handle keyword in parenthesized property access expression
1660433 compiler: fix stack mismatch on compiling `use strict` statements
a36e0df syntax: implement support for 'use strict' pragma
827a34a vm, compiler: get rid of unused struct members
594cdf3 lib: implement assert()
c4d1648 lib: add support for pretty printing JSON to printf() and sprintf()
f2eaea3 lib: gracefully handle truncated format strings in uc_printf_common()
02629b8 lexer: fix infinite loop on parsing unterminated comments
2bc9bac lexer: fix infinite loop on parsing unterminated expression blocks
f73e201 lexer: fix infinite loop when parsing regexp literal at EOF
86b4863 compiler: fix segfault on parsing invalid pre/post increment expressions
0e24509 lib: fix reporting source context lines at EOF
e66b2ad compiler, lexer: improve lexical state handling
e29b574 lib: fix uc_split() quirks
64eec7f treewide: ISO C / pedantic compliance
4af803d build: output error messages on test failures
9ef693e vm: improve context for early errors
6def9fc tests: pass ucode library path through environment
d5dd183 treewide: address various sign-compare warnings
28825ac types: support creating ressource values without associated type
9c5106a types: fix potential memory leaks and null pointer accesses
c51934a types: fix potential leak of key in ucv_object_add()
7b28727 main: fix ineffective EOF check in parse()
4cf897c lib: uc_system(): fix invalid free() of non-heap memory
35af4ba treewide: rework internal data type system
f2c4b79 treewide: fix issues reported by clang code analyzer
93ededb tests: allow executing run_tests.sh from any directory
0e4a387 Add initial GitLab and GitHub CI support
df73b25 tests: add more tests
41d33d0 tests: custom: return exit code if tests fails
1c548a6 cmake: do not output binaries into lib directory
2b59097 tests: create custom tests from current tests cases
8039361 main: provide just binary name in help output
778e4f7 lexer: fix incomplete struct initializers
502ecdc cmake: enable extra compiler checks
3c2aeff cmake: fix includes and libraries
617a114 cmake: make 3.0 minimum version
f360350 lib: implement sleep(ms) function
7f0ff91 lib: allow parsing non-array, non-object value in json()

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
3 years agofirewall4: update to latest Git HEAD
Jo-Philipp Wich [Wed, 1 Sep 2021 13:34:15 +0000 (15:34 +0200)]
firewall4: update to latest Git HEAD

cf835ce treewide: convert deprecated syntax
c9a3bf5 tests: adapt to latest ucode

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
3 years agokernel: add missing CONFIG_SECURITY_NETWORK_XFRM ksym
Rui Salvaterra [Wed, 1 Sep 2021 08:02:20 +0000 (09:02 +0100)]
kernel: add missing CONFIG_SECURITY_NETWORK_XFRM ksym

Paul noticed a build failure [1] due to this missing symbol. Add it as disabled
to both generic kconfigs.

[1] https://github.com/aparcar/openwrt/runs/3480872706?check_suite_focus=true#step:11:63

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
3 years agoethtool: fix recursive dependency
Eneas U de Queiroz [Thu, 12 Aug 2021 13:57:07 +0000 (10:57 -0300)]
ethtool: fix recursive dependency

Change the CONFLICTS definition from the alternative package
(ethtool-full) to the main one.

The CONFLICTS line creates a dependency to the conflicting package.

Right now, the dependency would be created in the PACKAGE_ethtool-full
symbol:

config PACKAGE_ethtool-full
        depends on m || (PACKAGE_ethtool != y)

When the main package is selected by airmon-ng, it selects
PACKAGE_ethtool, *depending* on the value of PACKAGE_ethtool-full:

config PACKAGE_airmon-ng
        select PACKAGE_ethtool if PACKAGE_ethtool-full<PACKAGE_airmon-ng

In the first block, the value of PACKAGE_ethtool-full depends on the
value of PACKAGE_ethtool.  In the second block, the opposite is true:
the value of PACKAGE_ethtool depends on the value of
PACKAGE_ethtool-full.  This is a recursive dependency.

Fix it by changing the package where the dependency is created, so that
only the value of PACKAGE_ethtool will depend on PACKAGE_ethtool-full.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
3 years agoprocd: fix issue mounting overlay fs
Daniel Golle [Tue, 31 Aug 2021 11:28:56 +0000 (12:28 +0100)]
procd: fix issue mounting overlay fs

The previous procd update broke mounting overlayfs in an attempt to
fix an off-by-one error. Revert that broken fix and apply fix from
Nick Hainke <vincent@systemli.org> instead to bring things back to
life.

 20adf53 Revert "initd: fix off-by-one error in mkdev.c"
 773e8da initd: fix off-by-one error in mkdev.c

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agofirmware-utils: mkmerakifw-old: Add le32 support
Matthew Hagan [Thu, 5 Aug 2021 22:24:40 +0000 (22:24 +0000)]
firmware-utils: mkmerakifw-old: Add le32 support

mkmerakifw-old was created for the z1 which uses the AR9344 SoC with
be32 addressing. The MX64/MX65 devices use the same header style, however
these boards use a BCM NSP SoC with le32 addressing.

Since we may be booting initramfs images with this header, which may be
of any size, within reason, board->imagelen is set to 0. The kernel
image shoule be limited in the image Makefile.

Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agobcm53xx: switch to the kernel 5.10
Rafał Miłecki [Tue, 31 Aug 2021 07:40:54 +0000 (09:40 +0200)]
bcm53xx: switch to the kernel 5.10

With PCI and USB regressions fixed it should be safe to switch now.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agobcm53xx: fix kmod-i2c-bcm-iproc for kernel 5.10
Rafał Miłecki [Tue, 31 Aug 2021 09:13:38 +0000 (11:13 +0200)]
bcm53xx: fix kmod-i2c-bcm-iproc for kernel 5.10

I2C_BCM_IPROC selects I2C_SLAVE which in turn makes two new symbols
available: I2C_SLAVE_EEPROM and I2C_SLAVE_TESTUNIT. That was causing:

I2C support (I2C) [M/n/y/?] m
  Enable compatibility bits for old user-space (I2C_COMPAT) [N/y/?] n
  I2C device interface (I2C_CHARDEV) [M/n/?] m
  I2C bus multiplexing support (I2C_MUX) [N/m/?] n
  Autoselect pertinent helper modules (I2C_HELPER_AUTO) [N/y/?] n
    SMBus-specific protocols (I2C_SMBUS) [N/m/?] n
  I2C/SMBus Test Stub (I2C_STUB) [N/m/?] n
  I2C slave support (I2C_SLAVE) [Y/?] y
    I2C eeprom slave driver (I2C_SLAVE_EEPROM) [N/m/?] n
    I2C eeprom testunit driver (I2C_SLAVE_TESTUNIT) [N/m/?] (NEW)

Ideally I2C_SLAVE should probably be packaged as kmod-i2c-slabe. For now
just modify kmod-i2c-bcm-iproc to fix kernel compilation.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agobcm53xx: fix USB in kernel 5.10
Rafał Miłecki [Tue, 31 Aug 2021 07:33:47 +0000 (09:33 +0200)]
bcm53xx: fix USB in kernel 5.10

This makes USB controller driver work with USBs that are always powered
on (don't require toggling any GPIO).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agolibjson-c: remove old math patch
Rosen Penev [Tue, 24 Nov 2020 09:49:17 +0000 (01:49 -0800)]
libjson-c: remove old math patch

Remove old math patch meant for old GCC versions. It's not needed
for GCC and causes issues with clang.

Add CMake patch to identify clang properly and apply the proper
flags. Fixes the following warnings/errors:

json_pointer.c:230:7: warning: implicit declaration of function
'vasprintf' is invalid in C99 [-Wimplicit-function-declaration]
        rc = vasprintf(&path_copy, path_fmt, args);
             ^
json_pointer.c:317:7: warning: implicit declaration of function
'vasprintf' is invalid in C99 [-Wimplicit-function-declaration]
        rc = vasprintf(&path_copy, path_fmt, args);
             ^
/usr/include/bits/mathcalls.h:177:23: error: cannot redeclare builtin
function '__builtin_isinf'
__MATHDECL_ALIAS (int,isinf,, (_Mdouble_ __value), isinf)
                      ^
/usr/include/bits/mathcalls.h:177:23: note: '__builtin_isinf' is a
builtin with type 'int ()'
/usr/include/bits/mathcalls.h:213:23: error: cannot redeclare builtin
function '__builtin_isnan'
__MATHDECL_ALIAS (int,isnan,, (_Mdouble_ __value), isnan)

The clang patch is an upstream backport.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
3 years agoramips: minew g1-c: use default static address for lan instead of dhcp
Alexander Couzens [Mon, 30 Aug 2021 23:43:31 +0000 (01:43 +0200)]
ramips: minew g1-c: use default static address for lan instead of dhcp

As Adrian Schmutzler suggested on github [1] the device should follow the
default behaviour on ethernet using a static address instead using dhcp.

[1] https://github.com/openwrt/openwrt/commit/8d497b65704f62294a4bbc0e1f5aa4eb1dbf9e24

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
3 years agoprocd: update to git HEAD
Daniel Golle [Mon, 30 Aug 2021 23:52:47 +0000 (00:52 +0100)]
procd: update to git HEAD

 96d8bf2 trace: fix potential use-after-free occurence
 8eb1d78 initd: fix off-by-one error in mkdev.c
 86f82f3 utils: don't ignore open() return value
 f5fe04b jail: actually check calloc return value
 269c9e4 trace: preload: avoid NULL-dereference here as well

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoprocd: update to git HEAD
Daniel Golle [Mon, 30 Aug 2021 19:34:45 +0000 (20:34 +0100)]
procd: update to git HEAD

 df251c2 uxc: move mountpoint of persistent config to /var/run/uxc
 e5b38fd trace: free memory allocated by blobmsg_format_json_indent()

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agowireguard-tools: bump to 20210424
Kevin Darbyshire-Bryant [Wed, 25 Aug 2021 10:06:11 +0000 (11:06 +0100)]
wireguard-tools: bump to 20210424

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
3 years agobcm53xx: backport missed DT patch cleaning up CRU block
Rafał Miłecki [Mon, 30 Aug 2021 06:54:29 +0000 (08:54 +0200)]
bcm53xx: backport missed DT patch cleaning up CRU block

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agoramips: w2914ns-v2: consolidate leds nodes into dtsi
Sungbo Eo [Sun, 1 Aug 2021 15:02:49 +0000 (00:02 +0900)]
ramips: w2914ns-v2: consolidate leds nodes into dtsi

w2914ns-v2, 11acnas, and freezio use almost same board and thus share a
common dtsi file. Now that LED labels do not contain "devicename" since
commit c846dd91f0a6 ("ramips: remove model name from LED labels"), let's
move the leds nodes to dtsi and remove them from dts.

Note that freezio has only one USB 3.0 port and adding &ehci_port2 trigger
does not incur any visible changes.

Signed-off-by: Sungbo Eo <mans0n@gorani.run>
3 years agoramips: provide default BLOCKSIZE for Device/seama
Adrian Schmutzler [Sun, 29 Aug 2021 22:18:53 +0000 (00:18 +0200)]
ramips: provide default BLOCKSIZE for Device/seama

The Device/seama shared definition requires BLOCKSIZE, so it should
have a default value for this variable.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoipq806x: add missing enclosing partitions block for TP-Link C2600
Filip Matijević [Sat, 28 Aug 2021 08:47:09 +0000 (10:47 +0200)]
ipq806x: add missing enclosing partitions block for TP-Link C2600

The partitions that have compatible property set are skipped by mtd if
they are not contained inside a partitions node and this breaks
fetching MAC address from "default-mac" partition.

Fix this by defining all the partitions inside partitions node with
compatible = "fixed-partitions" as nvmem requires the standard
partitions scheme to work correctly.

Fixes: FS#3945
Fixes: cd36d71655ee ("ipq806x/dts: Add Archer C2600 DTS")
Fixes: 0458a8993ca1 ("ipq806x: convert mtd-mac-address to nvmem
implementation")

Signed-off-by: Filip Matijević <filip.matijevic.pz@gmail.com>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
[adjust commit title/message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoath79: remove redundant BLOCKSIZE of 64k from devices
Adrian Schmutzler [Sat, 28 Aug 2021 16:14:54 +0000 (18:14 +0200)]
ath79: remove redundant BLOCKSIZE of 64k from devices

BLOCKSIZE = 64k is set in Device/Default, i.e. global default on
the target.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agobcm53xx: backport the latest upstream DT changes
Rafał Miłecki [Sun, 29 Aug 2021 20:53:55 +0000 (22:53 +0200)]
bcm53xx: backport the latest upstream DT changes

This includes:
1. BCM5301X changes from 5.14 and queued 5.15 stuff
2. NSP changes from 5.11 - 5.15 for kernel 5.10

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
3 years agokernel: move two symbols to the generic kconfigs
Rui Salvaterra [Sun, 22 Aug 2021 13:50:08 +0000 (14:50 +0100)]
kernel: move two symbols to the generic kconfigs

CONFIG_RCU_{NEED_SEGCBLIST,STALL_COMMON} are set basically everywhere. Move them
to the generic kconfigs. And resort the generic kconfigs while at it.

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
3 years agokernel: disable CONFIG_RCU_EXPERT and friends
Rui Salvaterra [Sun, 22 Aug 2021 13:50:07 +0000 (14:50 +0100)]
kernel: disable CONFIG_RCU_EXPERT and friends

Based on the existing documentation [1][2], I dare anyone to demonstrate that
we need to fine-tune these RCU parameters. The (performance) breakage potential
for doing so is immense, so let's just please put down this loaded footgun.

Disable CONFIG_RCU_EXPERT and its dependent symbols. Additionally, remove the
CONFIG_RCU_EXPERT symbol from the target kconfigs which contain it.

[1] https://www.kernel.org/doc/Documentation/RCU/Design/Data-Structures/Data-Structures.html
[2] https://lwn.net/Articles/777214/

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
3 years agokernel: fix warning about unused try_to_force_load
Ansuel Smith [Sat, 28 Aug 2021 14:30:03 +0000 (16:30 +0200)]
kernel: fix warning about unused try_to_force_load

There is a longlasting warn about unused defined try_to_force_load.
Fix this by including this function only when actually used.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
3 years agokernel: bump 5.4 to 5.4.143
John Audia [Thu, 26 Aug 2021 18:09:35 +0000 (14:09 -0400)]
kernel: bump 5.4 to 5.4.143

Manually rebased:
  bcm27xx/patches-5.4/950-1031-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch

Removed upstreamed:
  mvebu/patches-5.4/100-cpufreq-armada-37xx-forbid-cpufreq-for-1.2-GHz-variant.patch

All other patches automatically rebased.

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: bump 5.10 to 5.10.61
John Audia [Sat, 28 Aug 2021 11:40:00 +0000 (07:40 -0400)]
kernel: bump 5.10 to 5.10.61

Manually rebased:
  bcm27xx/patches-5.10/950-1031-net-lan78xx-Ack-pending-PHY-ints-when-resetting.patch

Removed upstreamed:
  mvebu/patches-5.10/101-cpufreq-armada-37xx-forbid-cpufreq-for-1.2-GHz-variant.patch

All other patches automatically rebased.

Build system: x86_64
Build-tested: bcm2711/RPi4B
Run-tested: bcm2711/RPi4B

No dmesg regressions, everything functional

Signed-off-by: John Audia <graysky@archlinux.us>
3 years agoath79: fix spelling of DEVICE_MODEL for D-Link DAP-2695
Sebastian Schaper [Mon, 23 Aug 2021 20:34:43 +0000 (22:34 +0200)]
ath79: fix spelling of DEVICE_MODEL for D-Link DAP-2695

Change `DAP-2965` to `DAP-2695` for device selection in menuconfig.

Fixes: cd09f26660b6 ("ath79: add support for D-Link DAP-2695-A1")
Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
[add Fixes]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoramips: add label-mac for TL-MR3020 v3
David Bauer [Fri, 27 Aug 2021 23:34:08 +0000 (01:34 +0200)]
ramips: add label-mac for TL-MR3020 v3

The TP-Link TL-MR3020 v3 only has a single MAC address assigned for
ethernet LAN as well as WiFi. This MAC address is also printed on the
casing.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agoramips: enable fast-read for TL-MR3020 v3
David Bauer [Thu, 19 Aug 2021 21:42:53 +0000 (23:42 +0200)]
ramips: enable fast-read for TL-MR3020 v3

The GigaDevices GD25Q64B found on the TL-MR3020 v3 supports the fast
read instruction. Add the required DT property in order to enable usage
of this property.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agoramips: increase SPI frequency for TL-MR3020 v3
David Bauer [Thu, 19 Aug 2021 21:41:23 +0000 (23:41 +0200)]
ramips: increase SPI frequency for TL-MR3020 v3

The GigaDevices GD25Q64B supports higher SPI clocks than 10 MHz. While
100 MHz do not work reliably, 50 MHz works without issues.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agoramips: fix input type for TL-MR3020 v3
David Bauer [Thu, 19 Aug 2021 21:31:41 +0000 (23:31 +0200)]
ramips: fix input type for TL-MR3020 v3

The modec{1,2} keys are actually switches.

Add the respective DTS properties to avoid accidental activation of
failsafe mode.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agohostapd: enable proxy-arp support for hostapd-full
David Bauer [Wed, 18 Aug 2021 10:39:33 +0000 (12:39 +0200)]
hostapd: enable proxy-arp support for hostapd-full

The hostapd.sh script already has support for configuring proxy-ARP,
however no built variant has support for it enabled.

Enable proxy-ARP support for hostapd-full builds in order to allow users
to actually use this feature.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agohostapd: fix Proxy-ARP with Hotspot 2.0 disabled
David Bauer [Wed, 18 Aug 2021 22:58:19 +0000 (00:58 +0200)]
hostapd: fix Proxy-ARP with Hotspot 2.0 disabled

The disable_dgaf config fiels is only available in case Hostapd is
compiled with Hotspot 2.0 support, however Proxy-ARP does not depend on
Hotspot 2.0.

Only add the code related to this config field when Hotspot 2.0 is
enabled to fix compilation with the aformentioned preconditions.

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agohostapd: refresh patches
David Bauer [Wed, 18 Aug 2021 22:59:55 +0000 (00:59 +0200)]
hostapd: refresh patches

Signed-off-by: David Bauer <mail@david-bauer.net>
3 years agokernel: properly handle paging errors in fit partition parser
Daniel Golle [Fri, 27 Aug 2021 20:30:32 +0000 (21:30 +0100)]
kernel: properly handle paging errors in fit partition parser

The uImage.FIT partition uses page mapping without properly handling
paging errors. This can lead to Kernel Oops in case of read errors
while trying to parse uImage.FIT partitions.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agomediatek: mt7623: replace kconfig symbol for snand driver
Chuanhong Guo [Fri, 27 Aug 2021 14:22:29 +0000 (22:22 +0800)]
mediatek: mt7623: replace kconfig symbol for snand driver

this change was missing during the spi-nand driver replacement, causing
build failure.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: mt7629: manually add missing kconfig
Chuanhong Guo [Fri, 27 Aug 2021 07:40:27 +0000 (15:40 +0800)]
mediatek: mt7629: manually add missing kconfig

These options doesn't show up unless some kernel packages are selected,
so they are not covered by kernel_menuconfig.
Manually add them so that a build with all kmods can pass without user
interaction.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: mt7629: build with linux 5.10
Chuanhong Guo [Tue, 24 Aug 2021 12:03:52 +0000 (20:03 +0800)]
mediatek: mt7629: build with linux 5.10

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: bmt: set default bmt oob offset to 0
Chuanhong Guo [Tue, 24 Aug 2021 03:23:21 +0000 (11:23 +0800)]
mediatek: bmt: set default bmt oob offset to 0

there's no driver level remapping of oob data in the new spi-nand
driver and bmt oob signature starts at 0x0 of the dumped oob data.
change the default value to 0 for the new spi-nand driver.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: mtk-snand: check request size against chip info
Chuanhong Guo [Mon, 23 Aug 2021 16:31:17 +0000 (00:31 +0800)]
mediatek: mtk-snand: check request size against chip info

mtd->size will be overrided by BMT which makes all mtd requests made by
bmt fail in request size checking.
this commit changes the driver to check against actual chip size in chip
info as a workaround.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: attach bmt to the new snand driver
Chuanhong Guo [Fri, 20 Aug 2021 07:21:40 +0000 (15:21 +0800)]
mediatek: attach bmt to the new snand driver

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: change dts to use the new snand driver
Chuanhong Guo [Tue, 24 Aug 2021 04:04:51 +0000 (12:04 +0800)]
mediatek: change dts to use the new snand driver

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: remove spi-nand hacks from 5.10
Chuanhong Guo [Fri, 20 Aug 2021 06:23:38 +0000 (14:23 +0800)]
mediatek: remove spi-nand hacks from 5.10

we now have a standalone mtd driver and the old spi-mem driver along
with the hack in spi-nand core can be removed.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: enable new spi-nand driver for kernel 5.10
Weijie Gao [Tue, 25 May 2021 13:26:09 +0000 (21:26 +0800)]
mediatek: enable new spi-nand driver for kernel 5.10

This patch enables new spi-nand driver for mt7622 and mt7629.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
3 years agomediatek: add a new spi-nand driver for kernel 5.10
Weijie Gao [Tue, 25 May 2021 13:25:14 +0000 (21:25 +0800)]
mediatek: add a new spi-nand driver for kernel 5.10

This patch adds a new spi-nand driver which implements the SNFI of mt7622
and mt7629.

Unlike the existing snfi driver which makes use of the spi-mem framework
and the spi-nand framework with modified ecc support, this driver is
implemented directly on the mtd framework with other components untouched,
and provides better performance, and behaves exactly the same as the nand
framework.

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
3 years agoopenssl: bump to 1.1.1l
Eneas U de Queiroz [Thu, 26 Aug 2021 17:34:28 +0000 (14:34 -0300)]
openssl: bump to 1.1.1l

This version fixes two vulnerabilities:
  - SM2 Decryption Buffer Overflow (CVE-2021-3711)
    Severity: High

  - Read buffer overruns processing ASN.1 strings (CVE-2021-3712)
    Severity: Medium

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
3 years agoath9k: owl-loader: remove obsolete AR71XX patch
Christian Lamparter [Fri, 20 Aug 2021 22:39:47 +0000 (00:39 +0200)]
ath9k: owl-loader: remove obsolete AR71XX patch

this is no longer necessary as the AR71XX target
was superseded by ath79.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
3 years agoath79: remove obsolete pci-ath9k-fixup.[c,h] files
Christian Lamparter [Sun, 22 Aug 2021 09:27:08 +0000 (11:27 +0200)]
ath79: remove obsolete pci-ath9k-fixup.[c,h] files

This was old code from the AR71XXs target days that
doesn't get compiled and used anymore.

Bringing up AR92xx and earlier chips from their
OWL-Emulator state is currently done by the upstream
ath9k-pci-owl-loader module. (see the kmod-owl-loader
package).

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
3 years agogpio-button-hotplug: convert to gpio descriptor (gpiod_) API
Christian Lamparter [Thu, 5 Aug 2021 13:29:25 +0000 (15:29 +0200)]
gpio-button-hotplug: convert to gpio descriptor (gpiod_) API

OpenWrt's special gpio-button-hotplug driver is still using
exclusively the legacy GPIO Subsystem gpio_ API.

While it still does work fine for most devices, upstream
linux is starting to convert platform support like that of
the APU2/3/4 to the new GPIOD LOOKUP tables that are not
supported by it.

Hence, this patch replaces the gpio_ calls present in
gpio-button-hotplug with gpiod_ equivalent wherever
it's possible. This allows the driver to use the
gpiod lookup tables and still have a fallback for
legacy platform data code that just sets button->gpio
set to the real button/switch GPIO.

As a bonus: the active_low logic is now being handled
by the linux's gpio subsystem too. Another issue that
was address is the of_handle leak in the dt parser
error path.

Tested with legacy platform data: x86_64: APU2, MX-100
Tested on OF: ATH79; MR18, APM821xx: Netgear WNDR4700,
      RAMIPS: WL-330N3G
      LANTIQ: AVM FritzBox 7360v1

Reported-by: Chris Blake <chrisrblake93@gmail.com>
Tested-by: Chris Blake <chrisrblake93@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
3 years agoath79: add support for onion omega
Jan-Niklas Burfeind [Mon, 23 Aug 2021 13:07:38 +0000 (15:07 +0200)]
ath79: add support for onion omega

The Onion Omega is a hardware development platform with built-in WiFi.

https://onioniot.github.io/wiki/

Specifications:
 - QCA9331 @ 400 MHz (MIPS 24Kc Big-Endian Processor)
 - 64MB of DDR2 RAM running at 400 MHz
 - 16MB of on-board flash storage
 - Support for USB 2.0
 - Support for Ethernet at 100 Mbps
 - 802.11b/g/n WiFi at 150 Mbps
 - 18 digital GPIOs
 - A single Serial UART
 - Support for SPI
 - Support for I2S

Flash instructions:
The device is running OpenWrt upon release using the ar71xx target.
Both a sysupgrade
and uploading the factory image using u-boots web-UI do work fine.

Depending on the ssh client, it might be necessary to enable outdated
KeyExchange methods e.g. in the clients ssh-config:

Host 192.168.1.1
        KexAlgorithms +diffie-hellman-group1-sha1

The stock credentials are: root onioneer

For u-boots web-UI manually configure `192.168.1.2/24` on your computer,
connect to `192.168.1.1`.

MAC addresses as verified by OEM firmware:
2G       phy0      label
LAN      eth0      label - 1

LAN is only available in combination with an optional expansion dock.

Based on vendor acked commit:
commit 5cd49bb067ca ("ar71xx: add support for Onion Omega")

Partly reverts:
commit fc553c7e4c8e ("ath79: drop unused/incomplete dts")

Signed-off-by: Jan-Niklas Burfeind <git@aiyionpri.me>
3 years agoustp: add OpenWrt STP/RSTP daemon
Felix Fietkau [Tue, 24 Aug 2021 15:40:28 +0000 (17:40 +0200)]
ustp: add OpenWrt STP/RSTP daemon

This integrates with netifd in order to provide STP/RSTP protocol support
in user space. It defaults to using RSTP for bridges with stp enabled.
This daemon has no config files, it uses the configuration passed from
netifd via ubus

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agofstools: update to git HEAD
Daniel Golle [Wed, 25 Aug 2021 21:49:00 +0000 (22:49 +0100)]
fstools: update to git HEAD

 50e6b20 libfstools: handle open() return value properly in F2FS check
 e1b6811 blockd: include missing libubox/utils.h

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agobmips: backport accepted watchdog patch
Álvaro Fernández Rojas [Wed, 25 Aug 2021 08:24:33 +0000 (10:24 +0200)]
bmips: backport accepted watchdog patch

This patch has been accepted for linux v5.14.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agoramips: expose ephy leds for miwifi-mini
David Yang [Sun, 11 Jul 2021 15:17:43 +0000 (23:17 +0800)]
ramips: expose ephy leds for miwifi-mini

Give users more control by exposing ephy leds.

Signed-off-by: David Yang <mmyangfl@gmail.com>
[remove execute bit on 01_leds, add status for gpio2]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoramips: lock u-boot partition and unlock u-boot-env for miwifi-mini
David Yang [Sun, 11 Jul 2021 14:16:54 +0000 (22:16 +0800)]
ramips: lock u-boot partition and unlock u-boot-env for miwifi-mini

Generally u-boot should keep read-only to avoid mis-overwriting and
bricking the device, but u-boot-env could be safely modified with u-boot
setenv tool.

Signed-off-by: David Yang <mmyangfl@gmail.com>
3 years agoramips: increase flash freq for miwifi-mini
David Yang [Sun, 11 Jul 2021 14:13:21 +0000 (22:13 +0800)]
ramips: increase flash freq for miwifi-mini

The flash is Winbond 25Q128. As it has large rom, better to increase flash
frequency to 70MHz according to the flash spec and enable fast-read.

Signed-off-by: David Yang <mmyangfl@gmail.com>
3 years agoramips: add support for D-Link DAP-1325-A1
Giovanni Cascione [Thu, 8 Jul 2021 16:30:53 +0000 (18:30 +0200)]
ramips: add support for D-Link DAP-1325-A1

This patch adds support for D-Link DAP-1325-A1 (Range Extender Wi-Fi N300)

Specifications:
- SoC: 580Mhz MT7628NN
- RAM: 64MB, DDR2 SDRAM
- Storage: 8MB, SPI (W25Q64JVSSIQ)
- Ethernet: 1x 10/100 LAN port
- WIFI: 2.4 GHz 802.11bgn
- LED: Status (2x to provide 3 colors), Wi-Fi Signal Strength (4x)
- Buttons: Reset, WPS
- UART: Serial console (57600, 8n1)
Row of 4 holes near LAN port, starting from square hole:
3.3V, TX,RX,GND
- FCC ID: fccid.io/KA2AP1325A1/

Installation:

Failsafe UI
Firmware can be uploaded with Failsafe UI web page:
- turn device off
- press and hold reset button
- turn device on
- keep holding reset until red wifi strength led turns on (ab. 10sec)
- connect to device through LAN port
PC must be configured with static ip (192.168.0.x)
- connect to 192.168.0.50
- select image to be flashed and upload.
Device will reboot after successful update

Serial port/TFTP server
- Connect through serial connectors on PCB (e.g. with teraterm)
- Set up a TFTP server, and connect through LAN with static IP
- Put image file in the root of the server
- Boot the device and select '2' at U-Boot startup
- Set device IP, server IP and image file name
- Start upload and flash

Signed-off-by: Giovanni Cascione <ing.cascione@gmail.com>
[fix whitespaces in DTS, convert to nvmem, add mtd-eeprom]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoath79: add support for Compex WPJ558 (16M)
Romain Mahoux [Tue, 8 Jun 2021 09:52:18 +0000 (11:52 +0200)]
ath79: add support for Compex WPJ558 (16M)

Specifications:
- SoC: QCA9558
- DRAM: 128MB DDR2
- Flash: 16MB SPI-NOR
- Wireless: on-board abgn 2×2 2.4GHz radio
- Ethernet: 2x 10/100/1000 Mbps (1x 802.11af PoE)
- miniPCIe slot

Flash instruction:
- From u-boot

tftpboot 0x80500000 openwrt-ath79-generic-compex_wpj558-16m-squashfs-sysupgrade.bin
erase 0x9f030000 +$filesize
cp.b $fileaddr 0x9f030000 $filesize
boot

- From cpximg loader

The cpximg loader can be started either by holding the reset button
during power up. Once it's running, a TFTP-server under 192.168.1.1 will accept
the image appropriate for the board revision that is etched on the board.

For example, if the board is labelled '6A07':

tftp -v -m binary 192.168.1.1 -c put openwrt-ath79-generic-compex_wpj558-16m-squashfs-cpximg-6a07.bin

Signed-off-by: Romain Mahoux <romain@mahoux.fr>
[convert to nvmem, remove redundant lan_mac in 02_network]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoipq806x: Askey RT4230W REV6: use usual writing for pcie part
Chukun Pan [Tue, 8 Jun 2021 15:10:18 +0000 (23:10 +0800)]
ipq806x: Askey RT4230W REV6: use usual writing for pcie part

The problem has been fixed in f47cb405cafd ("ipq806x: fix pci broken
on bootm command"), now the pcie part can be written in the usual way.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
3 years agoramips: add support for DomyWifi DM202/DM203/DW22D
Shiji Yang [Tue, 27 Jul 2021 04:32:00 +0000 (12:32 +0800)]
ramips: add support for DomyWifi DM202/DM203/DW22D

Specifications:
* SOC: MT7620A + MT7610E
* ROM: 16 MiB spi flash (W25Q128FVSG)
* RAM: 128 MiB DDR2 (W971GG6KB-25)
* WAN: 10/100M *1
* LAN: 10/100M *4
* USB: Type-A USB2.0 *1
* SD: MicroSD *1
* Button: Reset *1
* Antennas: 2.4 GHz *2 + 5 GHz *1
* TTL Baudrate: 57600
* U-Boot Recovery: IP: 10.10.10.123, Server: 10.10.10.3

Installation:
* Web UI Update
  1. Open http://192.168.10.1/upgrade.html in the browser.
  2. Rename firmware to a short name like firmware.bin and then upload it.
  3. Fill in the password column with the following content:
  password | mtd -x mIp2osnRG3qZGdIlQPh1 -r write /tmp/firmware.bin firmware
* TFTP + U-Boot
  1. Connect device with a TTL cable.
  2. Press "2" when booting to select "Load system code then write to Flash via TFTP".
  3. Upload firmware by tftpd64, it will boot when write instruction is executed.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
3 years agoramips: add support for Motorola MWR03
Shiji Yang [Tue, 24 Aug 2021 14:59:59 +0000 (22:59 +0800)]
ramips: add support for Motorola MWR03

Specifications:
* SOC: MT7628AN + MT7612E
* ROM: 8 MiB Flash
* RAM: 64 MiB DDR2
* WAN: 10/100M *1
* LAN: 10/100M *3
* Button: Reset *1
* LEDs: orange *1, white *1
* Antennas: 2.4 GHz *2 + 5 GHz *2
* TTL Baudrate: 57600
* TFTP Upgrade: IP: 192.168.51.1, Server: 192.168.51.100

MAC addresses as verified by OEM firmware:

use   address   source
2g    *:d8      factory 0x0004 (label)
5g    *:d9      factory 0x8004
LAN   *:d7      factory $label -1
WAN   *:da      factory $label +2

Installation (TFTP + U-Boot):
 * Connect device with a TTL cable and open a serial session by
   PuTTY.
 * Press "2" when booting to select "Load system code then write
   to Flash via TFTP".
 * Configure the IP of local host server.
 * Upload firmware by tftpd64, it will boot when write instruction
   is executed.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[fix DTS line endings, fix label MAC address, adjust status LED
 names, convert mtd-mac-address-increment to mac-address-increment]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoipq806x: Askey RT4230W REV6: fix caldata script
Chukun Pan [Mon, 7 Jun 2021 15:35:15 +0000 (23:35 +0800)]
ipq806x: Askey RT4230W REV6: fix caldata script

The partition name in the device dts is '0:ART'.
Be independent to prevent this part from becoming
incorrect once the kernel v5.4 gone.

Fixes: da8428d277cd ("ipq806x: add support for Askey RT4230W REV6")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
3 years agoramips: add new flash layout support to Phicomm K2
Shiji Yang [Tue, 27 Jul 2021 04:45:05 +0000 (12:45 +0800)]
ramips: add new flash layout support to Phicomm K2

Descriptions:
Phicomm K2 (PSG1218) got a new "permanent_config" partition after
update firmware to v22.5. This partition located in front of the
firmware partition, same as The Phicomm K2P and K2G. Due to this
change the new bootloader can't load previous firmware any more.
This commit is aimed at add support for Phicomm K2 which official
firmware version is 22.5.x or newer. For which runs old firmware
version, just update OpenWrt that has a prefix of "k2-v22.4".
For uniform naming, this commit also changed the model name
PSG1218 to a more recognizable name K2, refer to Phicomm K2G,
K2P K2T.

OpenWrt selection table:
official firmware version           OpenWrt
v22.4.x.x or older              phicomm_k2-v22.4
v22.5.x.x or newer              phicomm_k2-v22.5

Installation:
Same as Phicomm K2G, K2P, PSG1208.
a. TFTP + U-Boot
b. Open telnet by some web page vulnerability (Search Baidu by key
   words "K2 telnet"), and then we can upload firmware image to
   /tmp and write it to firmware partition with mtd instruction.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
[rebase, add/harmonize version in model variables, fix version typo
 in commit message, wrap commit message properly]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoramips: mt7620: move Phicomm MAC address setup to DTSI
Adrian Schmutzler [Tue, 24 Aug 2021 13:46:16 +0000 (15:46 +0200)]
ramips: mt7620: move Phicomm MAC address setup to DTSI

The setup is the same for all devices, so move it up one level.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoprocd: update to git HEAD
Daniel Golle [Tue, 24 Aug 2021 17:48:35 +0000 (18:48 +0100)]
procd: update to git HEAD

 8a8306d uxc.c: fix coverity resource leak warning
 7f2398e jail: devices: create parent folder when creating devices
 0603c8d jail: return to hook callback instead of just calling it
 3edb7eb jail: check return value when opening console
 af048a3 jail: use portable sizeof(void *)
 6010bd3 utils: make sure read() string is 0 terminated
 f6daca3 uxc: free string returned by blobmsg_format_json_indent()
 51f1cd2 trace: free string returned by blobmsg_format_json_indent()
 d716cb5 trace: handle open() return value and make sure string is terminated
 b824a89 jail: preload: avoid NULL-dereference in case things go wrong
 167dc24 jail: protect against strcat buffer overflows

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agonetifd: update to the latest version
Felix Fietkau [Tue, 24 Aug 2021 11:22:15 +0000 (13:22 +0200)]
netifd: update to the latest version

94170ae24bc9 device: extend device settings flags to 64 bit
1eb0fafaa986 device: add support for configuring device link speed/duplex
ed84473b7af9 bridge: memset bst->config by default to avoid stale config values
6519cf31e4b0 bridge: add support for an external STP daemon
454e9c33c906 bridge: tune default stp parameters

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agolibubox: update to the latest version
Felix Fietkau [Tue, 24 Aug 2021 11:16:58 +0000 (13:16 +0200)]
libubox: update to the latest version

d716ac4bc423 list.h: add a few missing iterator macros

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomac80211: add missing change for encap offload on devices with sw rate control
Felix Fietkau [Mon, 16 Aug 2021 12:10:19 +0000 (14:10 +0200)]
mac80211: add missing change for encap offload on devices with sw rate control

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomac80211: refresh patch
Felix Fietkau [Mon, 16 Aug 2021 12:09:46 +0000 (14:09 +0200)]
mac80211: refresh patch

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agohostapd: enable ht40 in wpa_supplicant when using wider HE modes
Felix Fietkau [Mon, 16 Aug 2021 08:07:55 +0000 (10:07 +0200)]
hostapd: enable ht40 in wpa_supplicant when using wider HE modes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agomac80211: fix HT40 mode for 6G band
Felix Fietkau [Mon, 16 Aug 2021 08:05:14 +0000 (10:05 +0200)]
mac80211: fix HT40 mode for 6G band

The channel offset used for VHT segment calculation was missing for HT

Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 years agouhttpd: add config option for json_script
Stijn Tintel [Fri, 20 Aug 2021 11:33:51 +0000 (14:33 +0300)]
uhttpd: add config option for json_script

Add a config option for json_script instead of unconditionally including
all json files in /etc/uhttpd in every uhttpd instance. This makes it
possible to configure a single instance with an unconditional redirect,
which currently renders all other uhttpd instances unusable.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Felix Fietkau <nbd@nbd.name>
3 years agoodhcpd: update to latest git HEAD
Hans Dedecker [Mon, 23 Aug 2021 19:48:06 +0000 (21:48 +0200)]
odhcpd: update to latest git HEAD

01b4e60 dhcpv4: fix uninitialized hostname in some ubus events
1666769 dhcpv6-ia: allow up to 64 bit wide hostid

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
3 years agobase-files: fix option to make /var persistent
Stijn Tintel [Mon, 23 Aug 2021 11:06:35 +0000 (14:06 +0300)]
base-files: fix option to make /var persistent

The option was initially named TARGET_ROOTFS_LN_VAR_TMP, and the check
was correct. When renaming the option to something more suitable, the
check was changed to check for n, but when an option is not set, it's
not n but empty. This results in the check always evaluating to false.
Fix the check by checking for y with ifneq.

Fixes: 57807f50ded6 ("base-files: add option to make /var persistent")
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
3 years agoath79: add support for Atheros DB120 reference board
Zoltan HERPAI [Mon, 7 Sep 2020 16:52:31 +0000 (18:52 +0200)]
ath79: add support for Atheros DB120 reference board

Atheros DB120 reference board.

Specifications:

SoC:    QCA9344
DRAM:   128Mb DDR2
Flash:  8Mb SPI-NOR, 128Mb NAND flash
Switch: 5x 10/100Mbps via AR8229 switch (integrated into SoC),
        5x 10/100/1000Mbps via QCA8237 via RGMII
WLAN:   AR9300 (SoC, 2.4G+5G) + AR9340 (PCIe, 5G-only)
USB:    1x 2.0
UART:   standard QCA UART header
JTAG:   yes
Button: 1x reset
LEDs:   a lot
Slots:  2x mPCIe + 1x mini-PCI, but using them requires
        additional undocumented changes.
Misc:   The board allows to boot off NAND, and there is
        I2S audio support as well - also requiring
        additional undocumented changes.

Installation:

1. Original bootloader

   Connect the board to ethernet
   Set up a server with an IP address of 192.168.1.10
   Make the openwrt-ath79-generic-atheros_db120-squashfs-factory.bin
   available via TFTP

   tftpboot 0x80060000 openwrt-ath79-generic-atheros_db120-squashfs-factory.bin
   erase 0x9f050000 +$filesize
   cp.b $fileaddr 0x9f050000 $filesize

2. pepe2k's u-boot_mod

   Connect the board to ethernet
   Set up a server with an IP address of 192.168.1.10
   Make the openwrt-ath79-generic-atheros_db120-squashfs-factory.bin
   available via TFTP, as "firmware.bin"

   run fw_upg

   Reboot the board.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
[explicit factory recipe in generic.mk, sorting in 10-ath9k-eeprom,
 convert to nvmem, use fwconcat* names in DTS, remove unneeded DT
 labels, remove redundant uart node]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoath79: add support for Ubiquiti PowerBeam M2 (XW)
Russell Senior [Fri, 13 Aug 2021 05:57:41 +0000 (22:57 -0700)]
ath79: add support for Ubiquiti PowerBeam M2 (XW)

This patch adds support for the Ubiquiti PowerBeam M2 (XW), e.g. PBE-M2-400,
a 802.11n wireless with a feed+dish form factor. This device was previously
supported by the ar71xx loco-m-xw firmware.

Specifications:
 - Atheros AR9342 SoC
 - 64 MB RAM
 - 8 MB SPI flash
 - 1x 10/100 Mbps Ethernet port, 24 Vdc PoE-in
 - Power and LAN green LEDs
 - 4x RSSI LEDs (red, orange, green, green)
 - UART (115200 8N1)

Flashing via stock GUI:
 - Downgrade to AirOS v5.5.x (latest available is 5.5.10-u2) first (see
   https://openwrt.org/toh/ubiquiti/powerbeam installation instructions)
 - Upload the factory image via AirOS web GUI.

Flashing via TFTP:
 - Use a pointy tool (e.g., unbent paperclip) to keep the
   reset button pressed.
 - Power on the device (keep reset button pressed).
 - Keep pressing until LEDs flash alternatively LED1+LED3 =>
   LED2+LED4 => LED1+LED3, etc.
 - Release reset button.
 - The device starts a TFTP server at 192.168.1.20.
 - Set a static IP on the computer (e.g., 192.168.1.21/24).
 - Upload via tftp the factory image:
    $ tftp 192.168.1.20
    tftp> bin
    tftp> trace
    tftp> put openwrt-ath79-generic-ubnt_powerbeam-m2-xw-squashfs-factory.bin

WARNING: so far, no non-destructive method has been discovered for
opening the enclosure to reach the serial console. Internal photos
are available here: https://fcc.io/SWX-NBM2HP

Signed-off-by: Russell Senior <russell@personaltelco.net>
3 years agoath79: rename Ubiquiti PowerBeam M (XW) to PowerBeam M5 (XW)
Russell Senior [Fri, 13 Aug 2021 05:57:39 +0000 (22:57 -0700)]
ath79: rename Ubiquiti PowerBeam M (XW) to PowerBeam M5 (XW)

The commit [1] added support for Ubiquiti PowerBeam M (XW), tested
on the PBE-M5-400. But, it turns out the PBE-M2-400 has a different
ethernet configuration, so make the support specific to the m5 version
in anticipation of adding specific support for the m2 in a separate
commit.

[1] 12eb5b2384a6 ("ath79: add support for Ubiquiti PowerBeam M (XW)")

Signed-off-by: Russell Senior <russell@personaltelco.net>
[fix model name in DTS, format commit reference in commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agobase-files: add option to make /var persistent
Stijn Tintel [Mon, 25 Feb 2019 13:05:07 +0000 (15:05 +0200)]
base-files: add option to make /var persistent

In OpenWrt, /var is symlinked to /tmp by default. This is done to reduce
the amount of writes to the flash chip, which often have not the
greatest durability. As a result, things like DHCP or UPnP lease files,
are not persistent across reboots.

Since OpenWrt can run on devices with more durable storage, it makes
sense to have an option for a persistent /var. Add an option to make
/var persistent. When enabled, /var will no longer be symlinked to /tmp,
but /var/run will be symlink to /tmp/run, as it should contains only
files that should not be kept during reboot. The option is off by
default, to maintain the current behaviour.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
3 years agolldpd: bump to 1.0.12
Stijn Tintel [Sun, 22 Aug 2021 14:57:39 +0000 (17:57 +0300)]
lldpd: bump to 1.0.12

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
3 years agomediatek: mt7623: enable clock drivers for Mali-450 and audio
Daniel Golle [Sun, 22 Aug 2021 13:32:44 +0000 (14:32 +0100)]
mediatek: mt7623: enable clock drivers for Mali-450 and audio

Built clock drivers for G3DSYS and AUDSYS into the kernel to allow
multimedia features (GPU and audio) to work if they exist.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoipq806x: fix min<>target opp-microvolt DTS mixup
Shane Synan [Thu, 19 Aug 2021 18:22:48 +0000 (14:22 -0400)]
ipq806x: fix min<>target opp-microvolt DTS mixup

Rearrange all voltage triplets for "opp_table0" to match the
specifications.  "opp-microvolt" and "opp-microvolt-<name>" triplets
are in order of <target min max>, and NOT <min target max>.

Previously, the CPU would *always* spend its time at the "minimum"
voltage, ignoring the actual intended target.  This is a regression
from previous behavior.

On an NBG6817 with a Qualcomm CPU of PVS bin #2...
(see &opp_table0 -> opp-1725000000 -> opp-microvolt-speed0-pvs2-v0)

* Before:
/usr/bin/tail -n +1 /sys/kernel/debug/opp/cpu0/opp\:1725000000/supply-0/u_volt_*
==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_max <==
1260000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_min <==
1200000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_target <==
1140000

* After:
/usr/bin/tail -n +1 /sys/kernel/debug/opp/cpu0/opp\:1725000000/supply-0/u_volt_*
==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_max <==
1260000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_min <==
1140000

==> /sys/kernel/debug/opp/cpu0/opp:1725000000/supply-0/u_volt_target <==
1200000

To check voltages and frequencies at run time, use...
/bin/cat /sys/kernel/debug/regulator/regulator_summary &&
  /bin/cat /sys/kernel/debug/clk/clk_summary | grep "hfpll"

See
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/Documentation/devicetree/bindings/opp/opp.txt?h=v5.4.142#n91

Fixes: 1e25423be8ac ("ipq806x: refresh dtsi patches")
Signed-off-by: Shane Synan <digitalcircuit36939@gmail.com>
Reviewed-by: Ansuel Smith <ansuelsmth@gmail.com>
[commit message style cleanup, another kernel refresh]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agoramips: add label MAC address for Onion Omega 2(+)
Adrian Schmutzler [Sat, 21 Aug 2021 21:38:12 +0000 (23:38 +0200)]
ramips: add label MAC address for Onion Omega 2(+)

Thanks to a hint from Michael Siegenthaler in 4b4fa2f9fed7 ("ramips:
fix ethernet MAC address on Omega2"), the label MAC address of
the Onion Omega 2(+) can be set based on its documentation [1].

[1] https://docs.onion.io/omega2-docs/mac-address.html

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
3 years agofirmware-utils: fix build on not Linux
Kevin Darbyshire-Bryant [Sat, 21 Aug 2021 19:08:07 +0000 (20:08 +0100)]
firmware-utils: fix build on not Linux

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
3 years agoltq-vdsl: add missing backslash
Jan Hoffmann [Sat, 21 Aug 2021 16:25:14 +0000 (18:25 +0200)]
ltq-vdsl: add missing backslash

This error was introduced with the recent cleanup.

Signed-off-by: Jan Hoffmann <jan@3e8.eu>
3 years agobcm27xx: switch to kernel 5.10
Álvaro Fernández Rojas [Sat, 21 Aug 2021 08:56:42 +0000 (10:56 +0200)]
bcm27xx: switch to kernel 5.10

After testing it on RPi B+ and RPi 4B it seems stable enough to enable it on
OpenWrt master.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agobcm27xx: add kernel 5.10 support
Álvaro Fernández Rojas [Sat, 21 Aug 2021 08:54:34 +0000 (10:54 +0200)]
bcm27xx: add kernel 5.10 support

Rebased RPi foundation patches on linux 5.10.59, removed applied and reverted
patches, wireless patches and defconfig patches.

bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 4B v1.1 4G
bcm2711: boot tested on RPi 4B v1.1 4G

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agogeneric: fix debloat dma-buf 5.10 patch
Álvaro Fernández Rojas [Sat, 21 Aug 2021 08:50:21 +0000 (10:50 +0200)]
generic: fix debloat dma-buf 5.10 patch

The current patch produces the following error when CONFIG_DMABUF_HEAPS is
enabled:
drivers/built-in.a: member drivers/dma-buf/heaps in archive is not an object

Fixes: b10d6044599d ("kernel: add linux 5.10 support")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agogeneric: add missing 5.10 config symbols
Álvaro Fernández Rojas [Sat, 21 Aug 2021 08:48:07 +0000 (10:48 +0200)]
generic: add missing 5.10 config symbols

These symbols are needed for bcm27xx 5.10 kernel support.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agobcm27xx-gpu-fw: update to latest version
Álvaro Fernández Rojas [Sat, 21 Aug 2021 17:05:14 +0000 (19:05 +0200)]
bcm27xx-gpu-fw: update to latest version

Multiple firmware fixes needed for kernel updates.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agobcm27xx-userland: update to latest version
Álvaro Fernández Rojas [Sat, 21 Aug 2021 17:03:24 +0000 (19:03 +0200)]
bcm27xx-userland: update to latest version

Properly recognise all BCM2711 variants

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
3 years agomediatek: mt7623: backport musb, improve HDMI console
Daniel Golle [Sat, 21 Aug 2021 14:32:13 +0000 (15:32 +0100)]
mediatek: mt7623: backport musb, improve HDMI console

Backport support for dual-role USB 2.0 as that's what is actually
built-into MT7623.
Improve HDMI console by enabling VT and setting up tty1..tty6.
Re-add accidentally removed CONFIG_ARM_ARCH_TIMER.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
3 years agoprereq-build: require python3-distutils
Andre Heider [Tue, 10 Aug 2021 10:22:17 +0000 (12:22 +0200)]
prereq-build: require python3-distutils

Debian and Ubuntu ship a python3-minimal package which does not include
the distutils module. This is not supported by upstream and can be
considered a broken python distribution.

In practice, many scripts depend on said module, and this is a reoccuring
pain point for building various OpenWrt packages.

Require and check for said module, enough time has been wasted on this.

A list of just the most recent issues:
https://github.com/openwrt/packages/pull/16304
https://github.com/openwrt/packages/pull/16027
https://github.com/openwrt/packages/pull/15443
https://github.com/openwrt/packages/pull/14394
https://github.com/openwrt/packages/pull/12909
https://github.com/openwrt/packages/issues/12443
https://github.com/openwrt/packages/pull/11035
https://github.com/openwrt/packages/issues/10993

Signed-off-by: Andre Heider <a.heider@gmail.com>
3 years agoramips: fix ethernet MAC address on Omega2
Michael Siegenthaler [Thu, 19 Aug 2021 00:58:56 +0000 (17:58 -0700)]
ramips: fix ethernet MAC address on Omega2

According to https://docs.onion.io/omega2-docs/mac-address.html, 0x28 is
the correct location to read the address on Onion Omega 2(+) devices.

This fixes a regression introduced by commit 77e850fe76e3 ("ramips: tidy up
MAC address setup for Linkit Smart and Omega2"), which was a cleanup that
intended to preserve existing behavior. In my testing with v19.07.7,
however, the MAC address determined from the device tree takes precedence
over the one set by 02_network, so the aforementioned commit actually
changed the behavior.

Signed-off-by: Michael Siegenthaler <msiegen@google.com>
[Adapt patch to nvmem usage]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>