Thread (12 messages) 12 messages, 2 authors, 2017-11-01

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=
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help