← Documents Documentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

HiSilicon HNS RoCE

HNS RoCE engine의 network phandle과 34개 IRQ 바인딩입니다.

Source pathDocumentation/devicetree/bindings/infiniband/hisilicon-hns-roce.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

hisilicon-hns-roce.txt:1-108

Completion, asynchronous와 common event IRQ를 구분합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Hisilicon RoCE DT description
2
3 Hisilicon RoCE engine is a part of network subsystem.
4 It works depending on other part of network subsystem, such as gmac and
5 dsa fabric.
6
7 Additional properties are described here:
8
9 Required properties:
10 - compatible: Should contain "hisilicon,hns-roce-v1".
11 - reg: Physical base address of the RoCE driver and
12 length of memory mapped region.
13 - eth-handle: phandle, specifies a reference to a node
14 representing a ethernet device.
15 - dsaf-handle: phandle, specifies a reference to a node
16 representing a dsaf device.
17 - node_guid: a number that uniquely identifies a device or component
18 - #address-cells: must be 2
19 - #size-cells: must be 2
20 Optional properties:
21 - dma-coherent: Present if DMA operations are coherent.
22 - interrupts: should contain 32 completion event irq,1 async event irq
23 and 1 event overflow irq.
24 - interrupt-names:should be one of 34 irqs for roce device
25 - hns-roce-comp-0 ~ hns-roce-comp-31: 32 complete event irq
26 - hns-roce-async: 1 async event irq
27 - hns-roce-common: named common exception warning irq
28 Example:
29 infiniband@c4000000 {
30 compatible = "hisilicon,hns-roce-v1";
31 reg = <0x0 0xc4000000 0x0 0x100000>;
32 dma-coherent;
33 eth-handle = <&eth2 &eth3 &eth4 &eth5 &eth6 &eth7>;
34 dsaf-handle = <&soc0_dsa>;
35 node-guid = [00 9A CD 00 00 01 02 03];
36 #address-cells = <2>;
37 #size-cells = <2>;
38 interrupt-parent = <&mbigen_dsa>;
39 interrupts = <722 1>,
40 <723 1>,
41 <724 1>,
42 <725 1>,
43 <726 1>,
44 <727 1>,
45 <728 1>,
46 <729 1>,
47 <730 1>,
48 <731 1>,
49 <732 1>,
50 <733 1>,
51 <734 1>,
52 <735 1>,
53 <736 1>,
54 <737 1>,
55 <738 1>,
56 <739 1>,
57 <740 1>,
58 <741 1>,
59 <742 1>,
60 <743 1>,
61 <744 1>,
62 <745 1>,
63 <746 1>,
64 <747 1>,
65 <748 1>,
66 <749 1>,
67 <750 1>,
68 <751 1>,
69 <752 1>,
70 <753 1>,
71 <785 1>,
72 <754 4>;
73
74 interrupt-names = "hns-roce-comp-0",
75 "hns-roce-comp-1",
76 "hns-roce-comp-2",
77 "hns-roce-comp-3",
78 "hns-roce-comp-4",
79 "hns-roce-comp-5",
80 "hns-roce-comp-6",
81 "hns-roce-comp-7",
82 "hns-roce-comp-8",
83 "hns-roce-comp-9",
84 "hns-roce-comp-10",
85 "hns-roce-comp-11",
86 "hns-roce-comp-12",
87 "hns-roce-comp-13",
88 "hns-roce-comp-14",
89 "hns-roce-comp-15",
90 "hns-roce-comp-16",
91 "hns-roce-comp-17",
92 "hns-roce-comp-18",
93 "hns-roce-comp-19",
94 "hns-roce-comp-20",
95 "hns-roce-comp-21",
96 "hns-roce-comp-22",
97 "hns-roce-comp-23",
98 "hns-roce-comp-24",
99 "hns-roce-comp-25",
100 "hns-roce-comp-26",
101 "hns-roce-comp-27",
102 "hns-roce-comp-28",
103 "hns-roce-comp-29",
104 "hns-roce-comp-30",
105 "hns-roce-comp-31",
106 "hns-roce-async",
107 "hns-roce-common";
108 };
109

3. 한국어 전문 번역

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

HiSilicon RoCE 자원과 IRQ

1-28

HiSilicon RoCE engine은 network subsystem의 일부이며 GMAC과 DSA fabric 같은 다른 network component에 의존해 동작합니다. 이 문서는 RoCE engine의 추가 property를 설명합니다.

