Petr Štetiar [Fri, 12 Aug 2022 11:51:40 +0000 (13:51 +0200)]
ipq40xx: glinet-b1300: fix LAN and WAN MAC address assigments
When testing the DSA changes with 5.15.60 kernel, I've noticed, that the
MAC addresses are not properly configured, there is single MAC being
used for LAN and WAN interfaces:
Lech Perczak [Wed, 15 Dec 2021 20:10:11 +0000 (21:10 +0100)]
ipq40xx: Meraki MR33: convert MAC addresses to nvmem
This fixes assigning random MAC to br-lan interface upon boot.
While at that, rename at24@50 node to eeprom@50, to align with upstream
device tree style.
Robert Marko [Tue, 14 Dec 2021 00:00:00 +0000 (01:00 +0100)]
ipq40xx: convert some boards to DSA
Convert IPQ40xx boards to DSA setup.
Signed-off-by: Leon M. George <leon@georgemail.eu> Signed-off-by: Lech Perczak <lech.perczak@gmail.com> Signed-off-by: Nick Hainke <vincent@systemli.org> Signed-off-by: ChunAm See <z1250747241@gmail.com> Signed-off-by: Jeff Kletsky <git-commits@allycomm.com> Signed-off-by: Andrew Sim <andrewsimz@gmail.com> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Serhii and others have experienced PSGMII link degradation up to point
that it actually does not pass packets at all or packets arrive as zeros.
This usually happened after a couple of hot reboots.
Serhii has managed to track it down to PSGMII calibration not being done
properly and has fixed it, so all of the code is Serhii-s work.
Signed-off-by: Serhii Serhieiev <adron@mstnt.com> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 1 Nov 2021 17:30:00 +0000 (18:30 +0100)]
ipq40xx: enable ethernet and DSA driver combo
Select the Ethernet driver, DSA tag driver and the DSA driver itself to
be built in the kernel config.
They automatically pull in switchdev and phylink.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 27 Dec 2021 14:11:18 +0000 (15:11 +0100)]
ipq40xx: add DSA switch driver
Qualcomm IPQ40xx SoC-s have a variant of QCA8337N switch built-in.
It shares most of the stuff with its external counterpart, however it is
modified for the SoC.
Namely, it doesn't have second CPU port (Port 6), so it has 6 ports
instead of 7.
It also has no built-in PHY-s but rather requires external PSGMII based
companion PHY-s (QCA8072 and QCA8075) for which it first needs to carry
out calibration before using them.
PSGMII has a SoC built-in PHY that is used to connect to the PHY-s which
unfortunately requires some magic values as the datasheet doesnt document
the bits that are being set or the register at all.
Since its built-in it is MMIO like other peripherals and doesn't have its
own MDIO bus but depends on the SoC provided one.
CPU connection is at Port 0 and it uses some kind of a internal connection
and no traditional RGMII/SGMII.
It also doesn't use in-band tagging like other qca8k switches so a shinfo
based tagger is used.
This is based on the current OpenWrt qca8k version that has been imported
from generic target.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 1 Nov 2021 17:59:46 +0000 (18:59 +0100)]
ipq40xx: import qca8k from generic
This is just importing the qca8k driver from the generic target.
It will be used as the based for IPQ40xx version, this is just
to be able to see the diff.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 8 Nov 2021 22:06:02 +0000 (23:06 +0100)]
ipq40xx: qca807x: always set PSGMII AZ WAR
There is no point in using a DT property to trigger setting the PSGMII
PHY AZ transmitting ability.
Especially since EEE can be disabled using ethtool anyway.
Fixup the mask for setting the workaround as only BIT(0) is actually being
changed and use the phy_clear_bits_mmd helper instead of reading, then
clearing the bit and writing back as it does everything for us.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 1 Nov 2021 11:32:34 +0000 (12:32 +0100)]
ipq40xx: add shinfo based DSA tag driver
IPQ40xx requires a special DSA tag driver despite using the QCA8337N
switch.
However they have changed the header format and the existing QCA tag
driver cannot be reused.
For details on how it actually works and else read the patch commit
description.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Robert Marko [Mon, 25 Oct 2021 16:30:00 +0000 (18:30 +0200)]
ipq40xx: qca807x: add SFP improvements
Currently, QCA807x doesnt do any kind of validation to see whether it
actually supports the inserted module.
So lets add checks to allow only 1000BaseX and 100BaseFX based modules.
While adding validation, move fiber configuration to insert/remove events
instead of always doing it at config time.
This allows getting rid of the DT property for fiber enable and now only
the upstream sfp phandle is required.
Since we are refactoring fiber related code, lets heavily simplify the
status polling as the current logic is overcomplicated due to previous
wish to support non standard SFP cages that dont have pins properly
connected, that is removed now and only proper SFP cages will work.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Josef Schlehofer [Wed, 14 Sep 2022 13:23:45 +0000 (15:23 +0200)]
uboot-mvebu: backport LibreSSL patches for older version of LibreSSL
If you would like to compile the newest version of U-boot together with the stable
OpenWrt version, which does not have LibreSSL >= 3.5, which was updated
in the master branch by commit 5451b03b7ceb2315445c683fe174e28bbdd49c2f
("tools/libressl: bump to v3.5.3"), then you need these two patches to
fix it. They are backported from U-boot repository.
This should be backported to stable OpenWrt versions.
Reported-by: Michal Vasilek <michal.vasilek@nic.cz> Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Josef Schlehofer [Wed, 14 Sep 2022 13:19:56 +0000 (15:19 +0200)]
uboot-mvebu: backport patch to fix compilation on non glibc system
This issue was reported by @paper42, who is using Void Linux with musl
to compile OpenWrt and its packages and found out it is not possible to
compile U-boot for Turris Omnia (neither any other).
It fixes following output:
```
HOSTCC tools/kwboot
tools/kwboot.c: In function 'kwboot_tty_change_baudrate':
tools/kwboot.c:662:6: error: 'struct termios' has no member named 'c_ospeed'
662 | tio.c_ospeed = tio.c_ispeed = baudrate;
| ^
tools/kwboot.c:662:21: error: 'struct termios' has no member named 'c_ispeed'
662 | tio.c_ospeed = tio.c_ispeed = baudrate;
| ^
tools/kwboot.c:690:31: error: 'struct termios' has no member named 'c_ospeed'
690 | if (!_is_within_tolerance(tio.c_ospeed, baudrate, 3))
| ^
tools/kwboot.c:693:31: error: 'struct termios' has no member named 'c_ispeed'
693 | if (!_is_within_tolerance(tio.c_ispeed, baudrate, 3))
|
```
Tested-by: Michal Vasilek <michal.vasilek@nic.cz> Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Changes: c65c02c trace-cmd: Version 3.1.3 14a7aca trace-cmd library: Add API for mapping between host and guests 9191b8e tracecmd extract: Allow using --compression. d63ae35 trace-cmd report: Add callback for kvm plugin to show guest functions 0c7ef72 trace-cmd library: Add man pages for iterator functions 3cd1b55 trace-cmd library: Add tracecmd_follow_event() 27ea9e1 libtracecmd: Add documentation on tracecmd_set/get_private() 3c544ad libtracecmd: Add a man pages for handling of time stamps 5baf7a3 libtracecmd: Add check-manpages.sh ee007a1 trace-cmd library: Make tracecmd_filter_match() local cb04105 tracecmd library documentation: Use star and not underscore for function names 54931be trace-cmd: Do not return zero length name for guest by name 43ffa27 trace-cmd: Close socket descriptor on failed connection 4744ca3 trace-cmd record/agent: Add --notimeout option e512b22 trace-cmd: Add compile time overrides for libraries a6fe935 trace-cmd: README: Add note on installing libtracecmd 067f45f trace-cmd: libtracecmd: Fixing linking to C++ code 689a0d4 tracecmd: Add NO_LIBZSTD option to disable libzstd 6bbcd3e trace-cmd report: Use library tracecmd_filter_*() logic 955d05f trace-cmd report: Make filter arguments match their files 82ed4a9 trace-cmd library: Add filtering logic for iterating events dbd8777 trace-cmd report: Use tracecmd_iterate_events_multi() 78a74b1 trace-cmd library: Allow callers to save private data in tracecmd_input handlers b37903a tracecmd library: Add tracecmd_iterate_events_multi() d83b662 tracecmd utest: Add test to test using the libraries to read 2cb6cc2 tracecmd library: Add tracecmd_iterate_events() 762839a tracecmd: Use make variable instead of if statement for zlib test 1504f3f trace-cmd: Document new proxy args for {agent,record} 9a1c5d7 trace-cmd record: Keep --proxy from being passed to agents ef8a8d7 trace-cmd libs: Initialize msg to NULL tracecmd_msg_read_data() 39ec10a trace-cmd: Do not use instance from trace context
Nick Hainke [Sun, 25 Sep 2022 09:10:15 +0000 (11:10 +0200)]
libtracefs: update to 1.5.0
Changes: 93f4d52 libtracefs: version 1.5 bc857db libtracefs: Add tracefs_u{ret}probe_alloc to generic man page db55441 libtracefs: Add tracefs_debug_dir() to generic libtracefs man page d2d5924 libtracefs: Add test instructions for openSUSE 4a7b475 libtracefs: Fix test suite typo ee8c644 libtracefs: Add tracefs_tracer_available() helper 799d88e libtracefs: Add API to set custom tracing directory 1bb00d1 libtracefs: allow pthread inclusion overrideable in Makefile 04651d0 libtracefs sqlhist: Allow pointers to match longs 9de59a0 libtracefs: Remove double free attempt of new_event in tracefs_synth_echo_cmd() 0aaa86a libtracefs: Fix use after free in tracefs_synth_alloc() d2d5340 libtracefs: Add missed_events to record 9aaa8b0 libtracefs: Set the number of CPUs in tracefs_local_events_system() 56a0ba0 libtracefs: Return negative number when tracefs_filter_string_append() fails c5f849f libtracefs: Set the long size of the tep handle in tracefs_local_events_system() 5c8103e revert: 0de961e74f96 ("libtracefs: Set visibility of parser symbols as 'internal'")
Nick Hainke [Sun, 25 Sep 2022 09:09:42 +0000 (11:09 +0200)]
libtraceevent: update to 1.6.3
Changes: fda4ad9 libtraceevent: version 1.6.3 d02a61e libtraceevent: Add man pages for tep_plugin_kvm_get/put_func() 6643bf9 libtraceevent: Have kvm_exit/enter be able to show guest function a596299 libtraceevent: Add tep_print_field() to check-manpages.sh deprecated 065c9cd libtraceevent: Add man page documentation of tep_get_sub_buffer_size() 6e18ecc libtraceevent: Add man page for tep_plugin_add_option() 6738713 libtraceevent: Add some missing functions to generic libtraceevent man page deefe29 libtraceevent: Include meta data functions in libtraceevent man pages cf6dd2d libtraceevent: Add tep_get_function_count() to libtraceevent man page 5bfc11e libtraceevent: Add printk documentation to libtraceevent man page 65c767b libtraceevent: Update man page to reflect tep_is_pid_registered() rename 7cd173f libtraceevent: Add check-manpages.sh fd6efc9 libtraceevent: Documentation: Correct typo in example 5c375b0 libtraceevent: Fixing linking to C++ code 7839fc2 libtraceevent: Makefile - set LIBS as conditional assignment c5493e7 libtraceevent: Remove double assignment of val in eval_num_arg() efd3289 libtraceevent: Add warnings if fields are outside the event
Nick Hainke [Mon, 26 Sep 2022 18:23:21 +0000 (20:23 +0200)]
libcap: update to 2.66
4f96e67 Up the release version to 2.66 60ff008 Fix typos in the cap_from_text.3 man page. 281b6e4 Add captrace to .gitignore file 09a2c1d Add an example of using BPF kprobing to trace capability use. 26e3a09 Clean up getpcaps code. fc804ac getpcaps: catch PID parsing errors. fc437fd Fix an issue with bash displaying an error. 7db9589 Some more simplifications for building 27e801b Fix for "make clean ; make -j48 test"
This patch is needed to handle interrupts by the second VPE on the Lantiq
ARX100, xRX200, xRX300 and xRX330 SoCs. Switching some ICU interrupts to
the second VPE results in a hang. Currently, the vsmp_init_secondary()
function is responsible for enabling these interrupts. It only enables
Malta-specific interrupts (SW0, SW1, HW4 and HW5).
The MIPS core has 8 interrupts defined. On Lantiq SoCs, hardware
interrupts are wired to an ICU instance. Each VPE has an independent
instance of the ICU. The mapping of the ICU interrupts is shown below:
SW0(IP0) - IPI call,
SW1(IP1) - IPI resched,
HW0(IP2) - ICU 0-31,
HW1(IP3) - ICU 32-63,
HW2(IP4) - ICU 64-95,
HW3(IP5) - ICU 96-127,
HW4(IP6) - ICU 128-159,
HW5(IP7) - timer.
This patch enables all interrupt lines on the second VPE.
This problem affects multithreaded SoCs with a custom interrupt controller.
SOCs with 1004Kc core and newer use the MIPS GIC. At this point, I am aware
that the Realtek RTL839x and RTL930x SoCs may need a similar fix. In the
future, this may be replaced with some generic solution.
Tested on Lantiq xRX200.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Flash instruction via WEB (firmware 1.10.4 and later)
1. Boot SNR-CPE-ME2-Lite normally with "Router" mode
2. Access to "http://192.168.1.1/" and open "Administration -> Management" page
3. Select the OpenWrt factory image in "Firmware update" section and click "Update" button
4. Wait ~120 seconds to complete flashing
Flash instruction via TFTP (all version):
1. Boot SNR-CPE-ME2-Lite to recovery mode (hold the reset button while power on)
2. Send firmware via TFTP client:
TFTP Server address: 192.168.1.1
TFTP Client address: 192.168.1.131
3. Wait ~120 seconds to complete flashing
Mark King [Sun, 25 Sep 2022 20:53:52 +0000 (21:53 +0100)]
ramips: enable LZMA loader to fix Linksys RE6500 boot
At some point after 21.02.3 and before 22.03.0, the size limits of the
Linksys RE6500 were reached and prevent booting from the 22.03.0 release
or builds of current SNAPSHOT. This patch allows builds of master to boot
again and has been tested on my device.
Fixes: #8577 Signed-off-by: Mark King <mark@vemek.co>
Until now there has been no good explanation why we mess with the R4K
timer on SMP. After extensive testing and looking at the SDK code it
becomes clear what it is all about.
When we disable the CEVT_R4K module (we will do with the new timer
driver) the R4K timer hardware still fires interrupts on the secondary
CPU. To get around this we have two options:
- Disable IRQ 7
- Stop the counter completely
This patch selects option two because this is the root of evil.. To be
on the safe side we will do it only in case the CEVT_R4K module is
disabled.
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.
However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.
This commit tries to rectify that, by digging in the history to find
where and how it was first added.
It is by no means perfect and also shows some patches that should have
been long gone.
OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.
However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.
This commit tries to rectify that, by digging in the history to find
where and how it was first added.
It is by no means perfect and also shows some patches that should have
been long gone.
OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.
However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.
This commit tries to rectify that, by digging in the history to find
where and how it was first added.
It is by no means perfect and also shows some patches that should have
been long gone.
Currently each Kernel compilation takes about 30 minutes of which 20
minutes are used to compile our tools. While the toolchain is downloaded
and instantly ready the tools are missing.
This commit starts uploading a Docker container including compiled tools
which are ready to use. It is automatically updated whenever any tools
are changed.
Signed-off-by: Paul Spooren <mail@aparcar.org> Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
tools: add option BUILD_ALL_HOST_TOOLS to compile all host tools
Add option to compile all host tools even if not needed.
This can be useful to prepare a universal precompiled host tools
archive to use in another buildroot and speedup compilation.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
While experimenting with the AUTOREMOVE option in search of a way to use
prebuilt host tools in different buildroot, it was discovered that the
md5 generated by find_md5 in depends.mk is not reproducible.
Currently the hash is generated by the path of the file in addition to
the file mod time. Out of confusion, probably, there was an idea that
such command was used on the package build_dir. Reality is that this
command is run on the package files. (Makefile, patches, src)
This is problematic because the package Makefile (for example) change at
each git clone and base the hash on the Makefile mtime doesn't really
reflect if the Makefile actually changes across a buildroot or not.
A better approach is to generate an hash of each file and then generate
an hash on the sort hash list. This way we remove the problem of git
clone setting a wrong mtime while keeping the integrity of checking if a
file changed for the package as any change will result in a different
hash.
Introduce a new kind of find_md5 function, find_md5_reproducible that
apply this new logic and limit it only with AUTOREMOVE option set to
prevent any kind of slowdown due to additional hash generation.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Paul Spooren [Sun, 20 Mar 2022 20:02:08 +0000 (20:02 +0000)]
CI: use buildbot container for building
Instead of using a fresh Linux installation which is setup every time
use the Buildbot container which is used for our own Buildbot
infrastructure, too.
While at it also tidy up the workflow to make it more consistent with
other workflow.
Signed-off-by: Paul Spooren <mail@aparcar.org> Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Daniel Golle [Fri, 30 Sep 2022 12:17:07 +0000 (13:17 +0100)]
ubnt-ledbar: make package available on other targets
As also ramips/mt7621 now has a user of the ubnt-ledbar driver, make
the package available on all targets by removing the dependency on
@TARGET_mediatek_mt7622.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle [Thu, 29 Sep 2022 17:50:23 +0000 (18:50 +0100)]
mediatek: filogic: add efuse layout to mt7986a.dtsi
efuse is used to store board-specific settings of some of the in-SoC
peripherals. Add it to device tree, so it gets probed on boot and can
be accessed by other drivers.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Felix Fietkau [Fri, 30 Sep 2022 09:07:02 +0000 (11:07 +0200)]
kernel: remove udp tunnel kconfig selection hack
The corresponding kmod package is marked as HIDDEN and selected by all
other kernel modules that need it, so the kconfig side will be in sync
without manual selection
Petr Štetiar [Wed, 28 Sep 2022 09:28:06 +0000 (11:28 +0200)]
wolfssl: fix TLSv1.3 RCE in uhttpd by using 5.5.1-stable (CVE-2022-39173)
Fixes denial of service attack and buffer overflow against TLS 1.3
servers using session ticket resumption. When built with
--enable-session-ticket and making use of TLS 1.3 server code in
wolfSSL, there is the possibility of a malicious client to craft a
malformed second ClientHello packet that causes the server to crash.
This issue is limited to when using both --enable-session-ticket and TLS
1.3 on the server side. Users with TLS 1.3 servers, and having
--enable-session-ticket, should update to the latest version of wolfSSL.
Thanks to Max at Trail of Bits for the report and "LORIA, INRIA, France"
for research on tlspuffin.
Petr Štetiar [Thu, 29 Sep 2022 05:50:07 +0000 (07:50 +0200)]
Revert "wolfssl: fix TLSv1.3 RCE in uhttpd by using latest 5.5.1-stable release"
This reverts commit a596a8396b1ef23cd0eda22d9a628392e70e1e1a as I've
just discovered private email, that the issue has CVE-2022-39173
assigned so I'm going to reword the commit and push it again.
Petr Štetiar [Wed, 28 Sep 2022 09:28:06 +0000 (11:28 +0200)]
wolfssl: fix TLSv1.3 RCE in uhttpd by using latest 5.5.1-stable release
Fixes denial of service attack and buffer overflow against TLS 1.3
servers using session ticket resumption. When built with
--enable-session-ticket and making use of TLS 1.3 server code in
wolfSSL, there is the possibility of a malicious client to craft a
malformed second ClientHello packet that causes the server to crash.
This issue is limited to when using both --enable-session-ticket and TLS
1.3 on the server side. Users with TLS 1.3 servers, and having
--enable-session-ticket, should update to the latest version of wolfSSL.
Thanks to Max at Trail of Bits for the report and "LORIA, INRIA, France"
for research on tlspuffin.
scripts/download.pl: generilize and simplify download tool check
Generilize download tool check and skip other check if a download tool
has been found.
While at it also reintroduce c836ca84e8f641e10a8349a8f9b7432b33d6cec1
that was previously dropped with aria2c support.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Daniel Golle [Tue, 27 Sep 2022 20:08:04 +0000 (21:08 +0100)]
kernel: mtk_ppe: use MTK_FOE_STATE_INVALID instead of *_UNBIND
Instead of dropping *fix-typo-in-__mtk_foe_entry.patch which effectively
means keeping the (also wrong) assignment of MTK_FOE_STATE_BIND, rather
use MTK_FOE_STATE_INVALID as that works well on both older (NETSYS_V1)
and newer (NETSYS_V2) MediaTek SoCs.
Suggested-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
realtek: rtl931x: fix missing CONFIG_COMMON_CLK_REALTEK config flag
When the realtek clock driver was introduced, CONFIG_COMMON_CLK_REALTEK
was not correctly disabled for other subtarget. Add the missing config
flag to fix compilation error on buildbot.
Daniel Golle [Sun, 25 Sep 2022 15:56:45 +0000 (16:56 +0100)]
kernel: rename upstreamed patches and import fixes
Move and rename patches which were merged upstream and import follow-up
fixes for MediaTek Ethernet offloading features on MT7622 and Filogic
platforms. Remove patch
793-net-ethernet-mtk_eth_soc-fix-typo-in-__mtk_foe_entry.patch
which breaks hardware flow offloading on MT7622, it will be reverted
upstream as well.
Fixes: c93c5365c0 ("kernel: pick patches for MediaTek Ethernet from linux-next") Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Nick Hainke [Sun, 11 Sep 2022 06:15:52 +0000 (08:15 +0200)]
Makefile: fix stray \ warnings with grep-3.8
We simply grep for "/usr". So no need for "-E" or "\/". Furthermore, in
the new grep versions this creates warnings.
As written in the grep-3.8 announcement:
Regular expressions with stray backslashes now cause warnings, as
their unspecified behavior can lead to unexpected results.
For example, '\a' and 'a' are not always equivalent
<https://bugs.gnu.org/39678>.
Fixes warnings in the form of:
grep: warning: stray \ before /