xref: /linux/Documentation/ABI/testing/debugfs-driver-dcc (revision 4cbe60cf5ad622f7f45ccc4fa369c9f7a71903b9)
1*4cbe60cfSSouradeep ChowdhuryWhat:           /sys/kernel/debug/dcc/.../ready
2*4cbe60cfSSouradeep ChowdhuryDate:           December 2022
3*4cbe60cfSSouradeep ChowdhuryContact:        Souradeep Chowdhury <quic_schowdhu@quicinc.com>
4*4cbe60cfSSouradeep ChowdhuryDescription:
5*4cbe60cfSSouradeep Chowdhury		This file is used to check the status of the dcc
6*4cbe60cfSSouradeep Chowdhury		hardware if it's ready to take the inputs. A 'Y'
7*4cbe60cfSSouradeep Chowdhury		here indicates dcc is in a ready condition.
8*4cbe60cfSSouradeep Chowdhury		Example:
9*4cbe60cfSSouradeep Chowdhury		cat /sys/kernel/debug/dcc/.../ready
10*4cbe60cfSSouradeep Chowdhury
11*4cbe60cfSSouradeep ChowdhuryWhat:           /sys/kernel/debug/dcc/.../trigger
12*4cbe60cfSSouradeep ChowdhuryDate:           December 2022
13*4cbe60cfSSouradeep ChowdhuryContact:        Souradeep Chowdhury <quic_schowdhu@quicinc.com>
14*4cbe60cfSSouradeep ChowdhuryDescription:
15*4cbe60cfSSouradeep Chowdhury		This is the debugfs interface for manual software
16*4cbe60cfSSouradeep Chowdhury		triggers. The user can simply enter a 1 against
17*4cbe60cfSSouradeep Chowdhury		the debugfs file and enable a manual trigger.
18*4cbe60cfSSouradeep Chowdhury		Example:
19*4cbe60cfSSouradeep Chowdhury		echo  1 > /sys/kernel/debug/dcc/.../trigger
20*4cbe60cfSSouradeep Chowdhury
21*4cbe60cfSSouradeep ChowdhuryWhat:           /sys/kernel/debug/dcc/.../config_reset
22*4cbe60cfSSouradeep ChowdhuryDate:           December 2022
23*4cbe60cfSSouradeep ChowdhuryContact:        Souradeep Chowdhury <quic_schowdhu@quicinc.com>
24*4cbe60cfSSouradeep ChowdhuryDescription:
25*4cbe60cfSSouradeep Chowdhury		This file is used to reset the configuration of
26*4cbe60cfSSouradeep Chowdhury		a dcc driver to the default configuration. This
27*4cbe60cfSSouradeep Chowdhury		means that all the previous addresses stored in
28*4cbe60cfSSouradeep Chowdhury		the driver gets removed and user needs to enter
29*4cbe60cfSSouradeep Chowdhury		the address values from the start.
30*4cbe60cfSSouradeep Chowdhury		Example:
31*4cbe60cfSSouradeep Chowdhury		echo  1 > /sys/kernel/debug/dcc/../config_reset
32*4cbe60cfSSouradeep Chowdhury
33*4cbe60cfSSouradeep ChowdhuryWhat:           /sys/kernel/debug/dcc/.../[list-number]/config
34*4cbe60cfSSouradeep ChowdhuryDate:		 December 2022
35*4cbe60cfSSouradeep ChowdhuryContact:        Souradeep Chowdhury <quic_schowdhu@quicinc.com>
36*4cbe60cfSSouradeep ChowdhuryDescription:
37*4cbe60cfSSouradeep Chowdhury		This stores the addresses of the registers which
38*4cbe60cfSSouradeep Chowdhury		should be read in case of a hardware crash or
39*4cbe60cfSSouradeep Chowdhury		manual software triggers. The addresses entered here
40*4cbe60cfSSouradeep Chowdhury		are considered under all the 4 types of dcc
41*4cbe60cfSSouradeep Chowdhury		instructions Read type, Write type, Read Modify Write
42*4cbe60cfSSouradeep Chowdhury		type and Loop type. The lists need to be configured
43*4cbe60cfSSouradeep Chowdhury		sequentially and not in a overlapping manner. As an
44*4cbe60cfSSouradeep Chowdhury		example user can jump to list x only after list y is
45*4cbe60cfSSouradeep Chowdhury		configured and enabled. The format for entering all
46*4cbe60cfSSouradeep Chowdhury		types of instructions are explained in examples as
47*4cbe60cfSSouradeep Chowdhury		follows.
48*4cbe60cfSSouradeep Chowdhury		Example:
49*4cbe60cfSSouradeep Chowdhury	         i)Read Type Instruction
50*4cbe60cfSSouradeep Chowdhury		   echo R <1> <2> <3> >/sys/kernel/debug/dcc/../[list-number]/config
51*4cbe60cfSSouradeep Chowdhury		   1->Address to be considered for reading the value.
52*4cbe60cfSSouradeep Chowdhury		   2->The word count of the addresses, read n words
53*4cbe60cfSSouradeep Chowdhury		      starting from address <1>. Each word is of 32 bits.
54*4cbe60cfSSouradeep Chowdhury		      If not entered 1 is considered.
55*4cbe60cfSSouradeep Chowdhury		   3->Can be 'apb' or 'ahb' which indicates if it is apb or ahb
56*4cbe60cfSSouradeep Chowdhury		      bus respectively. If not entered ahb is considered.
57*4cbe60cfSSouradeep Chowdhury		ii)Write Type Instruction
58*4cbe60cfSSouradeep Chowdhury		   echo W <1> <2> <3> > /sys/kernel/debug/dcc/../[list-number]/config
59*4cbe60cfSSouradeep Chowdhury		   1->Address to be considered for writing the value.
60*4cbe60cfSSouradeep Chowdhury		   2->The value that needs to be written at the location.
61*4cbe60cfSSouradeep Chowdhury		   3->Can be a 'apb' or 'ahb' which indicates if it is apb or ahb
62*4cbe60cfSSouradeep Chowdhury		      but respectively.
63*4cbe60cfSSouradeep Chowdhury	       iii)Read Modify Write type instruction
64*4cbe60cfSSouradeep Chowdhury		   echo RW <1> <2> <3> > /sys/kernel/debug/dcc/../[list-number]/config
65*4cbe60cfSSouradeep Chowdhury		   1->The address which needs to be considered for read then write.
66*4cbe60cfSSouradeep Chowdhury		   2->The value that needs to be written on the address.
67*4cbe60cfSSouradeep Chowdhury		   3->The mask of the value to be written.
68*4cbe60cfSSouradeep Chowdhury		iv)Loop Type Instruction
69*4cbe60cfSSouradeep Chowdhury		   echo L <1> <2> <3> > /sys/kernel/debug/dcc/../[list-number]/config
70*4cbe60cfSSouradeep Chowdhury		   1->The loop count, the number of times the value of the addresses will be
71*4cbe60cfSSouradeep Chowdhury		      captured.
72*4cbe60cfSSouradeep Chowdhury		   2->The address count, total number of addresses to be entered in this
73*4cbe60cfSSouradeep Chowdhury		      instruction.
74*4cbe60cfSSouradeep Chowdhury		   3->The series of addresses to be entered separated by a space like <addr1>
75*4cbe60cfSSouradeep Chowdhury		      <addr2>... and so on.
76*4cbe60cfSSouradeep Chowdhury
77*4cbe60cfSSouradeep ChowdhuryWhat:           /sys/kernel/debug/dcc/.../[list-number]/enable
78*4cbe60cfSSouradeep ChowdhuryDate:           December 2022
79*4cbe60cfSSouradeep ChowdhuryContact:        Souradeep Chowdhury <quic_schowdhu@quicinc.com>
80*4cbe60cfSSouradeep ChowdhuryDescription:
81*4cbe60cfSSouradeep Chowdhury		This debugfs interface is used for enabling the
82*4cbe60cfSSouradeep Chowdhury		the dcc hardware. Enable file is kept under the
83*4cbe60cfSSouradeep Chowdhury		directory list number for which the user wants
84*4cbe60cfSSouradeep Chowdhury		to enable it. For example if the user wants to
85*4cbe60cfSSouradeep Chowdhury		enable list 1, then he should go for
86*4cbe60cfSSouradeep Chowdhury		echo 1 > /sys/kernel/debug/dcc/.../1/enable.
87*4cbe60cfSSouradeep Chowdhury		On enabling the dcc, all the addresses entered
88*4cbe60cfSSouradeep Chowdhury		by the user for the corresponding list is written
89*4cbe60cfSSouradeep Chowdhury		into dcc sram which is read by the dcc hardware
90*4cbe60cfSSouradeep Chowdhury		on manual or crash induced triggers. Lists should
91*4cbe60cfSSouradeep Chowdhury		be enabled sequentially.For example after configuring
92*4cbe60cfSSouradeep Chowdhury		addresses for list 1 and enabling it, a user can
93*4cbe60cfSSouradeep Chowdhury		proceed to enable list 2 or vice versa.
94*4cbe60cfSSouradeep Chowdhury		Example:
95*4cbe60cfSSouradeep Chowdhury		echo  0 > /sys/kernel/debug/dcc/.../[list-number]/enable
96*4cbe60cfSSouradeep Chowdhury		(disable dcc for the corresponding list number)
97*4cbe60cfSSouradeep Chowdhury		echo  1 > /sys/kernel/debug/dcc/.../[list-number]/enable
98*4cbe60cfSSouradeep Chowdhury		(enable dcc for the corresponding list number)
99