요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Freescale 85xx RAID Engine nodes
RAID Engine nodes are defined to describe on-chip RAID accelerators. Each RAID
Engine should have a separate node.
Supported chips:
P5020, P5040
Required properties:
- compatible: Should contain "fsl,raideng-v1.0" as the value
This identifies RAID Engine block. 1 in 1.0 represents
major number whereas 0 represents minor number. The
version matches the hardware IP version.
- reg: offset and length of the register set for the device
- ranges: standard ranges property specifying the translation
between child address space and parent address space
Example:
/* P5020 */
raideng: raideng@320000 {
compatible = "fsl,raideng-v1.0";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x320000 0x10000>;
ranges = <0 0x320000 0x10000>;
};
There must be a sub-node for each job queue present in RAID Engine
This node must be a sub-node of the main RAID Engine node
- compatible: Should contain "fsl,raideng-v1.0-job-queue" as the value
This identifies the job queue interface
- reg: offset and length of the register set for job queue
- ranges: standard ranges property specifying the translation
between child address space and parent address space
Example:
/* P5020 */
raideng_jq0@1000 {
compatible = "fsl,raideng-v1.0-job-queue";
reg = <0x1000 0x1000>;
ranges = <0x0 0x1000 0x1000>;
};
There must be a sub-node for each job ring present in RAID Engine
This node must be a sub-node of job queue node
- compatible: Must contain "fsl,raideng-v1.0-job-ring" as the value
This identifies job ring. Should contain either
"fsl,raideng-v1.0-hp-ring" or "fsl,raideng-v1.0-lp-ring"
depending upon whether ring has high or low priority
- reg: offset and length of the register set for job ring
- interrupts: interrupt mapping for job ring IRQ
Optional property:
- fsl,liodn: Specifies the LIODN to be used for Job Ring. This
property is normally set by firmware. Value
is of 12-bits which is the LIODN number for this JR.
This property is used by the IOMMU (PAMU) to distinguish
transactions from this JR and than be able to do address
translation & protection accordingly.
Example:
/* P5020 */
raideng_jq0@1000 {
compatible = "fsl,raideng-v1.0-job-queue";
reg = <0x1000 0x1000>;
ranges = <0x0 0x1000 0x1000>;
raideng_jr0: jr@0 {
compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring";
reg = <0x0 0x400>;
interrupts = <139 2 0 0>;
interrupt-parent = <&mpic>;
fsl,liodn = <0x41>;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
RAID Engine node
1-18Freescale 85xx RAID Engine node는 on-chip RAID accelerator를 기술하며 각 RAID Engine마다 별도 node가 있어야 합니다. 지원 chip은 P5020과 P5040입니다.
필수 `compatible`은 `fsl,raideng-v1.0`이며 RAID Engine block의 hardware IP version을 나타냅니다. 1은 major number, 0은 minor number입니다.
필수 `reg`는 device register set의 offset과 length를 지정합니다. 필수 표준 `ranges`는 child address 공간과 parent address 공간 사이의 translation을 지정합니다.
P5020 RAID Engine 예제
19-29P5020 예제는 0x320000에 0x10000-byte RAID Engine register와 동일 범위의 child-address translation을 선언합니다.
/* P5020 */
raideng: raideng@320000 {
compatible = "fsl,raideng-v1.0";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x320000 0x10000>;
ranges = <0 0x320000 0x10000>;
};
Job queue node
30-38RAID Engine에 존재하는 각 job queue마다 main RAID Engine node 아래에 sub-node가 있어야 합니다.
필수 `compatible`은 job queue interface를 식별하는 `fsl,raideng-v1.0-job-queue`입니다. 필수 `reg`는 job queue register set의 offset과 length를, 필수 표준 `ranges`는 child와 parent address 공간 사이의 translation을 지정합니다.
P5020 job queue 예제
39-47P5020 job queue 예제는 engine 내부 offset 0x1000에 0x1000-byte register set과 일치하는 child range를 선언합니다.
/* P5020 */
raideng_jq0@1000 {
compatible = "fsl,raideng-v1.0-job-queue";
reg = <0x1000 0x1000>;
ranges = <0x0 0x1000 0x1000>;
};
Job ring node
48-66RAID Engine에 존재하는 각 job ring마다 job queue node 아래에 sub-node가 있어야 합니다.
필수 `compatible`에는 `fsl,raideng-v1.0-job-ring`과 함께 ring 우선순위에 따라 `fsl,raideng-v1.0-hp-ring` 또는 `fsl,raideng-v1.0-lp-ring`이 들어가야 합니다. 필수 `reg`는 job ring register set의 offset과 length이고 `interrupts`는 job ring IRQ mapping입니다.
선택 `fsl,liodn`은 job ring에 사용할 12-bit LIODN 번호이며 보통 firmware가 설정합니다. IOMMU(PAMU)는 이 값으로 해당 job ring의 transaction을 구분해 address translation과 protection을 적용합니다.
High-priority job ring 예제
67-81예제는 job queue 안에 high-priority ring을 두고 0x400-byte register set, MPIC interrupt 139와 LIODN 0x41을 지정합니다.
/* P5020 */
raideng_jq0@1000 {
compatible = "fsl,raideng-v1.0-job-queue";
reg = <0x1000 0x1000>;
ranges = <0x0 0x1000 0x1000>;
raideng_jr0: jr@0 {
compatible = "fsl,raideng-v1.0-job-ring", "fsl,raideng-v1.0-hp-ring";
reg = <0x0 0x400>;
interrupts = <139 2 0 0>;
interrupt-parent = <&mpic>;
fsl,liodn = <0x41>;
};
};
요약과 해설
raideng.txt:1-81RAID engine→job queue→priority별 job ring 계층과 IRQ·LIODN을 P5020 예제로 설명합니다.