요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Broadcom AVS mail box and interrupt register bindings
=====================================================
A total of three DT nodes are required. One node (brcm,avs-cpu-data-mem)
references the mailbox register used to communicate with the AVS CPU[1]. The
second node (brcm,avs-cpu-l2-intr) is required to trigger an interrupt on
the AVS CPU. The interrupt tells the AVS CPU that it needs to process a
command sent to it by a driver. Interrupting the AVS CPU is mandatory for
commands to be processed.
The interface also requires a reference to the AVS host interrupt controller,
so a driver can react to interrupts generated by the AVS CPU whenever a command
has been processed. See [2] for more information on the brcm,l2-intc node.
[1] The AVS CPU is an independent co-processor that runs proprietary
firmware. On some SoCs, this firmware supports DFS and DVFS in addition to
Adaptive Voltage Scaling.
[2] Documentation/devicetree/bindings/interrupt-controller/brcm,l2-intc.yaml
Node brcm,avs-cpu-data-mem
--------------------------
Required properties:
- compatible: must include: brcm,avs-cpu-data-mem and
should include: one of brcm,bcm7271-avs-cpu-data-mem or
brcm,bcm7268-avs-cpu-data-mem
- reg: Specifies base physical address and size of the registers.
- interrupts: The interrupt that the AVS CPU will use to interrupt the host
when a command completed.
- interrupt-names: The name of the interrupt used to interrupt the host.
Optional properties:
- None
Node brcm,avs-cpu-l2-intr
-------------------------
Required properties:
- compatible: must include: brcm,avs-cpu-l2-intr and
should include: one of brcm,bcm7271-avs-cpu-l2-intr or
brcm,bcm7268-avs-cpu-l2-intr
- reg: Specifies base physical address and size of the registers.
Optional properties:
- None
Example
=======
avs_host_l2_intc: interrupt-controller@f04d1200 {
#interrupt-cells = <1>;
compatible = "brcm,l2-intc";
interrupt-parent = <&intc>;
reg = <0xf04d1200 0x48>;
interrupt-controller;
interrupts = <0x0 0x19 0x0>;
interrupt-names = "avs";
};
avs-cpu-data-mem@f04c4000 {
compatible = "brcm,bcm7271-avs-cpu-data-mem",
"brcm,avs-cpu-data-mem";
reg = <0xf04c4000 0x60>;
interrupts = <0x1a>;
interrupt-parent = <&avs_host_l2_intc>;
interrupt-names = "sw_intr";
};
avs-cpu-l2-intr@f04d1100 {
compatible = "brcm,bcm7271-avs-cpu-l2-intr",
"brcm,avs-cpu-l2-intr";
reg = <0xf04d1100 0x10>;
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Broadcom AVS mailbox와 interrupts
1-21Broadcom AVS mailbox 및 interrupt register 바인딩입니다. 전체 interface에는 세 DT node가 필요합니다. `brcm,avs-cpu-data-mem`은 AVS CPU와 통신하는 mailbox register를 나타내고, `brcm,avs-cpu-l2-intr`은 AVS CPU에 interrupt를 발생시켜 driver command를 처리하게 합니다.
Command 처리에는 AVS CPU interrupt가 필수입니다. Driver가 command 완료 후 AVS CPU가 발생시키는 interrupt에 반응하려면 AVS host interrupt controller도 참조해야 합니다.
AVS CPU는 proprietary firmware를 실행하는 독립 co-processor입니다. 일부 SoC firmware는 Adaptive Voltage Scaling뿐 아니라 DFS와 DVFS도 지원합니다.
Host interrupt controller `brcm,l2-intc`의 자세한 내용은 `Documentation/devicetree/bindings/interrupt-controller/brcm,l2-intc.yaml`을 참조합니다.
Host driver의 mailbox command와 양방향 interrupt 경로입니다.
AVS CPU data-memory node
22-36Data-memory node의 `compatible`에는 공통 `brcm,avs-cpu-data-mem`을 반드시 포함하고 SoC에 따라 `brcm,bcm7271-avs-cpu-data-mem` 또는 `brcm,bcm7268-avs-cpu-data-mem` 중 하나를 포함하는 것이 좋습니다.
`reg`는 mailbox register의 physical base와 size입니다. `interrupts`는 command 완료 시 AVS CPU가 host에 보내는 interrupt이고 `interrupt-names`는 이 host interrupt의 이름입니다. 선택 속성은 없습니다.
세 node의 역할과 interrupt 방향을 구분합니다.
AVS CPU L2 interrupt node
37-49Trigger node의 `compatible`에는 공통 `brcm,avs-cpu-l2-intr`을 반드시 포함하고 SoC에 따라 `brcm,bcm7271-avs-cpu-l2-intr` 또는 `brcm,bcm7268-avs-cpu-l2-intr` 중 하나를 포함하는 것이 좋습니다.
`reg`에는 AVS CPU interrupt-trigger register의 physical base address와 size를 지정합니다. 선택 속성은 없습니다.
BCM7271 AVS 예제
50-76예제는 `brcm,l2-intc` host controller, address `0xf04c4000`의 data-memory mailbox, address `0xf04d1100`의 AVS interrupt trigger를 구성합니다.
Data-memory node는 host controller를 `interrupt-parent`로 사용하고 `sw_intr` completion interrupt를 받습니다. Trigger node는 command 처리 요청에 사용할 register block을 제공합니다.
avs_host_l2_intc: interrupt-controller@f04d1200 {
#interrupt-cells = <1>;
compatible = "brcm,l2-intc";
interrupt-parent = <&intc>;
reg = <0xf04d1200 0x48>;
interrupt-controller;
interrupts = <0x0 0x19 0x0>;
interrupt-names = "avs";
};
avs-cpu-data-mem@f04c4000 {
compatible = "brcm,bcm7271-avs-cpu-data-mem",
"brcm,avs-cpu-data-mem";
reg = <0xf04c4000 0x60>;
interrupts = <0x1a>;
interrupt-parent = <&avs_host_l2_intc>;
interrupt-names = "sw_intr";
};
avs-cpu-l2-intr@f04d1100 {
compatible = "brcm,bcm7271-avs-cpu-l2-intr",
"brcm,avs-cpu-l2-intr";
reg = <0xf04d1100 0x10>;
};
요약과 해설
brcm,stb-avs-cpu-freq.txt:1-76Host command, AVS trigger와 completion interrupt의 세-node 구조를 설명합니다.