Commit Graph

62308 Commits

Author SHA1 Message Date
Qosmio
920ecee2fe ath11k_nss: bugfix NSS memleak + enhancements
bugfixes:
  * Rreverted patch `105-ath11k-fix-monitor-crash-if-tx-offload-is-enabled.patch`.
    Initial test show lower memory use. `ieee80211_tx_status_8023` was
    also removed upstream for a reason as it wasn't being used, and the
    logic behind it was flawed.
    See https://patchwork.kernel.org/project/linux-wireless/patch/20230308174703.12270-2-quic_pradeepc@quicinc.com

  * Mmemory profile for '256M' was missing logic that was in 512/1G.
    Should build correctly now

  * added more qsdk related patches to nss/offload

ath11k_nss: fix up patches

ath11k_nss: revert m3, fix coredump when rebooting

M3 SSR dump logic makes the router coredump. Just putting dummy case to
skip warning.

[12394.072384] Hardware name: Dynalink DL-WRX36 (DT)
[12394.079758] Call trace:
[12394.084354]  dump_backtrace.part.0+0xbc/0xd0
[12394.086614]  show_stack+0x18/0x30
[12394.091127]  dump_stack_lvl+0x6c/0x88
[12394.094339]  dump_stack+0x18/0x34
[12394.097985]  bad_page+0xe0/0x110
[12394.101282]  __free_pages_ok+0x33c/0x360
[12394.104582]  __free_pages+0xbc/0xe0
[12394.108487]  dma_direct_free+0xd0/0x140
[12394.111701]  dma_free_attrs+0x90/0xb0
[12394.115519]  ath11k_qmi_fwreset_from_cold_boot+0x9e0/0xa10 [ath11k]
[12394.119343]  ath11k_qmi_deinit_service+0x64/0x21d0 [ath11k]
[12394.125419]  ath11k_core_deinit+0xa4/0xc0 [ath11k]
[12394.130974]  0xffffffc000fb3600
[12394.135831]  platform_shutdown+0x24/0x40
[12394.138871]  device_shutdown+0x14c/0x240
[12394.143037]  kernel_restart+0x40/0xb0
[12394.146944]  __do_sys_reboot+0xcc/0x200
[12394.150502]  __arm64_sys_reboot+0x24/0x30
[12394.154148]  invoke_syscall.constprop.0+0x5c/0x110
[12394.158317]  do_el0_svc+0x58/0x170
[12394.163001]  el0_svc+0x18/0x60
[12394.166386]  el0t_64_sync_handler+0x114/0x120
[12394.169426]  el0t_64_sync+0x174/0x178
2024-10-11 19:19:03 -04:00
Qosmio
e74f065364 ath11k_nss: fix 'ppdu_info' is a pointer... error 2024-10-11 19:19:03 -04:00
Qosmio
b7fe6cbb4c ath11k_nss: ath11k support dynamic vlan
also support offload for the following:

  mac80211:
    * vlan
    * mesh (partial)
  ath11k:
    * vlan
2024-10-11 19:19:02 -04:00
Qosmio
6e41396273 ath11k_nss: allow specifying pbuf 'memory_profile'
In case you want to specify the memory profile to use rather than
letting it autodetect. The following new uci option is introduced.
pbuf.

config general opt
  option memory_profile ''

choices are 1gb, 512mb, 256mb. Delete option to let it autodetect.

NOTE: You must reboot after changing these settings, for it to
autoapply.

ath11k_nss: fix compilation and rename some patches
2024-10-11 19:19:02 -04:00
Qosmio
b93b73df54 ath11k_nss: Add support to account memory stats
Memory allocations in the driver & mac80211 are logged
  and populate those values to the user space via debugfs.
  This stats will give the snapshot of the memory being
  used by the driver at the time of dumping these
  memory stats.

  Command:
  cat /sys/kernel/debug/ath11k/ipq8074\ hw2.0/memory_stats

  Sample output of the stats
  MEMORY STATS IN BYTES:
  malloc size : 6287583
  ce_ring_alloc size: 109308
  dma_alloc size:: 10831860
  htc_skb_alloc size: 3840
  wmi alloc size: 0
  per peer object: 4644
  rx_post_buf size: 5091840
  Total size: 22329075

  User can disable/enable the memory stats accounting with
  the below command.

  echo N > /sys/kernel/debug/ath11k/ipq8074\ hw2.0/enable_memory_stats
  where N = 0 to disable logging, 1 to enable the logging.

  Note: This should be enabled/disabled only after wifi is down.
  User shouldn't enable/disable when the wifi is up to avoid
  accounting the negative values which cause incorrect values
  in the memory stats.

  Command:

  cat /sys/kernel/debug/ieee80211/phyX/memory_stats
  memory stats: malloc_size: 108
