← Documents Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Freescale SRIO RMU

SRIO message, doorbell, port-write unit의 register·IRQ·LIODN binding입니다.

Source pathDocumentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

srio-rmu.txt:1-163

RMAN 유무에 따른 RMU node 조건과 세 sub-controller의 version·TX/RX·port-write interrupt 계약을 정리합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Message unit node:
2
3 For SRIO controllers that implement the message unit as part of the controller
4 this node is required. For devices with RMAN this node should NOT exist. The
5 node is composed of three types of sub-nodes ("fsl-srio-msg-unit",
6 "fsl-srio-dbell-unit" and "fsl-srio-port-write-unit").
7
8 See srio.txt for more details about generic SRIO controller details.
9
10 - compatible
11 Usage: required
12 Value type: <string>
13 Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu".
14
15 The version X.Y should match the general SRIO controller's IP Block
16 revision register's Major(X) and Minor (Y) value.
17
18 - reg
19 Usage: required
20 Value type: <prop-encoded-array>
21 Definition: A standard property. Specifies the physical address and
22 length of the SRIO configuration registers for message units
23 and doorbell units.
24
25 - fsl,liodn
26 Usage: optional-but-recommended (for devices with PAMU)
27 Value type: <prop-encoded-array>
28 Definition: The logical I/O device number for the PAMU (IOMMU) to be
29 correctly configured for SRIO accesses. The property should
30 not exist on devices that do not support PAMU.
31
32 The LIODN value is associated with all RMU transactions
33 (msg-unit, doorbell, port-write).
34
35 Sub-Nodes for RMU: The RMU node is composed of multiple sub-nodes that
36 correspond to the actual sub-controllers in the RMU. The manual for a given
37 SoC will detail which and how many of these sub-controllers are implemented.
38
39 Message Unit:
40
41 - compatible
42 Usage: required
43 Value type: <string>
44 Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit".
45
46 The version X.Y should match the general SRIO controller's IP Block
47 revision register's Major(X) and Minor (Y) value.
48
49 - reg
50 Usage: required
51 Value type: <prop-encoded-array>
52 Definition: A standard property. Specifies the physical address and
53 length of the SRIO configuration registers for message units
54 and doorbell units.
55
56 - interrupts
57 Usage: required
58 Value type: <prop_encoded-array>
59 Definition: Specifies the interrupts generated by this device. The
60 value of the interrupts property consists of one interrupt
61 specifier. The format of the specifier is defined by the
62 binding document describing the node's interrupt parent.
63
64 A pair of IRQs are specified in this property. The first
65 element is associated with the transmit (TX) interrupt and the
66 second element is associated with the receive (RX) interrupt.
67
68 Doorbell Unit:
69
70 - compatible
71 Usage: required
72 Value type: <string>
73 Definition: Must include:
74 "fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit"
75
76 The version X.Y should match the general SRIO controller's IP Block
77 revision register's Major(X) and Minor (Y) value.
78
79 - reg
80 Usage: required
81 Value type: <prop-encoded-array>
82 Definition: A standard property. Specifies the physical address and
83 length of the SRIO configuration registers for message units
84 and doorbell units.
85
86 - interrupts
87 Usage: required
88 Value type: <prop_encoded-array>
89 Definition: Specifies the interrupts generated by this device. The
90 value of the interrupts property consists of one interrupt
91 specifier. The format of the specifier is defined by the
92 binding document describing the node's interrupt parent.
93
94 A pair of IRQs are specified in this property. The first
95 element is associated with the transmit (TX) interrupt and the
96 second element is associated with the receive (RX) interrupt.
97
98 Port-Write Unit:
99
100 - compatible
101 Usage: required
102 Value type: <string>
103 Definition: Must include:
104 "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit"
105
106 The version X.Y should match the general SRIO controller's IP Block
107 revision register's Major(X) and Minor (Y) value.
108
109 - reg
110 Usage: required
111 Value type: <prop-encoded-array>
112 Definition: A standard property. Specifies the physical address and
113 length of the SRIO configuration registers for message units
114 and doorbell units.
115
116 - interrupts
117 Usage: required
118 Value type: <prop_encoded-array>
119 Definition: Specifies the interrupts generated by this device. The
120 value of the interrupts property consists of one interrupt
121 specifier. The format of the specifier is defined by the
122 binding document describing the node's interrupt parent.
123
124 A single IRQ that handles port-write conditions is
125 specified by this property. (Typically shared with error).
126
127 Note: All other standard properties (see the Devicetree Specification)
128 are allowed but are optional.
129
130 Example:
131 rmu: rmu@d3000 {
132 compatible = "fsl,srio-rmu";
133 reg = <0xd3000 0x400>;
134 ranges = <0x0 0xd3000 0x400>;
135 fsl,liodn = <0xc8>;
136
137 message-unit@0 {
138 compatible = "fsl,srio-msg-unit";
139 reg = <0x0 0x100>;
140 interrupts = <
141 60 2 0 0 /* msg1_tx_irq */
142 61 2 0 0>;/* msg1_rx_irq */
143 };
144 message-unit@100 {
145 compatible = "fsl,srio-msg-unit";
146 reg = <0x100 0x100>;
147 interrupts = <
148 62 2 0 0 /* msg2_tx_irq */
149 63 2 0 0>;/* msg2_rx_irq */
150 };
151 doorbell-unit@400 {
152 compatible = "fsl,srio-dbell-unit";
153 reg = <0x400 0x80>;
154 interrupts = <
155 56 2 0 0 /* bell_outb_irq */
156 57 2 0 0>;/* bell_inb_irq */
157 };
158 port-write-unit@4e0 {
159 compatible = "fsl,srio-port-write-unit";
160 reg = <0x4e0 0x20>;
161 interrupts = <16 2 1 11>;
162 };
163 };
164

