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 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.

1. 요약·해설

원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.

요약과 해설

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. 한국어 전문 번역

영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, 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";
        };