summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Wang <wangroger@google.com>2020-06-24 17:22:32 +0800
committerAhmed ElArabawy <arabawy@google.com>2020-06-30 11:04:52 -0700
commit5c2971ce35b875eb9580358ad99d30807d42705b (patch)
treedc6202b528878776b9484dd73ab570e0e3cd02d8
parentfa0e9486749f6683745a3957b6c1cd21055b90ea (diff)
downloadbcm43752-5c2971ce35b875eb9580358ad99d30807d42705b.tar.gz
bcmdhd: auto detect map file
In this comment, we support loading different map file for 43752 and 4389. Bug: 158628077 Test: Trigger trap and get dump reason on 4389 and 43752 chips Change-Id: I71017030017630318b28e62339e2111492460e05 Signed-off-by: Roger Wang <wangroger@google.com> Signed-off-by: Ahmed ElArabawy <arabawy@google.com>
-rwxr-xr-xKbuild4
-rw-r--r--dhd_linux.c8
2 files changed, 11 insertions, 1 deletions
diff --git a/Kbuild b/Kbuild
index 0595e23..e8ee5c5 100755
--- a/Kbuild
+++ b/Kbuild
@@ -35,6 +35,7 @@ CONFIG_DHD_OF_SUPPORT=y
CONFIG_BCMDHD_FW_PATH="\"/vendor/firmware/fw_bcm43752.bin\""
CONFIG_BCMDHD_NVRAM_PATH="\"/vendor/etc/wifi/bcmdhd_43752.cal\""
CONFIG_BCMDHD_CLM_PATH="\"/vendor/etc/wifi/bcmdhd_clm_43752.blob\""
+CONFIG_BCMDHD_MAP_PATH="\"/vendor/etc/wifi/rtecdc_43752.map\""
CONFIG_BCMDHD_4375b0_FW_PATH="\"/vendor/firmware/fw_bcm4375b0.bin\""
CONFIG_BCMDHD_4375b0_NVRAM_PATH="\"/vendor/etc/wifi/bcmdhd_4375.cal\""
CONFIG_BCMDHD_4375b0_CLM_PATH="\"/vendor/etc/wifi/bcmdhd_clm_4375b0.blob\""
@@ -48,6 +49,7 @@ CONFIG_BCMDHD_4385_CLM_PATH="\"/vendor/etc/wifi/bcmdhd_clm_4385.blob\""
CONFIG_BCMDHD_4389_FW_PATH="\"/vendor/firmware/fw_bcm4389.bin\""
CONFIG_BCMDHD_4389_NVRAM_PATH="\"/vendor/etc/wifi/bcmdhd_4389.cal\""
CONFIG_BCMDHD_4389_CLM_PATH="\"/vendor/etc/wifi/bcmdhd_clm_4389.blob\""
+CONFIG_BCMDHD_4389_MAP_PATH="\"/vendor/etc/wifi/rtecdc_4389.map\""
CONFIG_BROADCOM_WIFI_RESERVED_MEM=y
CONFIG_DHD_USE_STATIC_BUF=y
CONFIG_DHD_USE_SCHED_SCAN=y
@@ -67,6 +69,7 @@ DHDCFLAGS += -DCONFIG_DHD_OF_SUPPORT=$(CONFIG_DHD_OF_SUPPORT)
DHDCFLAGS += -DCONFIG_BCMDHD_FW_PATH=$(CONFIG_BCMDHD_FW_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_NVRAM_PATH=$(CONFIG_BCMDHD_NVRAM_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_CLM_PATH=$(CONFIG_BCMDHD_CLM_PATH)
+DHDCFLAGS += -DCONFIG_BCMDHD_MAP_PATH=$(CONFIG_BCMDHD_MAP_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_4375b0_FW_PATH=$(CONFIG_BCMDHD_4375b0_FW_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_4375b0_NVRAM_PATH=$(CONFIG_BCMDHD_4375b0_NVRAM_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_4375b0_CLM_PATH=$(CONFIG_BCMDHD_4375b0_CLM_PATH)
@@ -80,6 +83,7 @@ DHDCFLAGS += -DCONFIG_BCMDHD_4385_CLM_PATH=$(CONFIG_BCMDHD_4385_CLM_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_4389_FW_PATH=$(CONFIG_BCMDHD_4389_FW_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_4389_NVRAM_PATH=$(CONFIG_BCMDHD_4389_NVRAM_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_4389_CLM_PATH=$(CONFIG_BCMDHD_4389_CLM_PATH)
+DHDCFLAGS += -DCONFIG_BCMDHD_4389_MAP_PATH=$(CONFIG_BCMDHD_4389_MAP_PATH)
DHDCFLAGS += -DCONFIG_BROADCOM_WIFI_RESERVED_MEM=$(CONFIG_BROADCOM_WIFI_RESERVED_MEM)
DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF=$(CONFIG_DHD_USE_STATIC_BUF)
DHDCFLAGS += -DCONFIG_DHD_USE_SCHED_SCAN=$(CONFIG_DHD_USE_SCHED_SCAN)
diff --git a/dhd_linux.c b/dhd_linux.c
index cfa2f27..d447b2e 100644
--- a/dhd_linux.c
+++ b/dhd_linux.c
@@ -18618,6 +18618,7 @@ dhd_mem_dump(void *handle, void *event_info, u8 event)
char memdump_type[DHD_MEMDUMP_TYPE_LONGSTR_LEN];
char pc_fn[DHD_FUNC_STR_LEN] = "\0";
char lr_fn[DHD_FUNC_STR_LEN] = "\0";
+ char *map_path = VENDOR_PATH CONFIG_BCMDHD_MAP_PATH;
trap_t *tr;
#endif /* DHD_COREDUMP */
@@ -18686,8 +18687,13 @@ dhd_mem_dump(void *handle, void *event_info, u8 event)
DHD_MEMDUMP_TYPE_LONGSTR_LEN, dhdp->debug_dump_subcmd);
if (dhdp->memdump_type == DUMP_TYPE_DONGLE_TRAP &&
dhdp->dongle_trap_occured == TRUE) {
+#ifdef AUTO_CHIP_DETECTION
+ if (dhd_bus_chip_id(dhdp) == 0x4389) {
+ map_path = VENDOR_PATH CONFIG_BCMDHD_4389_MAP_PATH;
+ }
+#endif /* AUTO_CHIP_DETECTION */
tr = &dhdp->last_trap_info;
- dhd_lookup_map(dhdp->osh, map_file_path,
+ dhd_lookup_map(dhdp->osh, map_path,
ltoh32(tr->epc), pc_fn, ltoh32(tr->r14), lr_fn);
sprintf(&memdump_type[strlen(memdump_type)], "_%.79s_%.79s",
pc_fn, lr_fn);