← Documents Documentation/devicetree/bindings/scsi/hisilicon-sas.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / SCSI

HiSilicon SAS controller

HiSilicon SAS v1·v2의 register, PHY, queue와 interrupt 순서를 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

hisilicon-sas.txt:1-98

바인딩의 하드웨어 모델과 속성 순서를 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * HiSilicon SAS controller
2
3 The HiSilicon SAS controller supports SAS/SATA.
4
5 Main node required properties:
6 - compatible : value should be as follows:
7 (a) "hisilicon,hip05-sas-v1" for v1 hw in hip05 chipset
8 (b) "hisilicon,hip06-sas-v2" for v2 hw in hip06 chipset
9 (c) "hisilicon,hip07-sas-v2" for v2 hw in hip07 chipset
10 - sas-addr : array of 8 bytes for host SAS address
11 - reg : Contains two regions. The first is the address and length of the SAS
12 register. The second is the address and length of CPLD register for
13 SGPIO control. The second is optional, and should be set only when
14 we use a CPLD for directly attached disk LED control.
15 - hisilicon,sas-syscon: phandle of syscon used for sas control
16 - ctrl-reset-reg : offset to controller reset register in ctrl reg
17 - ctrl-reset-sts-reg : offset to controller reset status register in ctrl reg
18 - ctrl-clock-ena-reg : offset to controller clock enable register in ctrl reg
19 - queue-count : number of delivery and completion queues in the controller
20 - phy-count : number of phys accessible by the controller
21 - interrupts : For v1 hw: Interrupts for phys, completion queues, and fatal
22 sources; the interrupts are ordered in 3 groups, as follows:
23 - Phy interrupts
24 - Completion queue interrupts
25 - Fatal interrupts
26 Phy interrupts : Each phy has 3 interrupt sources:
27 - broadcast
28 - phyup
29 - abnormal
30 The phy interrupts are ordered into groups of 3 per phy
31 (broadcast, phyup, and abnormal) in increasing order.
32 Completion queue interrupts : each completion queue has 1
33 interrupt source.
34 The interrupts are ordered in increasing order.
35 Fatal interrupts : the fatal interrupts are ordered as follows:
36 - ECC
37 - AXI bus
38 For v2 hw: Interrupts for phys, Sata, and completion queues;
39 the interrupts are ordered in 3 groups, as follows:
40 - Phy interrupts
41 - Sata interrupts
42 - Completion queue interrupts
43 Phy interrupts : Each controller has 2 phy interrupts:
44 - phy up/down
45 - channel interrupt
46 Sata interrupts : Each phy on the controller has 1 Sata
47 interrupt. The interrupts are ordered in increasing
48 order.
49 Completion queue interrupts : each completion queue has 1
50 interrupt source. The interrupts are ordered in
51 increasing order.
52
53 Optional main node properties:
54 - hip06-sas-v2-quirk-amt : when set, indicates that the v2 controller has the
55 "am-max-transmissions" limitation.
56 - hisilicon,signal-attenuation : array of 3 32-bit values, containing de-emphasis,
57 preshoot, and boost attenuation readings for the board. They
58 are used to describe the signal attenuation of the board. These
59 values' range is 7600 to 12400, and used to represent -24dB to
60 24dB.
61 The formula is "y = (x-10000)/10000". For example, 10478
62 means 4.78dB.
63
64 Example:
65 sas0: sas@c1000000 {
66 compatible = "hisilicon,hip05-sas-v1";
67 sas-addr = [50 01 88 20 16 00 00 0a];
68 reg = <0x0 0xc1000000 0x0 0x10000>;
69 hisilicon,sas-syscon = <&pcie_sas>;
70 ctrl-reset-reg = <0xa60>;
71 ctrl-reset-sts-reg = <0x5a30>;
72 ctrl-clock-ena-reg = <0x338>;
73 queue-count = <32>;
74 phy-count = <8>;
75 dma-coherent;
76 interrupt-parent = <&mbigen_dsa>;
77 interrupts = <259 4>,<263 4>,<264 4>,/* phy0 */
78 <269 4>,<273 4>,<274 4>,/* phy1 */
79 <279 4>,<283 4>,<284 4>,/* phy2 */
80 <289 4>,<293 4>,<294 4>,/* phy3 */
81 <299 4>,<303 4>,<304 4>,/* phy4 */
82 <309 4>,<313 4>,<314 4>,/* phy5 */
83 <319 4>,<323 4>,<324 4>,/* phy6 */
84 <329 4>,<333 4>,<334 4>,/* phy7 */
85 <336 1>,<337 1>,<338 1>,/* cq0-2 */
86 <339 1>,<340 1>,<341 1>,/* cq3-5 */
87 <342 1>,<343 1>,<344 1>,/* cq6-8 */
88 <345 1>,<346 1>,<347 1>,/* cq9-11 */
89 <348 1>,<349 1>,<350 1>,/* cq12-14 */
90 <351 1>,<352 1>,<353 1>,/* cq15-17 */
91 <354 1>,<355 1>,<356 1>,/* cq18-20 */
92 <357 1>,<358 1>,<359 1>,/* cq21-23 */
93 <360 1>,<361 1>,<362 1>,/* cq24-26 */
94 <363 1>,<364 1>,<365 1>,/* cq27-29 */
95 <366 1>,<367 1>/* cq30-31 */
96 <376 4>,/* fatal ecc */
97 <381 4>;/* fatal axi */
98 };
99

