cacaa5f libnl-3.6.0 release 855c02f route/mdb: merge branch 'troglobit:mdb-dump-fixes' 930fc11 route/mdb: add support for MAC multicast entries 2d68caf route/mdb: add missing detils and stats dump callbacks d9ed99b nl-monitor: support for setting libnl debug level 4c41e0d nl-monitor: add missing --help to long_opts[] 7e96356 Check validation type against end of enum 4e153bc route/link: add VLAN bridge binding flag b7256d3 github: build unit tests also with "clang" 8111933 route: assert that "rtnl_link_info_ops" refcount does not drop below zero 4f5c846 lib: merge branch 'th/object-clone-fixes' d23fb81 lib: make nl_object_clone() out-of-memory safe 7f7452c route: fix ref counting for l_info_ops and io_clone() 620d024 route: drop unnecessary oo_clone() implementation from netconf 93a02eb netfilter: make log-msg,queue-msg setters robust against ENOMEM 23902d0 xfrm/sa: clone user_offload in xfrm_sa_clone() 29e5092 xfrm/sa: style cleanup xfrm_sa_clone() 14a9ebc utils: add internal _nl_memdup() helper 2e0d7f8 lib: add rtnl_link_info_ops_get() and take lock for rtnl_link_info_ops's io_refcnt e884286 lib: include <netlink-private/utils.h> in <netlink-private/netlink.h> 7d43191 tests: merge branch 'th/tests-netns' a7bbdab tests: add unit test for nl_object_clone() and nl_object_diff() fdb0121 tests: add new "netns" test suite 9102872 tests: add fixture/teardown for tests to run in separate netns 9a42798 tests: cleanup creating test suites 1fc3e07 tests: refactor tests and add n-test-util helper library 7a3d6e2 netlink: add _NL_N_ELEMENTS() macro 3da4f7d netlink: add _nl_streq()/_nl_streq0() helper 1ad8555 netlink: add _nl_auto_nl_socket cleanup macro c8a5729 lib: add _nl_close() helper 80868e6 clang-format: add ".clang-format" from linux kernel 2782ed3 github: build tests with "-std=gnu11" af59b9a github: split tests in separate steps c8f7902 build: add "check-progs" make target to build unit tests 23b4d33 route/cls: add TCA_FLOWER_KEY_VLAN_ETH_TYPE to "flower_policy" policy 1f8dc89 route/cls: return -NLE_INVAL in case rtnl_tc_data_peek() fails ef5f3eb route/cls: merge branch 'westermo:cls-flower' c385c84 route/cls: no need to copy simple fields in flower_clone() 79217d8 route/cls: make output pointers in rtnl_flower_get_{src,dst}_mac() optional 64e0836 route/cls: adjust whitspace/indentation 5ac9ce3 route/cls: use SPDX-License-Identifier 1a1c4e5 route/cls: reorder fields in "struct rtnl_flower" and adjust indentation ef46de1 route/cls: add flower classifier f0aad20 route: merge branch 'pugo:master' d0cfecc route: make argument of rtnl_link_can_set_{bittiming,data_bittiming}() const 6a92268 route: add rtnl_link_can_set_data_bittiming_const() 841553b route: drop bitrate,sample-point getters/setters from can link 37998f7 route: rename rtnl_link_can_get_data_bt_const() to rtnl_link_can_get_data_bittiming_const() 96d3a6b route: fix adding rtnl_link_can_* symbols to symbol file 881e329 route: fix indentation 37c10ef route/link: add CAN FD support d56bf73 route/mdb: merge branch 'rubensfig:mdb' e0b2406 route/mdb: drop setting ifindex in mdb_clone() d78a6eb route/mdb: minor cleanup in "mdb.c" 57a6d51 route/mdb: drop extra MDB attributes and rework mdb_compare() 0b44562 route/mdb: hide rtnl_mdb_entry_alloc() from public API 1c65ff7 route/mdb: reorder fields in "rtnl_mdb_entry" for tighther packing 1ac5403 route/mdb: use nl_list_for_each_entry_safe() for destroying list in mdb_free_data() 92035e2 route/mdb: cleanup mdb.h header 6237621 build: sort file names in Makefile.am 0ec6c6c mdb: support bridge multicast database notification c980034 route/cls: merge branch 'westermo:classifier-api-extension' a694c33 route/cls: rename rtnl_cls_get{,_by_prio}() API to rtnl_cls_find_by{handle,prio}() 88a5138 route/cls: allow fetching of classifiers from cache 90577b5 route: merge branch 'TummyFish:master' 299f61a license: use SPDX license identifiers and drop license comments 05a540d ip6vti: Add fwmark API 41e4365 ip6gre: Add fwmark API ebc7df3 sit: Add fwmark API 8e1da8e ipip: Add fwmark API bda19be ip6_tnl: Add fwmark API cdc6c0f ipvti: Add fwmark API 2995710 ipgre: Add fwmark API d9dc6c2 ip6vti: Add IPv6 VTI support be86170 license: use SPDX license identifiers and drop license comments 919d9c6 route: merge branch 'westermo:fib-lookup' 1ff9b38 route/route: don't report failure when we receive a route in rtnl_route_lookup() 53bc27e route/route: support FIB lookups using rtnl ed76b9a build: sort files in Makefile.am 46b22c1 route/link: merge branch 'westermo:team-support' 586a6b6 build: fix new symbols in "libnl-route-3.sym" 831f125 route/link: add support for team device 6c59580 route/link: Move LINK_ATTR_IFNAME to a proper location f77cd25 route/netconf: full API export f59f443 build: add Libs.private field in libnl pkg-config file b3333e0 route/qdisc: allow fetching qdiscs by their kind 9a39188 netlink: merge branch 'michael-dev:feature/nflog-vlan-v3' a93fc5f nflog: add recent missing symbols to "libnl-nf-3.sym" 7b4df53 nflog: add missing symbols to "libnl-nf-3.sym" 8266436 nflog:add conntrack flag and enable flags for nflog 246904d nflog: add CT support 59fc1d7 nflog: add mac_header support c268c48 nflog: add vlan attribute 2548468 refresh linux/netfilter/nfnetlink_log.h with linux 5.4 4edffbd route/link: Add IPv6 GRE support 5d69587 route: add global sectin in "libnl-route-3.sym" d0cf3a9 neigh: support to add fdb entry 3bf0a9c cls:u32: fix u32_clone() function 3147d86 route:tc: fix rtnl_tc_clone() calling to_clone() and add comment c027e54 route:cls: fix dangling pointers in to_clone() implementations 47c04fb route:act: drop unnecessary implementations for to_clone() 79f7c9d tests: add test for cloning cls:u32 object b1caff8 github: run unit tests under valgrind 38b3be3 tests: cleanup tests and avoid leaks c2b94b9 lib: add more _nl_auto* cleanup macros 1f05e5a tests: replace libcheck's fail_if() macro by ck_assert*() 6341d89 log: fix typo in dumping msg bfee88b route: fix memory leak of l_info_ops in link_msg_parser() 431ba83 route: merge branch 'qbdwlr:mplsPR' cc680d4 route: add accessors for setting/getting ENCAP_MPLS attributes efe8aad route: remove incorrect nl_addr_valid() from rtnl_route_nh_set_newdst(), etc. 0688bc6 netfilter/ct: fix use of reply/orig for conntrack requests 5d92516 route: don't use internal bit mask constants in NLA_PUT in can_put_attrs() 6fe9418 lib: fix descriptions for nl_cache_pickup()/nl_cache_pickup_checkdup() d0d91c7 route: merge branch 't0mmmy90:check-if-nh-exists-while-updating-ipv6-multipath-route' 28a652b route: fix duplicate check for next hop for IPv6 multipath routes 03bfd2f route: check if nh exists while updating route 92c9237 ci: add github-actions 3d1fb00 tests/check-addr: replace deprecated fail_if() macro from libcheck with ck_assert_msg() d9cad53 xfrm: fix naming consistency in xfrmnl_sp_get_curlifetime() c0e82db cli: Add C++ linkage support 000a3bd yyerror: update to POSIX standard f865a99 xfrm: merge branch 'spellingmistake:master' 0306ae2 xfrm: fix libnl-xfrm-3.sym linker versioning 8950194 xfrm: ensure minlen in policy for XFRMA_OFFLOAD_DEV c8f33a4 xfrm: Add support for xfrm user offloading b6cc13d Supporting Hardware offload capability for MACsec 39944c6 route/link: check calloc() return value 12cc0aa zero stack allocated memory in xfrmnl_build_sa_delete_request 5f39502 merge branch 'bengal/coverity' 26f342d route/qdisc: handle error of calloc() d1a151e route/qdisc: fix memory leak in netem.c aa092d1 route/link: fix copy-paste error in geneve.c 30552e8 route/cls: fix cgroup's clone() function 764c30a route: let route/link join RTNLGRP_IPV6_IFINFO mcast group b24e833 doc: update link to mscgen-filter 0b5d17d addr: merge branch 'lcrestez-dn:dadfailed' 30924e7 tests: Add test for rtnl_addr_flags2str 5c05c75 addr: Add address flag `dadfailed` 2abeec8 xfrm: remove superfluous xfrm_userpolicy_id from dump request 5611487 lib/trivial: whitespace ab015e1 lib: merge branch 'th/object-identical-fix' 36b0894 lib: allow to compare incomplete objects in nl_object_identical() 5020077 lib: let nl_object_identical() declare the same object as identical 406ebc8 lib: fix using right compare mask in nl_object_diff64() 8637c70 lib/trivial fix indentation 4be6062 route/link: avoid cloning link policy in link_msg_parser() ba3c51c route/link: fix link_msg_parser() for using the af_ops of the link family f9d0181 lib: use proper int type for id attributes in nl_object_identical() 68b3431 lib: fix documentation of nl_cache_dump_filter to have @params optional 2375cde lib: fix spelling errors in "netlink/handlers.h" 3faf26c gitignore: fix ignoring check-direct build artifacts 47fb1c0 xfrm: remove superfluous xfrm_usersa_id from dump request 846d288 travis: install "check" in travis d64a0ec route: convert non-leading tabs to spaces in "include/netlink/route/link.h" aaefd92 route: add test for valid content of map_stat_id_from_IPSTATS_MIB_v2 array bab9e77 route/link: add RTNL_LINK_REASM_OVERLAPS stat bae11ec tests: add "check-direct" test 2d50b04 route: add "netlink-private/route/utils.h" header 9a52b3d gitignore: merge all gitignore files in top level directory 4c5f2d6 merge branch 'th/license-comment-cleanup' 2d3e690 license: update "doc/COPYING" license text 1389188 license: add SPDX license identifer to "configure.ac" files 503aa5e license: fix and add SPDX license identifiers and drop license comments 4333aef license: cleanup copyright comments 956635b license: fix SPDX license identifier for nl-auto.h 5614b4c lib: merge branch 'th/cleanup-errout' 17e09aa rtnl/route: use cleanup attribute in "lib/route/link.c" b50be8f rtnl/route: use cleanup attribute in "lib/route/route_obj.c" fca338b rtnl/route: fix NLE_NOMEM handling in parse_multipath() 2957d8f rtnl/link: fix leaking rtnl_link_af_ops in link_msg_parser() 77b4f68 rtnl/route: only consider negative error codes as error 6870ece lib: cleanup nla_parse() to return early on error a858a0b lib: use _nl_strncpy*() instead of plain strncpy() 018c694 lib: cleanup _nl_strncpy_assert() e97b990 lib: rename _nl_strncpy() to _nl_strncpy_assert() 5ffbc6f lib: add _NL_RETURN_*() helper macros abb7391 lib: add "include/netlink-private/nl-auto.h" header ecd15bc lib: add _nl_assert_not_reached() 9cc38dc lib/route: adjust coding style 01ea9a6 route/link: Check for null pointer in macvlan
Installation
-----------------
1. Downgrade stock (Beeline) firmware to v.1.0.02;
2. Give factory OpenWrt image a shorter name, e.g. 1001.img;
3. Upload and update the firmware via the original web interface.
Remark: You might need make the 3rd step twice if your running firmware
is booted from the Slot 1 (Sercomm0 bootflag). The stock firmware
reverses the bootflag (Sercomm0 / Sercomm1) on each firmware update.
Revert to stock
---------------
1. Change the bootflag to Sercomm1 in OpenWrt CLI and then reboot:
printf 1 | dd bs=1 seek=7 count=1 of=/dev/mtdblock3
2. Optional: Update with any stock (Beeline) firmware if you want to
overwrite OpenWrt in Slot 0 completely.
MAC Addresses
-------------
+-----+-----------+---------+
| use | address | example |
+-----+-----------+---------+
| LAN | label | *:16 |
| WAN | label + 1 | *:17 |
| 2g | label + 4 | *:1a |
| 5g | label + 5 | *:1b |
+-----+-----------+---------+
The label MAC address was found in Factory 0x21000
Notes
-----
1. The following scripts are required for the build:
sercomm-crypto.py - already exists in OpenWrt
sercomm-partition-tag.py - already exists in OpenWrt
sercomm-payload.py - already exists in OpenWrt
sercomm-pid.py - new, the part of this pull request
sercomm-kernel-header.py - new, the part of this pull request
2. This device (same as other Sercomm S2,S3-based devices) requires
special LZMA and LOADADDR settings for successful boot:
LZMA_TEXT_START=0x82800000
KERNEL_LOADADDR=0x81001000
LOADADDR=0x80001000
3. This device (same as several other Sercomm-based devices - Beeline,
Netgear, Etisalat, Rostelecom) has partition map (mtd1) containing
real partition offsets, which may differ from device to device
depending on the number and location of bad blocks on NAND.
"fixed-partitions" is used if the partition map is not found or
corrupted. This behavour (it's the same as on stock firmware) is
provided by MTD_SERCOMM_PARTS module.
Michael Yartys [Sun, 13 Feb 2022 14:17:54 +0000 (15:17 +0100)]
wpa_supplicant: compile with OCV support
Operating Channel Validation (OCV) is a security feature designed to
prevent person-in-the-middle multi-channel attacks. Compile -basic and
-full variants with support for OCV. This feature can be configured in the
wireless config by setting ocv equal to one of the following values:
0 = disabled (hostapd/wpa_supplicant default)
1 = enabled if wpa_supplicant's SME in use. Otherwise enabled only when the
driver indicates support for operating channel validation.
Signed-off-by: Michael Yartys <michael.yartys@protonmail.com>
Michael Yartys [Sun, 13 Feb 2022 14:09:56 +0000 (15:09 +0100)]
hostapd: enable compilation of OCV and add build feature discovery
Operating Channel Validation (OCV) is a security feature designed to
prevent person-in-the-middle multi-channel attacks. Compile the -basic and
-full variants of hostapd with this feature, and enable discovery of this
feature for future luci integration. OCV can be configured by setting ocv
equal to one of the following values in the wireless config:
0 = disabled (hostapd/wpa_supplicant default)
1 = enabled
2 = enabled in workaround mode - Allow STA that claims OCV capability to
connect even if the STA doesn't send OCI or negotiate PMF.
Signed-off-by: Michael Yartys <michael.yartys@protonmail.com>
bcm53xx: use -falign-functions=32 for kernel compilation
Northstar SoCs have pretty small CPU caches and their performance is
heavily affected by cache hits & misses. It means that all kind of
random code changes can affect performance as they often reorganize
(change alignment & possibly reorder) kernel symbols.
It was discussed in ARM / net mailinglists:
1. ARM router NAT performance affected by random/unrelated commits [1] [2]
2. Optimizing kernel compilation / alignments for network performance [3] [4]
It seems that -falign-functions can be used as a partial workaround. It
doesn't solve all cases (e.g. documented watchdog one [5]) but it surely
helps with many of them.
A complete long term solution may be PGO (profile-guided optimization)
but it isn't available at this point.
realtek: EnGenius EWS2910P: declare and hog the poe-enable GPIO
GPIO 1 on the RTL8231 is used to force the PoE MCU to disable power
outputs. It is not used by any driver, but if accidentally set low,
PoE outputs are disabled. This situation is hard to debug, and
requires knowledge of the Broadcom PoE protocol used by the MCU.
To prevent this situation, hog it as an output high. This is
consistent with the ZyXel GS1900 series handles it.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Nick Hainke [Fri, 1 Jul 2022 13:01:13 +0000 (15:01 +0200)]
mediatek: mt7622: fix banana pi r64 wps button
Fix the wps button to prevent wrongly detected recovery procedures.
In the official banana pi r64 git the wps button is set to
GPIO_ACTIVE_LOW and not GPIO_ACTIVE_HIGH.
Import patch to fix on boot unwanted recovery entering:
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
- failsafe button wps was pressed -
- failsafe -
It looks like rtl8366rb is used only by tplink_tl-wr1043nd-v1 and
buffalo_wzr-hp-g300nh-rb. There is no need to have it built-in as it
works as a loadable module.
Tested both failsafe and normal boot on tl-wr1043nd-v1.
buffalo_wzr-hp-g300nh-rb was not tested.
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Thibaut VARÈNE [Thu, 30 Jun 2022 08:06:35 +0000 (10:06 +0200)]
ramips: improve YunCore AX820 LEDs
At least two AX820 hardware variants are known to exist, but they cannot
be distinguished (same hardware revision, no specific markings).
They appear to have the same LED hardware, but wired differently:
- One has a red system LED at GPIO 15, a green wlan2g LED at GPIO 14 and
a blue wlan5g LED at GPIO 16;
- The other only offers a green system LED at GPIO 15, with GPIO 14 and
16 being apparently not connected
Finally, a Yuncore datasheet says the canonical wiring should be:
- Blue wlan2g GPIO 14, green system GPIO 15, red wlan5g GPIO 16
All GPIOs are tied to a single RGB LED which is exposed via lightpipe on
the device front casing.
Considering the above, this patch exposes all three LEDs, preserves the
common system LED (GPIO 15) as the openwrt status LED, and removes the
color information from the LEDs names since it is not consistent across
hardware. The LED naming is made consistent with other YunCore devices.
A note is added in DTS to ensure this information is always available
and prevent unwanted changes in the future.
Fixes: #10131 "YunCore AX820: GPIO LED not correct" Reviewed-by: Sander Vanheule <sander@svanheule.net> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
[ add more details to the commit description and fix title ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Enable PowerPC Book-E Watchdog Timer support. Having this enabled
in-kernel will result in procd starting it during boot.
This effectively solves the problem of the WDT in the Winbond W83793 chip
potentially resetting the system during sysupgrade, which could result
in an unbootable device. While the driver is modular, resulting in procd
not starting the WDT during boot (because that happens before kmod
load), the WDT handover during sysupgrade results in the WDT being
started. This normally shouldn't be a problem, but the W83793 WDT does
not like procd's defaults, nor the handover happening during sysupgrade.
Stijn Tintel [Mon, 1 Nov 2021 21:39:48 +0000 (23:39 +0200)]
bcm27xx: add support for Raspberry Pi Zero 2
Due to licensing uncertainty, we do not include the firmwares for the
wireless chips used in the Raspberry Pi Zero 2 W. To have working
wireless, follow the instructions below.
Now build the OpenWrt image as usual, and it will include the firmware
files in the correct location.
For people using ext4 images:
Write the ext4 image to the sdcard, then mount the 2nd partition and put
the firmware files from the links above in /lib/firmware/brcm relative
from the mount point where the partition is mounted.
For people using squashfs images:
Write the squashfs image to the sdcard, place it in the Raspberry Pi
Zero 2 W, boot it and wait for the overlay filesystem to be created.
Find the offset of the overlay filesystem in sysfs:
Shut down the device, unplug the power and move the SD card to a Linux
computer. Mount the 2nd partition of the sdcard as a loop device with
the offset found earlier.
sudo mount /dev/sdh2 -o loop,offset=25755648 /mnt/temp
Put the firmware files from the links above in /upper/lib/firmware/brcm
relative to the mount point where the loop device is mounted.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Tested-by: Peter van Dijk <peter@7bits.nl>
MAC addresses as verified by OEM firmware:
use address source
Lan/W2G *:C8 art 0x1002 (label)
5G *:CC art 0x5006
Installation:
Asus windows recovery tool:
install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
Start the Asus firmware restoration utility, specify the factory image
and press upload
Do not power off the device after OpenWrt has booted until the LED flashing.
TFTP Recovery method:
set computer to a static ip, 192.168.1.10
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit
MAC addresses as verified by OEM firmware:
use address source
Lan/Wan/PLC *:10 art 0x1002 (label)
2G *:10 art 0x1000
5G *:14 art 0x5000
Important notes:
the PLC firmware has to be provided and copied manually onto the
device! The PLC here has no dedicated flash, thus the firmware file
has to be uploaded to the PLC controller at every system start
the PLC functionality is managed by the script /etc/init.d/plc_basic,
a very basic script based on the the one from Netadair (netadair dot de)
Installation:
Asus windows recovery tool:
have to have the latest Asus firmware flashed before continuing!
install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
start the Asus firmware restoration utility, specify the factory image
and press upload
do NOT power off the device after OpenWrt has booted until the LED flashing
TFTP Recovery method:
have to have the latest Asus firmware flashed before continuing!
set computer to a static ip, 192.168.1.75
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit
do NOT power off the device after OpenWrt has booted until the LED flashing
Additional notes:
the pairing buttons have to have pressed for at least half a second,
it doesn't matter on which plc device (master or slave) first
it is possible to pair the devices without the button-pairing requirement
simply by pressing reset on the slave device. This will default to the
firmware settings, which is also how the plc_basic script is setting up
the master device, i.e. configuring it to firmware defaults
the PL-E56P slave PLC has its dedicated 4MByte SPI, thus it is capable
to store all firmware currently available. Note that some other
slave devices are not guarantied to have the capacity for the newer
~1MByte firmware blobs!
To have a good overlook about the slave device, here are its specs:
same QCA7500 PLC controller, same w631gg6kb-15 128MB RAM,
25L3233F 4MB SPI-NOR and an AR8035-A 1000M-Transceiver
Josef Schlehofer [Tue, 28 Jun 2022 11:42:26 +0000 (13:42 +0200)]
mac80211: add patch for mwifiex to fix cryptic errors/warnings
In Turris MOX SDIO card [1], which uses Marvell 88W997 and its driver
mwifiex, you might get cryptic messages, which are not helpful to use.
@pali created patch, which improves messages by the driver and he will
send this to Linux kernel soon.
Robert Marko [Wed, 30 Mar 2022 12:04:10 +0000 (14:04 +0200)]
mvebu: add Methode euroDPU support
Add support for Methode euroDPU which is based on uDPU but does not
have a second SFP cage, instead of which a Maxlinear G.hn IC is used.
PHY mode is set to 1000Base-X despite Maxlinear IC being capable of
2500Base-X since until 5.15 support for mvebu is available trying to use
2500Base-X will cause buffer overruns for which the fix is not easily
backportable.
Installation instructions:
1. Boot the FIT initramfs image (openwrt-mvebu-cortexa53-methode_edpu-initramfs.itb)
2. sysupgrade using the openwrt-mvebu-cortexa53-methode_edpu-firmware.tgz
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 28 Mar 2022 12:26:47 +0000 (14:26 +0200)]
mvebu: update and refactor uDPU DTS
uDPU DTS has pending upstream fixups, so backport those as well as split
the DTS into a DTSI and DTS in preparation for euroDPU support which
uses uDPU as the base.
Ethernet aliases have not yet been sent upstream but will be soon in order
for U-boot to set the correct MAC on both ethernet interfaces instead of
just one.
Since U-boot environment now has its own partition, update the envtools
config script to search for it instead.
Patch hardcoding PHY mode is also not applicable anymore, so drop it and
set in the uDPU DTS directly.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Thibaut VARÈNE [Sun, 12 Jun 2022 19:48:40 +0000 (21:48 +0200)]
ath79: add support for RouterBOARD mAP
The MikroTik mAP-2nd (sold as mAP) is an indoor 2.4Ghz AP with
802.3af/at PoE input and passive PoE passthrough.
See https://mikrotik.com/product/RBmAP2nD for more details.
Specifications:
- SoC: QCA9533
- RAM: 64MB
- Storage: 16MB NOR
- Wireless: QCA9533 802.11b/g/n 2x2
- Ethernet: 2x 10/100 ports,
802.3af/at PoE in port 1, 500 mA passive PoE out on port 2
- 7 user-controllable LEDs
Note: the device is a tiny AP and does not distinguish between both
ethernet ports roles, so they are both assigned to lan.
With the current setup, ETH1 is connected to eth1 and ETH2 is connected
to eth0 via the embedded switch port 2.
Flashing:
TFTP boot initramfs image and then perform sysupgrade. The "ETH1" port
must be used to upload the TFTP image. Follow common MikroTik procedure
as in https://openwrt.org/toh/mikrotik/common.
Tested-By: Andrew Powers-Holmes <aholmes@omnom.net> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Thibaut VARÈNE [Fri, 17 Jun 2022 10:43:43 +0000 (12:43 +0200)]
ipq40xx: mikrotik: make RouterBoot partition writeable
Linux MTD requires the parent partition be writable for a child
partition to be allowed write permission.
In order for soft_config to be writeable (and modifiable via sysfs),
the parent RouterBoot partition must be writeable
John Thomson [Tue, 17 May 2022 01:15:45 +0000 (11:15 +1000)]
kernel: fix variable erasesize patch
Update this pending patch to remove the untested (variable eraseregions)
section, alongside simplifying the patch.
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
[refresh and split out unrelated refreshes] Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Since 4e0c54bc5bc8 ("kernel: add support for kernel 5.4"),
the spi-nor limit 4k erasesize to spi-nor chips below a configured size
patch has not functioned as intended.
For uniform erasesize SPI-NOR devices, both
nor->erase_opcode & mtd->erasesize are used in erase operations.
These are set before, and not modified by, this
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS_LIMIT patch.
Thus, an SPI-NOR device with CONFIG_MTD_SPI_NOR_USE_4K_SECTORS will
always use 4k erasesize (where the device supports it).
If this patch was fixed to function as intended, there would be
cases where devices change from a 4K to a 64K erasesize.
Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
MAC addresses as verified by OEM firmware:
use address source
Lan/W5G *:B0 factory 0x8004 (label)
W2G *:B4 factory 0x0
Installation:
Asus windows recovery tool:
install the Asus firmware restoration utility
unplug the router, hold the reset button while powering it on
release when the power LED flashes slowly
specify a static IP on your computer:
IP address: 192.168.1.75
Subnet mask 255.255.255.0
Start the Asus firmware restoration utility, specify the factory image
and press upload
Do not power off the device after OpenWrt has booted until the LED flashing.
TFTP Recovery method:
set computer to a static ip, 192.168.1.2
connect computer to the LAN 1 port of the router
hold the reset button while powering on the router for a few seconds
send firmware image using a tftp client; i.e from linux:
$ tftp
tftp> binary
tftp> connect 192.168.1.1
tftp> put factory.bin
tftp> quit
OpenWrt now uses firewall4 (nft) by default,
so iptables should also default to nftables backend.
When multiple packages provide the same virtual package,
opkg pick the first one by alphabetical order,
so we rename iptables-legacy to iptables-zz-legacy and add
iptables-legacy in PROVIDES.
We also need to remove IPTABLES_NFTABLES config as
this cause recursive dependencies.
Thibaut VARÈNE [Tue, 14 Jun 2022 13:54:48 +0000 (15:54 +0200)]
qoriq: define leds for Firebox M300
This patch provides support for the Firebox M300 only user-controllable
bi-color LED, and makes the green "shield" LED act as the typical
OpenWrt status led.
DGS-1210 switches support dual image, with each image composed of a
kernel and a rootfs partition. For image1, kernel and rootfs are in
sequence. The current OpenWrt image (written using a serial console),
uses those partitions together as the firmware partition, ignoring the
partition division. The current OEM u-boot fails to validate image1 but
it will only trigger firmware recovery if both image1 and image2 fail,
and it does not switch the boot image in case one of them fails the
check.
The OEM factory image is composed of concatenated blocks of data, each
one prefixed with a 0x40-byte cameo header. A normal OEM firmware will
have two of these blocks (kernel, rootfs). The OEM firmware only checks
the header before writing unconditionally the data (except the header)
to the correspoding partition.
The OpenWrt factory image mimics the OEM image by cutting the
kernel+rootfs firmware at the exact size of the OEM kernel partition
and packing it as "the kernel partition" and the rest of the kernel and
the rootfs as "the rootfs partition". It will only work if written to
image1 because image2 has a sysinfo partition between kernel2 and
rootfs2, cutting the kernel code in the middle.
Steps to install:
1) switch to image2 (containing an OEM image), using web or these CLI
commands:
- config firmware image_id 2 boot_up
- reboot
2) flash the factory_image1.bin to image1. OEM web (v6.30.016)
is crashing for any upload (ssh keys, firmware), even applying OEM
firmwares. These CLI commands can upload a new firmware to the other
image location (not used to boot):
- download firmware_fromTFTP <tftpserver> factory_image1.bin
- config firmware image_id 1 boot_up
- reboot
To debrick the device, you'll need serial access. If you want to
recover to an OpenWrt, you can replay the serial installation
instructions. For returning to the original firmware, press ESC during
the boot to trigger the emergency firmware recovery procedure. After
that, use D-Link Network Assistant v2.0.2.4 to flash a new firmware.
The device documentation does describe that holding RESET for 12s
trigger the firmware recovery. However, the latest shipped U-Boot
"2011.12.(2.1.5.67086)-Candidate1" from "Aug 24 2021 - 17:33:09" cannot
trigger that from a cold boot. In fact, any U-Boot procedure that relies
on the RESET button, like reset settings, will only work if started from
a running original firmware. That, in practice, cancels the benefit of
having two images and a firmware recovery procedure (if you are not
consider dual-booting OpenWrt).
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
The cameo header is a 0x40-byte header used by D-Link DGS 1210 switches
and Apresia ApresiaLightGS series. cameo-imghdr.py is a clean-room
reimplementation of imghdr present in the DGS-1210-28-GPL package.
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
[fix board_version argument's help text] Signed-off-by: Sander Vanheule <sander@svanheule.net>
Stijn Tintel [Tue, 28 Jun 2022 19:14:29 +0000 (22:14 +0300)]
hostapd: disable mbo by default
Enabling mbo by default on 802.11ax devices breaks for encryption types
that do not enable 802.11w by default. Disable mbo by default to fix
this. Enabling mbo by default on 802.11ax devices was not explained in
the commit message anyway.
Flashing instructions:
* ssh into target device and run `cliclientd stopcs`
* Upgrade with factory image via web interface
Debricking:
* Serial port can be soldered on PCB J4 (1: TXD, 2: RXD, 3: GND, 4: VCC)
* Bridge unpopulated resistors R225 (TXD) and R237 (RXD).
Do NOT bridge R230.
* Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via LuCI web interface
setenv ipaddr 192.168.1.1 # default, change as required
setenv serverip 192.168.1.10 # default, change as required
tftp 0x80800000 initramfs.bin
bootelf $fileaddr
MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
Signed-off-by: Sven Hauer <sven.hauer+github@uniku.de>
When ACS or DFS end up selecting channel 144 or higher, some clients
might no longer be able to communicate with the AP due to the TX power
being limited to 13 dBm. Setting min_tx_power to 20 will result in
hostapd not considering these channels during ACS or after a DFS event.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: David Bauer <mail@david-bauer.net>
Stijn Tintel [Mon, 6 Jun 2022 13:36:27 +0000 (16:36 +0300)]
hostapd: introduce background_radar option
Introduce a new option background_radar to toggle hostapd's background
radar feature. Enabling this allows DFS CAC to run on dedicated radio RF
chains while the radio(s) are otherwise running normal AP activities on
other channels.
As OpenWrt configures hostapd to use a channel list even when a single
channel is configured, using this feature requires a list of channels in
/etc/config/wireless. Alternatively, channel can be set to auto.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: David Bauer <mail@david-bauer.net>
Stijn Tintel [Mon, 20 Jun 2022 16:23:18 +0000 (19:23 +0300)]
hostapd: add config symbol to enable MBO
Multi Band Operation aka Agile Multiband introduces new Transition
and Transition Rejection Reason Codes that should improve client
steering. Add a config symbol to enable it, and enable it by default for
the full variants.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be> Acked-by: David Bauer <mail@david-bauer.net>
Sander Vanheule [Mon, 27 Jun 2022 18:36:32 +0000 (20:36 +0200)]
kernel: backport RTL8211F clkout-disable patch
In Linux v5.14 an extra feature was introduced for the RTL8211F phy,
allowing to disable a clock output from the phy. Part of that patch is to
always (soft) reset the phy upon initialisation.
This phy reset is required to have a working ethernet on the TP-Link
EAP225-Outdoor v3 and EAP225 v4 after a reboot. Otherwise the ethernet
port will only function properly on cold boots.
Tested-by: Andre Klärner <kandre@ak-online.be> # EAP225-Outdoor v3 Tested-by: Sven Hauer <sven.hauer+github@uniku.de> # EAP225 v4 Signed-off-by: Sander Vanheule <sander@svanheule.net>
Sander Vanheule [Mon, 27 Jun 2022 19:24:24 +0000 (21:24 +0200)]
firmware-utils: bump to git HEAD
The support-list partition for the EAP225-V3 board ID became larger than
the allocated size, resulting in factory image generation for the
EAP225-Outdoor v3 and EAP225 v3 to fail. The make directive
Build/tplink-safeloader ignores this failure however, resulting in a
seemingly successful build with empty factory images.
Included changes: e609c5d75186 tplink-safeloader: drop unqualified EAP225-V3 IDs
Tiago Gaspar [Thu, 23 Jun 2022 13:15:06 +0000 (14:15 +0100)]
ath10k: enable encapsulation offload by default
Enable ath10k offload by default. This improves wireless performance
without requiring user configuration.
This adds ath10k_core to the AUTOLOAD section so that the frame_mode
paramter can be added to /etc/modules.d and passed to the driver.
The frame_mode 2 enables ethernet mode on the firmware/driver.
This parameter is set by passing a different value to the frame_mode
value on kmod insmod.
Link to the original patchset:
https://patchwork.kernel.org/project/linux-wireless/cover/20220516032519.29831-1-ryazanov.s.a@gmail.com/
lantiq,bus-clock, interrupt-map-mask and interrupt-map are already
defined with these exact values in vr9.dtsi. Drop them from
vr9_tplink_tdw8980.dts to just have one place where these are
maintained.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Nick Hainke [Sat, 25 Jun 2022 14:41:18 +0000 (16:41 +0200)]
ethtool: update to 5.18
9eabf30 Release version 5.18. 2b3ddcb ethtool: fec: Change the prompt string to adapt to current situations d660dde pretty: add missing message descriptions for rings aaeb16a pretty: support u8 enumerated types 6b320b8 rings: add support to set/get cqe size 41fddc0 update UAPI header copies 42e6c28 help: fix alignment of rx-buf-len parameter e1d0a19 ethtool.8: Fix typo in man page 37f0586 Release version 5.17. 8c2984c strset: do not put a pointer to a local variable to nlctx 8fd02a2 ioctl: add the memory free operation after send_ioctl call fails b9f25ea ethtool: Add support for OSFP transceiver modules 6e79542 features: add --json support 5ed5ce5 Merge branch 'next' into master b90abbb man: document recently added parameters 51a9312 tunables: add support to get/set tx copybreak buf size a081c2a rings: add support to set/get rx buf len d699bab Merge branch 'master' into next 52db6b9 Merge branch 'review/module-extstate' into next 6407b52 monitor: add option for --show-module/--set-module 1f35786 ethtool: Add transceiver module extended state 2d4c5b7 ethtool: Add ability to control transceiver modules' power mode 005908b Update UAPI header copies
WolfSSL is crashing with an illegal opcode in some x86_64 CPUs that have
AES instructions but lack other extensions that are used by WolfSSL
when AES-NI is enabled.
Disable the option by default for now until the issue is properly fixed.
People can enable them in a custom build if they are sure it will work
for them.
Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
Setting up DSA bond silently fails if mode is not 802.3ad. Add log message
to fix it. As we are already here harmonize all logging messages in the
add/delete functions.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Felix Fietkau [Sat, 18 Jun 2022 08:52:09 +0000 (10:52 +0200)]
mac80211: add airtime fairness improvements
This reverts the airtime scheduler back from the virtual-time based scheduler
to the deficit round robin scheduler implementation.
This reduces burstiness and improves fairness by improving interaction with AQL.
realtek: EnGenius EWS2910P: add support for SFP ports
The SFP cages 9F and 10F share the same SCL line. Currently, there
isn't a good way to model this. Thus, only one SFP port can be fully
supported.
Cage 10F is fully supported with an I2C bus and sfp handle. Linux
automatically handles enabling or disabling the TX laser.
Cage 9F is only parially supported, without the sfp handle. The SDA
line is hogged as an input, so that it remains high. SCL transitions
sould not affect modules connected to this cage. The default value of
the tx-disable line is high (active). It is exported as a gpio, but
the laser is off by default. To enable the laser:
echo 0 > /sys/class/gpio/sff-p9-tx-disable/value
Thus, both modules can be used for networking, but only 10F will be
able to detect and identify a plugged in SFP module.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Add support for the Engenius EWS2910P PoE switch. This is an RTL8380
based switch with two SFP slots, and PoE 802.3af one every RJ-45 port.
The specs say 802.3af, but the vendor firmware configures the PSE for
a budget of 31W, indicating 802.3at support.
Specifications:
---------------
* SoC: Realtek RTL8380M
* Flash: 32 MiB SPI flash Macronix MX25L25635E
* RAM: 256 MiB (As reported by bootloader)
* Ethernet: 16x 10/100/1000 Mbps with PoE
2x SFP slots
* Buttons: 1 "Reset" button on front panel
1 "LED mode: button on front panel
1 "On/Off" Toggle switch on the back
* Power: 48V-54V DC barrel jack
* UART: 1 serial header (JP1) with populated 2.54mm pitch header
Labeled GRTV for ground, rx, tx, and 3.3V respectively
* PoE: 1 STM ST32F100 microcontroller
2 BCM59111 PSE chips
Works:
------
- (8) RJ-45 ethernet ports
- Switch functions
- LEDs and buttons
Not yet enabled:
----------------
- SFP ports (will be enabled in a subsequent change)
- Power-over-Ethernet (requires realtek-poe package)
Install via web interface:
-------------------------
The factory firmware will accept and flash the initramfs image. It is
recommended to flash to "Partition 0". Flashing to "Partition 1" is
not supported at this point.
The factory web GUI will show the following warning:
" Warning: The firmware version is v0.00.00-c0.0.00
The firmware image you are uploading is older than the current
firmware of the switch. The device will reset back to default
settings. Are you sure you want to proceed?"
This is expected when flashing OpenWrt. After the initramfs image
boots, flash the -sysupgrade using either the commandline or LuCI.
Install via serial console/tftp:
--------------------------------
The u-boot firmware will not stop the boot, regardless of which key is
pressed. To access the u-boot console, ground out the CLK (pin 16) of
the ROM (U22) when u-boot is reading the linux image. If timed
correctly, the image CRC will fail, and u-boot will drop to a shell:
> rtk network on
> setenv ipaddr <address of tftp server>
> tftp $(freemem) <name-of-initramfs-image.bin>
> bootm
Then flash the -sysupgrade using either the commandline or luci.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
[gpio-led node names, OpenWrt and LuCI capitalization in commit message] Signed-off-by: Sander Vanheule <sander@svanheule.net>
Semih Baskan [Tue, 21 Jun 2022 05:43:50 +0000 (08:43 +0300)]
ramips: add support for Asus RT-N12+ B1 and RT-N300 B1
Asus RT-N12+ B1 and Asus RT-N300 B1 are the same device
with a different name.
The OEM firmwares have the same MD5 with Asus RT-N11P B1.
Same instructions for Asus RT-N11P B1 see:
commit c3dc52e39ac8 ("ramips: add support for Asus RT-N10P V3 / RT-N11P B1 / RT-N12 VP B1")
Signed-off-by: Semih Baskan <strstgs@gmail.com>
(Added id from the PR review to commit message) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Chuncheng Chen [Tue, 14 Jun 2022 06:11:52 +0000 (14:11 +0800)]
ramips: add support for ASUS RT-AX53U
Specifications:
- Device: ASUS RT-AX53U
- SoC: MT7621AT
- Flash: 128MB
- RAM: 256MB
- Switch: 1 WAN, 3 LAN (10/100/1000 Mbps)
- WiFi: MT7905 2x2 2.4G + MT7975 2x2 5G
- Ports: USB 3.0
- LEDs: 1x POWER (blue, configurable)
3x LAN (blue, configurable)
1x WAN (blue, configurable)
1x USB (blue, not configurable)
1x 2.4G (blue, not configurable)
1x 5G (blue, not configurable)
Flash by U-Boot TFTP method:
- Configure your PC with IP 192.168.1.2
- Set up TFTP server and put the factory.bin image on your PC
- Connect serial port(rate:115200) and turn on AP, then interrupt "U-Boot Boot Menu" by hitting any key
Select "2. Upgrade firmware"
Press enter when show "Run firmware after upgrading? (Y/n):"
Select 0 for TFTP method
Input U-Boot's IP address: 192.168.1.1
Input TFTP server's IP address: 192.168.1.2
Input IP netmask: 255.255.255.0
Input file name: openwrt-ramips-mt7621-asus_rt-ax53u-squashfs-factory.bin
- Restart AP aftre see the log "Firmware upgrade completed!"
Signed-off-by: Chuncheng Chen <ccchen1984@gmail.com>
(replaced led label, added key-* prefix to buttons, added note about
BBT) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Tim Small reported:
| Viewing the 'Network' -> 'Switch' config page in LuCI:
|
| The LuCI LAN 1 port corresponds to the port physically
| labelled 2 at the rear of the device.
| [...]
|
| When a patch cord is attached to the port labelled 1 [...],
| the LED labelled 2 illuminates. [...]
=> Ports, LuCI and LEDs are reversed/don't match.
Reported-by: Tim Small Fixes: #10111 Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Restore CONFIG_I8K + CONFIG_INTEL_INT0002_VGPIO that got
removed when I refreshed the config. Each x86 target gets
its own CONFIG_CRYPTO_BLAKE2S + LIB settings as only the
x86_64 can use the accelerated x86 version.
Also remove two extra spaces that sneaked into geode's config.
Fixes: 539e60539a2f ("generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]") Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Felix Fietkau [Fri, 24 Jun 2022 19:15:12 +0000 (21:15 +0200)]
mt76: update to the latest version
1696f9eb8b40 mt76: mt7915: do not copy ieee80211_ops pointer in mt7915_mmio_probe a4db5869d660 mt76: mt7915: update mpdu density in 6g capability 500c18014d95 mt76: mt7915: add sta_rec with EXTRA_INFO_NEW for the first time only 3ef66fc7c714 mt76: do not check the ccmp pn for ONLY_MONITOR frame dd682eead016 mt76: mt7915: update the maximum size of beacon offload 4fb991f2c997 mt76: mt7615: add sta_rec with EXTRA_INFO_NEW for the first time only ba39ed3b44f1 mt76: mt76x02: improve reliability of the beacon hang check fd8211cf7c59 mt76: mt7921: sync with updated patch f2edd340ddb4 mt76: allow receiving frames with invalid CCMP PN via monitor interfaces b6e865e2cc70 mt76: mt7615: fix throughput regression on DFS channels
It was observed that `rootfs_data` was sometimes not correctly erased
after performing sysupgrade, resulting in previous settings to prevail.
Add call to `wrgg-pad-rootfs` in sysupgrade image recipe to ensure any
previous jffs2 will be wiped, consistent with DAP-2610 from the ipq40xx
target, which introduced the double-flashing procedure for these devices.
Signed-off-by: Sebastian Schaper <openwrt@sebastianschaper.net>
mac80211: brcmfmac: allow setting MAC from NVMEM cells
The MAC can be stored in OTP memory or in flash memory, currently the
driver could read it only from OTP. Backport the patch allowing setting
the MAC address from flash. Some modules have the OTP programmed but
the ODM/OEM decided to overwrite it with value stored in flash.
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
This is now built-in, enable so it won't propagate on target configs.
Link: https://lkml.org/lkml/2022/1/3/168 Fixes: 79e7a2552e89 ("kernel: bump 5.15 to 5.15.44") Fixes: 0ca93670693b ("kernel: bump 5.10 to 5.10.119") Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
(Link to Kernel's commit taht made it built-in,
CRYPTO_LIB_BLAKE2S[_ARM|_X86] as it's selectable, 5.10 backport) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>