Re: PROBLEM: Linux 5.5 fails to load firmware for Intel(R) Dual Band Wireless AC 3168

From: Stuart Little
Date: Sat Feb 08 2020 - 01:04:57 EST


Just for good measure: reverting commit

b3f20e098293892388d6a0491d6bbb2efb46fbff iwlwifi: mvm: fix NVM check for 3168 devices

right on top of the current tree does fix the issue (I'm on that kernel as we speak).

On Fri, Feb 07, 2020 at 09:02:48PM -0500, Stuart Little wrote:
> I have done the bisect on this issue. The log is attached, along with the end summary the bisect returned. The latter is also pasted here:
>
> --- cut here ---
>
> b3f20e098293892388d6a0491d6bbb2efb46fbff is the first bad commit
> commit b3f20e098293892388d6a0491d6bbb2efb46fbff
> Author: Luca Coelho <luciano.coelho@xxxxxxxxx>
> Date: Mon Nov 25 13:21:58 2019 +0200
>
> iwlwifi: mvm: fix NVM check for 3168 devices
>
> We had a check on !NVM_EXT and then a check for NVM_SDP in the else
> block of this if. The else block, obviously, could only be reached if
> using NVM_EXT, so it would never be NVM_SDP.
>
> Fix that by checking whether the nvm_type is IWL_NVM instead of
> checking for !IWL_NVM_EXT to solve this issue.
>
> Reported-by: Stefan Sperling <stsp@xxxxxxxxx>
> Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
>
> :040000 040000 923b8f7ba8a5826190d4b1b52a00a2fca0304687 529cfe362357c9ec6d411a687d9e41ac86a94d91 M drivers
>
> --- end ---
>
> On Fri, Feb 07, 2020 at 08:09:03PM -0500, Stuart Little wrote:
> > I am on an
> >
> > Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
> >
> > with an Intel wifi card:
> >
> > Intel(R) Dual Band Wireless AC 3168, REV=0x220
> >
> > The machine is running Slackware 14.2 with a custom-compiled 5.5 kernel (from source; commit d5226fa6dbae Linux 5.5).
> >
> > The issue:
> >
> > Booting into that kernel results in failure to load the wifi card firmware. The relevant dmesg portion is attached (these are all of the lines containing 'iwlwifi').
> >
> > I have checked that it breaks between
> >
> > def9d2780727 Linux 5.5-rc7 (good)
> >
> > and
> >
> > d5226fa6dbae Linux 5.5 (bad)
> >
> > I will attempt a bisect to track down the precise faulty commit, but this is all I have for now. Please let me know if I can provide more info short of the bisect.
> >
> > P.S.
> >
> > I have checked that the very latest commit at the time of this writing (41dcd67e88688afbeb3b2bd23960eed5daec74e7 at Fri Feb 7 20:07:29 EST 2020) is still broken on this machine.
>
> > [ 1.210208] iwlwifi 0000:02:00.0: loaded firmware version 29.1654887522.0 op_mode iwlmvm
> > [ 1.218505] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
> > [ 1.223892] r8168 Copyright (C) 2019 Realtek NIC software team <nicfae@xxxxxxxxxxx>
> > This program comes with ABSOLUTELY NO WARRANTY; for details, please see <http://www.gnu.org/licenses/>.
> > This is free software, and you are welcome to redistribute it under certain conditions; see <http://www.gnu.org/licenses/>.
> > [ 1.230349] xhci_hcd 0000:00:14.0: xHCI Host Controller
> > [ 1.230500] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
> > [ 1.231808] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x0000000081109810
> > [ 1.232080] xhci_hcd 0000:00:14.0: cache line size of 64 is not supported
> > [ 1.232486] hub 1-0:1.0: USB hub found
> > [ 1.232640] hub 1-0:1.0: 12 ports detected
> > [ 1.233280] xhci_hcd 0000:00:14.0: xHCI Host Controller
> > [ 1.233440] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
> > [ 1.233690] xhci_hcd 0000:00:14.0: Host supports USB 3.0 SuperSpeed
> > [ 1.233883] AVX2 version of gcm_enc/dec engaged.
> > [ 1.234067] AES CTR mode by8 optimization enabled
> > [ 1.234279] hub 2-0:1.0: USB hub found
> > [ 1.234446] hub 2-0:1.0: 6 ports detected
> > [ 1.277853] iwlwifi 0000:02:00.0: Detected Intel(R) Dual Band Wireless AC 3168, REV=0x220
> > [ 1.297761] iwlwifi 0000:02:00.0: Can't parse phy_sku in B0, empty sections
> > [ 1.297916] iwlwifi 0000:02:00.0: Failed to read NVM: -61
> > [ 1.298063] iwlwifi 0000:02:00.0: Collecting data: trigger 16 fired.
> > [ 1.299371] iwlwifi 0000:02:00.0: Start IWL Error Log Dump:
> > [ 1.299521] iwlwifi 0000:02:00.0: Status: 0x00000040, count: 6
> > [ 1.299673] iwlwifi 0000:02:00.0: Loaded firmware version: 29.1654887522.0
> > [ 1.299829] iwlwifi 0000:02:00.0: 0x00000084 | NMI_INTERRUPT_UNKNOWN
> > [ 1.299983] iwlwifi 0000:02:00.0: 0x000002F0 | trm_hw_status0
> > [ 1.300132] iwlwifi 0000:02:00.0: 0x00000000 | trm_hw_status1
> > [ 1.300291] iwlwifi 0000:02:00.0: 0x0004171E | branchlink2
> > [ 1.300442] iwlwifi 0000:02:00.0: 0x000446B2 | interruptlink1
> > [ 1.300595] iwlwifi 0000:02:00.0: 0x000446B2 | interruptlink2
> > [ 1.300747] iwlwifi 0000:02:00.0: 0x00000000 | data1
> > [ 1.300895] iwlwifi 0000:02:00.0: 0x00000080 | data2
> > [ 1.301041] iwlwifi 0000:02:00.0: 0x07030000 | data3
> > [ 1.301190] iwlwifi 0000:02:00.0: 0x00000000 | beacon time
> > [ 1.301341] iwlwifi 0000:02:00.0: 0x00001451 | tsf low
> > [ 1.301491] iwlwifi 0000:02:00.0: 0x00000000 | tsf hi
> > [ 1.301642] iwlwifi 0000:02:00.0: 0x00000000 | time gp1
> > [ 1.301793] iwlwifi 0000:02:00.0: 0x00001452 | time gp2
> > [ 1.301943] iwlwifi 0000:02:00.0: 0x00000009 | uCode revision type
> > [ 1.302094] iwlwifi 0000:02:00.0: 0x0000001D | uCode version major
> > [ 1.302245] iwlwifi 0000:02:00.0: 0x62A39462 | uCode version minor
> > [ 1.302397] iwlwifi 0000:02:00.0: 0x00000220 | hw version
> > [ 1.302548] iwlwifi 0000:02:00.0: 0x00C89200 | board version
> > [ 1.302701] iwlwifi 0000:02:00.0: 0x00110188 | hcmd
> > [ 1.302852] iwlwifi 0000:02:00.0: 0x00022000 | isr0
> > [ 1.303003] iwlwifi 0000:02:00.0: 0x00000000 | isr1
> > [ 1.303152] iwlwifi 0000:02:00.0: 0x00000002 | isr2
> > [ 1.303301] iwlwifi 0000:02:00.0: 0x004000C0 | isr3
> > [ 1.303448] iwlwifi 0000:02:00.0: 0x00000000 | isr4
> > [ 1.303596] iwlwifi 0000:02:00.0: 0x00110188 | last cmd Id
> > [ 1.303746] iwlwifi 0000:02:00.0: 0x00000000 | wait_event
> > [ 1.303897] iwlwifi 0000:02:00.0: 0x00000080 | l2p_control
> > [ 1.304047] iwlwifi 0000:02:00.0: 0x00000000 | l2p_duration
> > [ 1.304197] iwlwifi 0000:02:00.0: 0x00000000 | l2p_mhvalid
> > [ 1.304346] iwlwifi 0000:02:00.0: 0x00000000 | l2p_addr_match
> > [ 1.304496] iwlwifi 0000:02:00.0: 0x00000007 | lmpm_pmg_sel
> > [ 1.304652] iwlwifi 0000:02:00.0: 0x16070617 | timestamp
> > [ 1.304798] iwlwifi 0000:02:00.0: 0x00341018 | flow_handler
> > [ 1.304966] iwlwifi 0000:02:00.0: Fseq Registers:
> > [ 1.305139] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_ERROR_CODE
> > [ 1.305306] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_TOP_INIT_VERSION
> > [ 1.305475] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_CNVIO_INIT_VERSION
> > [ 1.305652] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_OTP_VERSION
> > [ 1.305822] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_TOP_CONTENT_VERSION
> > [ 1.305995] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_ALIVE_TOKEN
> > [ 1.306175] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_CNVI_ID
> > [ 1.306356] iwlwifi 0000:02:00.0: 0x00000000 | FSEQ_CNVR_ID
> > [ 1.306524] iwlwifi 0000:02:00.0: 0x00000000 | CNVI_AUX_MISC_CHIP
> > [ 1.306695] iwlwifi 0000:02:00.0: 0x00000000 | CNVR_AUX_MISC_CHIP
> > [ 1.306870] iwlwifi 0000:02:00.0: 0x00000000 | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
> > [ 1.307135] iwlwifi 0000:02:00.0: 0x00000000 | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
> > [ 1.307402] iwlwifi 0000:02:00.0: Firmware not running - cannot dump error
> > [ 1.319717] iwlwifi 0000:02:00.0: Failed to run INIT ucode: -61
>

> git bisect start
> # bad: [d5226fa6dbae0569ee43ecfc08bdcd6770fc4755] Linux 5.5
> git bisect bad d5226fa6dbae0569ee43ecfc08bdcd6770fc4755
> # good: [def9d2780727cec3313ed3522d0123158d87224d] Linux 5.5-rc7
> git bisect good def9d2780727cec3313ed3522d0123158d87224d
> # bad: [722943a54de95343c97c2a9ad658253393632f97] Merge tag 'mlx5-fixes-2020-01-24' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
> git bisect bad 722943a54de95343c97c2a9ad658253393632f97
> # bad: [5169adbc982400f214bc0bcad1fcc076bd342987] Merge tag 'wireless-drivers-2020-01-23' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
> git bisect bad 5169adbc982400f214bc0bcad1fcc076bd342987
> # good: [d7f1b59655efb5a285d227c8f9853a98eab5c2fd] r8152: disable test IO for RTL8153B
> git bisect good d7f1b59655efb5a285d227c8f9853a98eab5c2fd
> # bad: [b9f726c94224e863d4d3458dfec2e7e1284a39ce] iwlwifi: mvm: fix SKB leak on invalid queue
> git bisect bad b9f726c94224e863d4d3458dfec2e7e1284a39ce
> # good: [c4a786b32621850775dedd1a329de0c060f9c904] iwlwifi: pcie: work around DMA hardware bug
> git bisect good c4a786b32621850775dedd1a329de0c060f9c904
> # bad: [b3f20e098293892388d6a0491d6bbb2efb46fbff] iwlwifi: mvm: fix NVM check for 3168 devices
> git bisect bad b3f20e098293892388d6a0491d6bbb2efb46fbff
> # good: [a89c72ffd07369f5ccc74f0332d2785a7077241d] iwlwifi: pcie: allocate smaller dev_cmd for TX headers
> git bisect good a89c72ffd07369f5ccc74f0332d2785a7077241d
> # good: [4f565ee2999960d541854389e20b78e7105e3afc] iwlwifi: fix TLV fragment allocation loop
> git bisect good 4f565ee2999960d541854389e20b78e7105e3afc
> # first bad commit: [b3f20e098293892388d6a0491d6bbb2efb46fbff] iwlwifi: mvm: fix NVM check for 3168 devices

> b3f20e098293892388d6a0491d6bbb2efb46fbff is the first bad commit
> commit b3f20e098293892388d6a0491d6bbb2efb46fbff
> Author: Luca Coelho <luciano.coelho@xxxxxxxxx>
> Date: Mon Nov 25 13:21:58 2019 +0200
>
> iwlwifi: mvm: fix NVM check for 3168 devices
>
> We had a check on !NVM_EXT and then a check for NVM_SDP in the else
> block of this if. The else block, obviously, could only be reached if
> using NVM_EXT, so it would never be NVM_SDP.
>
> Fix that by checking whether the nvm_type is IWL_NVM instead of
> checking for !IWL_NVM_EXT to solve this issue.
>
> Reported-by: Stefan Sperling <stsp@xxxxxxxxx>
> Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx>
>
> :040000 040000 923b8f7ba8a5826190d4b1b52a00a2fca0304687 529cfe362357c9ec6d411a687d9e41ac86a94d91 M drivers