3. 한국어 전문 번역

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

HiSilicon SAS controller

1-3

HiSilicon SAS controller는 SAS와 SATA를 지원합니다.

주 노드 필수 속성

4-20

`compatible`은 hip05의 v1 하드웨어에서 `hisilicon,hip05-sas-v1`, hip06의 v2에서 `hisilicon,hip06-sas-v2`, hip07의 v2에서 `hisilicon,hip07-sas-v2`입니다. `sas-addr`은 host SAS 주소를 나타내는 8바이트 배열입니다.

`reg`에는 두 영역을 넣습니다. 첫 영역은 SAS register의 주소와 길이입니다. 둘째 영역은 SGPIO 제어용 CPLD register의 주소와 길이이며, 직접 연결된 disk LED를 CPLD로 제어할 때만 지정하는 선택 영역입니다.

`hisilicon,sas-syscon`은 SAS 제어에 사용하는 syscon phandle입니다. `ctrl-reset-reg`, `ctrl-reset-sts-reg`, `ctrl-clock-ena-reg`는 각각 controller reset, reset 상태, clock enable register의 control register 기준 오프셋입니다.

`queue-count`는 controller의 delivery·completion queue 수이고 `phy-count`는 controller가 접근할 수 있는 PHY 수입니다.

v1 interrupt 순서

21-37

v1 하드웨어의 `interrupts`는 PHY, completion queue, fatal source의 세 그룹 순서입니다.

각 PHY에는 `broadcast`, `phyup`, `abnormal` 세 interrupt source가 있으며 PHY 번호가 증가하는 순서로 이 세 개씩 나열합니다. 각 completion queue에는 interrupt source 하나가 있고 queue 번호 증가 순서로 나열합니다.

fatal interrupt는 `ECC`, `AXI bus` 순서입니다.

v2 interrupt 순서

38-51

v2 하드웨어의 `interrupts`는 PHY, SATA, completion queue의 세 그룹 순서입니다.

각 controller에는 `phy up/down`과 `channel interrupt` 두 PHY interrupt가 있습니다. controller의 각 PHY에는 SATA interrupt 하나가 있으며 PHY 번호가 증가하는 순서로 나열합니다. 각 completion queue의 interrupt도 queue 번호 증가 순서입니다.

선택 속성

52-62

`hip06-sas-v2-quirk-amt`는 v2 controller에 `am-max-transmissions` 제한이 있음을 나타냅니다.

`hisilicon,signal-attenuation`은 board의 de-emphasis, preshoot, boost attenuation을 담는 32비트 값 3개 배열입니다. 값 범위 7600~12400은 -24dB~24dB를 나타내며 공식은 `y = (x-10000)/10000`입니다. 예를 들어 10478은 4.78dB입니다.

hip05 SAS 예제

63-98

예제는 host SAS 주소, 32개 queue, 8개 PHY와 PHY별 3개 interrupt, completion queue 32개, fatal ECC·AXI interrupt를 지정합니다.

sas0: sas@c1000000 {
        compatible = "hisilicon,hip05-sas-v1";
        sas-addr = [50 01 88 20 16 00 00 0a];
        reg = <0x0 0xc1000000 0x0 0x10000>;
        hisilicon,sas-syscon = <&pcie_sas>;
        ctrl-reset-reg = <0xa60>;
        ctrl-reset-sts-reg = <0x5a30>;
        ctrl-clock-ena-reg = <0x338>;
        queue-count = <32>;
        phy-count = <8>;
        dma-coherent;
        interrupt-parent = <&mbigen_dsa>;
        interrupts =    <259 4>,<263 4>,<264 4>,/* phy0 */
                        <269 4>,<273 4>,<274 4>,/* phy1 */
                        <279 4>,<283 4>,<284 4>,/* phy2 */
                        <289 4>,<293 4>,<294 4>,/* phy3 */
                        <299 4>,<303 4>,<304 4>,/* phy4 */
                        <309 4>,<313 4>,<314 4>,/* phy5 */
                        <319 4>,<323 4>,<324 4>,/* phy6 */
                        <329 4>,<333 4>,<334 4>,/* phy7 */
                        <336 1>,<337 1>,<338 1>,/* cq0-2 */
                        <339 1>,<340 1>,<341 1>,/* cq3-5 */
                        <342 1>,<343 1>,<344 1>,/* cq6-8 */
                        <345 1>,<346 1>,<347 1>,/* cq9-11 */
                        <348 1>,<349 1>,<350 1>,/* cq12-14 */
                        <351 1>,<352 1>,<353 1>,/* cq15-17 */
                        <354 1>,<355 1>,<356 1>,/* cq18-20 */
                        <357 1>,<358 1>,<359 1>,/* cq21-23 */
                        <360 1>,<361 1>,<362 1>,/* cq24-26 */
                        <363 1>,<364 1>,<365 1>,/* cq27-29 */
                        <366 1>,<367 1>/* cq30-31 */
                        <376 4>,/* fatal ecc */
                        <381 4>;/* fatal axi */
};