Re: iwlwifi unable to create wlan0

From: Baptiste Daroussin <bapt_at_freebsd.org>
Date: Thu, 27 Mar 2025 19:03:18 UTC
On Thu 27 Mar 15:55, Bjoern A. Zeeb wrote:
> 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.

Yeah ;)
> 
> > 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?

This is a beelink mini s PC
(https://www.bee-link.com/products/beelink-mini-s12-pro-n100)

Note that a year ago creating wlan0 was working and I could even join a network,
but it was too slow to be usable.
> 
> > 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.

Note that a year ago, this was working but slow correctly but slow.
> 
> 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__ */
> 
Will test ASAP

> 
> 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?

Nope

Best regards,
Bapt