Re: iwlwifi unable to create wlan0

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Thu, 27 Mar 2025 15:55:14 UTC
On Thu, 27 Mar 2025, Baptiste Daroussin wrote:

Hi Baptiste,

> It's been a while since I haven't tried iwlwifi, I tried it today on a vanilla:
> 15.0-CURRENT main-n276047-0849f1634a70 GENERIC-NODEBUG kernel.
>
> When trying to create the wlan0 device: ifconfig create wlan0 wlandev iwlwifi0

You probably want to add regdomain ETSI country FR to not end up in the US.

> it says:
>
> The full dmesg since the load of the if_iwlwifi driver:

Thanks!

> Intel(R) Wireless WiFi based driver for FreeBSD
> iwlwifi0: <iwlwifi> mem 0x6001114000-0x6001117fff at device 20.3 on pci0
> iwlwifi0: Detected crf-id 0x501, cnv-id 0x80400 wfpm id 0x80000030
> iwlwifi0: PCI dev 54f0/0244, rev=0x370, rfid=0x10c000
> iwlwifi0: Detected Intel(R) Wi-Fi 6 AX101

That's the first time we see one of those special ones.
Can you tell us what kind of Laptop this is?

> iwlwifi0: successfully loaded firmware image 'iwlwifi-so-a0-hr-b0-89.ucode'
> iwlwifi0: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.42
> iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either
> iwl-debug-yoyo.bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo.bin either
> iwl-debug-yoyo_bin: could not load binary firmware /boot/firmware/iwl-debug-yoyo_bin either
> iwl_debug_yoyo_bin: could not load binary firmware /boot/firmware/iwl_debug_yoyo_bin either
> iwlwifi0: loaded firmware version 89.6b44fa0b.0 so-a0-hr-b0-89.ucode op_mode iwlmvm
> iwlwifi0: WFPM_UMAC_PD_NOTIFICATION: 0x20
> iwlwifi0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
> iwlwifi0: WFPM_AUTH_KEY_0: 0x90
> iwlwifi0: CNVI_SCU_SEQ_DATA_DW9: 0x10
> iwlwifi0: Detected RF HR1 B3, rfid=0x10c000
> iwlwifi0: RFIm is deactivated, reason = 4
> iwlwifi0: base HW address: b0:dc:ef:18:9c:32
> lkpi_l80211_to_net80211_cyphers: unsupported WLAN Cipher Suite 0x000fac | 8 (GCMP)
> lkpi_l80211_to_net80211_cyphers: unsupported WLAN Cipher Suite 0x000fac | 9 (GCMP_256)
> lkpi_l80211_to_net80211_cyphers: unsupported WLAN Cipher Suite 0x000fac | 6 (AES_CMAC)
> lkpi_l80211_to_net80211_cyphers: unsupported WLAN Cipher Suite 0x000fac | 11 (BIP_GMAC_128)
> lkpi_l80211_to_net80211_cyphers: unsupported WLAN Cipher Suite 0x000fac | 12 (BIP_GMAC_256)
> iwlwifi0: WFPM_UMAC_PD_NOTIFICATION: 0x20
> iwlwifi0: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
> iwlwifi0: WFPM_AUTH_KEY_0: 0x90
> iwlwifi0: CNVI_SCU_SEQ_DATA_DW9: 0x10
> iwlwifi0: RFIm is deactivated, reason = 4
> iwlwifi0: Microcode SW error detected. Restarting 0x0.
> iwlwifi0: Start IWL Error Log Dump:
> iwlwifi0: Transport status: 0x0000004B, valid: 6
> iwlwifi0: Loaded firmware version: 89.6b44fa0b.0 so-a0-hr-b0-89.ucode
> iwlwifi0: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL
> iwlwifi0: 0x00A002F0 | trm_hw_status0
> iwlwifi0: 0x00000000 | trm_hw_status1
> iwlwifi0: 0x004D7360 | branchlink2
> iwlwifi0: 0x004CD3A2 | interruptlink1
> iwlwifi0: 0x004CD3A2 | interruptlink2
> iwlwifi0: 0x0001549E | data1
> iwlwifi0: 0x00000010 | data2
> iwlwifi0: 0x00000000 | data3
> iwlwifi0: 0x00000000 | beacon time
> iwlwifi0: 0x0001707F | tsf low
> iwlwifi0: 0x00000000 | tsf hi
> iwlwifi0: 0x00000000 | time gp1
> iwlwifi0: 0x00022ABC | time gp2
> iwlwifi0: 0x00000001 | uCode revision type
> iwlwifi0: 0x00000059 | uCode version major
> iwlwifi0: 0x6B44FA0B | uCode version minor
> iwlwifi0: 0x00000370 | hw version
> iwlwifi0: 0x18C80002 | board version
> iwlwifi0: 0x8040FF00 | hcmd
> iwlwifi0: 0x00020000 | isr0
> iwlwifi0: 0x00000000 | isr1
> iwlwifi0: 0x48F00002 | isr2
> iwlwifi0: 0x00C0000C | isr3
> iwlwifi0: 0x00000000 | isr4
> iwlwifi0: 0x00000000 | last cmd Id
> iwlwifi0: 0x0001549E | wait_event
> iwlwifi0: 0x00000000 | l2p_control
> iwlwifi0: 0x00000000 | l2p_duration
> iwlwifi0: 0x00000000 | l2p_mhvalid
> iwlwifi0: 0x00000000 | l2p_addr_match
> iwlwifi0: 0x00000009 | lmpm_pmg_sel
> iwlwifi0: 0x00000000 | timestamp
> iwlwifi0: 0x00000830 | flow_handler
> iwlwifi0: Start IWL Error Log Dump:
> iwlwifi0: Transport status: 0x0000004B, valid: 7
> iwlwifi0: 0x20000038 | BAD_COMMAND
> iwlwifi0: 0x00000000 | umac branchlink1
> iwlwifi0: 0x804824F0 | umac branchlink2
> iwlwifi0: 0xC00814F0 | umac interruptlink1
> iwlwifi0: 0x00000000 | umac interruptlink2
> iwlwifi0: 0x00000005 | umac data1
> iwlwifi0: 0x0000000C | umac data2
> iwlwifi0: 0xDEADBEEF | umac data3
> iwlwifi0: 0x00000059 | umac major
> iwlwifi0: 0x6B44FA0B | umac minor
> iwlwifi0: 0x00022AB6 | frame pointer
> iwlwifi0: 0xC0886C14 | stack pointer
> iwlwifi0: 0x000E0C05 | last host cmd
> iwlwifi0: 0x00000000 | isr status reg
> iwlwifi0: IML/ROM dump:
> iwlwifi0: 0x00000B03 | IML/ROM error/state
> iwlwifi0: 0x000051AD | IML/ROM data1
> iwlwifi0: 0x00000090 | IML/ROM WFPM_AUTH_KEY_0
> iwlwifi0: Fseq Registers:
> iwlwifi0: 0x60000000 | FSEQ_ERROR_CODE
> iwlwifi0: 0x80350002 | FSEQ_TOP_INIT_VERSION
> iwlwifi0: 0x00150002 | FSEQ_CNVIO_INIT_VERSION
> iwlwifi0: 0x0000A482 | FSEQ_OTP_VERSION
> iwlwifi0: 0x00000003 | FSEQ_TOP_CONTENT_VERSION
> iwlwifi0: 0x4552414E | FSEQ_ALIVE_TOKEN
> iwlwifi0: 0x00080400 | FSEQ_CNVI_ID
> iwlwifi0: 0x00000501 | FSEQ_CNVR_ID
> iwlwifi0: 0x00080400 | CNVI_AUX_MISC_CHIP
> iwlwifi0: 0x00000501 | CNVR_AUX_MISC_CHIP
> iwlwifi0: 0x05B0905B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
> iwlwifi0: 0x0000025B | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
> iwlwifi0: 0x00150002 | FSEQ_PREV_CNVIO_INIT_VERSION
> iwlwifi0: 0x00350002 | FSEQ_WIFI_FSEQ_VERSION
> iwlwifi0: 0xEFA7B0C2 | FSEQ_BT_FSEQ_VERSION
> iwlwifi0: 0x000000C8 | FSEQ_CLASS_TP_VERSION
> iwlwifi0: UMAC CURRENT PC: 0x804a228c
> iwlwifi0: LMAC1 CURRENT PC: 0xd0
> iwlwifi0: Starting mac, retry will be triggered anyway
> iwlwifi0: FW error in SYNC CMD UNKNOWN
> #0 0xffffffff80dc58cb at linux_dump_stack+0x1b
> #1 0xffffffff8322b82b at iwl_trans_pcie_send_hcmd+0x44b
> #2 0xffffffff831bc318 at iwl_trans_send_cmd+0x88
> #3 0xffffffff83206642 at iwl_mvm_send_cmd+0x12
> #4 0xffffffff831cd651 at iwl_mvm_uats_init+0xa1
> #5 0xffffffff831ccd9c at iwl_mvm_up+0x60c
> #6 0xffffffff831d2901 at __iwl_mvm_mac_start+0x271
> #7 0xffffffff831d29f7 at iwl_mvm_mac_start+0x87
> #8 0xffffffff80dbfc45 at lkpi_80211_mo_start+0x25
> #9 0xffffffff80db718c at lkpi_ic_vap_create+0x58c
> #10 0xffffffff80cc85e8 at wlan_clone_create+0xf8
> #11 0xffffffff80c7d836 at if_clone_createif_nl+0x166
> #12 0xffffffff80c7d66e at ifc_create_ifp+0xee
> #13 0xffffffff80c7dac4 at if_clone_create+0x34
> #14 0xffffffff80c79dfc at ifioctl+0xa5c
> #15 0xffffffff80bc0765 at kern_ioctl+0x255
> #16 0xffffffff80bc04b1 at sys_ioctl+0x101
> #17 0xffffffff81053067 at amd64_syscall+0x117
> iwlwifi0: failed to send MCC_ALLOWED_AP_TYPE_CMD (-5)
> iwlwifi0: Failed to send MAC_CONFIG_CMD (action:1): -5
> iwlwifi0: lkpi_ic_vap_create: failed to add interface: -5
> iwlwifi0: lkpi_ic_vap_create: failed to start hw: 17
>
>
> Anything I am missing on my side?