2024-10-11 19:19:02 -04:00
Qosmio
d26ad9fb1a ath11k_nss: Handle 256/512/1G boards automatically 2024-10-11 19:19:02 -04:00
Qosmio
2dcf9f7c37 ath11k_nss: bugfix overwriting high watermark
ath11k_nss: bugfix change start order

value 'dev.nss.n2hcfg.n2h_wifi_pool_buf' was not getting set, wait till
after qca-nss-drv is loaded.

ath11k_nss: finally fix n2hcfg values not being set
2024-10-11 19:19:02 -04:00
Qosmio
e676e9ecbc ath11k_nss: fix ordering of sysctl values
`dev.nss.n2hcfg.n2h_wifi_pool_buf` must be set BEFORE setting
`dev.nss.n2hcfg.n2h_high_water_core0`, otherwise it resets the value.
2024-10-11 19:19:02 -04:00
Qosmio
ed4954750b ath11k_nss: handle qca-nss-drv symbol dependancies 2024-10-11 19:19:01 -04:00
Qosmio
75a259a376 ath11k-nss: Add NSS WiFi feature
Attempt at getting NSS WiFi Offload working on kernel 6.1 (backport 6.5)

These patches are a mix of @ansuel branch for 5.15 (ipq807x-5.15-ecm-wifi)
3ecaee768e

And QUIC's upstream NSS patches on [NHSS.QSDK.12.4.5.r3](https://git.codelinaro.org/clo/qsdk/oss/system/feeds/wlan-open.git)
For the actual package setup (Makfiles,ath.mk) Qualcomm's branch is under 'wlan-open/NHSS.QSDK.12.4.5.r3'

Looks like they've swtiched to using backports 6.5-rc3, and figured to
use a mix of their patches on 'NHSS.QSDK.12.4.5.r3' (nss)
'wlan-open/NHSS.QSDK.12.4.5.r3' (syncing with openwrt main).

Booting with "nss_offload=1 frame_mode=2"

Logs show:
[   16.606282] WARNING: CPU: 2 PID: 3524 at ath11k_nss_tx+0x1d4/0x1e0 [ath11k]
[   16.611060] Modules linked in: ecm pppoe ppp_async nft_fib_inet nf_flow_table_inet ath11k_ahb ath11k pptp pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_objref nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_fullcone nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_compat nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack_netlink nf_conntrack mac80211 iptable_mangle iptable_filter ipt_REJECT ipt_ECN ip_tables cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_ecn xt_dscp xt_comment xt_TCPMSS xt_LOG xt_HL xt_DSCP xt_CLASSIFY x_tables wireguard slhc sch_cake qrtr_smd qrtr qmi_helpers nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv4 mhi libcrc32c libchacha20poly1305 compat sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred act_gact qca_nss_cfi_cryptoapi
[   16.611215]  qca_nss_crypto qca_nss_qdisc qca_nss_wifi_meshmgr qca_nss_gre ledtrig_usbport qca_mcs bonding ip6_gre ip_gre gre ifb nat46 nf_defrag_ipv6 sit qca_nss_drv ip6_tunnel tunnel6 tunnel4 nls_utf8 nls_iso8859_1 nls_cp437 vxlan seqiv michael_mic uas usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_qcom qca_nss_dp qca_ssdk ramoops reed_solomon pstore gpio_button_hotplug ext4 mbcache jbd2 aquantia hwmon crc_ccitt crc32c_generic
[   16.721723] CPU: 2 PID: 3524 Comm: hostapd Not tainted 6.1.68 #0
[   16.743958] Hardware name: Dynalink DL-WRX36 (DT)
[   16.750032] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   16.754635] pc : ath11k_nss_tx+0x1d4/0x1e0 [ath11k]
[   16.761403] lr : ath11k_nss_tx+0x1bc/0x1e0 [ath11k]
[   16.766264] sp : ffffffc00b1db790
[   16.771122] x29: ffffffc00b1db790 x28: 0000000000000038 x27: 0000000000000000
[   16.774602] x26: ffffff8006dd7430 x25: ffffff8007ea9dc8 x24: 0000000060000012
[   16.781719] x23: ffffff8005c6a060 x22: ffffff8005c6a060 x21: ffffff80072f12d8
[   16.788837] x20: ffffff8007ea9dc8 x19: ffffff8006082800 x18: 0000000000000005
[   16.795957] x17: 6976312065707974 x16: 207061636e652062 x15: 6b73207874207373
[   16.803075] x14: ffffffc00a0dd518 x13: 000000000000018b x12: 000000000000018b
[   16.810192] x11: 00000000ffffffea x10: ffffffc00a135518 x9 : 0000000000000001
[   16.817310] x8 : 0000000000000001 x7 : 0000000000017fe8 x6 : c0000000ffffefff
[   16.824429] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
[   16.831547] x2 : ffffff80072f1370 x1 : 0000000000000000 x0 : 0000000000000001
[   16.838665] Call trace:
[   16.845774]  ath11k_nss_tx+0x1d4/0x1e0 [ath11k]
[   16.848035]  ath11k_mac_tx_mgmt_pending_free+0x3034/0x9600 [ath11k]
[   16.852551]  ieee80211_handle_wake_tx_queue+0x68/0xb10 [mac80211]
[   16.858801]  ieee80211_probereq_get+0xca4/0x11f0 [mac80211]
[   16.865049]  ieee80211_tx_prepare_skb+0x1dc/0x240 [mac80211]
[   16.870432]  ieee80211_xmit+0xcc/0x120 [mac80211]
[   16.876333]  __ieee80211_subif_start_xmit+0x2b8/0x380 [mac80211]
[   16.880937]  ieee80211_subif_start_xmit+0x40/0x3b0 [mac80211]
[   16.887013]  ieee80211_subif_start_xmit_8023+0xb8/0x430 [mac80211]
[   16.892656]  dev_hard_start_xmit+0x8c/0x110
[   16.898728]  __dev_queue_xmit+0x1f0/0xbc0
[   16.902808]  dev_queue_xmit+0x14/0x20
[   16.906975]  packet_sendmsg+0x768/0x1260
[   16.910620]  __sys_sendto+0xdc/0x140
[   16.914613]  __arm64_sys_sendto+0x28/0x40
[   16.918174]  invoke_syscall.constprop.0+0x5c/0x110
[   16.922081]  do_el0_svc+0x58/0x170
[   16.926765]  el0_svc+0x18/0x60
[   16.930149]  el0t_64_sync_handler+0x114/0x120
[   16.933190]  el0t_64_sync+0x174/0x178
[   16.933197] ---[ end trace 0000000000000000 ]---
[   16.933230] ath11k c000000.wifi: failed to transmit frame -22
[   17.041495] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1vif encap type 2
[   17.041578] ath11k c000000.wifi: failed to transmit frame -22

