Skip to content

Enable DCC and memory dump driver on QLI2.0#217

Open
jiegan0107 wants to merge 6 commits intoqualcomm-linux:qcom-6.18.yfrom
jiegan0107:qcom-6.18.y
Open

Enable DCC and memory dump driver on QLI2.0#217
jiegan0107 wants to merge 6 commits intoqualcomm-linux:qcom-6.18.yfrom
jiegan0107:qcom-6.18.y

Conversation

@jiegan0107
Copy link

DCC and memory dump driver will be enabled on QLI2.0 as overlay drivers (no DT solution)

CRs-Fixed: 4401631

…it(DCC)

The DCC is a DMA Engine designed to capture and store data during system
crash or software triggers. The DCC operates based on user inputs via
the debugfs interface. The user gives addresses as inputs and these
addresses are stored in the dcc sram. In case of a system crash or a
manual software trigger by the user through the debugfs interface, the
dcc captures and stores the values at these addresses. This patch
contains the driver which has all the methods pertaining to the debugfs
interface, auxiliary functions to support all the four fundamental
operations of dcc namely read, write, read/modify/write and loop. The
probe method here instantiates all the resources necessary for dcc to
operate mainly the dedicated dcc sram where it stores the values. The
DCC driver can be used for debugging purposes without going for a reboot
since it can perform software triggers as well based on user inputs.

Also add the documentation for debugfs entries which explains the
functionalities of each debugfs file that has been created for dcc.

The following is the justification of using debugfs interface over the
other alternatives like sysfs/ioctls

i) As can be seen from the debugfs attribute descriptions, some of the
debugfs attribute files here contains multiple arguments which needs to
be accepted from the user. This goes against the design style of sysfs.

ii) The user input patterns have been made simple and convenient in this
case with the use of debugfs interface as user doesn't need to shuffle
between different files to execute one instruction as was the case on
using other alternatives.

Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
The config file is created to contain specific debug features such as
DCC/memory dump driver.

Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
Create qcom-dcc dev driver for matching the qcom-dcc driver without DT.

Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
The memory dump driver allows various client subsystems to register
respective dump regions. At the time of deadlocks or cpu hangs these
dump regions are captured to give a snapshot of the system at the
time of the crash.

Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
Create memory dump device driver for matching the memory dump v2 driver
without DT configuration.

Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
Memory dump driver needs a large CMA memory zone for storing memory dump
table. Add codes for reserving CMA memory during the init stage.

Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
@@ -0,0 +1 @@
CONFIG_QCOM_DCC=m
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we add these debug configs into kernel/configs/debug.config?

Copy link
Author

@jiegan0107 jiegan0107 Feb 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as these are overlay drivers, Shiraz has suggested to have separate debug config file for containing the configs.

Message from thread:
Further what Amit was suggesting that these configs shouldn’t be enabled in the default build.
So this branch can carry a arch/arm64/configs/qcom_debug.config fragment that optionally enables these debug features.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants