Skip to content
  • Inaky Perez-Gonzalez's avatar
    wimax/i2400m: rework bootrom initialization to be more flexible · aba3792a
    Inaky Perez-Gonzalez authored
    
    
    This modifies the bootrom initialization code of the i2400m driver so
    it can more easily support upcoming hardware.
    
    Currently, the code detects two types of barkers (magic numbers) sent
    by the device to indicate the types of firmware it would take (signed
    vs non-signed).
    
    This schema is extended so that multiple reboot barkers are
    recognized; upcoming hw will expose more types barkers which will have
    to match a header in the firmware image before we can load it.
    
    For that, a barker database is introduced; the first time the device
    sends a barker, it is matched in the database. That gives the driver
    the information needed to decide how to upload the firmware and which
    types of firmware to use. The database can be populated from module
    parameters.
    
    The execution flow is not altered; a new function
    (i2400m_is_boot_barker) is introduced to determine in the RX path if
    the device has sent a boot barker. This function is becoming heavier,
    so it is put away from the hot reception path [this is why there is
    some reorganization in sdio-rx.c:i2400ms_rx and
    usb-notifc.c:i2400mu_notification_grok()].
    
    The documentation on the process has also been updated.
    
    All these modifications are heavily based on previous work by Dirk
    Brandewie <dirk.brandewie@intel.com>.
    
    Signed-off-by: default avatarInaky Perez-Gonzalez <inaky@linux.intel.com>
    aba3792a