Which is confusing since the parameter is definitley set to '2'.
➤ cat /sys/module/ath11k/parameters/frame_mode
2

Booting with either "nss_offload=1 frame_mode=3" (RAW), or "nss_offload=1 frame_mode=1" (Native Wifi)
Results in:

[   15.644742] ath11k c000000.wifi: peer not found for nss peer delete
[   15.744742] ath11k c000000.wifi: peer not found for nss peer delete
[   15.745742] ath11k c000000.wifi: peer not found for nss peer delete
[   15.746682] ath11k c000000.wifi: peer not found for nss peer delete

Clients connect and then are immediately kicked off, stuck in a loop.

ath11k-nss: Wifi offloading working (unstable)

Wifi offloading seems to be working, however it is not stable. Logs will
initially show a lot of flooding.

```
[Sun Dec 17 02:43:25 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:28 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:30 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:32 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:34 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:40 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:41 2023] ath11k c000000.wifi: peer not found for nss peer delete
[Sun Dec 17 02:43:46 2023] ath11k c000000.wifi: peer not found for nss peer delete
```

But eventually ends up subsiding. Needs heavy testing...

ath11k_nss: Add mac address to debug `nss peer delete` warnings

also delete ath10k patch, and refresh.

ath11k_nss: FIX `nss peer delete` + encap errors

This should hopefullly fix the following errors:

```
[Sun Dec 24 22:03:21 2023] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1vif encap type 2
[Sun Dec 24 22:03:21 2023] ath11k c000000.wifi: failed to transmit frame -22
[Sun Dec 24 22:08:25 2023] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1vif encap type 2
[Sun Dec 24 22:08:25 2023] ath11k c000000.wifi: failed to transmit frame -22
```

Clients should also be able to switch between 2Ghz and 5Ghz AP, as well
as join using password (no longer required to boot with NSS off first,
connect the client to acquire PSK, and reboot back with nss wifi offload
enabled).

Uptime has been 5 hours and so far no issues.

ath11k_nss: Remove unecessary clang-tidy formatting

ath11k_nss: add 'debug_mode' flag quiet warnings

Will properly handle:
```
[Mon Dec 25 16:51:34 2023] ath11k c000000.wifi: encap mismatch in nss tx skb encap type 1 vif encap type 2
```

should take the path for native wifi encap

ath11k_nss: Rework depends, make `nss_redirect` optional

1.) Added a reworked `qca-nss-pbuf` init script from QSDK that will set sysctl
    NSS `n2hcfg` wifi options based on board type and available
    RAM.

