Re: [PATCH 5/6] ath10k: add memory dump support for QCA6174/QCA9377
From: Kalle Valo <hidden>
Date: 2017-11-01 10:49:51
Kalle Valo [off-list ref] writes:
From: Alan Liu <redacted> Add memory dump to the firmware crash data file which is provided to user=
space
via devcoredump interface. This makes it easier for firmware engineers to=
debug
firmware crashes. Due to increased memory consumption the memory dump is disabled by defaul=
t. To
enable it make sure that bit 3 is set in coredump_mask module parameter: modprobe ath10k_core coredump_mask=3D0xffffffff When RAMDUMP is enabled a buffer for the dump is allocated with vmalloc d=
uring
device probe. The actual memory layout is different in hardware versions =
and
the layouts are defined in coredump.c. The memory is split to regions and=
, to
get even finegrained control of what to copy, the region can split to sma=
ller
sections as not all registers are readable (which could cause the whole s=
ystem
to stall). Signed-off-by: Alan Liu <redacted> [kvalo@qca.qualcomm.com: refactoring and cleanup] Signed-off-by: Kalle Valo <redacted>
[...]
+ /* To get IRAM dump, the host driver needs to switch target
+ * ram config from DRAM to IRAM.
+ */
+ if (current_region->type =3D=3D ATH10K_MEM_REGION_TYPE_IRAM1 ||
+ current_region->type =3D=3D ATH10K_MEM_REGION_TYPE_IRAM2) {
+ shift =3D current_region->start >> 20;
+
+ ret =3D ath10k_pci_set_ram_config(ar, shift);
+ if (!ret) {
+ ath10k_warn(ar, "failed to switch ram config to IRAM for section %s:=%d\n",
+ current_region->name, ret);
A colleague noticed that there's a bug here, it should be "if (ret)". I'll fix that in the next version. --=20 Kalle Valo=