• Emmanuel Grumbach's avatar
    iwlwifi: mvm: send udev event upon firmware error to dump logs · 1bd3cbc1
    Emmanuel Grumbach authored
    When the firmware asserts, the driver will dump the firmware
    state to an internal buffer. This buffer is kept aside until
    it is dumped through debugfs. Once an external application
    fetched the data, the buffer is freed and a new buffer can
    be allocated in case another assert occurs.
    
    A udev event is sent to trigger an external application.
    
    A simple rule like:
    DRIVER=="iwlwifi", ACTION=="change", RUN+="/sbin/dump_sram.sh"
    
    can fetch the data from debugfs.
    
    Here is my dump_sram.sh:
    
    phyname=$(basename ${DEVPATH})
    date=$(date +%F_%H_%M)
    filename=/var/log/iwl-sram-${phyname}-${date}.bin
    cat /sys/kernel/debug/ieee80211/${phyname}/iwlwifi/iwlmvm/fw_error_dump > ${filename}
    
    The current SRAM size is 80KB so, currently:
    $ ls -lh iwl-sram-phy0-2014-03-16_13_14.bin
    -rw-r--r-- 1 emmanuel emmanuel 81K Mar 16 13:15 iwl-sram-phy0-2014-03-16_13_14.bin
    
    and after compression:
    $ ls -lh iwl-sram-phy0-2014-03-16_13_14.bin.xz
    -rw-r--r-- 1 emmanuel emmanuel 13K Mar 16 13:15 iwl-sram-phy0-2014-03-16_13_14.bin.xz
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    1bd3cbc1
fw-error-dump.h 3.9 KB