← Documents Documentation/ABI/testing/debugfs-scmi-raw GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

SCMI Raw message debugfs ABI

SCMI Raw command를 little-endian binary로 injection하고 synchronous·asynchronous·polling·per-channel response를 snoop하며 error·notification queue와 reset을 제어하는 debugfs ABI를 설명합니다.

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

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

1. 요약·해설

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

Instance-level synchronous·asynchronous messages

debugfs-scmi-raw:1-32

message와 message_async는 header를 포함한 complete little-endian SCMI command를 한 write당 하나 전송하며, response를 message 단위 EOF 경계로 읽습니다. Async는 추가 delayed response도 제공합니다.

Polling reception paths

debugfs-scmi-raw:34-68

message_poll과 message_poll_async는 polling-capable transport에서 response 또는 async immediate response의 reception path에 polling mode를 사용합니다.

Errors·notifications·reset

debugfs-scmi-raw:70-102

errors와 notification은 각각 예상 밖·timeout message와 server notification을 한 message씩 읽고, reset write는 아직 읽지 않은 모든 receive queue를 즉시 flush합니다.

Per-channel synchronous·asynchronous messages

debugfs-scmi-raw:104-153

channels/<m> 경로는 DT에서 channel과 연결한 SCMI protocol number를 identifier로 사용하며, base protocol 0x10은 default channel입니다. 복수 default channel 구성에서만 생성됩니다.

Per-channel polling messages

debugfs-scmi-raw:156-208

