mirror of https://github.com/ipxe/ipxe.git
[sfc] Add support for X25xx adapters
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. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/79/head
parent
d2063b7693
commit
af1860711a
|
@ -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",
|
||||
|
|
|
@ -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 = {
|
||||
|
|
Loading…
Reference in New Issue