← Documents Documentation/devicetree/bindings/net/cavium-pip.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Cavium Octeon PIP Ethernet Nexus

Octeon PIP nexus의 interface·port 2단 계층과 RGMII delay binding입니다.

Source pathDocumentation/devicetree/bindings/net/cavium-pip.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

cavium-pip.txt:1-99

두 interface 아래 다섯 port와 개별 PHY를 배치하는 주소 구조를 해설합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * PIP Ethernet nexus.
2
3 The PIP Ethernet nexus can control several data packet input/output
4 devices. The devices have a two level grouping scheme. There may be
5 several interfaces, and each interface may have several ports. These
6 ports might be an individual Ethernet PHY.
7
8
9 Properties for the PIP nexus:
10 - compatible: "cavium,octeon-3860-pip"
11
12 Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
13
14 - reg: The base address of the PIP's register bank.
15
16 - #address-cells: Must be <1>.
17
18 - #size-cells: Must be <0>.
19
20 Properties for PIP interfaces which is a child the PIP nexus:
21 - compatible: "cavium,octeon-3860-pip-interface"
22
23 Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
24
25 - reg: The interface number.
26
27 - #address-cells: Must be <1>.
28
29 - #size-cells: Must be <0>.
30
31 Properties for PIP port which is a child the PIP interface:
32 - compatible: "cavium,octeon-3860-pip-port"
33
34 Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
35
36 - reg: The port number within the interface group.
37
38 - phy-handle: Optional, see ethernet.txt file in the same directory.
39
40 - rx-delay: Delay value for RGMII receive clock. Optional. Disabled if 0.
41 Value range is 1-31, and mapping to the actual delay varies depending on HW.
42
43 - tx-delay: Delay value for RGMII transmit clock. Optional. Disabled if 0.
44 Value range is 1-31, and mapping to the actual delay varies depending on HW.
45
46 Example:
47
48 pip@11800a0000000 {
49 compatible = "cavium,octeon-3860-pip";
50 #address-cells = <1>;
51 #size-cells = <0>;
52 reg = <0x11800 0xa0000000 0x0 0x2000>;
53
54 interface@0 {
55 compatible = "cavium,octeon-3860-pip-interface";
56 #address-cells = <1>;
57 #size-cells = <0>;
58 reg = <0>; /* interface */
59
60 ethernet@0 {
61 compatible = "cavium,octeon-3860-pip-port";
62 reg = <0x0>; /* Port */
63 local-mac-address = [ 00 0f b7 10 63 60 ];
64 phy-handle = <&phy2>;
65 };
66 ethernet@1 {
67 compatible = "cavium,octeon-3860-pip-port";
68 reg = <0x1>; /* Port */
69 local-mac-address = [ 00 0f b7 10 63 61 ];
70 phy-handle = <&phy3>;
71 };
72 ethernet@2 {
73 compatible = "cavium,octeon-3860-pip-port";
74 reg = <0x2>; /* Port */
75 local-mac-address = [ 00 0f b7 10 63 62 ];
76 phy-handle = <&phy4>;
77 };
78 ethernet@3 {
79 compatible = "cavium,octeon-3860-pip-port";
80 reg = <0x3>; /* Port */
81 local-mac-address = [ 00 0f b7 10 63 63 ];
82 phy-handle = <&phy5>;
83 };
84 };
85
86 interface@1 {
87 compatible = "cavium,octeon-3860-pip-interface";
88 #address-cells = <1>;
89 #size-cells = <0>;
90 reg = <1>; /* interface */
91
92 ethernet@0 {
93 compatible = "cavium,octeon-3860-pip-port";
94 reg = <0x0>; /* Port */
95 local-mac-address = [ 00 0f b7 10 63 64 ];
96 phy-handle = <&phy6>;
97 };
98 };
99 };
100

3. 한국어 전문 번역

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

PIP Ethernet nexus

1-8

