On Mon, Apr 24, 2017 at 08:39:52PM +1000, Jonathan Gray wrote:
> On Mon, Apr 24, 2017 at 12:31:52PM +0200, Robert Blacquiere wrote:
> > 
> > Hi,
> > 
> > I have updated one of our machines from 6.0 to 6.1. 
> > It has 2  dual 10 gb interfaces . One of them a  Intel 82598EB based
> > dual card will not initialize any more. 
> > 
> > The other 10gig works and is based on Intel 82599. 
> > 
> > from dmesg: 
> > 
> > ix0 at pci2 dev 0 function 0 "Intel 82598EB" rev 0x01: mmba is not mem
> > space
> > ix1 at pci2 dev 0 function 1 "Intel 82598EB" rev 0x01: mmba is not mem
> > space
> > 
> > pcidump:
> > 
> > $ doas pcidump -v 2:0:0                                              
> >  2:0:0: Intel 82598EB
> >         0x0000: Vendor ID: 8086 Product ID: 10dd
> >         0x0004: Command: 0007 Status: 0010
> >         0x0008: Class: 02 Subclass: 00 Interface: 00 Revision: 01
> >         0x000c: BIST: 00 Header Type: 80 Latency Timer: 00 Cache Line
> > Size: 10
> >         0x0010: BAR mem 32bit addr: 0xfb220000/0x00020000
> >         0x0014: BAR mem 32bit addr: 0xfb1c0000/0x00040000
> >         0x0018: BAR io addr: 0x0000e020/0x0020
> >         0x001c: BAR mem 32bit addr: 0xfb244000/0x00004000
> >         0x0020: BAR empty (00000000)
> >         0x0024: BAR empty (00000000)
> >         0x0028: Cardbus CIS: 00000000
> >         0x002c: Subsystem Vendor ID: 15d9 Product ID: af80
> >         0x0030: Expansion ROM Base Address: fb180000
> >         0x0038: 00000000
> >         0x003c: Interrupt Pin: 01 Line: 0b Min Gnt: 00 Max Lat: 00
> >         0x0040: Capability 0x01: Power Management
> >                 State: D0
> >         0x0050: Capability 0x05: Message Signalled Interrupts (MSI)
> >         0x0060: Capability 0x11: Extended Message Signalled Interrupts
> > (MSI-X)
> >         0x00a0: Capability 0x10: PCI Express
> >                 Link Speed: 2.5 / 2.5 GT/s Link Width: x4 / x8
> >         0x0100: Enhanced Capability 0x01: Advanced Error Reporting
> >         0x0140: Enhanced Capability 0x03: Device Serial Number
> > 
> > 
> > Any clues on how to enable them again?
> 
> Try this patch to not require a 64 bit BAR:
> 
> Index: sys/dev/pci/if_ix.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/if_ix.c,v
> retrieving revision 1.150
> diff -u -p -r1.150 if_ix.c
> --- sys/dev/pci/if_ix.c       24 Jan 2017 03:57:35 -0000      1.150
> +++ sys/dev/pci/if_ix.c       24 Apr 2017 10:37:09 -0000
> @@ -1550,8 +1550,7 @@ ixgbe_allocate_pci_resources(struct ix_s
>       int                      val;
>  
>       val = pci_conf_read(pa->pa_pc, pa->pa_tag, PCIR_BAR(0));
> -     if (PCI_MAPREG_TYPE(val) != PCI_MAPREG_TYPE_MEM ||
> -         PCI_MAPREG_MEM_TYPE(val) != PCI_MAPREG_MEM_TYPE_64BIT) {
> +     if (PCI_MAPREG_TYPE(val) != PCI_MAPREG_TYPE_MEM) {
>               printf(": mmba is not mem space\n");
>               return (ENXIO);
>       }
> 

With this patch the interfaces attach and are usable again. 

After you patch I looked at the BAR info it looks like the 82598EB uses
32bit BAR and the working 82599 use 62bit BAR. 

ix0 at pci2 dev 0 function 0 "Intel 82598EB" rev 0x01: msi, address
00:25:90:c2:04:06
ix1 at pci2 dev 0 function 1 "Intel 82598EB" rev 0x01: msi, address
00:25:90:c2:04:07
ix2 at pci4 dev 0 function 0 "Intel 82599" rev 0x01: msi, address
90:e2:ba:d9:eb:30
ix3 at pci4 dev 0 function 1 "Intel 82599" rev 0x01: msi, address
90:e2:ba:d9:eb:31


Will there be patch for this in stable? 


Regards

Robert Blacquiere

Reply via email to