Ping. Michael, could you please apply my patch or let me know if there are any issues with it?
Thanks, Martin On 18/06/18 11:41, Martin Habets wrote: > The first adapters in this family are X2522-10, X2522-25, X2541 and > X2542. > > These no longer use PCI BAR 0 for I/O, but use that for memory. > In other words, BAR 2 on SFN8xxx adapters now becomes BAR 0. > --- > src/drivers/net/sfc/efx_common.c | 12 +++++++++--- > src/drivers/net/sfc/sfc_hunt.c | 2 ++ > 2 files changed, 11 insertions(+), 3 deletions(-) > > diff --git a/src/drivers/net/sfc/efx_common.c > b/src/drivers/net/sfc/efx_common.c > index 79a994355d02..40388770789a 100644 > --- a/src/drivers/net/sfc/efx_common.c > +++ b/src/drivers/net/sfc/efx_common.c > @@ -72,13 +72,19 @@ void efx_probe(struct net_device *netdev, enum > efx_revision revision) > struct efx_nic *efx = netdev_priv(netdev); > struct pci_device *pci = container_of(netdev->dev, > struct pci_device, dev); > + unsigned int reg = PCI_BASE_ADDRESS_0; > + uint32_t bar_low; > > efx->netdev = netdev; > efx->revision = revision; > > - /* MMIO bar */ > - efx->mmio_start = pci_bar_start(pci, PCI_BASE_ADDRESS_2); > - efx->mmio_len = pci_bar_size(pci, PCI_BASE_ADDRESS_2); > + /* Find the memory bar to use */ > + pci_read_config_dword(pci, reg, &bar_low); > + if ((bar_low & PCI_BASE_ADDRESS_IO_MASK) == PCI_BASE_ADDRESS_SPACE_IO) > + reg = PCI_BASE_ADDRESS_2; > + > + efx->mmio_start = pci_bar_start(pci, reg); > + efx->mmio_len = pci_bar_size(pci, reg); > efx->membase = ioremap(efx->mmio_start, efx->mmio_len); > > DBGCP(efx, "BAR of %lx bytes at phys %lx mapped at %p\n", > diff --git a/src/drivers/net/sfc/sfc_hunt.c b/src/drivers/net/sfc/sfc_hunt.c > index 25780ffd8e3a..dd5f7043f1ce 100644 > --- a/src/drivers/net/sfc/sfc_hunt.c > +++ b/src/drivers/net/sfc/sfc_hunt.c > @@ -142,6 +142,7 @@ static void hunt_mcdi_copyin(struct hunt_nic *hunt, > hdr_len = sizeof(hdr); > > memcpy(pdu, &hdr, hdr_len); > + assert(inlen <= MCDI_CTL_SDU_LEN_MAX_V2); > memcpy(pdu + hdr_len, inbuf, inlen); > > wmb(); /* Sync the data before ringing the doorbell */ > @@ -1314,6 +1315,7 @@ const struct efx_nic_type hunt_nic_type = { > > static struct pci_device_id hunt_nics[] = { > PCI_ROM(0x1924, 0x0a03, "SFC9220", "Solarflare SFN8xxx Adapter", 0), > + PCI_ROM(0x1924, 0x0b03, "SFC9250", "Solarflare X25xx Adapter", 0), > }; > > struct pci_driver hunt_driver __pci_driver = { > > _______________________________________________ > ipxe-devel mailing list > ipxe-devel@lists.ipxe.org > https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel > _______________________________________________ ipxe-devel mailing list ipxe-devel@lists.ipxe.org https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel