← Documents Documentation/devicetree/bindings/arm/bcm/brcm,bcm63138.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Broadcom BCM63138 DSL SoC binding

BCM63138 secondary CPU 초기화용 Boot lookup table과 PMB reset, software reboot node를 설명합니다.

Source pathDocumentation/devicetree/bindings/arm/bcm/brcm,bcm63138.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

brcm,bcm63138.txt:1-85

Secondary CPU는 enable-method, Boot lookup table과 PMB resets tuple을 함께 사용하며 software reboot는 BCM6328-style timer를 syscon-reboot로 제어합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Broadcom BCM63138 DSL System-on-a-Chip device tree bindings
2 -----------------------------------------------------------
3
4 Boards compatible with the BCM63138 DSL System-on-a-Chip should have the
5 following properties:
6
7 Required root node property:
8
9 compatible: should be "brcm,bcm63138"
10
11 An optional Boot lookup table Device Tree node is required for secondary CPU
12 initialization as well as a 'resets' phandle to the correct PMB controller as
13 defined in reset/brcm,bcm63138-pmb.txt for this secondary CPU, and an
14 'enable-method' property.
15
16 Required properties for the Boot lookup table node:
17 - compatible: should be "brcm,bcm63138-bootlut"
18 - reg: register base address and length for the Boot Lookup table
19
20 Optional properties for the primary CPU node:
21 - enable-method: should be "brcm,bcm63138"
22
23 Optional properties for the secondary CPU node:
24 - enable-method: should be "brcm,bcm63138"
25 - resets: phandle to the relevant PMB controller, one integer indicating the internal
26 bus number, and a second integer indicating the address of the CPU in the PMB
27 internal bus number.
28
29 Example:
30
31 cpus {
32 cpu@0 {
33 compatible = "arm,cortex-a9";
34 reg = <0>;
35 ...
36 enable-method = "brcm,bcm63138";
37 };
38
39 cpu@1 {
40 compatible = "arm,cortex-a9";
41 reg = <1>;
42 ...
43 enable-method = "brcm,bcm63138";
44 resets = <&pmb0 4 1>;
45 };
46 };
47
48 bootlut: bootlut@8000 {
49 compatible = "brcm,bcm63138-bootlut";
50 reg = <0x8000 0x50>;
51 };
52
53 =======
54 reboot
55 ------
56 Two nodes are required for software reboot: a timer node and a syscon-reboot node.
57
58 Timer node:
59
60 - compatible: Must be "brcm,bcm6328-timer", "syscon"
61 - reg: Register base address and length
62
63 Syscon reboot node:
64
65 See Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml for the
66 detailed list of properties, the two values defined below are specific to the
67 BCM6328-style timer:
68
69 - offset: Should be 0x34 to denote the offset of the TIMER_WD_TIMER_RESET register
70 from the beginning of the TIMER block
71 - mask: Should be 1 for the SoftRst bit.
72
73 Example:
74
75 timer: timer@80 {
76 compatible = "brcm,bcm6328-timer", "syscon";
77 reg = <0x80 0x3c>;
78 };
79
80 reboot {
81 compatible = "syscon-reboot";
82 regmap = <&timer>;
83 offset = <0x34>;
84 mask = <0x1>;
85 };
86

3. 한국어 전문 번역

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

BCM63138 root, CPU와 Boot lookup table

1-52

Broadcom BCM63138 DSL System-on-a-Chip Device Tree binding

BCM63138 DSL SoC와 호환되는 board의 root node에는 필수 `compatible` property로 `brcm,bcm63138`을 지정해야 합니다.

Secondary CPU를 초기화하려면 optional Boot lookup table Device Tree node가 필요합니다. 또한 `reset/brcm,bcm63138-pmb.txt`에 정의된 올바른 PMB controller를 가리키는 `resets` phandle과 `enable-method` property가 필요합니다.

Boot lookup table node의 필수 property는 `compatible = "brcm,bcm63138-bootlut"`과 table의 register base address 및 길이를 담는 `reg`입니다.

Primary CPU node의 optional `enable-method`는 `brcm,bcm63138`이어야 합니다.

Secondary CPU node도 `enable-method = "brcm,bcm63138"`을 사용합니다. `resets`에는 관련 PMB controller phandle, internal bus number를 나타내는 정수 하나, 그리고 그 PMB internal bus에서 CPU address를 나타내는 정수 하나를 순서대로 둡니다.

CPU와 Boot lookup table 구성 예

cpus {
        cpu@0 {
                compatible = "arm,cortex-a9";
                reg = <0>;
                ...
                enable-method = "brcm,bcm63138";
        };

        cpu@1 {
                compatible = "arm,cortex-a9";
                reg = <1>;
                ...
                enable-method = "brcm,bcm63138";
                resets = <&pmb0 4 1>;
        };
};

bootlut: bootlut@8000 {
        compatible = "brcm,bcm63138-bootlut";
        reg = <0x8000 0x50>;
};
BCM63138 secondary CPU 초기화 연결
Secondary CPU nodeenable-method = brcm,bcm63138
Boot lookup tablebrcm,bcm63138-bootlut register 영역
resets phandlePMB controller, bus number, CPU address
Secondary CPU initializationBoot address와 reset sequence 적용

CPU node가 Boot lookup table과 PMB reset controller 정보를 함께 사용하는 관계입니다.

BCM63138 software reboot binding

53-85

Software reboot

Software reboot에는 timer node와 syscon-reboot node 두 개가 필요합니다.

Timer node의 `compatible`은 `brcm,bcm6328-timer`, `syscon`이어야 하며 `reg`에는 register base address와 길이가 들어갑니다.

Syscon reboot node의 일반 property는 `Documentation/devicetree/bindings/power/reset/syscon-reboot.yaml`을 따릅니다. 아래 두 값은 BCM6328-style timer에만 해당합니다.

`offset`은 TIMER block 시작점에서 `TIMER_WD_TIMER_RESET` register까지의 offset을 나타내는 `0x34`여야 합니다. `mask`는 `SoftRst` bit를 나타내는 `1`이어야 합니다.

Timer와 reboot node 구성 예

timer: timer@80 {
        compatible = "brcm,bcm6328-timer", "syscon";
        reg = <0x80 0x3c>;
};

reboot {
        compatible = "syscon-reboot";
        regmap = <&timer>;
        offset = <0x34>;
        mask = <0x1>;
};
BCM63138 reboot node 역할
Node필수 값역할
timerbrcm,bcm6328-timer + syscon, regWatchdog timer register 제공
rebootsyscon-reboot, regmapTimer syscon 참조
reboot offset0x34TIMER_WD_TIMER_RESET 위치
reboot mask0x1SoftRst bit 선택

Software reboot 경로를 구성하는 두 node의 property를 비교합니다.