← Documents Documentation/devicetree/bindings/remoteproc/ti,davinci-rproc.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Remoteproc

TI DaVinci DSP remoteproc

DaVinci C674x DSP의 internal memory, interrupt와 reserved-memory binding을 설명합니다.

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

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

1. 요약·해설

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

요약과 해설

ti,davinci-rproc.txt:1-77

Remote processor의 memory, reset, interrupt와 IPC 요구사항을 요약하고 영어 원문 전체 및 줄 좌표별 한국어 전문을 제공합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 TI Davinci DSP devices
2 =======================
3
4 The TI Davinci family of SoCs usually contains a TI DSP Core sub-system that
5 is used to offload some of the processor-intensive tasks or algorithms, for
6 achieving various system level goals.
7
8 The processor cores in the sub-system usually contain additional sub-modules
9 like L1 and/or L2 caches/SRAMs, an Interrupt Controller, an external memory
10 controller, a dedicated local power/sleep controller etc. The DSP processor
11 core used in Davinci SoCs is usually a C674x DSP CPU.
12
13 DSP Device Node:
14 ================
15 Each DSP Core sub-system is represented as a single DT node.
16
17 Required properties:
18 --------------------
19 The following are the mandatory properties:
20
21 - compatible: Should be one of the following,
22 "ti,da850-dsp" for DSPs on OMAP-L138 SoCs
23
24 - reg: Should contain an entry for each value in 'reg-names'.
25 Each entry should have the memory region's start address
26 and the size of the region, the representation matching
27 the parent node's '#address-cells' and '#size-cells' values.
28
29 - reg-names: Should contain strings with the following names, each
30 representing a specific internal memory region or a
31 specific register space,
32 "l2sram", "l1pram", "l1dram", "host1cfg", "chipsig_base"
33
34 - interrupts: Should contain the interrupt number used to receive the
35 interrupts from the DSP. The value should follow the
36 interrupt-specifier format as dictated by the
37 'interrupt-parent' node.
38
39 - memory-region: phandle to the reserved memory node to be associated
40 with the remoteproc device. The reserved memory node
41 can be a CMA memory node, and should be defined as
42 per the bindings in
43 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
44
45
46 Example:
47 --------
48
49 /* DSP Reserved Memory node */
50 reserved-memory {
51 #address-cells = <1>;
52 #size-cells = <1>;
53 ranges;
54
55 dsp_memory_region: dsp-memory@c3000000 {
56 compatible = "shared-dma-pool";
57 reg = <0xc3000000 0x1000000>;
58 reusable;
59 };
60 };
61
62 /* DSP node */
63 {
64 dsp: dsp@11800000 {
65 compatible = "ti,da850-dsp";
66 reg = <0x11800000 0x40000>,
67 <0x11e00000 0x8000>,
68 <0x11f00000 0x8000>,
69 <0x01c14044 0x4>,
70 <0x01c14174 0x8>;
71 reg-names = "l2sram", "l1pram", "l1dram", "host1cfg",
72 "chipsig";
73 interrupt-parent = <&intc>;
74 interrupts = <28>;
75 memory-region = <&dsp_memory_region>;
76 };
77 };
78

3. 한국어 전문 번역

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

DaVinci DSP subsystem

1-12

TI DaVinci SoC 계열에는 보통 processor 집약적인 task나 algorithm을 offload해 system 목표를 달성하는 TI DSP Core subsystem이 있습니다.

Subsystem의 processor core에는 보통 L1/L2 cache 또는 SRAM, interrupt controller, external memory controller, 전용 local power/sleep controller 같은 module이 추가됩니다. DaVinci SoC에서 사용하는 DSP processor core는 일반적으로 C674x DSP CPU입니다.

DSP device node

13-16

각 DSP Core subsystem은 하나의 DT node로 나타냅니다.

DaVinci DSP 필수 property

17-45

`compatible`은 OMAP-L138 SoC의 DSP에서 `ti,da850-dsp`를 사용합니다.

`reg`에는 `reg-names`의 각 값에 대응하는 항목을 두며, 각 항목은 memory region start address와 size를 parent node의 `#address-cells`, `#size-cells` 형식에 맞춰 표현합니다.

`reg-names`는 특정 internal memory region 또는 register space를 나타내는 `l2sram`, `l1pram`, `l1dram`, `host1cfg`, `chipsig_base`를 포함해야 합니다.

`interrupts`는 DSP에서 interrupt를 받을 번호이며 `interrupt-parent`가 정한 interrupt-specifier 형식을 따릅니다. `memory-region`은 remoteproc device와 연결할 reserved memory node phandle이며 CMA memory node일 수 있고 `Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt` binding에 따라 정의합니다.

DaVinci DSP 예제

46-77

예제는 0xc3000000의 16MiB reusable shared DMA pool과 `ti,da850-dsp` node를 연결합니다. 필수 목록은 `chipsig_base`를 요구하지만 원문 예제의 마지막 `reg-names` 값은 `chipsig`입니다.

/* DSP Reserved Memory node */
reserved-memory {
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        dsp_memory_region: dsp-memory@c3000000 {
                compatible = "shared-dma-pool";
                reg = <0xc3000000 0x1000000>;
                reusable;
        };
};

/* DSP node */
{
        dsp: dsp@11800000 {
                compatible = "ti,da850-dsp";
                reg = <0x11800000 0x40000>,
                      <0x11e00000 0x8000>,
                      <0x11f00000 0x8000>,
                      <0x01c14044 0x4>,
                      <0x01c14174 0x8>;
                reg-names = "l2sram", "l1pram", "l1dram", "host1cfg",
                            "chipsig";
                interrupt-parent = <&intc>;
                interrupts = <28>;
                memory-region = <&dsp_memory_region>;
        };
};