← Documents Documentation/ABI/testing/debugfs-driver-dcc GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

DCC driver debugfs ABI

Data Capture and Compare hardware의 ready·manual trigger·configuration reset, list별 read·write·read-write·loop instructions와 순차 enable debugfs interface를 설명합니다.

Source pathDocumentation/ABI/testing/debugfs-driver-dcc
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

Ready, trigger, reset controls

debugfs-driver-dcc:1-25

DCC hardware가 configuration을 받을 준비가 되었는지 확인하고, software trigger를 실행하거나 저장된 driver configuration을 기본 상태로 reset합니다.

List configuration instructions

debugfs-driver-dcc:27-110

Crash 또는 manual trigger 때 처리할 register addresses를 read, write, read-write, loop instructions로 구성합니다. Lists는 겹치지 않게 앞 번호부터 순차적으로 설정해야 합니다.

Sequential list enable

debugfs-driver-dcc:112-127

List를 enable하면 해당 addresses가 DCC SRAM에 기록되며 manual·crash trigger 때 hardware가 읽습니다. 앞 list가 enable되어야 다음 list를 enable할 수 있습니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 What: /sys/kernel/debug/dcc/.../ready
2 Date: December 2022
3 Contact: Souradeep Chowdhury <[email protected]>
4 Description:
5 This file is used to check the status of the dcc
6 hardware if it's ready to receive user configurations.
7 A 'Y' here indicates dcc is ready.
8
9 What: /sys/kernel/debug/dcc/.../trigger
10 Date: December 2022
11 Contact: Souradeep Chowdhury <[email protected]>
12 Description:
13 This is the debugfs interface for manual software
14 triggers. The trigger can be invoked by writing '1'
15 to the file.
16
17 What: /sys/kernel/debug/dcc/.../config_reset
18 Date: December 2022
19 Contact: Souradeep Chowdhury <[email protected]>
20 Description:
21 This file is used to reset the configuration of
22 a dcc driver to the default configuration. When '1'
23 is written to the file, all the previous addresses
24 stored in the driver gets removed and users need to
25 reconfigure addresses again.
26
27 What: /sys/kernel/debug/dcc/.../[list-number]/config
28 Date: December 2022
29 Contact: Souradeep Chowdhury <[email protected]>
30 Description:
31 This stores the addresses of the registers which
32 can be read in case of a hardware crash or manual
33 software triggers. The input addresses type
34 can be one of following dcc instructions: read,
35 write, read-write, and loop type. The lists need to
36 be configured sequentially and not in a overlapping
37 manner; e.g. users can jump to list x only after
38 list y is configured and enabled. The input format for
39 each type is as follows:
40
41 i) Read instruction
42
43 ::
44
45 echo R <addr> <n> <bus> >/sys/kernel/debug/dcc/../[list-number]/config
46
47 where:
48
49 <addr>
50 The address to be read.
51
52 <n>
53 The addresses word count, starting from address <1>.
54 Each word is 32 bits (4 bytes). If omitted, defaulted
55 to 1.
56
57 <bus type>
58 The bus type, which can be either 'apb' or 'ahb'.
59 The default is 'ahb' if leaved out.
60
61 ii) Write instruction
62
63 ::
64
65 echo W <addr> <n> <bus type> > /sys/kernel/debug/dcc/../[list-number]/config
66
67 where:
68
69 <addr>
70 The address to be written.
71
72 <n>
73 The value to be written at <addr>.
74
75 <bus type>
76 The bus type, which can be either 'apb' or 'ahb'.
77
78 iii) Read-write instruction
79
80 ::
81
82 echo RW <addr> <n> <mask> > /sys/kernel/debug/dcc/../[list-number]/config
83
84 where:
85
86 <addr>
87 The address to be read and written.
88
89 <n>
90 The value to be written at <addr>.
91
92 <mask>
93 The value mask.
94
95 iv) Loop instruction
96
97 ::
98
99 echo L <loop count> <address count> <address>... > /sys/kernel/debug/dcc/../[list-number]/config
100
101 where:
102
103 <loop count>
104 Number of iterations
105
106 <address count>
107 total number of addresses to be written
108
109 <address>
110 Space-separated list of addresses.
111
112 What: /sys/kernel/debug/dcc/.../[list-number]/enable
113 Date: December 2022
114 Contact: Souradeep Chowdhury <[email protected]>
115 Description:
116 This debugfs interface is used for enabling the
117 the dcc hardware. A file named "enable" is in the
118 directory list number where users can enable/disable
119 the specific list by writing boolean (1 or 0) to the
120 file.
121
122 On enabling the dcc, all the addresses specified
123 by the user for the corresponding list is written
124 into dcc sram which is read by the dcc hardware
125 on manual or crash induced triggers. Lists must
126 be configured and enabled sequentially, e.g. list
127 2 can only be enabled when list 1 have so.
128

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