Per-channel message_poll과 message_poll_async는 channel <m>의 response reception에 polling mode를 적용하고 timeout 안의 immediate·delayed response를 message별로 읽습니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/kernel/debug/scmi/<n>/raw/message
2 Date: March 2023
3 KernelVersion: 6.3
4 Contact: cristian.marussi@arm.com
5 Description: SCMI Raw synchronous message injection/snooping facility; write
6 a complete SCMI synchronous command message (header included)
7 in little-endian binary format to have it sent to the configured
8 backend SCMI server for instance <n>.
9 Any subsequently received response can be read from this same
10 entry if it arrived within the configured timeout.
11 Each write to the entry causes one command request to be built
12 and sent while the replies are read back one message at time
13 (receiving an EOF at each message boundary).
14 Users: Debugging, any userspace test suite
15
16 What: /sys/kernel/debug/scmi/<n>/raw/message_async
17 Date: March 2023
18 KernelVersion: 6.3
19 Contact: cristian.marussi@arm.com
20 Description: SCMI Raw asynchronous message injection/snooping facility; write
21 a complete SCMI asynchronous command message (header included)
22 in little-endian binary format to have it sent to the configured
23 backend SCMI server for instance <n>.
24 Any subsequently received response can be read from this same
25 entry if it arrived within the configured timeout.
26 Any additional delayed response received afterwards can be read
27 from this same entry too if it arrived within the configured
28 timeout.
29 Each write to the entry causes one command request to be built
30 and sent while the replies are read back one message at time
31 (receiving an EOF at each message boundary).
32 Users: Debugging, any userspace test suite
33
34 What: /sys/kernel/debug/scmi/<n>/raw/message_poll
35 Date: June 2025
36 KernelVersion: 6.16
37 Contact: cristian.marussi@arm.com
38 Description: SCMI Raw message injection/snooping facility using polling mode;
39 write a complete SCMI command message (header included) in
40 little-endian binary format to have it sent to the configured
41 backend SCMI server for instance <n>, using polling mode on
42 the reception path. (if transport is polling capable)
43 Any subsequently received response can be read from this same
44 entry if it arrived within the configured timeout.
45 Each write to the entry causes one command request to be built
46 and sent while the replies are read back one message at time
47 (receiving an EOF at each message boundary).
48 Users: Debugging, any userspace test suite
49
50 What: /sys/kernel/debug/scmi/<n>/raw/message_poll_async
51 Date: June 2025
52 KernelVersion: 6.16
53 Contact: cristian.marussi@arm.com
54 Description: SCMI Raw asynchronous message injection/snooping facility using
55 polling-mode; write a complete SCMI asynchronous command message
56 (header included) in little-endian binary format to have it sent
57 to the configured backend SCMI server for instance <n>, using
58 polling-mode on the reception path of the immediate part of the
59 asynchronous command. (if transport is polling capable)
60 Any subsequently received response can be read from this same
61 entry if it arrived within the configured timeout.
62 Any additional delayed response received afterwards can be read
63 from this same entry too if it arrived within the configured
64 timeout.
65 Each write to the entry causes one command request to be built
66 and sent while the replies are read back one message at time
67 (receiving an EOF at each message boundary).
68 Users: Debugging, any userspace test suite
69
70 What: /sys/kernel/debug/scmi/<n>/raw/errors
71 Date: March 2023
72 KernelVersion: 6.3
73 Contact: cristian.marussi@arm.com
74 Description: SCMI Raw message errors facility; any kind of timed-out or
75 generally unexpectedly received SCMI message, for instance <n>,
76 can be read from this entry.
77 Each read gives back one message at time (receiving an EOF at
78 each message boundary).
79 Users: Debugging, any userspace test suite
80
81 What: /sys/kernel/debug/scmi/<n>/raw/notification
82 Date: March 2023
83 KernelVersion: 6.3
84 Contact: cristian.marussi@arm.com
85 Description: SCMI Raw notification snooping facility; any notification
86 emitted by the backend SCMI server, for instance <n>, can be
87 read from this entry.
88 Each read gives back one message at time (receiving an EOF at
89 each message boundary).
90 Users: Debugging, any userspace test suite
91
92 What: /sys/kernel/debug/scmi/<n>/raw/reset
93 Date: March 2023
94 KernelVersion: 6.3
95 Contact: cristian.marussi@arm.com
96 Description: SCMI Raw stack reset facility; writing a value to this entry
97 causes the internal queues of any kind of received message,
98 still pending to be read out for instance <n>, to be immediately
99 flushed.
100 Can be used to reset and clean the SCMI Raw stack between to
101 different test-run.
102 Users: Debugging, any userspace test suite
103
104 What: /sys/kernel/debug/scmi/<n>/raw/channels/<m>/message
105 Date: March 2023
106 KernelVersion: 6.3
107 Contact: cristian.marussi@arm.com
108 Description: SCMI Raw synchronous message injection/snooping facility; write
109 a complete SCMI synchronous command message (header included)
110 in little-endian binary format to have it sent to the configured
111 backend SCMI server for instance <n> through the <m> transport
112 channel.
113 Any subsequently received response can be read from this same
114 entry if it arrived on channel <m> within the configured
115 timeout.
116 Each write to the entry causes one command request to be built
117 and sent while the replies are read back one message at time
118 (receiving an EOF at each message boundary).
119 Channel identifier <m> matches the SCMI protocol number which
120 has been associated with this transport channel in the DT
121 description, with base protocol number 0x10 being the default
122 channel for this instance.
123 Note that these per-channel entries rooted at <..>/channels
124 exist only if the transport is configured to have more than
125 one default channel.
126 Users: Debugging, any userspace test suite
127
128 What: /sys/kernel/debug/scmi/<n>/raw/channels/<m>/message_async
129 Date: March 2023
130 KernelVersion: 6.3
131 Contact: cristian.marussi@arm.com
132 Description: SCMI Raw asynchronous message injection/snooping facility; write
133 a complete SCMI asynchronous command message (header included)
134 in little-endian binary format to have it sent to the configured
135 backend SCMI server for instance <n> through the <m> transport
136 channel.
137 Any subsequently received response can be read from this same
138 entry if it arrived on channel <m> within the configured
139 timeout.
140 Any additional delayed response received afterwards can be read
141 from this same entry too if it arrived within the configured
142 timeout.
143 Each write to the entry causes one command request to be built
144 and sent while the replies are read back one message at time
145 (receiving an EOF at each message boundary).
146 Channel identifier <m> matches the SCMI protocol number which
147 has been associated with this transport channel in the DT
148 description, with base protocol number 0x10 being the default
149 channel for this instance.
150 Note that these per-channel entries rooted at <..>/channels
151 exist only if the transport is configured to have more than
152 one default channel.
153 Users: Debugging, any userspace test suite
154
155
156 What: /sys/kernel/debug/scmi/<n>/raw/channels/<m>/message_poll
157 Date: June 2025
158 KernelVersion: 6.16
159 Contact: cristian.marussi@arm.com
160 Description: SCMI Raw message injection/snooping facility using polling mode;
161 write a complete SCMI command message (header included) in
162 little-endian binary format to have it sent to the configured
163 backend SCMI server for instance <n> through the <m> transport
164 channel, using polling mode on the reception path.
165 (if transport is polling capable)
166 Any subsequently received response can be read from this same
167 entry if it arrived on channel <m> within the configured
168 timeout.
169 Each write to the entry causes one command request to be built
170 and sent while the replies are read back one message at time
171 (receiving an EOF at each message boundary).
172 Channel identifier <m> matches the SCMI protocol number which
173 has been associated with this transport channel in the DT
174 description, with base protocol number 0x10 being the default
175 channel for this instance.
176 Note that these per-channel entries rooted at <..>/channels
177 exist only if the transport is configured to have more than
178 one default channel.
179 Users: Debugging, any userspace test suite
180
181 What: /sys/kernel/debug/scmi/<n>/raw/channels/<m>/message_poll_async
182 Date: June 2025
183 KernelVersion: 6.16
184 Contact: cristian.marussi@arm.com
185 Description: SCMI Raw asynchronous message injection/snooping facility using
186 polling-mode; write a complete SCMI asynchronous command message
187 (header included) in little-endian binary format to have it sent
188 to the configured backend SCMI server for instance <n> through
189 the <m> transport channel, using polling mode on the reception
190 path of the immediate part of the asynchronous command.
191 (if transport is polling capable)
192 Any subsequently received response can be read from this same
193 entry if it arrived on channel <m> within the configured
194 timeout.
195 Any additional delayed response received afterwards can be read
196 from this same entry too if it arrived within the configured
197 timeout.
198 Each write to the entry causes one command request to be built
199 and sent while the replies are read back one message at time
200 (receiving an EOF at each message boundary).
201 Channel identifier <m> matches the SCMI protocol number which
202 has been associated with this transport channel in the DT
203 description, with base protocol number 0x10 being the default
204 channel for this instance.
205 Note that these per-channel entries rooted at <..>/channels
206 exist only if the transport is configured to have more than
207 one default channel.
208 Users: Debugging, any userspace test suite
209

