It looks like the eeprom gets broken after this change.
I think this change was not tested on a real device before it was
merged.
The MAC addresses will be broken again after this revert.
ipq806x: fix broken WAN on Linksys EAX and Asrock G10
Fix broken WAN on Linksys EAX and Asrock G10 by incrementing the WAN
interface MAC address + 1. This caused conflicting entry in the FDB
table and caused the WAN port to malfunction with the DSA conversion.
Daniel Golle [Sat, 1 Feb 2025 05:03:50 +0000 (05:03 +0000)]
mediatek: mt7622: fix SATA on BPi-R64
Two commits which made their way into Linux stable broke the SATA
support on the BPi-R64.
Fix this by reverting a node rename which broke DT-overlay application
and import a (still pending) patch re-adding the 'syscon' compatible to
the pciesys clock-controller which also contains phy-mode bits
referenced by the ahci_mtk driver expecting to access them using
syscon_regmap_lookup_by_phandle().
Daniel Golle [Thu, 30 Jan 2025 05:49:43 +0000 (05:49 +0000)]
generic: net: phy: realtek: work-around hang on SerDes setup
On some but not all devices using the RTL8221B 2.5GBit/s PHY the SerDes
setup sequence may hang under some circumstances (eg. <2500M link
partner present during boot).
Work-around the issue by performing a hardware reset and subsequent
retry of the SerDes setup, which seems to always succeed.
Doing this requires moving ALDPS setup to config_init (which is anyway
the better place for that) as it otherwise doesn't survive the reset.
Also disable listening on MDIO address 0 which may be used by other PHYs
despite being spec'ed as "broadcast address", as bus activity on address
0 may otherwise confuse the RealTek PHY for good reasons.
Shiji Yang [Wed, 1 Jan 2025 08:06:10 +0000 (16:06 +0800)]
ramips: pinctrl: allow mux SDXC pins for mt76x8
The mt76x8 SDXC pin register definition is incompatible with the
mtmips generic pinctrl driver structure. This hack allows us to
mux the SDXC IO to different pin groups in device tree.
Uwe Kleine-König [Mon, 27 Jan 2025 15:12:23 +0000 (16:12 +0100)]
dnsmasq: add fix related to DNSSEC verification from upstream
To find the DS record for a given zone the parent zone's nameserver must
be queried and not the nameserver for the zone. Otherwise DNSSEC
verification for unsigned delegations breaks.
Hauke Mehrtens [Mon, 27 Jan 2025 00:09:33 +0000 (01:09 +0100)]
apm821xx: NETGEAR WNDR4700: Fix compat version
The definition for the netgear_wndr4700 had two different
DEVICE_COMPAT_VERSION definitions.
In commit 5815884c3a2 ("apm821xx: migrate to DSA"), an additional
DEVICE_COMPAT_VERSION := 3.0 attribute was added to the device
definition. The old one with version 2.0 stayed and was defined later
overwriting the new one.
Replace the old version 2.0 with the new version 3.0
ramips: restore full switch performance for USW-Flex
Since commit f1c9afd80138 ("ramips: mt7621-dts: mux phy0/4 to gmac1") the
USW-Flex lan1 port has been attached directly to the CPU. This improves
routing performance but hinders switching.
This is a generally accepted trade-off in that commit but for USW-Flex it
is a questionable choice. This switch is designed to deliver PoE to remote
places and using it as a router is unlikely. Meanwhile, the lan1 port is
also PoE-in and will often be the uplink, carrying most of the traffic.
Reverting f1c9afd80138 for USW-Flex restores full 1 Gbps switching
performance on all ports.
airoha: an7581: replace eMMC support with upstream version
Replace eMMC support with upstream version where we declare dummy clock
and dummy regulator instead of a specific compatible. Also drop the
downstream patch for it.
Eric Fahlgren [Sun, 26 Jan 2025 17:25:13 +0000 (09:25 -0800)]
octeon: ubnt-usg: add board name to supported devices
The on-device board name reported by 'ubus call system board' is not present
in the generated profiles.json. This results in upgrade tools being unable
to match the image with the proper device. Let's add a 'SUPPORTED_DEVICES'
entry for the board name to fix this.
Daniel Golle [Thu, 23 Jan 2025 03:36:10 +0000 (03:36 +0000)]
generic: fix probe issues with RealTek RTL8221B PHYs
Import patch "net: phy: realtek: mark existing MMDs as present"
When using Clause-45 mode to access RealTek RTL8221B 2.5G PHYs some
versions of the PHY fail to report the MMDs present on the PHY.
Mark MMDs PMAPMD, PCS and AN which are always existing according to
the datasheet as present to fix that.
Fixes: #16823, #17183, #17232 Signed-off-by: Daniel Golle <daniel@makrotopia.org> Tested-by: Aleksander Jan Bajkowski <olek2@wp.pl> Tested-by: Juan Pedro Paredes Caballero <juanpedro.paredes@gmail.com>
(cherry picked from commit 730db6b893748517949b1d3a0c0cb8b6c1288040)
Hauke Mehrtens [Fri, 24 Jan 2025 21:56:59 +0000 (22:56 +0100)]
kernel: Make kmod-usb-chipidea select kmod-phy-ath79-usb
The USB PHY on the ar9330 and similar SoCs needs the PHY driver. In
OpenWrt 23.05 it was compiled into the kernel. The kernel 6.6
configuration does not compile it in any more, make the
kmod-usb-chipidea driver select it to add it to the images.
Chukun Pan [Tue, 3 Dec 2024 15:02:15 +0000 (23:02 +0800)]
mediatek: cudy: fixes typo for spi and mtd properties
Same as commit 3674689, correct 'buswidth' to 'bus-width'.
Move the nmbm properties outside the partition definition.
Change uppercase to lowercase, add missing read-only flag.
Sergey Ryazanov [Wed, 22 Jan 2025 22:26:53 +0000 (00:26 +0200)]
ipq40xx: fix compatibility with linux-atm tools
atm_qos struct should be the same both for user and kernel spaces. Via
the __SO_ENCODE() macro it is used to define the SO_ATMQOS socket IOC.
During the VRX518 support introduction, the atm_trafprm sturct nested
into the atm_qos stucture was update with newer fields that are
referenced by the ATM TC layer of the VRX518 TC driver. These new fields
are intended to communicate information for extra traffic classes
supported by the driver. But we are still using vanilla kernel headers
to build the toolchain. Due to the atm.h header incoherency br2684ctl
from linux-atm tools is incapable to configure the ATM bridge netdev:
br2684ctl: Interface "dsl0" created sucessfully
br2684ctl: Communicating over ATM 0.1.2, encapsulation: LLC
br2684ctl: setsockopt SO_ATMQOS 22 <-- EINVAL errno
br2684ctl: Fatal: failed to connect on socket; File descriptor in bad state
There are two options to fix this incoherency. (a) update the header
file in the toolchain to build linux-atm against updated atm_trafprm and
atm_qos structures, or (b) revert atm_trafprm changes.
Since there are no actual users of the extra ATM QoS traffic classes,
just drop these extra traffic classes from vrx518_tc ATM TC layer and
drop the kernel patch updating atm.h.
Besides fixing the compatibility with linux-atm tools, removing the
kernel patch should simplify kernel updates removing unneeded burden of
maintenance.
Run tested with FRITZ!Box 7530 with disabled extra traffic classes and
then removed them entirely before the submission.
Sergey Ryazanov [Wed, 22 Jan 2025 22:26:52 +0000 (00:26 +0200)]
kernel: vrx518_tc: fix ADSL/ATM operation
ATM TC layer have some issues which effectively prevent VRX518 from
being used as ADSL modem. Specifically, there one crash during the ATM
layer configuration and wrong PVC ID selection on packet receiving what
breaks RX path. Fix both of the issues. Make subif iface registration
optional to prevent the crash (see more details in the new patch) and
update the hardcoded PVC ID to match the first allocated channel.
Sergey Ryazanov [Wed, 22 Jan 2025 22:26:51 +0000 (00:26 +0200)]
kernel: vrx518_tc: fix RX desc phys to virt mapping
It looks like VRX518 returns phys addr of data buffer in the 'data_ptr'
field of the RX descriptor and an actual data offset within the buffer
in the 'byte_off' field. In order to map the phys address back to
virtual we need the original phys address of the allocated buffer.
In the same driver applies offset to phys address before the mapping,
what leads to WARN_ON triggering in plat_mem_virt() function with
subsequent kernel panic:
WARNING: CPU: 0 PID: 0 at .../sw_plat.c:764 0xbf306cd0 [vrx518_tc@8af9f5d0+0x25000]
...
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = aff5701e
[00000000] *pgd=00000000
Internal error: Oops: 5 [#1] SMP ARM
Noticed in ATM mode, when chip always returns byte_off = 4.
In order to fix the issue, pass the phys address to plat_mem_virt() as
is and apply byte_off later for proper DMA syncing and on mapped virtual
address when copying RXed data into the skb.
Run tested with FRITZ!Box 7530 on both ADSL and VDSL (thanks Jan) links.
Florian Maurer [Wed, 22 Jan 2025 18:59:12 +0000 (19:59 +0100)]
mediatek-mt7622: netgear-wax206 fix wifi leds
the wifi leds of the wax206 were not reacting.
This patch enables the green leds to show activity, as the blue ones are very bright.
Also set the label-mac to the gmac0
Sander Vanheule [Fri, 24 Jan 2025 16:07:21 +0000 (17:07 +0100)]
realtek: Fix old compatible for HPE 1920-8G PoE
Supported devices are listed in the metadata as the first part of the
DTS compatible. This normally follows the format "vendor,device".
When updating the device name of the 180W 1920-8G PoE an underscore was
used, instead of a comma, to join the vendor and device name. This will
lead to warnings for users wanting to sysupgrade a device with an older
compatible, as the device's info does not match the one the metadata.
Fixes: 987c96e88927 ("realtek: rename hpe,1920-8g-poe to match hardware") Signed-off-by: Sander Vanheule <sander@svanheule.net>
(cherry picked from commit 6a7fa68569ac11bb2c2abb14026e8b84acd3a12f)
Ivan Deng [Thu, 16 Jan 2025 08:53:36 +0000 (00:53 -0800)]
qualcommax: add missing WAN LED support to Spectrum SAX1V1K routers
Fixed an issue where both WAN LEDs light up before plugging in the
ethernet cable and no blinking regardless of WAN network activity.
Updated the LED configuration to reflect proper status:
Green indicates 2.5Gb connection speed.
Yellow indicates other connection speed and traffic activity.
This resolves inconsistent WAN LED behavior on Spectrum SAX1V1K routers.
Dim Fish [Fri, 11 Oct 2024 16:25:29 +0000 (19:25 +0300)]
mediatek: add Airoha AN8855 gigabit switch driver
New revisions of Xiaomi AX3000T with 1.0.84+ stock firmware contain new hardware.
This commit add support for Airoha AN8855 gigabit switch driver with 6.6 kernel patches
Based on https://patchwork.kernel.org/project/netdevbpf/cover/20241209134459.27110-1-ansuelsmth@gmail.com/
Lech Perczak [Mon, 20 Jan 2025 23:10:50 +0000 (00:10 +0100)]
ath79: meraki-mr18: fix initramfs build
Now, that initramfs images built for ZTE devices work, by moving
LZMA_TEXT_START further up the available RAM - same fix works
successfully for Meraki MR18 too. Apply it and reenable initramfs
generation again.
Mikhail Zhilkin [Sat, 11 Jan 2025 14:55:17 +0000 (14:55 +0000)]
mediatek: Xiaomi AX3000t: fix soft brick for the rd23 model
This commit fixes Xiaomi AX3000t soft bricks. Issue affects at least rd23
model (Global version) users: Link: https://forum.openwrt.org/t/openwrt-support-for-xiaomi-ax3000t/180490/452
I also found that these nvram settings are wrong for the rd23 model and
U-Boot erase them:
'''
flag_try_sys1_failed 8
flag_try_sys2_failed 8
'''
As a result, platform.sh -> xiaomi_initial_setup() function sometimes ends
early without applying settings for the rd23 model.
RD03 model strategy:
1. Don't touch values those were set up by platform.sh ->
xiaomi_initial_setup() function
RD23 model strategy:
1. Apply correct nvram settings at every boot
2. Use bulk fw_setenv call
Changes (breaking):
- Remove support for building 802.3bt TLVs (broken).
Fix:
- Fix memory leaks in EDP/FDP decoding when receiving some TLVs twice.
- Do not set interface description continuously.
- Use a different Netlink socket for changes and queries.
Florian Maurer [Thu, 16 Jan 2025 08:29:55 +0000 (09:29 +0100)]
mediatek-filogic: fix wax220 wifi leds
The WAX220 does have a 2.4GHz and 5GHz wifi led, which was set to trigger on netdev before.
This commit changes this to trigger on activity of the respective radio
Lech Perczak [Wed, 20 Nov 2024 02:45:21 +0000 (03:45 +0100)]
ath79: lzma-loader: expose LZMA_TEXT_ADDRESS configuration again
initramfs for some devices grew so big, that it can't be loaded within
the previous 32MB RAM limit. Make the LZMA_TEXT_ADDRESS configurable
per-target once again, to fix it for bigger devices, while maintaining
compatibility with previous ones.
mediatek: EX5601-T0 add Zyxel EX5601-T1 and T-56 alias
Define EX5601-T1 and T-56 as alternative name, to explicitly show
the device is supported using existing image. EX5601-T1 does not
have the option to switch between WAN/SFP port. The switch port
is hardwired to the WAN port. The Zyxel T-56 is the odido-branded
version of the EX5601-T1.
kernel: fix rootfs initramfs not updating on subsequent single build
There is currently a problem where the rootfs in an initramfs image for
single target build is not updated on subsequent run. This is caused by
a bug introduced in d78dec3e19e3 ("kernel: copy kernel build dir on
Per-Device Initramfs compilation") where the initramfs_data.cpio rm was
moved to PrepareConfigPerRootfs. This caused the side effect of dropping
the rm call for single target build making the kernel reusing the
previous generated initramfs_data.cpio.
To correctly handle this, restore the original location of this call
right after the touch /init call. This way the kernel will always
regenerate the initramfs embedded rootfs ALSO for single target build.
Fixes: d78dec3e19e3 ("kernel: copy kernel build dir on Per-Device Initramfs compilation") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 334c649a8d9b191c0282f9104b3997b090628f56)
Dustin Gathmann [Wed, 15 Jan 2025 14:55:29 +0000 (15:55 +0100)]
lantiq: fritz_cal_extract with reverse option for AVM FritzBox 7430
This implementation of fritz_cal_extract can also retrieve firmware
data stored in reverse byte order, as found in the AVM 7430 device.
This is done by intermediate storage in a buffer presumably large enough
to hold the complete data set. Currently, this buffer size is 128kB + 1kB
(some extra space for skipped data).
In the usual case of "forward" data, this implementation should behave
like the original implementation in all common cases. limit [-l] will
determine the amount of data read and size of buffer allocated.
However, if you are reading reversed data or didn't set a limit, the buffer
may be too small to hold all data. In this case, you can choose a higher
limit [-l] to enforce a sufficient buffer size.
ipq4019: patch initialization of Lantiq DSL on FritzBox 7530.
Some VRX518 modems fail to initialize properly with the error message
"dc_ep_clk_on failed". As a result, the DSL data path doesn't work.
This hack, which is based on code from the FRITZ!Box 7530 GPL archive,
fixes the issue. It changes the PCIe vendor/device ID to values matching
a Lantiq SoC. It also appears to emulate a Lantiq CPU ID register for
connected PCIe devices, by remapping the matching address area to a
specially crafted buffer using the address translation unit.
A dedicated compatible is created to activate this in
the device tree, so this shouldn't affect any devices other than
FRITZ!Box 7530/7520.
Original investigation was done in https://github.com/janh/openwrt/commit/59f52125178146a9dc44290c11c63e5e029e8044 which used the "avm,host_magic" property to enabled the patch.
MAC:
LAN MAC: label mac (eeprom@4)
WAN MAC: label mac (eeprom@4)
2.4G MAC: label mac (eeprom@4)
5G MAC: label mac + 1 (eeprom@8004)
Installation:
The stock firmware is OpenWrt-based. If you can reach LuCI or SSH, just use the sysupgrade image
with the 'Keep settings' option turned off.
Robert Marko [Sat, 18 Jan 2025 11:25:01 +0000 (12:25 +0100)]
qualcommax: dl-wrx36: fix 2.5G port LED-s
Currently, 2.5G port LED-s on Dynalink are incorrectly configured and thus
they will light up all of the time.
So, lets fix this by:
1. Current green LED is actually yellow, change the color
2. Fix its polarity as its actually active-low
3. The yellow LED that was registered as being connected to LED_1 pin on
the PHY is not actually connected at all, so remove it.
4. The actual green LED is connected to LED_2 on the PHY so add it.
generic: r8169: remove reverted temperature sensor patch
The patch adding temperature sensor support for r8169 has been removed upstream
and the functionality will be added to Realtek PHY instead:
https://github.com/torvalds/linux/commit/1f691a1fc4bef1c5cf5f503e14e1a22fc37c97e3
Felix Fietkau [Thu, 16 Jan 2025 11:35:47 +0000 (12:35 +0100)]
netifd: improve packet steering on ipq40xx (and possibly others)
Some platforms a single ethernet device for all ports with multiple rx rings
and NAPI threading enabled. In this case, the steering script was limiting
performance by keeping all NAPI threads assigned to the same CPU.
Fix this by assigning each rx queue and the corresponding NAPI task separately.
Additionally, if the number of rx queues is at least as big as the number of
CPUs, skip weight based assignment and distribute the load across all CPUs
directly.
Fixes: https://github.com/openwrt/openwrt/issues/17611 Signed-off-by: Felix Fietkau <nbd@nbd.name>
(cherry picked from commit acce25b789d40f2d88a2326a7d9921bd1743fe54)
The package coreutils-stty is not part of the OpenWrt main packages. A
board can not depend on it. Remove the dependency to fix a build problem
seen in the build bots.
Use USB2.0 FAT32 pendrive with openwrt-mvebu-cortexa9-wd_cloud-mirror-gen2-initramfs-kernel.bin
1. stop boot by pressing 1
2. usb start
3. fatload usb 0:1 0x02000000 openwrt-mvebu-cortexa9-wd_cloud-mirror-gen2-initramfs-kernel.bin;bootm 0x02000000 -
4. do backup mtd1 mtd3
5. use sysupgrade
Or tftp
1. stop boot by pressing 1
2. setenv ethact egiga2;setenv serverip 192.168.11.114;setenv ipaddr 192.168.11.113
3. tftpboot 0x02000000 openwrt-mvebu-cortexa9-wd_cloud-mirror-gen2-initramfs-kernel.bin; bootm 0x02000000 -
4. do backup mtd1 mtd3
5. use sysupgrade
or Evgeny Kolesnikov <evgenyz@gmail.com> method from his failed PR 2040
- Using original firmware's network settings obtain SSH access to the device.
- Put *-image-cfs-factory.bin and *-uImage-factory.bin images into device's /tmp directory.
- Write kernel (uImage) image 'flash_eraseall /dev/mtd1 && nandwrite --markbad -p /dev/mtd1 /tmp/*-uImage-factory.bin'.
- Write rootfs (image-cfs) image 'ubiformat /dev/mtd3 -f /tmp/*-image.cfs-factory.bin -y'.
- Reboot the device.
Installation (upgrade):
Use *-sysupgrade.bin in a usual way.
Weltrend MCU control is done via uart1 19200
stty -F /dev/ttyS1 raw speed 19200
stty -F /dev/ttyS1 raw speed 19200
Power LED Control
Blue
echo -n -e '\xfa\x26\x00\x11\x00\x01\xfb' > /dev/ttyS1
Red
echo -n -e '\xfa\x26\x00\x14\x00\x01\xfb' > /dev/ttyS1
Orange
echo -n -e '\xfa\x26\x00\x12\x00\x01\xfb' > /dev/ttyS1
more here: https://github.com/c-MM/mcm-daemon/blob/master/mcm.h
Bringing up a mesh interface using wpa_supplicant already supports a
per-VIF basic rate selection. Add the same ability when creating a mesh
VIF without wpa_supplicant.
Sander Vanheule [Wed, 1 Jan 2025 19:05:20 +0000 (20:05 +0100)]
realtek: debounce reset key for Zyxel GS1900
When the reset button is next to the SFP cages, I2C operations on the
modules might cause interference on the button's GPIO line. Add a
debounce-interval of 5 times the poll-interval to ensure the line is
actually stable for some time and not just glitching.
This squashes commit 4357f32d41eb ("realtek: debounce reset key for
Zyxel GS1900") and commit 777c6106ed4e ("realtek: move debounce-interval
to correct node").
Lech Perczak [Mon, 6 Jan 2025 16:31:44 +0000 (17:31 +0100)]
ath79: teltonika-rut230: fix failsafe boot without SIM tray
Due to "SIM present" input defaulting to "button" type, it is
interpreted as such when booting, and causes the system to enter
failsafe, if the tray is missing. Similarly to rfkill switch on
TP-Link WDR4300 and Archer C7, make it EV_SW instead, to stop it from
interfering with the boot process.
OpenWRT on the WNDAP6x0 refuses to sysupgrade to itself
due to a compat_version imbalance. The Image is generated
with version 2.0, but the uci-defaults says that it needs
to be at 3.0 for the device.
Fix this by downgrading WNDAP6x0 05_fix-compat-version's
values back to 2.0 so it matches what we use.
Fixes: 5815884c3a2a ("apm821xx: migrate to DSA") Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
(cherry picked from commit e9415be4ad3cacbbd6e65fee5213baf3eaf9e07a)
Subtarget xrx200_legacy supports only a few devices. They all use
the integrated Lantiq GSWIP switch and lantiq xway PHYs. The atheros
and icplus PHYs can be safely disabled.
Switches used by individual devices are listed below.
lantiq: xrx200: add alternative names for Plusnet Hub One and BT Business Hub 5A
The Plusnet Hub One and BT Business Hub 5A have the same hardware as
the BT Home Hub 5A. This commit adds alternative names so that both
devices can be easily found in the firmware selector.
lantiq: xrx200_legacy: add alternative names for TP-Link TD-W9980(B)
The TP-Link TD-W9980(B) shares the same hardware with the TP-Link TD-W8980.
The only difference is that the TD-W8980 does not support VDSL. This is a
software limitation and once the software is changed, both work equally
supporting VDSL. This commit adds alternative names for devices so they
can be easily found in the firmware selector.
Kien Truong [Sat, 11 Jan 2025 05:20:12 +0000 (12:20 +0700)]
rockchip: disable kernel preemption
This setting is more suitable for device running OpenWRT.
Most OpenWRT targets are already default to this configuration,
and it has shown better performance in VPN (wireguard).