DCC 상태, trigger, configuration reset

1-25
공통 항목내용
Date2022년 12월
ContactSouradeep Chowdhury <[email protected]>
What설명
/sys/kernel/debug/dcc/.../readyDCC hardware가 user configuration을 받을 준비가 되었는지 확인합니다. Y이면 준비된 상태입니다.
/sys/kernel/debug/dcc/.../triggerManual software trigger interface입니다. File에 1을 쓰면 trigger가 실행됩니다.
/sys/kernel/debug/dcc/.../config_resetDCC driver configuration을 기본값으로 reset합니다. 1을 쓰면 driver에 저장된 이전 addresses가 모두 제거되므로 다시 구성해야 합니다.

List configuration과 네 instruction 형식

27-110
항목내용
What/sys/kernel/debug/dcc/.../[list-number]/config
Date2022년 12월
ContactSouradeep Chowdhury <[email protected]>

Hardware crash 또는 manual software trigger 때 읽을 수 있는 register addresses를 저장합니다. 입력 address type은 read, write, read-write, loop DCC instructions 중 하나입니다.

Lists는 겹치지 않게 순차적으로 구성해야 합니다. 예를 들어 list y를 구성하고 enable한 뒤에만 그 다음 list x로 넘어갈 수 있습니다.

1. Read instruction

echo R <addr> <n> <bus> >/sys/kernel/debug/dcc/../[list-number]/config
인자의미
<addr>읽을 address
<n>시작 address <1>부터의 address word count. 각 word는 32 bits(4 bytes)이며 생략하면 1. 원문은 시작 address를 <1>로 표기합니다.
<bus type>apb 또는 ahb. 생략하면 기본값은 ahb

2. Write instruction

echo W <addr> <n> <bus type> > /sys/kernel/debug/dcc/../[list-number]/config
인자의미
<addr>쓸 address
<n><addr>에 쓸 값
<bus type>apb 또는 ahb

3. Read-write instruction

echo RW <addr> <n> <mask> > /sys/kernel/debug/dcc/../[list-number]/config
인자의미
<addr>읽고 쓸 address
<n><addr>에 쓸 값
<mask>Value mask

4. Loop instruction

echo L <loop count> <address count> <address>... > /sys/kernel/debug/dcc/../[list-number]/config
인자의미
<loop count>Iteration 수
<address count>쓸 address의 전체 개수
<address>Space로 구분한 addresses 목록

List enable과 DCC SRAM

112-127
항목내용
What/sys/kernel/debug/dcc/.../[list-number]/enable
Date2022년 12월
ContactSouradeep Chowdhury <[email protected]>

각 list-number directory의 enable file에 boolean 1 또는 0을 써서 해당 list와 DCC hardware를 enable 또는 disable합니다.

DCC를 enable하면 해당 list에 사용자가 지정한 모든 addresses가 DCC SRAM에 기록됩니다. Manual trigger 또는 crash-induced trigger가 발생하면 DCC hardware가 이 SRAM을 읽습니다.

Lists는 순차적으로 구성하고 enable해야 합니다. 예를 들어 list 1이 enable된 뒤에만 list 2를 enable할 수 있습니다.

DCC list configuration과 trigger 순서
ready = YConfigure list 1Enable list 1Write list 1 to DCC SRAMConfigure list 2Enable list 2
R / W / RW / L instructionsList configDCC SRAMManual trigger or crashDCC hardware capture
config_reset = 1Stored addresses removedReconfigure lists

준비 상태를 확인한 뒤 각 list instruction을 앞 번호부터 구성·enable한다. Enable 시 configuration이 DCC SRAM에 기록되고 manual 또는 crash trigger에서 hardware가 사용한다.