2.) ath11k is fully capable of offloading wifi, it does not need
    mac80211 to create any NSS vifs. This lowers overhead and has actually
    shown considerable speed improvements for CPU programs on the router
    side (i.e. SMB). I believe ax3600's IoT (ath10k) would require it
    for offloading.

    I've added 2 new makemenu options, `MAC80211_NSS_SUPPORT` which enables
    NSS related features, and `MAC80211_NSS_REDIRECT` which provides the option to
    autoload the module on boot with `nss_redirect=1`.

3.) Reverted the option that deafulted `ATH11K_MEM_PROFILE_512M` to
    true. This was not required for platforms with 1GB or more memory
    (which is most of them). The default is 1GB. Select for platforms
    like Xiaomi AX3600.

ath11k_nss: remove requirement for '/sys/kernel/debug/ath11k'

ath11k_nss: set default values lower to avoid eating up memory

ath11k_nss: Add NSS VLAN support + improvements

1) tweaked qca-nss-pbuf script to better handle different board configs
2) added some QSDK NSS patches for dynamic vlan, WDS.
3) added QSDK fixes for beacon, and bt-coex

For devices that keep getting disconnected (mostly on 2G). It is
recommended to use the following settings for wifi. Change for your
country.

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/c000000.wifi'
	option band '5g'
	option txpower '24'
	option country 'PA'
	option channel '100'
	option htmode 'HE160'
	option cell_density '0'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option encryption 'psk2'
	option key 'SOME_PASSWORD'
	option ssid 'EXAMPLE_5G'
	option dtim_period '3'
	option max_inactivity '86400'
	option disassoc_low_ack '0'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/c000000.wifi+1'
	option band '2g'
	option htmode 'HT20'
	option channel '1'
	option txpower '36'
	option country 'PA'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'EXAMPLE_2G'
	option encryption 'psk2'
	option key 'SOME_PASSWORD'
	option max_inactivity '86400'
	option dtim_period '3'
	option disassoc_low_ack '0'

WPA3 should be disabled, and left as WPA2. Experimenting with max_inactivity, dtim_period, and disassoc_low_ack to hopefully resolve the deauth disconnects.
2024-10-11 19:19:01 -04:00
bitthief
a6af12c8fd qualcommax: net: QCA NSS qdisc ifb support
Signed-off-by: bitthief <bitthief@protonmail.ch>
2024-10-11 19:19:01 -04:00
bitthief
dde77826a7 qualcommax: net: QCA NSS igs support
Signed-off-by: bitthief <bitthief@protonmail.ch>
2024-10-11 19:19:01 -04:00
bitthief
5fc90b40e6 qualcommax: dts: add NSS nodes to IPQ807x devices
Signed-off-by: bitthief <bitthief@protonmail.ch>

qualcommax: dts: provide label for NSS reserved-memory

Provide a label for the NSS reserved-memory node so it can be easily passed
to the NSS DRV instead of having to global match by name which is fragile.

Signed-off-by: bitthief <bitthief@protonmail.ch>
2024-10-11 19:19:01 -04:00
bitthief
c6afacdc18 iproute2: add NSS QDISC support
Signed-off-by: bitthief <bitthief@protonmail.ch>
Co-Developed-by: Sean Khan <datapronix@protonmail.com>
2024-10-11 19:19:01 -04:00
Sean Khan
168e9dbaf0 package: kernel: nat46: use standard build functions
Instead of 'install', 'cp', use standard build functions

Signed-off-by: Sean Khan <datapronix@protonmail.com>
2024-10-11 19:19:00 -04:00
bitthief
28d08a4628 nat46: patches for QCA NSS ECM
Signed-off-by: bitthief <bitthief@protonmail.ch>

package: kernel: nat46: add kernel 6.1 support

Signed-off-by: bitthief <bitthief@protonmail.ch>
Co-Developed-by: Sean Khan <datapronix@protonmail.com>
2024-10-11 19:19:00 -04:00
Sean Khan
f82765520c feeds: Add nss-packages repo
feeds: Switch to fork that requires nss qdisc

Without it, NSS based SQM doesn't work.
2024-10-11 19:19:00 -04:00
Markus Stockhausen
3d7040b7d6 realtek: scripts: fix error in belkin-header
For some reason the new belkin-header.py script works without issues
in a local Fedora build environment. In the OpenWrt build pipeline it
produces the following errors:

Traceback (most recent call last):
  File "/builder/shared-workdir/build/scripts/belkin-header.py", line 92, in <module>
    head = create_header(buf, args.belkin_header, args.belkin_model)
  File "/builder/shared-workdir/build/scripts/belkin-header.py", line 68, in create_header
    head[28:29] = VERSION1.to_bytes(1)
TypeError: to_bytes() missing required argument 'byteorder' (pos 2)

