NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/58105: Make use of correct firmware for Intel Centrino N 130



>Number:         58105
>Category:       kern
>Synopsis:       Make use of correct firmware for Intel Centrino N 130
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 02 19:00:00 +0000 2024
>Originator:     Vadim
>Release:        10.0
>Organization:
>Environment:
NetBSD nora 10.0 NetBSD 10.0 (NORA) #3: Wed Apr  3 00:53:15 +07 2024  vadim@nora:/usr/src/sys/arch/amd64/compile/NORA amd64
>Description:
I have a laptop with Intel Centrino N 130 wifi device:

$ lspci -nn | grep Centr
01:00.0 Network controller [0280]: Intel Corporation Centrino Wireless-N 130 [8086:0896] (rev 34)

WiFi doesn't work under NetBSD with the following repeating error:

[     7.100458] iwn0: autoconfiguration error: fatal firmware error
[     7.100458] autoconfiguration error: firmware error log:
[     7.100458] autoconfiguration error:   error type      = "UNKNOWN" (0x00001999)
[     7.100458] autoconfiguration error:   program counter = 0x00014130
[     7.100458] autoconfiguration error:   source line     = 0x00000136
[     7.100458] autoconfiguration error:   error data      = 0x00000001000000A4
[     7.100458] autoconfiguration error:   branch link     = 0x0001410200014102
[     7.100458] autoconfiguration error:   interrupt link  = 0x0000C71E00000000
[     7.100458] autoconfiguration error:   time            = 26817
[     7.100458] autoconfiguration error: driver status:
[     7.100458] autoconfiguration error:   tx ring  0: qid=0  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  1: qid=1  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  2: qid=2  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  3: qid=3  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  4: qid=4  cur=2   queued=0  
[     7.100458] autoconfiguration error:   tx ring  5: qid=5  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  6: qid=6  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  7: qid=7  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  8: qid=8  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring  9: qid=9  cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 10: qid=10 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 11: qid=11 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 12: qid=12 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 13: qid=13 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 14: qid=14 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 15: qid=15 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 16: qid=16 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 17: qid=17 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 18: qid=18 cur=0   queued=0  
[     7.100458] autoconfiguration error:   tx ring 19: qid=19 cur=0   queued=0  
[     7.100458] autoconfiguration error:   rx ring: cur=2
[     7.100458] autoconfiguration error:   802.11 state 0
[     8.090453] iwn0: autoconfiguration error: crystal calibration failed
[     8.090453] iwn0: autoconfiguration error: could not initialize hardware
[     8.190451] iwn0: cannot assign link-local address

>How-To-Repeat:

>Fix:
I checked the Linux dmesg log, and Linux seems loading file iwlwifi-6000g2b-6.ucode for that device.
NetBSD tries loading iwlwifi-6000g2a-6.ucode.

I added the missing device ID in the following condition and that fixed the problem:

--- if_iwn.c.orig	2022-04-25 09:29:14.000000000 +0700
+++ if_iwn.c	2024-04-03 01:36:50.586725197 +0700
@@ -844,7 +844,8 @@
 	case IWN_HW_REV_TYPE_6005:
 		sc->limits = &iwn6000_sensitivity_limits;
 		/* Type 6030 cards return IWN_HW_REV_TYPE_6005 */
-		if (pid == PCI_PRODUCT_INTEL_WIFI_LINK_1030_1 ||
+		if (pid == PCI_PRODUCT_INTEL_WIFI_LINK_130_1  ||
+		    pid == PCI_PRODUCT_INTEL_WIFI_LINK_1030_1 ||
 		    pid == PCI_PRODUCT_INTEL_WIFI_LINK_1030_2 ||
 		    pid == PCI_PRODUCT_INTEL_WIFI_LINK_6230_1 ||
 		    pid == PCI_PRODUCT_INTEL_WIFI_LINK_6230_2 ||

PCI_PRODUCT_INTEL_WIFI_LINK_130_2 should probably also be added, but I have no device with that ID to be able to check it works.



Home | Main Index | Thread Index | Old Index