3. 한국어 전문 번역

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

Instance-level raw message injection

1-32
What전문 번역
/sys/kernel/debug/scmi/<n>/raw/messageSCMI Raw synchronous message injection/snooping 기능입니다. Header를 포함한 complete SCMI synchronous command message를 little-endian binary format으로 쓰면 instance <n>에 구성된 backend SCMI server로 보냅니다. 이후 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽습니다. 각 message boundary에서 EOF를 받습니다.
/sys/kernel/debug/scmi/<n>/raw/message_asyncSCMI Raw asynchronous message injection/snooping 기능입니다. Header를 포함한 complete SCMI asynchronous command message를 little-endian binary format으로 쓰면 instance <n>에 구성된 backend SCMI server로 보냅니다. 이후 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. 그 뒤 추가로 받은 delayed response도 구성된 timeout 안에 도착했다면 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽습니다. 각 message boundary에서 EOF를 받습니다.
공통 항목내용
Date2023년 3월
KernelVersion6.3
Contactcristian.marussi@arm.com
UsersDebugging, 모든 userspace test suite

Instance-level polling message injection

34-68
What전문 번역
/sys/kernel/debug/scmi/<n>/raw/message_pollPolling mode를 사용하는 SCMI Raw message injection/snooping 기능입니다. Header를 포함한 complete SCMI command message를 little-endian binary format으로 쓰면 instance <n>에 구성된 backend SCMI server로 보내며, transport가 polling을 지원하는 경우 reception path에 polling mode를 사용합니다. 이후 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽습니다. 각 message boundary에서 EOF를 받습니다.
/sys/kernel/debug/scmi/<n>/raw/message_poll_asyncPolling mode를 사용하는 SCMI Raw asynchronous message injection/snooping 기능입니다. Header를 포함한 complete SCMI asynchronous command message를 little-endian binary format으로 쓰면 instance <n>에 구성된 backend SCMI server로 보내며, transport가 polling을 지원하는 경우 asynchronous command의 immediate 부분 reception path에 polling mode를 사용합니다. 이후 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. 그 뒤 추가로 받은 delayed response도 구성된 timeout 안에 도착했다면 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽습니다. 각 message boundary에서 EOF를 받습니다.
공통 항목내용
Date2025년 6월
KernelVersion6.16
Contactcristian.marussi@arm.com
UsersDebugging, 모든 userspace test suite

Error·notification queue와 Raw stack reset

70-102
What전문 번역
/sys/kernel/debug/scmi/<n>/raw/errorsSCMI Raw message error 기능입니다. Instance <n>에서 timeout된 SCMI message 또는 일반적으로 예상하지 못하게 수신한 모든 SCMI message를 이 entry에서 읽을 수 있습니다. 각 read는 한 번에 message 하나를 반환하며 각 message boundary에서 EOF를 받습니다.
/sys/kernel/debug/scmi/<n>/raw/notificationSCMI Raw notification snooping 기능입니다. Instance <n>의 backend SCMI server가 내보낸 모든 notification을 이 entry에서 읽을 수 있습니다. 각 read는 한 번에 message 하나를 반환하며 각 message boundary에서 EOF를 받습니다.
/sys/kernel/debug/scmi/<n>/raw/resetSCMI Raw stack reset 기능입니다. 이 entry에 값을 쓰면 instance <n>에서 아직 읽기를 기다리는 모든 종류의 received message 내부 queue를 즉시 flush합니다. 서로 다른 두 test run 사이에서 SCMI Raw stack을 reset하고 정리할 때 사용할 수 있습니다.
공통 항목내용
Date2023년 3월
KernelVersion6.3
Contactcristian.marussi@arm.com
UsersDebugging, 모든 userspace test suite