No, likely not.  Just the first one hitting this in all Intel internal code.

It's trying to see if it can read 6Ghz regulatory information from UEFI
(which LinuxKPI does not yet support) and so it should just fail but it
walks over it due to what looks like a wrong return code and tries to
program the unprovided information to firmware.

Can you bluntly give this a try and let us know if it helps?

diff --git sys/contrib/dev/iwlwifi/fw/uefi.h sys/contrib/dev/iwlwifi/fw/uefi.h
index 1f8884ca8997..0fba500b00be 100644
--- sys/contrib/dev/iwlwifi/fw/uefi.h
+++ sys/contrib/dev/iwlwifi/fw/uefi.h
@@ -318,7 +318,7 @@ static inline
  int iwl_uefi_get_uats_table(struct iwl_trans *trans,
                             struct iwl_fw_runtime *fwrt)
  {
-       return 0;
+       return -ENOENT;
  }
  #endif /* CONFIG_EFI */
  #endif /* __iwl_fw_uefi__ */


Also, given 6Ghz is disabled by default in FreeBSD makes me wonder
if they are lacking a check.  Seems all uncondiitonal.  it's upstream
commit 4a9bb5b4d94999af8a9156e7004cad28db8cde38 so that I don't have to
look it up again in case we'll have to take it back to Intel.

Out of curiosity, does your AP support 6Ghz by any chance?

/bz

-- 
Bjoern A. Zeeb                                                     r15:7