필수 `compatible`은 `hisilicon,hns-roce-v1`입니다. `reg`는 RoCE driver의 physical base address와 memory-mapped region length입니다. `eth-handle`은 Ethernet device node, `dsaf-handle`은 DSAF device node를 참조하는 phandle입니다. 원문 property `node_guid`는 device 또는 component를 고유하게 식별하는 number이며 `#address-cells`와 `#size-cells`는 모두 2여야 합니다.

선택 `dma-coherent`는 DMA operation이 coherent할 때 둡니다. `interrupts`는 completion event IRQ 32개, asynchronous event IRQ 1개, event overflow IRQ 1개로 모두 34개를 포함해야 합니다. `interrupt-names`의 `hns-roce-comp-0`부터 `hns-roce-comp-31`은 32개 completion IRQ, `hns-roce-async`는 asynchronous event IRQ, `hns-roce-common`은 common exception warning IRQ입니다.

HNS RoCE interrupt layout
CountNamePurpose
32hns-roce-comp-0..31Completion event
1hns-roce-asyncAsynchronous event
1hns-roce-commonCommon exception/overflow warning

34개 IRQ의 역할과 이름 범위를 정리합니다.

HNS RoCE 34-IRQ 예제

29-108

예제 RoCE node는 base `0xc4000000`의 0x100000-byte region, coherent DMA, Ethernet node `eth2`~`eth7`, DSAF `soc0_dsa`와 GUID `00 9A CD 00 00 01 02 03`을 사용합니다. MBIGEN DSA를 interrupt parent로 두고 32개 completion IRQ 뒤에 async IRQ 785와 common IRQ 754를 배치하며 이름도 같은 순서로 지정합니다.

infiniband@c4000000 {
                compatible = "hisilicon,hns-roce-v1";
                reg = <0x0 0xc4000000 0x0 0x100000>;
                dma-coherent;
                eth-handle = <&eth2 &eth3 &eth4 &eth5 &eth6 &eth7>;
                dsaf-handle = <&soc0_dsa>;
                node-guid = [00 9A CD 00 00 01 02 03];
                #address-cells = <2>;
                #size-cells = <2>;
                interrupt-parent = <&mbigen_dsa>;
                interrupts = <722 1>,
                                <723 1>,
                                <724 1>,
                                <725 1>,
                                <726 1>,
                                <727 1>,
                                <728 1>,
                                <729 1>,
                                <730 1>,
                                <731 1>,
                                <732 1>,
                                <733 1>,
                                <734 1>,
                                <735 1>,
                                <736 1>,
                                <737 1>,
                                <738 1>,
                                <739 1>,
                                <740 1>,
                                <741 1>,
                                <742 1>,
                                <743 1>,
                                <744 1>,
                                <745 1>,
                                <746 1>,
                                <747 1>,
                                <748 1>,
                                <749 1>,
                                <750 1>,
                                <751 1>,
                                <752 1>,
                                <753 1>,
                                <785 1>,
                                <754 4>;

                interrupt-names = "hns-roce-comp-0",
                                "hns-roce-comp-1",
                                "hns-roce-comp-2",
                                "hns-roce-comp-3",
                                "hns-roce-comp-4",
                                "hns-roce-comp-5",
                                "hns-roce-comp-6",
                                "hns-roce-comp-7",
                                "hns-roce-comp-8",
                                "hns-roce-comp-9",
                                "hns-roce-comp-10",
                                "hns-roce-comp-11",
                                "hns-roce-comp-12",
                                "hns-roce-comp-13",
                                "hns-roce-comp-14",
                                "hns-roce-comp-15",
                                "hns-roce-comp-16",
                                "hns-roce-comp-17",
                                "hns-roce-comp-18",
                                "hns-roce-comp-19",
                                "hns-roce-comp-20",
                                "hns-roce-comp-21",
                                "hns-roce-comp-22",
                                "hns-roce-comp-23",
                                "hns-roce-comp-24",
                                "hns-roce-comp-25",
                                "hns-roce-comp-26",
                                "hns-roce-comp-27",
                                "hns-roce-comp-28",
                                "hns-roce-comp-29",
                                "hns-roce-comp-30",
                                "hns-roce-comp-31",
                                "hns-roce-async",
                                "hns-roce-common";
        };