You are not logged in.

#1 2025-12-14 23:58:19

Brocellous
Member
Registered: 2017-11-27
Posts: 156

Can I enable WiFi 6E?

Hi there.

I have a DELL desktop with an intel AX1675x pci wireless card:

$ sudo lspci -Dvd::280
0000:08:00.0 Network controller: Intel Corporation Wi-Fi 6E(802.11ax) AX210/AX1675* 2x2 [Typhoon Peak] (rev 1a)
	Subsystem: Rivet Networks Killer Wi-Fi 6E AX1675x 160MHz
	Flags: bus master, fast devsel, latency 0, IRQ 19
	Memory at 80700000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [c8] Power Management version 3
	Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
	Capabilities: [40] Express Endpoint, IntMsgNum 0
	Capabilities: [80] MSI-X: Enable+ Count=16 Masked-
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [14c] Latency Tolerance Reporting
	Capabilities: [154] L1 PM Substates
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi
$ journalctl -b --no-hostname -o short-monotonic _KERNEL_DEVICE=+pci:0000:08:00.0
[    1.298301] kernel: pci 0000:08:00.0: [8086:2725] type 00 class 0x028000 PCIe Endpoint
[    1.298350] kernel: pci 0000:08:00.0: BAR 0 [mem 0x80700000-0x80703fff 64bit]
[    1.298397] kernel: pci 0000:08:00.0: PME# supported from D0 D3hot D3cold
[    6.473815] kernel: iwlwifi 0000:08:00.0: enabling device (0000 -> 0002)
[    6.474140] kernel: iwlwifi 0000:08:00.0: Detected crf-id 0x400410, cnv-id 0x400410 wfpm id 0x80000000
[    6.474314] kernel: iwlwifi 0000:08:00.0: PCI dev 2725/1674, rev=0x420, rfid=0x10d000
[    6.474455] kernel: iwlwifi 0000:08:00.0: Detected Killer(R) Wi-Fi 6E AX1675x 160MHz Wireless Network Adapter (210NGW)
[    6.474897] kernel: iwlwifi 0000:08:00.0: loaded firmware version 89.7207fc64.0 ty-a0-gf-a0-89.ucode op_mode iwlmvm
[    6.696004] kernel: iwlwifi 0000:08:00.0: WFPM_UMAC_PD_NOTIFICATION: 0x20
[    6.696113] kernel: iwlwifi 0000:08:00.0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[    6.696181] kernel: iwlwifi 0000:08:00.0: WFPM_AUTH_KEY_0: 0x90
[    6.696243] kernel: iwlwifi 0000:08:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
[    6.696305] kernel: iwlwifi 0000:08:00.0: Detected RF GF, rfid=0x10d000
[    6.783025] kernel: iwlwifi 0000:08:00.0: base HW address: b0:3c:dc:8d:68:05
[    7.210103] kernel: iwlwifi 0000:08:00.0: WFPM_UMAC_PD_NOTIFICATION: 0x20
[    7.210687] kernel: iwlwifi 0000:08:00.0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[    7.211092] kernel: iwlwifi 0000:08:00.0: WFPM_AUTH_KEY_0: 0x90
[    7.211560] kernel: iwlwifi 0000:08:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
$ pacman -Q linux linux-firmware-intel
linux 6.17.9.arch1-1
linux-firmware-intel 20251125-2

The hardware reportedly supports 6E according to the intel product page, but it seems that the 6GHz bands are disabled in the firmware:

$ iw phy phy0 channels | sed -n '/Band 4/,$p'
Band 4:
	* 5955 MHz [1] (disabled)
	* 5975 MHz [5] (disabled)
	* 5995 MHz [9] (disabled)
	* 6015 MHz [13] (disabled)
	* 6035 MHz [17] (disabled)
	* 6055 MHz [21] (disabled)
	* 6075 MHz [25] (disabled)
	* 6095 MHz [29] (disabled)
	* 6115 MHz [33] (disabled)
	* 6135 MHz [37] (disabled)
	* 6155 MHz [41] (disabled)
	* 6175 MHz [45] (disabled)
	* 6195 MHz [49] (disabled)
	* 6215 MHz [53] (disabled)
	* 6235 MHz [57] (disabled)
	* 6255 MHz [61] (disabled)
	* 6275 MHz [65] (disabled)
	* 6295 MHz [69] (disabled)
	* 6315 MHz [73] (disabled)
	* 6335 MHz [77] (disabled)
	* 6355 MHz [81] (disabled)
	* 6375 MHz [85] (disabled)
	* 6395 MHz [89] (disabled)
	* 6415 MHz [93] (disabled)
	* 6435 MHz [97] (disabled)
	* 6455 MHz [101] (disabled)
	* 6475 MHz [105] (disabled)
	* 6495 MHz [109] (disabled)
	* 6515 MHz [113] (disabled)
	* 6535 MHz [117] (disabled)
	* 6555 MHz [121] (disabled)
	* 6575 MHz [125] (disabled)
	* 6595 MHz [129] (disabled)
	* 6615 MHz [133] (disabled)
	* 6635 MHz [137] (disabled)
	* 6655 MHz [141] (disabled)
	* 6675 MHz [145] (disabled)
	* 6695 MHz [149] (disabled)
	* 6715 MHz [153] (disabled)
	* 6735 MHz [157] (disabled)
	* 6755 MHz [161] (disabled)
	* 6775 MHz [165] (disabled)
	* 6795 MHz [169] (disabled)
	* 6815 MHz [173] (disabled)
	* 6835 MHz [177] (disabled)
	* 6855 MHz [181] (disabled)
	* 6875 MHz [185] (disabled)
	* 6895 MHz [189] (disabled)
	* 6915 MHz [193] (disabled)
	* 6935 MHz [197] (disabled)
	* 6955 MHz [201] (disabled)
	* 6975 MHz [205] (disabled)
	* 6995 MHz [209] (disabled)
	* 7015 MHz [213] (disabled)
	* 7035 MHz [217] (disabled)
	* 7055 MHz [221] (disabled)
	* 7075 MHz [225] (disabled)
	* 7095 MHz [229] (disabled)
	* 7115 MHz [233] (disabled)

