← Documents Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

TI OMAP2+ IOMMU

OMAP 및 DRA7 IOMMU의 hwmod, TLB와 DSP syscon 바인딩입니다.

Source pathDocumentation/devicetree/bindings/iommu/ti,omap-iommu.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

ti,omap-iommu.txt:1-59

Single-master cell 형식과 DSP MDMA·EDMA instance를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 OMAP2+ IOMMU
2
3 Required properties:
4 - compatible : Should be one of,
5 "ti,omap2-iommu" for OMAP2/OMAP3 IOMMU instances
6 "ti,omap4-iommu" for OMAP4/OMAP5 IOMMU instances
7 "ti,dra7-dsp-iommu" for DRA7xx DSP IOMMU instances
8 "ti,dra7-iommu" for DRA7xx IOMMU instances
9 - ti,hwmods : Name of the hwmod associated with the IOMMU instance
10 - reg : Address space for the configuration registers
11 - interrupts : Interrupt specifier for the IOMMU instance
12 - #iommu-cells : Should be 0. OMAP IOMMUs are all "single-master" devices,
13 and needs no additional data in the pargs specifier. Please
14 also refer to the generic bindings document for more info
15 on this property,
16 Documentation/devicetree/bindings/iommu/iommu.txt
17
18 Optional properties:
19 - ti,#tlb-entries : Number of entries in the translation look-aside buffer.
20 Should be either 8 or 32 (default: 32)
21 - ti,iommu-bus-err-back : Indicates the IOMMU instance supports throwing
22 back a bus error response on MMU faults.
23 - ti,syscon-mmuconfig : Should be a pair of the phandle to the DSP_SYSTEM
24 syscon node that contains the additional control
25 register for enabling the MMU, and the MMU instance
26 number (0-indexed) within the sub-system. This property
27 is required for DSP IOMMU instances on DRA7xx SoCs. The
28 instance number should be 0 for DSP MDMA MMUs and 1 for
29 DSP EDMA MMUs.
30
31 Example:
32 /* OMAP3 ISP MMU */
33 mmu_isp: mmu@480bd400 {
34 #iommu-cells = <0>;
35 compatible = "ti,omap2-iommu";
36 reg = <0x480bd400 0x80>;
37 interrupts = <24>;
38 ti,hwmods = "mmu_isp";
39 ti,#tlb-entries = <8>;
40 };
41
42 /* DRA74x DSP2 MMUs */
43 mmu0_dsp2: mmu@41501000 {
44 compatible = "ti,dra7-dsp-iommu";
45 reg = <0x41501000 0x100>;
46 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
47 ti,hwmods = "mmu0_dsp2";
48 #iommu-cells = <0>;
49 ti,syscon-mmuconfig = <&dsp2_system 0x0>;
50 };
51
52 mmu1_dsp2: mmu@41502000 {
53 compatible = "ti,dra7-dsp-iommu";
54 reg = <0x41502000 0x100>;
55 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
56 ti,hwmods = "mmu1_dsp2";
57 #iommu-cells = <0>;
58 ti,syscon-mmuconfig = <&dsp2_system 0x1>;
59 };
60

3. 한국어 전문 번역

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

OMAP2+ IOMMU 속성

1-30

OMAP2/OMAP3 IOMMU는 `ti,omap2-iommu`, OMAP4/OMAP5는 `ti,omap4-iommu`, DRA7xx DSP IOMMU는 `ti,dra7-dsp-iommu`, 그 밖의 DRA7xx IOMMU는 `ti,dra7-iommu`를 `compatible`로 사용합니다. `ti,hwmods`는 해당 instance의 hwmod 이름, `reg`는 구성 register 주소 공간, `interrupts`는 instance의 interrupt specifier입니다.

OMAP IOMMU는 모두 single-master 장치이므로 `#iommu-cells`는 0이고 phandle argument specifier에 추가 데이터가 필요 없습니다. 자세한 내용은 `Documentation/devicetree/bindings/iommu/iommu.txt`의 일반 바인딩을 참조하십시오.

선택 `ti,#tlb-entries`는 translation look-aside buffer 항목 수이며 8 또는 32이고 기본값은 32입니다. `ti,iommu-bus-err-back`은 MMU fault에서 bus error 응답을 되돌릴 수 있음을 나타냅니다.

`ti,syscon-mmuconfig`는 MMU 활성화용 추가 control register를 포함한 `DSP_SYSTEM` syscon phandle과 subsystem 내부의 0-based MMU instance 번호 쌍입니다. DRA7xx SoC의 DSP IOMMU에 필수이며 DSP MDMA MMU는 instance 0, DSP EDMA MMU는 instance 1이어야 합니다.

OMAP IOMMU 변형
대상compatible
OMAP2/OMAP3ti,omap2-iommu
OMAP4/OMAP5ti,omap4-iommu
DRA7xx DSPti,dra7-dsp-iommu
DRA7xx 일반ti,dra7-iommu

SoC 계열과 compatible 문자열을 대응시킵니다.

OMAP3 ISP와 DRA74x DSP2 예제

31-59

OMAP3 ISP MMU 예제는 `0x480bd400`의 0x80-byte register 영역, interrupt 24, `mmu_isp` hwmod와 TLB 항목 8개를 사용합니다.

DRA74x DSP2는 MDMA용 `mmu0_dsp2`와 EDMA용 `mmu1_dsp2` 두 node를 둡니다. 각각 GIC SPI 146과 147을 사용하고 같은 `dsp2_system` syscon의 instance `0x0`과 `0x1`을 지정합니다.

/* OMAP3 ISP MMU */
mmu_isp: mmu@480bd400 {
        #iommu-cells = <0>;
        compatible = "ti,omap2-iommu";
        reg = <0x480bd400 0x80>;
        interrupts = <24>;
        ti,hwmods = "mmu_isp";
        ti,#tlb-entries = <8>;
};

/* DRA74x DSP2 MMUs */
mmu0_dsp2: mmu@41501000 {
        compatible = "ti,dra7-dsp-iommu";
        reg = <0x41501000 0x100>;
        interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
        ti,hwmods = "mmu0_dsp2";
        #iommu-cells = <0>;
        ti,syscon-mmuconfig = <&dsp2_system 0x0>;
};

mmu1_dsp2: mmu@41502000 {
        compatible = "ti,dra7-dsp-iommu";
        reg = <0x41502000 0x100>;
        interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
        ti,hwmods = "mmu1_dsp2";
        #iommu-cells = <0>;
        ti,syscon-mmuconfig = <&dsp2_system 0x1>;
};