← Documents Documentation/devicetree/bindings/remoteproc/wkup_m3_rproc.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / Remoteproc

TI Wakeup M3 remoteproc

AM33xx·AM43xx Wakeup M3의 메모리와 전원 관리 펌웨어 구성을 설명합니다.

Source pathDocumentation/devicetree/bindings/remoteproc/wkup_m3_rproc.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

wkup_m3_rproc.txt:1-52

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

2. 영어 원문 전체

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

원문 전체 펼치기
1 TI Wakeup M3 Remoteproc Driver
2 ==============================
3
4 The TI AM33xx and AM43xx family of devices use a small Cortex M3 co-processor
5 (commonly referred to as Wakeup M3 or CM3) to help with various low power tasks
6 that cannot be controlled from the MPU. This CM3 processor requires a firmware
7 binary to accomplish this. The wkup_m3 remoteproc driver handles the loading of
8 the firmware and booting of the CM3.
9
10 Wkup M3 Device Node:
11 ====================
12 A wkup_m3 device node is used to represent the Wakeup M3 processor instance
13 within the SoC. It is added as a child node of the parent interconnect bus
14 (l4_wkup) through which it is accessible to the MPU.
15
16 Required properties:
17 --------------------
18 - compatible: Should be one of,
19 "ti,am3352-wkup-m3" for AM33xx SoCs
20 "ti,am4372-wkup-m3" for AM43xx SoCs
21 - reg: Should contain the address ranges for the two internal
22 memory regions, UMEM and DMEM. The parent node should
23 provide an appropriate ranges property for properly
24 translating these into bus addresses.
25 - reg-names: Contains the corresponding names for the two memory
26 regions. These should be named "umem" & "dmem".
27 - ti,hwmods: Name of the hwmod associated with the wkupm3 device.
28 - ti,pm-firmware: Name of firmware file to be used for loading and
29 booting the wkup_m3 remote processor.
30
31 Example:
32 --------
33 /* AM33xx */
34 ocp {
35 l4_wkup: l4_wkup@44c00000 {
36 compatible = "am335-l4-wkup", "simple-bus";
37 ranges = <0 0x44c00000 0x400000>;
38 #address-cells = <1>;
39 #size-cells = <1>;
40
41 wkup_m3: wkup_m3@100000 {
42 compatible = "ti,am3352-wkup-m3";
43 reg = <0x100000 0x4000>,
44 <0x180000 0x2000>;
45 reg-names = "umem", "dmem";
46 ti,hwmods = "wkup_m3";
47 ti,pm-firmware = "am335x-pm-firmware.elf";
48 };
49 };
50
51 ...
52 };
53

3. 한국어 전문 번역

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

TI Wakeup M3 remoteproc 드라이버

1-8

TI AM33xx 및 AM43xx 계열 장치는 MPU가 제어할 수 없는 여러 저전력 작업을 보조하기 위해 작은 Cortex M3 보조 프로세서를 사용합니다. 이 프로세서는 일반적으로 Wakeup M3 또는 CM3라고 부릅니다.

CM3가 이 작업을 수행하려면 펌웨어 바이너리가 필요합니다. `wkup_m3` remoteproc 드라이버는 펌웨어를 적재하고 CM3를 부팅하는 일을 담당합니다.

Wkup M3 장치 노드

9-14

`wkup_m3` 장치 노드는 SoC 안의 Wakeup M3 프로세서 인스턴스를 나타냅니다. MPU가 접근하는 상위 인터커넥트 버스인 `l4_wkup`의 자식 노드로 추가합니다.

필수 속성

15-29

`compatible`은 AM33xx SoC에서 `ti,am3352-wkup-m3`, AM43xx SoC에서 `ti,am4372-wkup-m3` 중 하나여야 합니다.

`reg`는 내부 메모리 영역 UMEM과 DMEM 두 곳의 주소 범위를 담습니다. 상위 노드는 이 주소를 버스 주소로 올바르게 변환할 수 있도록 적절한 `ranges` 속성을 제공해야 합니다. 대응하는 `reg-names` 값은 `umem`과 `dmem`입니다.

`ti,hwmods`는 wkupm3 장치와 연관된 hwmod 이름입니다. `ti,pm-firmware`는 `wkup_m3` 원격 프로세서를 적재하고 부팅할 때 사용할 펌웨어 파일 이름입니다.

AM33xx 예제

30-52

예제는 `l4_wkup@44c00000` 버스의 주소 변환 범위를 선언하고, UMEM 16KiB와 DMEM 8KiB를 갖는 Wakeup M3 노드를 구성합니다. 전원 관리 펌웨어 파일은 `am335x-pm-firmware.elf`입니다.

/* AM33xx */
ocp {
         l4_wkup: l4_wkup@44c00000 {
                compatible = "am335-l4-wkup", "simple-bus";
                ranges = <0 0x44c00000 0x400000>;
                #address-cells = <1>;
                #size-cells = <1>;

                wkup_m3: wkup_m3@100000 {
                        compatible = "ti,am3352-wkup-m3";
                        reg = <0x100000 0x4000>,
                              <0x180000 0x2000>;
                        reg-names = "umem", "dmem";
                        ti,hwmods = "wkup_m3";
                        ti,pm-firmware = "am335x-pm-firmware.elf";
                };
        };

        ...
};