PIP Ethernet nexus는 여러 data packet input/output device를 제어할 수 있습니다. 장치는 두 단계로 그룹화되어 여러 interface가 존재하고 각 interface마다 여러 port를 둘 수 있으며, 이 port가 개별 Ethernet PHY일 수 있습니다.

PIP 2단 장치 계층
PIP nexusInterface 0
PIP nexusInterface 1
Interface 0Ports 0 to 3
Interface 1Port 0
Each portOptional Ethernet PHY

PIP nexus 아래 interface를 두고 각 interface 아래 port를 배치합니다.

PIP nexus 속성

9-19

PIP nexus의 `compatible`은 `cavium,octeon-3860-pip`이며 cn3XXX, cn5XXX, cn6XXX SoC 전체와 호환됩니다.

`reg`는 PIP register bank의 base address입니다. `#address-cells`는 `<1>`, `#size-cells`는 `<0>`이어야 합니다.

PIP interface와 port 속성

20-45

PIP nexus의 child인 PIP interface는 `compatible = "cavium,octeon-3860-pip-interface"`를 사용하며 cn3XXX, cn5XXX, cn6XXX 전체와 호환됩니다. `reg`는 interface number이고 `#address-cells`는 `<1>`, `#size-cells`는 `<0>`입니다.

PIP interface의 child인 PIP port는 `compatible = "cavium,octeon-3860-pip-port"`를 사용하며 같은 세 SoC 제품군과 호환됩니다. `reg`는 interface group 안의 port number입니다.

선택 `phy-handle`은 같은 디렉터리의 `ethernet.txt`를 참조합니다. 선택 `rx-delay`와 `tx-delay`는 각각 RGMII receive clock과 transmit clock의 delay 값입니다. 0이면 disable되고 유효 범위는 1부터 31이며 실제 delay와의 mapping은 hardware에 따라 다릅니다.

두 interface와 다섯 port 예제

46-99

예제의 PIP nexus에는 interface 0과 1이 있습니다. Interface 0에는 port 0부터 3까지 네 개, interface 1에는 port 0 하나가 있으며 각 port는 고유 local MAC address와 `phy2`부터 `phy6`까지의 PHY handle을 사용합니다.

pip@11800a0000000 {
        compatible = "cavium,octeon-3860-pip";
        #address-cells = <1>;
        #size-cells = <0>;
        reg = <0x11800 0xa0000000 0x0 0x2000>;

        interface@0 {
                compatible = "cavium,octeon-3860-pip-interface";
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>; /* interface */

                ethernet@0 {
                        compatible = "cavium,octeon-3860-pip-port";
                        reg = <0x0>; /* Port */
                        local-mac-address = [ 00 0f b7 10 63 60 ];
                        phy-handle = <&phy2>;
                };
                ethernet@1 {
                        compatible = "cavium,octeon-3860-pip-port";
                        reg = <0x1>; /* Port */
                        local-mac-address = [ 00 0f b7 10 63 61 ];
                        phy-handle = <&phy3>;
                };
                ethernet@2 {
                        compatible = "cavium,octeon-3860-pip-port";
                        reg = <0x2>; /* Port */
                        local-mac-address = [ 00 0f b7 10 63 62 ];
                        phy-handle = <&phy4>;
                };
                ethernet@3 {
                        compatible = "cavium,octeon-3860-pip-port";
                        reg = <0x3>; /* Port */
                        local-mac-address = [ 00 0f b7 10 63 63 ];
                        phy-handle = <&phy5>;
                };
        };

        interface@1 {
                compatible = "cavium,octeon-3860-pip-interface";
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <1>; /* interface */

                ethernet@0 {
                        compatible = "cavium,octeon-3860-pip-port";
                        reg = <0x0>; /* Port */
                        local-mac-address = [ 00 0f b7 10 63 64 ];
                        phy-handle = <&phy6>;
                };
        };
};