← Documents Documentation/ABI/testing/sysfs-bus-rpmsg GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

RPMsg channel identity, addressing, and driver matching

Remote processor 통신 channel의 이름·local/remote address·name service announcement와 RPMsg driver override ABI를 설명합니다.

Source pathDocumentation/ABI/testing/sysfs-bus-rpmsg
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

Name and 32-bit local/remote addresses

sysfs-bus-rpmsg:1-52

Channel 이름은 최대 32바이트이며 src와 dst는 32-bit RPMsg address를 담고, 0xffffffff는 역할에 따라 address가 할당되지 않았음을 뜻합니다.

Name service announcement

sysfs-bus-rpmsg:53-76

Local server channel이 생성되면 remote client에 이를 알리는 announcement를 보내며 announce는 그 여부를 true/false로 표시합니다.

Override OF, ID table, and name matching

sysfs-bus-rpmsg:77-95

driver_override는 device 이름과 driver ID table을 쓰는 표준 RPMsg matching보다 우선할 driver를 지정합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/bus/rpmsg/devices/.../name
2 Date: June 2011
3 KernelVersion: 3.3
4 Contact: Ohad Ben-Cohen <ohad@wizery.com>
5 Description:
6 Every rpmsg device is a communication channel with a remote
7 processor. Channels are identified with a (textual) name,
8 which is maximum 32 bytes long (defined as RPMSG_NAME_SIZE in
9 rpmsg.h).
10
11 This sysfs entry contains the name of this channel.
12
13 What: /sys/bus/rpmsg/devices/.../src
14 Date: June 2011
15 KernelVersion: 3.3
16 Contact: Ohad Ben-Cohen <ohad@wizery.com>
17 Description:
18 Every rpmsg device is a communication channel with a remote
19 processor. Channels have a local ("source") rpmsg address,
20 and remote ("destination") rpmsg address. When an entity
21 starts listening on one end of a channel, it assigns it with
22 a unique rpmsg address (a 32 bits integer). This way when
23 inbound messages arrive to this address, the rpmsg core
24 dispatches them to the listening entity (a kernel driver).
25
26 This sysfs entry contains the src (local) rpmsg address
27 of this channel. If it contains 0xffffffff, then an address
28 wasn't assigned (can happen if no driver exists for this
29 channel).
30
31 What: /sys/bus/rpmsg/devices/.../dst
32 Date: June 2011
33 KernelVersion: 3.3
34 Contact: Ohad Ben-Cohen <ohad@wizery.com>
35 Description:
36 Every rpmsg device is a communication channel with a remote
37 processor. Channels have a local ("source") rpmsg address,
38 and remote ("destination") rpmsg address. When an entity
39 starts listening on one end of a channel, it assigns it with
40 a unique rpmsg address (a 32 bits integer). This way when
41 inbound messages arrive to this address, the rpmsg core
42 dispatches them to the listening entity.
43
44 This sysfs entry contains the dst (remote) rpmsg address
45 of this channel. If it contains 0xffffffff, then an address
46 wasn't assigned (can happen if the kernel driver that
47 is attached to this channel is exposing a service to the
48 remote processor. This make it a local rpmsg server,
49 and it is listening for inbound messages that may be sent
50 from any remote rpmsg client; it is not bound to a single
51 remote entity).
52
53 What: /sys/bus/rpmsg/devices/.../announce
54 Date: June 2011
55 KernelVersion: 3.3
56 Contact: Ohad Ben-Cohen <ohad@wizery.com>
57 Description:
58 Every rpmsg device is a communication channel with a remote
59 processor. Channels are identified by a textual name (see
60 /sys/bus/rpmsg/devices/.../name above) and have a local
61 ("source") rpmsg address, and remote ("destination") rpmsg
62 address.
63
64 A channel is first created when an entity, whether local
65 or remote, starts listening on it for messages (and is thus
66 called an rpmsg server).
67
68 When that happens, a "name service" announcement is sent
69 to the other processor, in order to let it know about the
70 creation of the channel (this way remote clients know they
71 can start sending messages).
72
73 This sysfs entry tells us whether the channel is a local
74 server channel that is announced (values are either
75 true or false).
76
77 What: /sys/bus/rpmsg/devices/.../driver_override
78 Date: April 2018
79 KernelVersion: 4.18
80 Contact: Bjorn Andersson <bjorn.andersson@linaro.org>
81 Description:
82 Every rpmsg device is a communication channel with a remote
83 processor. Channels are identified by a textual name (see
84 /sys/bus/rpmsg/devices/.../name above) and have a local
85 ("source") rpmsg address, and remote ("destination") rpmsg
86 address.
87
88 The listening entity (or client) which communicates with a
89 remote processor is referred as rpmsg driver. The rpmsg device
90 and rpmsg driver are matched based on rpmsg device name and
91 rpmsg driver ID table.
92
93 This sysfs entry allows the rpmsg driver for a rpmsg device
94 to be specified which will override standard OF, ID table
95 and name matching.
96

