From owner-freebsd-wireless@freebsd.org Fri Oct 9 06:41:45 2015 Return-Path: Delivered-To: freebsd-wireless@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8909F9D2DB7 for ; Fri, 9 Oct 2015 06:41:45 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ig0-x232.google.com (mail-ig0-x232.google.com [IPv6:2607:f8b0:4001:c05::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 5745798 for ; Fri, 9 Oct 2015 06:41:45 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by igxx6 with SMTP id x6so29144783igx.1 for ; Thu, 08 Oct 2015 23:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=6oKq+F/VFg9ZwgqoH9cpKZG5Wt4cLbYJevXR9QB9etc=; b=GLGjOA7+YPX6HnJW5f3Zn+ryF0Zs7x226fM6OqU70smy0TcgTaMUx2kbmmCXG87cXM jlSKaq9wFurGgleYBHNI7xa3rz7/eLr6G0q73ANqeRx/u5nv81i5ukQEX78rdlC9tD/h m8XDAhIILgjEt2yci73/QKiKMrrrrnpsW4Na8GOupLhI1ETmDshWNMTri2Pj7MH7L0Q+ 24rAOSG64PluY5EPM8RGWwN0mp3QKld/RSWL+v0K6LmIkxtxO9fShS9Ujjaa2Cglu230 BjZO4xqTj02eInxbdJY3HZhCBrJBYVtGvQSsbXzirddWtSfi03yTrgvLV5ift8nZeHbg CTFg== MIME-Version: 1.0 X-Received: by 10.50.4.42 with SMTP id h10mr8527669igh.37.1444372904721; Thu, 08 Oct 2015 23:41:44 -0700 (PDT) Received: by 10.36.46.15 with HTTP; Thu, 8 Oct 2015 23:41:44 -0700 (PDT) In-Reply-To: References: Date: Thu, 8 Oct 2015 23:41:44 -0700 Message-ID: Subject: Re: IWM 3160 fatal firmware error From: Adrian Chadd To: Felix Johnson Cc: "freebsd-wireless@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-wireless@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Discussions of 802.11 stack, tools device driver development." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Oct 2015 06:41:45 -0000 Hi! This is a side effect from the openbsd driver that was ported. Yes, it needs fixing. :( The intel firmware for iwm NICs requires you to jump through hoops to setup MAC and PHY contexts in the firmware. Once you've added a MAC or PHY context, you can't re-add it - you have to either modify it, or delete it and re-add it. The OpenBSD driver doesn't do it like the linux driver does - it tries adding the MAC context upon association, and relied upon doing full NIC reset before changing state. I tried to fix the obvious cases in FreeBSD by doing some very basic tracking of whether we've added a MAC context but it never was "completely right" and so yeah, you still get firmware assertions. Sorry :( If anything goes wrong during association then there's a good chance the firmware will panic. Now ideally we'd fix this in FreeBSD to act like linux - you add the MAC context when you create a VAP, and you just modify it whenever you associate/disassociate. However, someone has to sit down with the linux driver and map out all of the places they're updating the firmware state and jumping through some pretty complicated hoops. I don't have the energy to do it myself. (But if someone does tidy this all up then I'll give 11n and 11ac support a go.) -adrian On 8 October 2015 at 23:37, Felix Johnson wrote: > Hello, > > First off - thank you for working on the iwm driver! > > I was able to configure my iwm 3160 to talk to the AP with WPA-PSK, and > download a few files. > > Unfortunately, I keep getting fatal firmware errors. There is a device > error log (below), > and if I call 'service netif restart' I can usually get it running again, > though only for 30 seconds > to a few minutes. > > I downloaded the latest 11 snapshot for amd64, that's what I'm trying it > with. > > Let me know if I can help. > > Felix > > (top part is dmesg) > > iwm0: mem 0xf7c00000-0xf7c01fff irq 19 > at device 0.0 on pci2 > iwm0: revision: 0x160, firmware 25.228 (API ver. 9) > iwm0: iwm_update_edca: called > iwm0: dumping device error log > iwm0: Start IWL Error Log Dump: > iwm0: Status: 0x3, count: 6 > iwm0: 0x00003001 | ADVANCED_SYSASSERT > iwm0: 00A00220 | uPc > iwm0: 00000000 | branchlink1 > iwm0: 00000BA4 | branchlink2 > iwm0: 00014B7C | interruptlink1 > iwm0: 00722153 | interruptlink2 > iwm0: 00000001 | data1 > iwm0: 00000000 | data2 > iwm0: DEADBEEF | data3 > iwm0: 13814CA7 | beacon time > iwm0: A0E7A35D | tsf low > iwm0: 00000585 | tsf hi > iwm0: 00000000 | time gp1 > iwm0: 0151DAD8 | time gp2 > iwm0: 00000000 | time gp3 > iwm0: 000419E4 | uCode version > iwm0: 00000164 | hw version > iwm0: 00809004 | board version > iwm0: 0925002B | hcmd > iwm0: 240220C0 | isr0 > iwm0: 01000000 | isr1 > iwm0: 00000002 | isr2 > iwm0: 0040C0C0 | isr3 > iwm0: 00000001 | isr4 > iwm0: 01000112 | isr_pref > iwm0: 00000000 | wait_event > iwm0: 000000C0 | l2p_control > iwm0: 00018030 | l2p_duration > iwm0: 0000003F | l2p_mhvalid > iwm0: 00000081 | l2p_addr_match > iwm0: 00000005 | lmpm_pmg_sel > iwm0: 20111734 | timestamp > iwm0: 0000E0F0 | flow_handler > iwm0: driver status: > iwm0: tx ring 0: qid=0 cur=2 queued=0 > iwm0: tx ring 1: qid=1 cur=0 queued=0 > iwm0: tx ring 2: qid=2 cur=0 queued=0 > iwm0: tx ring 3: qid=3 cur=0 queued=0 > iwm0: tx ring 4: qid=4 cur=0 queued=0 > iwm0: tx ring 5: qid=5 cur=0 queued=0 > iwm0: tx ring 6: qid=6 cur=0 queued=0 > iwm0: tx ring 7: qid=7 cur=0 queued=0 > iwm0: tx ring 8: qid=8 cur=0 queued=0 > iwm0: tx ring 9: qid=9 cur=38 queued=0 > iwm0: tx ring 10: qid=10 cur=0 queued=0 > iwm0: tx ring 11: qid=11 cur=0 queued=0 > iwm0: tx ring 12: qid=12 cur=0 queued=0 > iwm0: tx ring 13: qid=13 cur=0 queued=0 > iwm0: tx ring 14: qid=14 cur=0 queued=0 > iwm0: tx ring 15: qid=15 cur=0 queued=0 > iwm0: tx ring 16: qid=16 cur=0 queued=0 > iwm0: tx ring 17: qid=17 cur=0 queued=0 > iwm0: tx ring 18: qid=18 cur=0 queued=0 > iwm0: tx ring 19: qid=19 cur=0 queued=0 > iwm0: rx ring: cur=229 > iwm0: 802.11 state 3 > iwm0: fatal firmware error > iwm0: iwm_auth: binding cmd > iwm0: iwm_newstate: could not move to auth state: 35 > iwm0: iwm_auth: failed to set multicast > iwm0: iwm_newstate: could not move to auth state: 6 > iwm0: could not initiate scan > iwm0: iwm_update_edca: called > iwm0: iwm_update_edca: called > iwm0: iwm_update_edca: called > iwm0: iwm_update_edca: called > iwm0: dumping device error log > iwm0: Start IWL Error Log Dump: > iwm0: Status: 0x3, count: 6 > iwm0: 0x00003001 | ADVANCED_SYSASSERT > iwm0: 000002F0 | uPc > iwm0: 00000000 | branchlink1 > iwm0: 00000BA4 | branchlink2 > iwm0: 00014B7C | interruptlink1 > iwm0: 00722153 | interruptlink2 > iwm0: 00000001 | data1 > iwm0: 00000000 | data2 > iwm0: DEADBEEF | data3 > iwm0: 003FE597 | beacon time > iwm0: 00001A68 | tsf low > iwm0: 00000000 | tsf hi > iwm0: 00000000 | time gp1 > iwm0: 00001A68 | time gp2 > iwm0: 00000000 | time gp3 > iwm0: 000419E4 | uCode version > iwm0: 00000164 | hw version > iwm0: 00809004 | board version > iwm0: 091F002B | hcmd > iwm0: 00022081 | isr0 > iwm0: 00000000 | isr1 > iwm0: 00000002 | isr2 > iwm0: 0040E4C0 | isr3 > iwm0: 00000001 | isr4 > iwm0: 01002112 | isr_pref > iwm0: 00000000 | wait_event > iwm0: 00000850 | l2p_control > iwm0: 00000020 | l2p_duration > iwm0: 00000000 | l2p_mhvalid > iwm0: 00000000 | l2p_addr_match > iwm0: 00000005 | lmpm_pmg_sel > iwm0: 20111734 | timestamp > iwm0: 00002028 | flow_handler > iwm0: driver status: > iwm0: tx ring 0: qid=0 cur=2 queued=2 > iwm0: tx ring 1: qid=1 cur=0 queued=0 > iwm0: tx ring 2: qid=2 cur=0 queued=0 > iwm0: tx ring 3: qid=3 cur=0 queued=0 > iwm0: tx ring 4: qid=4 cur=0 queued=0 > iwm0: tx ring 5: qid=5 cur=0 queued=0 > iwm0: tx ring 6: qid=6 cur=0 queued=0 > iwm0: tx ring 7: qid=7 cur=0 queued=0 > iwm0: tx ring 8: qid=8 cur=0 queued=0 > iwm0: tx ring 9: qid=9 cur=32 queued=0 > iwm0: tx ring 10: qid=10 cur=0 queued=0 > iwm0: tx ring 11: qid=11 cur=0 queued=0 > iwm0: tx ring 12: qid=12 cur=0 queued=0 > iwm0: tx ring 13: qid=13 cur=0 queued=0 > iwm0: tx ring 14: qid=14 cur=0 queued=0 > iwm0: tx ring 15: qid=15 cur=0 queued=0 > iwm0: tx ring 16: qid=16 cur=0 queued=0 > iwm0: tx ring 17: qid=17 cur=0 queued=0 > iwm0: tx ring 18: qid=18 cur=0 queued=0 > iwm0: tx ring 19: qid=19 cur=0 queued=0 > iwm0: rx ring: cur=33 > iwm0: 802.11 state 2 > iwm0: fatal firmware error > iwm0: iwm_auth: binding cmd > iwm0: iwm_newstate: could not move to auth state: 35 > iwm0: could not initiate scan > iwm0: iwm_update_edca: called > iwm0: iwm_update_edca: called > iwm0: dumping device error log > iwm0: Start IWL Error Log Dump: > iwm0: Status: 0x3, count: 6 > iwm0: 0x00003001 | ADVANCED_SYSASSERT > iwm0: 000002B0 | uPc > iwm0: 00000000 | branchlink1 > iwm0: 00000BA4 | branchlink2 > iwm0: 00014B7C | interruptlink1 > iwm0: 00722153 | interruptlink2 > iwm0: 00000001 | data1 > iwm0: 00000000 | data2 > iwm0: DEADBEEF | data3 > iwm0: 00000000 | beacon time > iwm0: 0126EE0C | tsf low > iwm0: 00000000 | tsf hi > iwm0: 00000000 | time gp1 > iwm0: 0126EE0D | time gp2 > iwm0: 00000000 | time gp3 > iwm0: 000419E4 | uCode version > iwm0: 00000164 | hw version > iwm0: 00809004 | board version > iwm0: 0923002B | hcmd > iwm0: 00022080 | isr0 > iwm0: 01000000 | isr1 > iwm0: 00000002 | isr2 > iwm0: 0041C0C0 | isr3 > iwm0: 00000001 | isr4 > iwm0: 01000112 | isr_pref > iwm0: 00000000 | wait_event > iwm0: 00000080 | l2p_control > iwm0: 00010000 | l2p_duration > iwm0: 0000003F | l2p_mhvalid > iwm0: 00000000 | l2p_addr_match > iwm0: 00000005 | lmpm_pmg_sel > iwm0: 20111734 | timestamp > iwm0: 00004050 | flow_handler > iwm0: driver status: > iwm0: tx ring 0: qid=0 cur=1 queued=0 > iwm0: tx ring 1: qid=1 cur=0 queued=0 > iwm0: tx ring 2: qid=2 cur=0 queued=0 > iwm0: tx ring 3: qid=3 cur=0 queued=0 > iwm0: tx ring 4: qid=4 cur=0 queued=0 > iwm0: tx ring 5: qid=5 cur=0 queued=0 > iwm0: tx ring 6: qid=6 cur=0 queued=0 > iwm0: tx ring 7: qid=7 cur=0 queued=0 > iwm0: tx ring 8: qid=8 cur=0 queued=0 > iwm0: tx ring 9: qid=9 cur=36 queued=0 > iwm0: tx ring 10: qid=10 cur=0 queued=0 > iwm0: tx ring 11: qid=11 cur=0 queued=0 > iwm0: tx ring 12: qid=12 cur=0 queued=0 > iwm0: tx ring 13: qid=13 cur=0 queued=0 > iwm0: tx ring 14: qid=14 cur=0 queued=0 > iwm0: tx ring 15: qid=15 cur=0 queued=0 > iwm0: tx ring 16: qid=16 cur=0 queued=0 > iwm0: tx ring 17: qid=17 cur=0 queued=0 > iwm0: tx ring 18: qid=18 cur=0 queued=0 > iwm0: tx ring 19: qid=19 cur=0 queued=0 > iwm0: rx ring: cur=69 > iwm0: 802.11 state 1 > iwm0: fatal firmware error > iwm0: iwm_auth: binding cmd > iwm0: iwm_newstate: could not move to auth state: 35 > iwm0: could not initiate scan > _______________________________________________ > freebsd-wireless@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-wireless > To unsubscribe, send any mail to "freebsd-wireless-unsubscribe@freebsd.org"