As best I can tell, I cannot re-enable them with the regulatory settings manually:

$ grep -Ev '^(#|$)' /etc/conf.d/wireless-regdom
WIRELESS_REGDOM="US"
$ sudo iw reg set US && echo $?
0
$ iw phy phy0 reg get 
phy#0
country 00: DFS-UNSET
	(2402 - 2437 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40MINUS, NO-80MHZ, NO-160MHZ
	(2422 - 2462 @ 40), (6, 22), (N/A), AUTO-BW, NO-80MHZ, NO-160MHZ
	(2447 - 2482 @ 40), (6, 22), (N/A), AUTO-BW, NO-HT40PLUS, NO-80MHZ, NO-160MHZ
	(5170 - 5190 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5190 - 5210 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5210 - 5230 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5230 - 5250 @ 160), (6, 22), (N/A), NO-OUTDOOR, AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5250 - 5270 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5270 - 5290 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5290 - 5310 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5310 - 5330 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5490 - 5510 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5510 - 5530 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5530 - 5550 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5550 - 5570 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5570 - 5590 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5590 - 5610 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5610 - 5630 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-320MHZ, PASSIVE-SCAN
	(5630 - 5650 @ 160), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-320MHZ, PASSIVE-SCAN
	(5650 - 5670 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5670 - 5690 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5690 - 5710 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5710 - 5730 @ 80), (6, 22), (0 ms), DFS, AUTO-BW, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5735 - 5755 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5755 - 5775 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5775 - 5795 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5795 - 5815 @ 80), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40PLUS, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN
	(5815 - 5835 @ 40), (6, 22), (N/A), AUTO-BW, IR-CONCURRENT, NO-HT40MINUS, NO-80MHZ, NO-160MHZ, NO-320MHZ, PASSIVE-SCAN

It seems like there might be some ACPI interface that is locking it to the global regulatory domain or disabling the 6E bands based on a cursory reading of https://lore.kernel.org/lkml/0611323c-2 … is.info/T/, though I'm not familiar. I haven't tried testing such an old kernel for any difference in behavior.

I was able to find:

$ sudo cat /sys/kernel/debug/ieee80211/phy0/iwlwifi/iwlmvm/wifi_6e_enable
0x00080001

which IIUC corresponds to the DSM_FUNC_ENABLE_6E value discussed in the patch. Seems DSM in this context is ACPI _DSM, and IIUC the value is set directly in the ACPI tables based an uninformed reading of the iasl DSDT disassembly:

Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
{
	If (EDSM (Arg0))
	{
		Return (EFUN (Arg0, Arg1, Arg2, Arg3))
	}
[...]
Method (EDSM, 1, Serialized)
{
	If ((Arg0 == ToUUID ("f21202bf-8f78-4dc6-a5b3-1f738e285ade") /* iwlwifi GUID */))
	{
		Return (One)
	}

	Return (Zero)
}
[...]
Method (EFUN, 4, Serialized)
{
	[...]
	If ((Arg2 == 0x03)) /* 0x03 == DSM_FUNC_ENABLE_6E */
	{
		Return (0x00080001)
		Local0 = UHBS /* \UHBS */
		Return (Local0)
	}

And UHBS seems to be a variable in the ACPI Non-volatile Storage region, which I suppose is set by the platform firmware:

OperationRegion (GNVS, SystemMemory, 0x741B8000, 0x0C41)
Field (GNVS, AnyAcc, Lock, Preserve)
{
	[...]
	Offset (0x96D), 
	[... 2816 bits ...]
	UHBS,   32, /* Offset 0x741b8acd ? */
	[...]
}

$ sudo grep ACPI /proc/iomem
74061000-74155fff : ACPI Tables
74156000-742c4fff : ACPI Non-volatile Storage

$ sudo dd if=/dev/mem iseek=$((0x741b8acd)) status=none bs=4 count=1 | xxd -ps
dd: error reading '/dev/mem': Operation not permitted

Is there any kind of tool or perhaps an ACPI modification or something I can do to enable WiFi 6E on my hardware? I do have a WiFi 7 capable AP broadcasting on channel 37 (EHT160) nearby, in case LARI is relevant.

Last edited by Brocellous (2025-12-15 18:33:44)

Offline

Board footer

Powered by FluxBB