NetBSD-Bugs archive

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

Re: kern/52767: The wm driver cannot receive traffic on i82583V (rev. 0x00)

Hi, all.

On 2017/11/28 16:45, wrote:
The following reply was made to PR kern/52767; it has been noted by GNATS.

Subject: Re: kern/52767: The wm driver cannot receive traffic on i82583V
  (rev. 0x00)
Date: Tue, 28 Nov 2017 16:43:07 +0900

  >  >  Does it work on Linux?
  >  >
  >  >  I'd also check the NVM. That OUI isn't valid.
  >  Fedora Linux live DVD runs on the machine looks okay.
  >  Linux localhost-live 4.11.8-300.fc26.x86_64 #1 SMP Thu Jun 29 20:09:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  >  Windows 10 is also okay.
  >  FreeBSD or pfSense is not tested yet.
FreeBSD em driver works on the machine.
  The problem may be in the wm driver...
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
  pci1: <ACPI PCI bus> on pcib1
  em0: <Intel(R) PRO/1000 Network Connection 7.6.1-k> port 0xe000-0xe01f mem 0xf7d00000-0xf7d1ffff,0xf7d20000-0xf7d23fff irq 16 at device 0.0 on pci1
  em0: Using an MSI interrupt
  em0: Ethernet address: 0c:e8:5c:**:**:**
  em0: netmap queues/slots: TX 1/1024, RX 1/1024

My 82583V machine has an MSI-X cap:

  Capability register at 0xc8
    type: 0x01 (Power Management)
  Capability register at 0xd0
    type: 0x05 (MSI)
  Capability register at 0xe0
    type: 0x10 (PCI Express)
  Capability register at 0xa0
    type: 0x11 (MSI-X)
  MSI-X Capability Register
    Message Control register: 0x0000
      Table Size: 1
      Function Mask: off
      MSI-X Enable: off
    Table offset register: 0x00000003
      Table offset: 0x00000000
      BIR: 0x3
    Pending bit array register: 0x00002003
      Pending bit array offset: 0x00002000
      BIR: 0x3

but the document doesn't say anything about MSI-X.
The description in the document says 0xa0 is reserved.

Address Item			Next Pointer
0xC8-CF PCI power management	0xD0
0xD0-DF MSI			0xE0
0xA0-AB Reserved		0x00   <======= this!
0xE0-F3 PCIe Capabilities	0xA0

And more, neither linux nor FreeBSD don't use MSI-X.

Could you test the following patch?

Index: if_wm.c
RCS file: /cvsroot/src/sys/dev/pci/if_wm.c,v
retrieving revision 1.544
diff -u -p -r1.544 if_wm.c
--- if_wm.c	22 Nov 2017 02:36:52 -0000	1.544
+++ if_wm.c	28 Nov 2017 09:19:54 -0000
@@ -1853,7 +1853,13 @@ wm_attach(device_t parent, device_t self
/* Allocation settings */
 	max_type = PCI_INTR_TYPE_MSIX;
-	counts[PCI_INTR_TYPE_MSIX] = sc->sc_nqueues + 1;
+	/*
+	 * 82583 has a MSI-X capability in the PCI configuration space but
+	 * it doesn't support it. At least the document doesn't say anything
+	 * about MSI-X.
+	 */
+	    = (sc->sc_type == WM_T_82583) ? 0 : sc->sc_nqueues + 1;
 	counts[PCI_INTR_TYPE_MSI] = 1;
 	counts[PCI_INTR_TYPE_INTX] = 1;
 	/* overridden by disable flags */

                SAITOH Masanobu (

Home | Main Index | Thread Index | Old Index