55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
* Qualcomm MSM Core Hang Detection
|
|
|
|
Core Hang Detection provides the three sysfs entries for configuring
|
|
threshold, PMU event mux select and to enable hang detection.
|
|
|
|
If core is hung for threshold time (value X 10ns) and no
|
|
heart beat event from pmu to core hang monitor detection, core hang
|
|
interrupt would be generated to reset the SOC via secure watchdog
|
|
to collect all cores context.
|
|
|
|
PMU event mux select can be programmed to one of the supported
|
|
events, for example-
|
|
1) Load Instruction executed,
|
|
2) Store Instructions executed
|
|
3) Instruction architecturally executed and etc.
|
|
|
|
Writing 1 into enable sysfs entry, enables core hang detection and
|
|
if there is no selected PMU mux event for 10ns core hang counter
|
|
gets incremented. Once counter reaches the programmed threshold value,
|
|
core hang interrupts generated to reset the SOC.
|
|
|
|
|
|
The device tree parameters for the core hang detection are:
|
|
|
|
Required properties:
|
|
|
|
- compatible : "qcom,core-hang-detect"
|
|
- qcom,threshold-arr :
|
|
Array of APCS_ALIAS*_CORE_HANG_THRESHOLD register address
|
|
for each core.
|
|
- qcom,config-arr :
|
|
Array of APCS_ALIAS*_CORE_HANG_CONFIG register address
|
|
for each core.
|
|
|
|
Optional properties:
|
|
|
|
Example:
|
|
For msm8937:
|
|
qcom,chd {
|
|
compatible = "qcom,core-hang-detect";
|
|
qcom,threshold-arr = <0xB088094 0xB098094 0xB0A8094
|
|
0xB0B8094 0xB188094 0xB198094 0xB1A8094 0xB1B8094>;
|
|
qcom,config-arr = <0xB08809C 0xB09809C 0xB0A809C
|
|
0xB0B809C 0xB18809C 0xB19809C 0xB1A809C 0xB1B809C>;
|
|
};
|
|
|
|
For msmtitanium:
|
|
qcom,chd {
|
|
compatible = "qcom,core-hang-detect";
|
|
qcom,threshold-arr = <0xB1880B0 0xB1980B0 0xB1A80B0
|
|
0xB1B80B0 0xB0880B0 0xB0980B0 0xB0A80B0 0xB0B80B0>;
|
|
qcom,config-arr = <0xB1880B8 0xB1980B8 0xB1A80B8
|
|
0xB1B80B8 0xB0880B8 0xB0980B8 0xB0A80B8 0xB0B80B8>;
|
|
};
|