• Christian Lamparter's avatar
    ath9k: add loader for AR92XX (and older) pci(e) · 5a4f2040
    Christian Lamparter authored
    Atheros cards with a AR92XX generation (and older) chip usually
    store their pci(e) initialization vectors on an external eeprom chip.
    However these chips technically don't need the eeprom chip attached,
    the AR9280 Datasheet in section "6.1.2 DEVICE_ID" describes that
    "... if the EEPROM content is not valid, a value of 0xFF1C returns
    when read from the register". So, they will show up on the system's
    pci bus. However in that state, ath9k can't load, since it relies
    on having the correct pci-id, otherwise it doesn't know what chip it
    actually is. This happens on many embedded devices like routers
    and accesspoint since they want to keep the BOM low and store the
    pci(e) initialization vectors together with the calibration data
    on the system's FLASH, which is out of reach of the ath9k chip.
    
    Furthermore, Some devices (like the Cisco Meraki Z1 Cloud Managed
    Teleworker Gateway) need to be able to initialize the PCIe wifi device.
    Normally, this should be done as a pci quirk during the early stages of
    booting linux. However, this isn't possible for devices which have the
    init code for the Atheros chip stored on NAND in an UBI volume.
    Hence, this module can be used to initialize the chip when the
    user-space is ready to extract the init code.
    
    Martin Blumenstingl prodived the following fixes:
    owl-loader: add support for OWL emulation PCI devices
    owl-loader: don't re-scan the bus when ath9k_pci_fixup failed
    owl-loader: use dev_* instead of pr_* logging functions
    owl-loader: auto-generate the eeprom filename as fallback
    owl-loader: add a debug message when swapping the eeprom data
    owl-loader: add missing newlines in log messages
    Reviewed-by: default avatarJulian Calaby <julian.calaby@gmail.com>
    Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
    Signed-off-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    5a4f2040
ath9k_pci_owl_loader.c 5.36 KB