3. 한국어 전문 번역

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

RMU node

1-34

Message unit을 controller 일부로 구현한 SRIO controller에는 이 node가 필요합니다. RMAN이 있는 device에는 이 node가 없어야 합니다. Node는 `fsl-srio-msg-unit`, `fsl-srio-dbell-unit`, `fsl-srio-port-write-unit` 세 종류 sub-node로 구성됩니다. 일반 SRIO controller 내용은 `srio.txt`를 참조합니다.

필수 `compatible`에는 `fsl,srio-rmu-vX.Y`와 `fsl,srio-rmu`가 들어가며 X.Y는 일반 SRIO controller IP Block revision register의 Major(X)·Minor(Y) 값과 일치해야 합니다.

필수 `reg`는 message unit과 doorbell unit용 SRIO configuration register의 physical address와 length를 지정합니다. PAMU가 있는 device에는 선택 권장 `fsl,liodn`을 두어 SRIO access용 PAMU(IOMMU)를 올바르게 설정합니다. PAMU 미지원 device에는 이 property가 없어야 하며 LIODN은 message, doorbell, port-write를 포함한 모든 RMU transaction에 연결됩니다.

Message Unit

35-67

RMU node에는 SoC가 실제 구현한 sub-controller 수와 종류에 따라 여러 sub-node가 있습니다. Message Unit의 필수 `compatible`은 `fsl,srio-msg-unit-vX.Y`, `fsl,srio-msg-unit`이며 version은 일반 SRIO controller revision과 일치해야 합니다.

필수 `reg`는 message·doorbell unit configuration register의 physical address와 length를 지정합니다. 필수 `interrupts` 형식은 interrupt parent binding이 정하며, 첫 IRQ는 transmit(TX), 두 번째 IRQ는 receive(RX)에 대응합니다.

Doorbell Unit

68-97

Doorbell Unit의 필수 `compatible`은 `fsl,srio-dbell-unit-vX.Y`, `fsl,srio-dbell-unit`이며 X.Y는 SRIO controller IP revision의 Major·Minor 값입니다.

필수 `reg`는 configuration register의 physical address와 length를 지정합니다. 필수 `interrupts`의 첫 IRQ는 transmit(TX), 두 번째 IRQ는 receive(RX)에 대응하며 specifier 형식은 interrupt parent binding을 따릅니다.

Port-Write Unit

98-129

Port-Write Unit의 필수 `compatible`은 `fsl,srio-port-write-unit-vX.Y`, `fsl,srio-port-write-unit`이며 version은 일반 SRIO controller revision과 일치해야 합니다.

필수 `reg`는 configuration register의 physical address와 length를 지정합니다. 필수 `interrupts`는 port-write condition을 처리하는 단일 IRQ이며 보통 error IRQ와 공유합니다. Devicetree Specification의 다른 표준 property도 허용되지만 선택 사항입니다.

RMU 예제

130-163

예제는 LIODN 0xc8의 RMU 아래에 message unit 두 개, doorbell unit 하나와 port-write unit 하나를 배치합니다. Message와 doorbell은 TX·RX IRQ 쌍을, port-write는 error와 공유하는 단일 IRQ를 사용합니다.

rmu: rmu@d3000 {
        compatible = "fsl,srio-rmu";
        reg = <0xd3000 0x400>;
        ranges = <0x0 0xd3000 0x400>;
        fsl,liodn = <0xc8>;

        message-unit@0 {
                compatible = "fsl,srio-msg-unit";
                reg = <0x0 0x100>;
                interrupts = <
                        60 2 0 0  /* msg1_tx_irq */
                        61 2 0 0>;/* msg1_rx_irq */
        };
        message-unit@100 {
                compatible = "fsl,srio-msg-unit";
                reg = <0x100 0x100>;
                interrupts = <
                        62 2 0 0  /* msg2_tx_irq */
                        63 2 0 0>;/* msg2_rx_irq */
        };
        doorbell-unit@400 {
                compatible = "fsl,srio-dbell-unit";
                reg = <0x400 0x80>;
                interrupts = <
                        56 2 0 0  /* bell_outb_irq */
                        57 2 0 0>;/* bell_inb_irq */
        };
        port-write-unit@4e0 {
                compatible = "fsl,srio-port-write-unit";
                reg = <0x4e0 0x20>;
                interrupts = <16 2 1 11>;
        };
};