This may be related due to different python version. Fix this by
handing over the needed parameters

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/16667
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-11 23:37:09 +02:00
Felix Fietkau
6c35333316 mt76: update to Git HEAD (2024-10-11.1)
ecca0e77b4bc wifi: mt76: mt7915: fix omac index assignment after hardware reset

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-11 20:03:42 +02:00
John Audia
16bf650d50 kernel: bump 6.6 to 6.6.56
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.56

No patches needed a rebase

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16655
Signed-off-by: Nick Hainke <vincent@systemli.org>
2024-10-11 19:21:41 +02:00
John Audia
12f12df569 kernel: bump 6.6 to 6.6.55
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.55

Added the following default ksym to target/linux/generic/config-6.6:
	CONFIG_PROC_MEM_ALWAYS_FORCE=y
	# CONFIG_PROC_MEM_FORCE_PTRACE is not set
	# CONFIG_PROC_MEM_NO_FORCE is not set

Removed upstreamed:
	generic/backport-6.6/780-23-v6.12-r8169-Fix-spelling-mistake-tx_underun-tx_underrun.patch[1]
	generic/backport-6.6/780-25-v6.12-r8169-add-tally-counter-fields-added-with-RTL8125.patch[2]
	generic/pending-6.6/684-gso-fix-gso-fraglist-segmentation-after-pull-from-fr.patch[3]
	lantiq/patches-6.6/0025-v6.12-net-ethernet-lantiq_etop-fix-memory-disclosure.patch[4]

Manually rebased:
	bcm27xx/patches-6.6/950-0086-Main-bcm2708-bcm2709-linux-port.patch
	bcm27xx/patches-6.6/950-0998-i2c-designware-Add-support-for-bus-clear-feature.patch

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.56&id=f02fcb7283b1c25f7e3ae07d7a2c830e06eb1a62
2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.56&id=1c723d785adb711496bc64c24240f952f4faaabf
3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.56&id=af3122f5fdc0d00581d6e598a668df6bf54c9daa
4. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.56&id=e66e38d07b31e177ca430758ed97fbc79f27d966

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16655
Signed-off-by: Nick Hainke <vincent@systemli.org>
2024-10-11 19:21:41 +02:00
Felix Fietkau
6b7d549dd0 mt76: update to Git HEAD (2024-10-11)
513bd7683746 Revert "wifi: mt76: mt7915: disable the second PCIe link for MT7915"
703c6b78c133 wifi: mt76: mt7915: firmware restart on devices with a second pcie link

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-11 18:50:47 +02:00
Christian Marangi
f9a70a20c5
generic: backport BLOCK OF support patch
Backport BLOCK OF support patch merged upstream and refresh pending
BLOCK patches.

This is a new way to declare partition table for BLOCK device (eMMC
currently supported) with the use of DTS.

Current pending patch are adapted to not cause regression with current
downstream implementation of a similar functionality.

Also enable the new OF_PARTITION config by default.

Link: https://github.com/openwrt/openwrt/pull/16663
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-10-11 17:18:40 +02:00
Shiji Yang
48b8c602d0 ipq40xx: switch to zImage kernel for SKSpruce WIA3300-20
The bootloader can support zImage linux kernel which can decrease
the firmware image size.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16662
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-11 16:32:57 +02:00
Felix Fietkau
7e942c53b2 netifd: update to Git HEAD (2024-10-06)
3c6265fdbd02 wireless: reload wireless device if any vif network bridge changes ifindex

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-11 14:40:09 +02:00
Tianling Shen
e00b6ba0c8 uboot-rockchip: Update to 2024.10
Removed upstreamed patches.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16647
Signed-off-by: Nick Hainke <vincent@systemli.org>
2024-10-11 00:11:59 +02:00
Thomas Richard
51e083426b scripts/feeds: force kernel package scan after a target installation
When a target is installed from a feed, the linux kernel package is scanned
before the installation of this target.
If some kernel module packages are defined in this feeds at the target
level, there were not parsed during the scan of linux kernel package, as
the target didn't exist yet. So these kernel module packages don't exist.

Once the target is installed, clean the linux kernel packageinfo to force
the scan of the linux kernel package next time this script (or the make
command) is called.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/mailman.117548.1727195440.1280.openwrt-devel@lists.openwrt.org/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-10 21:51:43 +02:00
Robert Marko
9b66c7dfa5 realtek: refresh patches
CI is saying that patches need to be refreshed, so refresh them.