3. 한국어 전문 번역

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

RPMsg channel 이름

1-12
항목한국어 전문 번역
What/sys/bus/rpmsg/devices/.../name
Date2011년 6월
KernelVersion3.3
ContactOhad Ben-Cohen <ohad@wizery.com>
Description모든 RPMsg 장치는 remote processor와 통신하는 channel입니다. Channel은 최대 32바이트의 text 이름으로 식별되며, 이 길이는 rpmsg.h의 RPMSG_NAME_SIZE로 정의됩니다. 이 sysfs 항목은 해당 channel 이름을 담습니다.

RPMsg local source address

13-30
항목한국어 전문 번역
What/sys/bus/rpmsg/devices/.../src
Date2011년 6월
KernelVersion3.3
ContactOhad Ben-Cohen <ohad@wizery.com>
Description모든 RPMsg channel에는 local(source) address와 remote(destination) address가 있습니다. Entity가 channel 한쪽에서 listen을 시작할 때 고유한 32-bit integer RPMsg address를 할당합니다. 이 address로 inbound message가 오면 RPMsg core가 listening entity인 kernel driver로 전달합니다. 이 항목은 channel의 src(local) address를 담습니다. 값이 0xffffffff이면 address가 할당되지 않은 것이며, 이 channel에 driver가 없을 때 발생할 수 있습니다.

RPMsg remote destination address

31-52
항목한국어 전문 번역
What/sys/bus/rpmsg/devices/.../dst
Date2011년 6월
KernelVersion3.3
ContactOhad Ben-Cohen <ohad@wizery.com>
Description모든 RPMsg channel에는 local(source) address와 remote(destination) address가 있습니다. Entity가 channel 한쪽에서 listen을 시작할 때 고유한 32-bit integer RPMsg address를 할당하고, RPMsg core는 이 address로 온 inbound message를 listening entity에 전달합니다. 이 항목은 channel의 dst(remote) address를 담습니다. 값이 0xffffffff이면 address가 할당되지 않은 것입니다. Channel에 연결된 kernel driver가 remote processor에 service를 제공하는 local RPMsg server인 경우가 이에 해당합니다. 이 server는 임의의 remote RPMsg client가 보낼 수 있는 inbound message를 기다리므로 단일 remote entity에 bind되지 않습니다.

RPMsg name service announcement

53-76
항목한국어 전문 번역
What/sys/bus/rpmsg/devices/.../announce
Date2011년 6월
KernelVersion3.3
ContactOhad Ben-Cohen <ohad@wizery.com>
DescriptionRPMsg channel은 text 이름, local(source) address와 remote(destination) address로 식별됩니다. Local 또는 remote entity가 message를 받기 위해 listen을 시작하면 channel이 처음 생성되고 그 entity를 RPMsg server라고 합니다. 이때 channel 생성 사실을 다른 processor에 알리는 name service announcement를 보내 remote client가 message 전송을 시작할 수 있게 합니다. 이 항목은 channel이 announcement된 local server channel인지 나타내며 값은 true 또는 false입니다.

RPMsg driver matching override

77-95
항목한국어 전문 번역
What/sys/bus/rpmsg/devices/.../driver_override
Date2018년 4월
KernelVersion4.18
ContactBjorn Andersson <bjorn.andersson@linaro.org>
DescriptionRPMsg device는 remote processor와 통신하는 channel이며 text 이름, local(source) address와 remote(destination) address를 가집니다. Remote processor와 통신하는 listening entity 또는 client를 RPMsg driver라고 합니다. RPMsg device와 driver는 device 이름과 driver ID table로 match합니다. 이 sysfs 항목은 RPMsg device에 사용할 driver를 지정해 표준 OF, ID table 및 name matching을 override합니다.