mwifiex: add more dump information for PCIe interface
authorAmitkumar Karwar <akarwar@marvell.com>
Thu, 18 Sep 2014 11:18:50 +0000 (07:18 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 30 Sep 2014 17:17:14 +0000 (13:17 -0400)
We will now dump MAC, APU, CIU, ICU firmware memory segments also
for PCIe interface. Following is the updated userspace script which
reads firmware dump information.

    mwifiex_pcie_fw_dump.sh: #!/bin/bash
    ethtool --set-dump mlan0 0
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/ITCM.log

    ethtool --set-dump mlan0 1
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/DTCM.log

    ethtool --set-dump mlan0 2
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/SQRAM.log

    ethtool --set-dump mlan0 3
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/IRAM.log

    ethtool --set-dump mlan0 4
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/APU.log

    ethtool --set-dump mlan0 5
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/CIU.log

    ethtool --set-dump mlan0 6
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/ICU.log

    ethtool --set-dump mlan0 7
    ethtool --get-dump mlan0
    ethtool --get-dump mlan0 data /tmp/MAC.log

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/main.h
drivers/net/wireless/mwifiex/pcie.c

index 1a99999..022486e 100644 (file)
@@ -413,6 +413,7 @@ struct mwifiex_roc_cfg {
 #define FW_DUMP_MAX_NAME_LEN           8
 #define FW_DUMP_HOST_READY             0xEE
 #define FW_DUMP_DONE                   0xFF
+#define FW_DUMP_READ_DONE              0xFE
 
 struct memory_type_mapping {
        u8 mem_name[FW_DUMP_MAX_NAME_LEN];
index 803b830..74c0db9 100644 (file)
@@ -42,6 +42,10 @@ static struct memory_type_mapping mem_type_mapping_tbl[] = {
        {"DTCM", NULL, 0, 0xF1},
        {"SQRAM", NULL, 0, 0xF2},
        {"IRAM", NULL, 0, 0xF3},
+       {"APU", NULL, 0, 0xF4},
+       {"CIU", NULL, 0, 0xF5},
+       {"ICU", NULL, 0, 0xF6},
+       {"MAC", NULL, 0, 0xF7},
 };
 
 static int
@@ -2310,6 +2314,12 @@ static void mwifiex_pcie_fw_dump_work(struct mwifiex_adapter *adapter)
 
                if (memory_size == 0) {
                        dev_info(adapter->dev, "Firmware dump Finished!\n");
+                       ret = mwifiex_write_reg(adapter, creg->fw_dump_ctrl,
+                                               FW_DUMP_READ_DONE);
+                       if (ret) {
+                               dev_err(adapter->dev, "PCIE write err\n");
+                               goto done;
+                       }
                        break;
                }