Link: https://github.com/openwrt/openwrt/pull/16653
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-10 12:35:33 +02:00
Felix Fietkau
3f6e087b6f mt76: update to Git HEAD (2024-10-10)
86b41a32a5ac wifi: mac80211: don't use rate mask for offchannel TX either
82a452919f52 wifi: mac80211: handle ieee80211_radar_detected() for MLO
02c07fe539b4 wifi: mt76: mt7996: fix rx filter setting for bfee functionality
a902bfa6db2f wifi: mt76: mt7915: disable the second PCIe link for MT7915
a7d48cd3ed34 wifi: mt76: mt7915: reduce the number of command retries
0d8474602a9b wifi: mt76: mt7915: decrease timeout for commonly issued MCU commands
5f6051569639 wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz on MT7916
f5bccb122305 wifi: mt76: mt7996: fix invalid interface combinations
6a1199463fc8 wifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-10 10:53:03 +02:00
Rosen Penev
f8ca351936 mpc85xx: handle MSM460 wifi mac in dts
Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-10-10 04:41:04 +02:00
Robert Marko
c3251f5d52
kernel: netdevices: add RmNet MAP support
RmNet driver provides a transport agnostic MAP (multiplexing and
aggregation protocol) support in embedded module. Module provides
virtual network devices which can be attached to any IP-mode
physical device.

This is commonly used on Qualcomm based modems for data aggregation.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-10-09 21:21:57 +02:00
Felix Fietkau
fa6bd065dd kernel: backport upstream commit that allows leaving out .ndo_get_stats64
Fixes mac80211 backport device statistics.

Fixes: #16642
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-09 10:44:44 +02:00
Daniel Golle
5281033831 generic: net: phy: use all SerDes MAC interface modes
Instead of forcing 2.5G PHYs into rate-adapter mode which results higher
energy consumption, lack of support for half-duplex modes and typically
worse performance when linked at speeds less than 2.5G, use SGMII mode
which allows the MAC to follow the PHY speed.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-10-09 02:38:25 +01:00
Daniel Golle
69906789e0 generic: net: phy: realtek: various improvements
Follow the advise of Russell King allows to greatly improve the driver
for RealTek's 1G and 2.5G Ethernet PHYs. The results are full/half
duplex as well as Gbit master/slave property being read from PHY
Specific Status Register (PHYSR), and fixes regarding link-partner
advertisement.

Fixes: #14504
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-10-09 02:36:22 +01:00
Daniel Golle
7d256aff7b mediatek: update MediaTek PHY patchset
The previous iteration of MediaTek's PHY patches caused various weird bugs.
Drop culprit patch 733-10-net-phy-mediatek-Extend-1G-TX-RX-link-pulse-time.patch
and use the most recent iteration of the patchset which has been posted to the
netdev mailing list.

Link: https://patchwork.kernel.org/project/netdevbpf/list/?series=895513&state=*
Fixes: #16448
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-10-09 01:37:02 +01:00
Thomas Richard
a544b9252b toplevel.mk: add target feeds in 'make distclean'
When 'make distclean' is called, remove the target feeds.
Otherwise the directory target/linux/feeds/ (with broken symlinks) still
exists after a distclean.

Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/mailman.115093.1726741692.1280.openwrt-devel@lists.openwrt.org/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-08 22:50:50 +02:00
Thomas Richard
2760b7c8ec gpio-button-hotplug: skip disabled buttons
Ignore buttons which are disabled in the devicetree.

Reviewed-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/mailman.117522.1727194512.1280.openwrt-devel@lists.openwrt.org/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-08 22:32:43 +02:00
Rosen Penev
15f5c7e365 ubnt-ledbar: fix compilation error
Wrong variable name from copy/paste.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16640
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 22:24:54 +02:00
Hauke Mehrtens
0b792954ff valgrind: Remove unsupported configure options.
These options are not recognized by the valgrind configure script,
remove them.

Link: https://github.com/openwrt/openwrt/pull/16633
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-08 22:23:11 +02:00
Hauke Mehrtens
ffa4be4c14 valgrind: Fix build on ARMv7
The valgrind configure script checks if host_cpu is set to armv7 or arm.
By default --host is set to arm-openwrt-linux and the host_cpu variable
is set to arm. Then the valgrind build tries to compile valgrind for
armv6 and fails. Set it explicitly to armv7 to compile valgrind with
armv7 support.

Fixes: 1a55d90320 ("valgrind: Update to version 3.23")
Link: https://github.com/openwrt/openwrt/pull/16633
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-08 22:23:11 +02:00
Rosen Penev
084665698b ath79: gpio-rb91x-key: use devm for mutex_init
mutex_destroy is not called in any error paths or in _remove. Just use
devm to do so.

Removed a pointless platform_set_devdata call. Not needed with all of
the devm conversions.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16630
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:35:56 +02:00
Rosen Penev
a35bfa68d3 ath79: gpio-rb4xx: use devm_mutex_init
Also use devm for gpiochip_add_data.

