Browse Source

mwifiex: add more dump information for PCIe interface

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>
Amitkumar Karwar 11 years ago
parent
commit
7e174833de
2 changed files with 11 additions and 0 deletions
  1. 1 0
      drivers/net/wireless/mwifiex/main.h
  2. 10 0
      drivers/net/wireless/mwifiex/pcie.c

+ 1 - 0
drivers/net/wireless/mwifiex/main.h

@@ -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];

+ 10 - 0
drivers/net/wireless/mwifiex/pcie.c

@@ -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;
 		}