Per-channel raw message injection

104-153
What전문 번역
/sys/kernel/debug/scmi/<n>/raw/channels/<m>/messageSCMI Raw synchronous message injection/snooping 기능입니다. Header를 포함한 complete SCMI synchronous command message를 little-endian binary format으로 쓰면 transport channel <m>을 통해 instance <n>에 구성된 backend SCMI server로 보냅니다. Channel <m>에서 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽고 각 message boundary에서 EOF를 받습니다.
/sys/kernel/debug/scmi/<n>/raw/channels/<m>/message_asyncSCMI Raw asynchronous message injection/snooping 기능입니다. Header를 포함한 complete SCMI asynchronous command message를 little-endian binary format으로 쓰면 transport channel <m>을 통해 instance <n>에 구성된 backend SCMI server로 보냅니다. Channel <m>에서 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. 그 뒤 추가로 받은 delayed response도 구성된 timeout 안에 도착했다면 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽고 각 message boundary에서 EOF를 받습니다.

두 entry에서 channel identifier <m>은 DT description에서 이 transport channel과 연결된 SCMI protocol number와 일치합니다. Base protocol number 0x10이 이 instance의 default channel입니다. <..>/channels 아래의 per-channel entry는 transport가 둘 이상의 default channel을 갖도록 구성된 경우에만 존재합니다.

공통 항목내용
Date2023년 3월
KernelVersion6.3
Contactcristian.marussi@arm.com
UsersDebugging, 모든 userspace test suite

Per-channel polling message injection

156-208
What전문 번역
/sys/kernel/debug/scmi/<n>/raw/channels/<m>/message_pollPolling mode를 사용하는 SCMI Raw message injection/snooping 기능입니다. Header를 포함한 complete SCMI command message를 little-endian binary format으로 쓰면 transport channel <m>을 통해 instance <n>에 구성된 backend SCMI server로 보내며, transport가 polling을 지원하는 경우 reception path에 polling mode를 사용합니다. Channel <m>에서 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽고 각 message boundary에서 EOF를 받습니다.
/sys/kernel/debug/scmi/<n>/raw/channels/<m>/message_poll_asyncPolling mode를 사용하는 SCMI Raw asynchronous message injection/snooping 기능입니다. Header를 포함한 complete SCMI asynchronous command message를 little-endian binary format으로 쓰면 transport channel <m>을 통해 instance <n>에 구성된 backend SCMI server로 보내며, transport가 polling을 지원하는 경우 asynchronous command의 immediate 부분 reception path에 polling mode를 사용합니다. Channel <m>에서 구성된 timeout 안에 도착한 response는 같은 entry에서 읽을 수 있습니다. 그 뒤 추가로 받은 delayed response도 구성된 timeout 안에 도착했다면 같은 entry에서 읽을 수 있습니다. Entry에 한 번 쓸 때마다 하나의 command request를 만들어 보내며, reply는 한 번에 message 하나씩 읽고 각 message boundary에서 EOF를 받습니다.

두 entry에서 channel identifier <m>은 DT description에서 이 transport channel과 연결된 SCMI protocol number와 일치합니다. Base protocol number 0x10이 이 instance의 default channel입니다. <..>/channels 아래의 per-channel entry는 transport가 둘 이상의 default channel을 갖도록 구성된 경우에만 존재합니다.

공통 항목내용
Date2025년 6월
KernelVersion6.16
Contactcristian.marussi@arm.com
UsersDebugging, 모든 userspace test suite
SCMI Raw injection·snooping 경로
Write complete header plus payloadOne SCMI command requestBackend SCMI serverImmediate response within timeoutRead one message then EOF
Asynchronous commandImmediate responseAdditional delayed response within timeoutRead each message separately
Polling-capable transportmessage_poll receptionAsync polling covers immediate part
DT protocol channel <m>Base protocol 0x10 is defaultPer-channel entries only with multiple default channels
Unexpected or timed-out messageerrors queuereset write flushes pending queues
Backend notificationnotification queueRead one message then EOF

Complete little-endian command 한 번의 write가 request 하나를 만들고, response queue는 EOF로 구분된 message 단위로 소비된다.