Allows completely removing the _remove function.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16622
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:34:38 +02:00
Shiji Yang
b37f3def86 ipq40xx: add support for SKSpruce WIA3300-20
Specification
-------------
- SoC       : Qualcomm IPQ4019
- RAM       : 256 MiB DDR3 (NT5CC128M16JR-EK)
- Flash     : 64 MiB SPI NOR (Winbond W25Q512JVFQ)
- WLAN      : IPQ4019 built-in
  - 2.4 GHz : 2x2 MIMO WiFi4
  - 5 GHz   : 2x2 MIMO WiFi5
- Ethernet  : QCA8075 10/100/1000 Mbps 1x WAN (ETH1, PoE); 1x LAN (ETH2)
- USB       : 1x 2.0 Type-A
- UART      : 3.3V, 115200n8
- Buttons   : 1x Reset
- LEDs      : 1x RUN (lime & red)
              1x WiFi 2.4 GHz (lime)
              1x WiFi 5 GHz (lime)
              2x ETH (lime), controlled by the QCA8075 phy
- Power     : DC 12V & 802.3at PoE
- FCC ID    : 2AHKT-WIA3300-20
- TFTP IP   :
  - client  : 192.168.18.254
  - router  : 192.168.18.1

Installation
------------
1. Open uart console and start TFTP server. Copy initramfs image to
   the TFTP root directory and rename it to 'ipqinitramfs.bin'.
2. Power on and press 'Enter' to exit to the u-boot console according
   to the TTL log prompt.
3. Execute commands to load the initramfs image:
   tftpboot && bootm
4. Enter into OpenWrt to backup the partitions if you want to restore
   the stock firmware one day.
5. Override default 'bootcmd' environment variable in u-boot console:
   env set bootcmd 'sf probe && sf read $loadaddr 0x980000 0x800000 && bootm $loadaddr'
   env save
6. Repeat step 3 and flash 'sysupgrade' image in OpenWrt.

Recovery and return to stock
----------------------------
1. Restore the backup firmware partitions in the installation step 4.
2. Restore `bootcmd` environment variable via commands:
   env set bootcmd bootipq && env save

MAC addresses
-------------
+---------+-------------------+
|         | MAC example       |
+---------+-------------------+
| LABEL   | xx:xx:xx:xx:xx:25 |
| LAN     | xx:xx:xx:xx:xx:26 |
| WAN     | xx:xx:xx:xx:xx:25 |
| WLAN 2g | xx:xx:xx:xx:xx:28 |
| WLAN 5g | xx:xx:xx:xx:xx:29 |
+---------+-------------------+

Notice
-----------
1. Some CH340 USB-TTL module doesn't work on this device.
2. The 'firmware' partition consists of four parts in the vendor
   layout:
     * Name            Start           Size
     * rootfs          0x980000        0x1680000
     * 0:HLOS1         0x2000000       0x800000
     * rootfs_1        0x2800000       0x1400000
     * rootfs_data     0x3c00000       0x350000
3. User can control the USB power supply via commands:
   echo enabled > /sys/devices/platform/output-usb-power/state
   echo disabled > /sys/devices/platform/output-usb-power/state

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16476
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:33:33 +02:00
Shiji Yang
a48ba7efcc ipq40xx: generic: enable userspace regulator consumer driver
It can be used to control the power on/off status for the fixed
voltage regulator via sysfs.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16476
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:33:33 +02:00
Shiji Yang
823fd1b166 ipq-wifi: update to latest version 2024-10-08
dcbab62 ipq40xx: add BDFs for SKSpruce WIA3300-20

A new board file package "ipq-wifi-skspruce_wia3300-20" will be
added for the incoming device SKSpruce WIA3300-20.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16476
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:33:33 +02:00
Rosen Penev
3483f63c56 kernel: ubnt-ledbar: use devm_mutex_init
Allows remove the _remove function as devm calls mutex_destroy
automatically.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16615
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:21:43 +02:00
John Thomson
7d33aedd10 generic: platform/mikrotik: add wlan lz77 decompress
A number of new (or with recently updated caldata)
Mikrotik devices are using LZ77 magic for wlan tag hard_config data.
New devices include the Chateau LTE12 [1], and ax devices [2]
Newly factory flashed devices may include the hap ac3 [3]

This can be seen in decoded OEM supout [4] dmesg:
"radio data lz77 decompressed from"…

Investigating an arm RouterOS flash.ko module, and supplied example
hard_config dumps, the format was guessed via decompilation and live
debugging [5]. This decoder was then built from the guessed format
specification.

debug prints can be enabled in a DYNAMIC_DEBUG kernel build via the
kernel cmdline:

        chosen {
-               bootargs = "console=ttyS0,115200";
+               bootargs = "console=ttyS0,115200 dyndbg=\"file drivers/platform/mikrotik/* +p\"";
        };

