nfp: look for firmware image by device serial number and PCI name
authorJakub Kicinski <jakub.kicinski@netronome.com>
Wed, 26 Jul 2017 18:09:47 +0000 (11:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Jul 2017 00:26:26 +0000 (17:26 -0700)
commit9511f2980d9367713c65991edeb7608c9d78dbeb
treecf59dae25bb1705d19e28b67a10ac06807b30e5e
parent26a8985fa52e3c3087794d1329cfdafceae8510c
nfp: look for firmware image by device serial number and PCI name

We generally look up firmware by card type, but that doesn't allow
users who have more than one card of the same type in their system
to select firmware per adapter.

Unfortunately user space firmware helper seems fraught with
difficulties and to be on its way out.  In particular support for
handling firmware uevents have been dropped from systemd and most
distributions don't enable the FW fallback by default any more.

To allow users selecting firmware for a particular device look up
firmware names by serial and pci_name().  Use the direct lookup to
disable generating uevents when enabled in Kconfig and not print
any warnings to logs if adapter-specific files are missing.  Users
can place in /lib/firmware/netronome files named:

pci-${pci_name}.nffw
serial-${serial}.nffw

to target a specific card.  E.g.:

pci-0000:04:00.0.nffw
pci-0000:82:00.0.nffw
serial-00-aa-bb-11-22-33-10-ff.nffw

We use the full serial number including the interface id, as it
appears in lspci output (bytes separated by '-').

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_main.c