요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
PPC440SPe DMA/XOR (DMA Controller and XOR Accelerator)
Device nodes needed for operation of the ppc440spe-adma driver
are specified hereby. These are I2O/DMA, DMA and XOR nodes
for DMA engines and Memory Queue Module node. The latter is used
by ADMA driver for configuration of RAID-6 H/W capabilities of
the PPC440SPe. In addition to the nodes and properties described
below, the ranges property of PLB node must specify ranges for
DMA devices.
i) The I2O node
Required properties:
- compatible : "ibm,i2o-440spe";
- reg : <registers mapping>
- dcr-reg : <DCR registers range>
Example:
I2O: i2o@400100000 {
compatible = "ibm,i2o-440spe";
reg = <0x00000004 0x00100000 0x100>;
dcr-reg = <0x060 0x020>;
};
ii) The DMA node
Required properties:
- compatible : "ibm,dma-440spe";
- cell-index : 1 cell, hardware index of the DMA engine
(typically 0x0 and 0x1 for DMA0 and DMA1)
- reg : <registers mapping>
- dcr-reg : <DCR registers range>
- interrupts : <interrupt mapping for DMA0/1 interrupts sources:
2 sources: DMAx CS FIFO Needs Service IRQ (on UIC0)
and DMA Error IRQ (on UIC1). The latter is common
for both DMA engines>.
Example:
DMA0: dma0@400100100 {
compatible = "ibm,dma-440spe";
cell-index = <0>;
reg = <0x00000004 0x00100100 0x100>;
dcr-reg = <0x060 0x020>;
interrupt-parent = <&DMA0>;
interrupts = <0 1>;
#interrupt-cells = <1>;
#address-cells = <0>;
#size-cells = <0>;
interrupt-map = <
0 &UIC0 0x14 4
1 &UIC1 0x16 4>;
};
iii) XOR Accelerator node
Required properties:
- compatible : "amcc,xor-accelerator";
- reg : <registers mapping>
- interrupts : <interrupt mapping for XOR interrupt source>
Example:
xor-accel@400200000 {
compatible = "amcc,xor-accelerator";
reg = <0x00000004 0x00200000 0x400>;
interrupt-parent = <&UIC1>;
interrupts = <0x1f 4>;
};
iv) Memory Queue Module node
Required properties:
- compatible : "ibm,mq-440spe";
- dcr-reg : <DCR registers range>
Example:
MQ0: mq {
compatible = "ibm,mq-440spe";
dcr-reg = <0x040 0x020>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
PPC440SPe DMA/XOR 구성
1-10`ppc440spe-adma` driver에는 DMA engine용 I2O/DMA node와 DMA node, XOR accelerator node, Memory Queue Module node가 필요합니다. Memory Queue Module은 PPC440SPe의 RAID-6 hardware capability를 구성할 때 ADMA driver가 사용합니다.
아래 node와 property 외에도 PLB node의 `ranges` property가 DMA device의 range를 지정해야 합니다.
I2O node
11-27I2O node의 필수 `compatible`은 `ibm,i2o-440spe`, `reg`는 register mapping, `dcr-reg`는 DCR register range입니다.
I2O: i2o@400100000 {
compatible = "ibm,i2o-440spe";
reg = <0x00000004 0x00100000 0x100>;
dcr-reg = <0x060 0x020>;
};
DMA engine node
28-59DMA node의 필수 `compatible`은 `ibm,dma-440spe`입니다. `cell-index`는 DMA engine의 1cell hardware index이며 보통 DMA0과 DMA1에 각각 0x0과 0x1을 사용합니다. `reg`와 `dcr-reg`는 일반 register 및 DCR range입니다.
`interrupts`는 DMA0/1 interrupt source mapping입니다. Source는 UIC0의 `DMAx CS FIFO Needs Service IRQ`와 UIC1의 `DMA Error IRQ` 두 개이며 error IRQ는 두 DMA engine이 공유합니다.
예제 DMA0 node는 자신을 interrupt parent로 두고 local interrupt 0을 UIC0 source 0x14, local interrupt 1을 UIC1 source 0x16에 map합니다.
DMA0: dma0@400100100 {
compatible = "ibm,dma-440spe";
cell-index = <0>;
reg = <0x00000004 0x00100100 0x100>;
dcr-reg = <0x060 0x020>;
interrupt-parent = <&DMA0>;
interrupts = <0 1>;
#interrupt-cells = <1>;
#address-cells = <0>;
#size-cells = <0>;
interrupt-map = <
0 &UIC0 0x14 4
1 &UIC1 0x16 4>;
};
XOR accelerator node
60-77XOR accelerator의 필수 `compatible`은 `amcc,xor-accelerator`, `reg`는 register mapping, `interrupts`는 XOR interrupt source mapping입니다. 예제는 UIC1 source 0x1f를 사용합니다.
xor-accel@400200000 {
compatible = "amcc,xor-accelerator";
reg = <0x00000004 0x00200000 0x400>;
interrupt-parent = <&UIC1>;
interrupts = <0x1f 4>;
};
Memory Queue Module node
78-91Memory Queue Module의 필수 `compatible`은 `ibm,mq-440spe`이고 `dcr-reg`는 DCR register range입니다.
MQ0: mq {
compatible = "ibm,mq-440spe";
dcr-reg = <0x040 0x020>;
};
요약과 해설
ppc440spe-adma.txt:1-91RAID-6 hardware 구성과 네 engine node의 resource를 설명합니다.