[1]: https://forum.openwrt.org/t/no-wireless-mikrotik-rbd53ig-5hacd2hnd/157763/4
[2]: https://forum.openwrt.org/t/mikrotik-routeros-v7-x-and-openwrt-sysupgrade/148072/17
[3]: https://forum.openwrt.org/t/adding-support-for-mikrotik-hap-ax2/133715/47
[4]: https://github.com/farseeker/go-mikrotik-rif
[5]: https://github.com/john-tho/routeros-wlan-lz77-decode

Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au>
Link: https://github.com/openwrt/openwrt/pull/15774
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 10:45:58 +02:00
Hauke Mehrtens
170ecbecfc linux-firmware: Update Intel AX101/AX210 firmware
Use most recent version of the Intel AX101 and AX210 firmware provided
by linux-firmware and supported the driver used in OpenWrt.

Link: https://github.com/openwrt/openwrt/pull/16621
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-07 22:33:10 +02:00
Rosen Penev
78d1689757 ath79: ar7200 usb phy: simplify probe
Even though optional is used, there's are still pointless NULL
assignments.

Use dev_err_probe to avoid manually handling EPROBE_DEFER.

Use devm_platform_iomap_resource. No struct resource needed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Tested-by: Shiji Yang <yangshiji66@qq.com> on NETGEAR R6100.
Link: https://github.com/openwrt/openwrt/pull/16519
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-07 22:21:08 +02:00
Lech Perczak
06791742a0 ipq40xx: fix MAC address on Meraki MR33 and MR74 after nvmem-layout
...conversion.
Commit 20736013e910 ("kernel: backport nvmem v6.6 fixes and v6.7 changes")
has causedt he device to no longer correctly read MAC address from its
onboard 24c64 EEPROM, because "at24" driver doesn't support legacy
nvmem-cell bindings [1] - and there was an explicit config option added
to mandate that behaviour in the following patch:

820-v6.7-0002-nvmem-add-explicit-config-option-to-read-old-syntax-.patch

But some of the devices, MR33 and MR74 included, weren't converted with
that as well.
Convert the definition to use proper fixed-layout binding to fix it.

The offending change was introduced between v23.05.0 and v23.05.1, and
found by bisection:
git bisect start
# status: waiting for both good and bad commits
# good: [bd4f415efacfc03bbe5b79ae1d39c1451f5f7385] OpenWrt v23.05.0: adjust config defaults
git bisect good bd4f415efacfc03bbe5b79ae1d39c1451f5f7385
# status: waiting for bad commit, 1 good commit known
# bad: [a58a86693f8593974ff7c26bb42e280b62a8724c] OpenWrt v23.05.1: adjust config defaults
git bisect bad a58a86693f8593974ff7c26bb42e280b62a8724c
# good: [3d0a78add22754aa891529b6702b5e4c7b837446] qualcommax: only build initramfs if CONFIG_TARGET_ROOTFS_INITRAMFS is set
git bisect good 3d0a78add22754aa891529b6702b5e4c7b837446
# bad: [21e5db97c410f4008c8fe8515fb79a7cde368dbf] build: add CycloneDX SBOM JSON support
git bisect bad 21e5db97c410f4008c8fe8515fb79a7cde368dbf
# good: [89184b15cfce4aaffac8cda87c2fa74f829ace42] mediatek: add build for MT7981 RFB
git bisect good 89184b15cfce4aaffac8cda87c2fa74f829ace42
# bad: [41f27bbb6d0af2f37098b97cd28d5f514a6fc417] bcm53xx: add the latest fix version of brcm_nvram
git bisect bad 41f27bbb6d0af2f37098b97cd28d5f514a6fc417
# good: [b649b0bf7100bdc6adb7e857c74738cab7c47b4c] kernel: nvmem: fix "fixed-layout" & support "mac-base"
git bisect good b649b0bf7100bdc6adb7e857c74738cab7c47b4c
# bad: [20736013e91030005353b401bc4b757ba5e5fa98] kernel: backport nvmem v6.6 fixes and v6.7 changes
git bisect bad 20736013e91030005353b401bc4b757ba5e5fa98
# good: [066971615ff66512bc542b09a90be34c2afe98bb] kernel: backport v6.6 nvmem changes
git bisect good 066971615ff66512bc542b09a90be34c2afe98bb
# first bad commit: [20736013e91030005353b401bc4b757ba5e5fa98] kernel: backport nvmem v6.6 fixes and v6.7 changes

Link: [1] https://github.com/openwrt/openwrt/issues/15393#issuecomment-2212300849
Fixes: 20736013e910 ("kernel: backport nvmem v6.6 fixes and v6.7 changes")
Fixes: https://github.com/openwrt/openwrt/issues/15393
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16623
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-07 20:12:25 +02:00