요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
===================================================================
Debug Control and Status Register (DCSR) Binding
Copyright 2011 Freescale Semiconductor Inc.
NOTE: The bindings described in this document are preliminary and subject
to change. Some of the compatible strings that contain only generic names
may turn out to be inappropriate, or need additional properties to describe
the integration of the block with the rest of the chip.
=====================================================================
Debug Control and Status Register Memory Map
Description
This node defines the base address and range for the
defined DCSR Memory Map. Child nodes will describe the individual
debug blocks defined within this memory space.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include "fsl,dcsr" and "simple-bus".
The DCSR space exists in the memory-mapped bus.
- #address-cells
Usage: required
Value type: <u32>
Definition: A standard property. Defines the number of cells
or representing physical addresses in child nodes.
- #size-cells
Usage: required
Value type: <u32>
Definition: A standard property. Defines the number of cells
or representing the size of physical addresses in
child nodes.
- ranges
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
range of the DCSR space.
EXAMPLE
dcsr: dcsr@f00000000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,dcsr", "simple-bus";
ranges = <0x00000000 0xf 0x00000000 0x01008000>;
};
=====================================================================
Event Processing Unit
This node represents the region of DCSR space allocated to the EPU
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include "fsl,dcsr-epu"
- interrupts
Usage: required
Value type: <prop_encoded-array>
Definition: Specifies the interrupts generated by the EPU.
The value of the interrupts property consists of three
interrupt specifiers. The format of the specifier is defined
by the binding document describing the node's interrupt parent.
The EPU counters can be configured to assert the performance
monitor interrupt signal based on either counter overflow or value
match. Which counter asserted the interrupt is captured in an EPU
Counter Interrupt Status Register (EPCPUISR).
The EPU unit can also be configured to assert either or both of
two interrupt signals based on debug event sources within the SoC.
The interrupt signals are epu_xt_int0 and epu_xt_int1.
Which event source asserted the interrupt is captured in an EPU
Interrupt Status Register (EPISR0,EPISR1).
Interrupt numbers are listed in order (perfmon, event0, event1).
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-epu@0 {
compatible = "fsl,dcsr-epu";
interrupts = <52 2 0 0
84 2 0 0
85 2 0 0>;
interrupt-parent = <&mpic>;
reg = <0x0 0x1000>;
};
=======================================================================
Nexus Port Controller
This node represents the region of DCSR space allocated to the NPC
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include "fsl,dcsr-npc"
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
The Nexus Port controller occupies two regions in the DCSR space
with distinct functionality.
The first register range describes the Nexus Port Controller
control and status registers.
The second register range describes the Nexus Port Controller
internal trace buffer. The NPC trace buffer is a small memory buffer
which stages the nexus trace data for transmission via the Aurora port
or to a DDR based trace buffer. In some configurations the NPC trace
buffer can be the only trace buffer used.
EXAMPLE
dcsr-npc {
compatible = "fsl,dcsr-npc";
reg = <0x1000 0x1000 0x1000000 0x8000>;
};
=======================================================================
Nexus Concentrator
This node represents the region of DCSR space allocated to the NXC
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include "fsl,dcsr-nxc"
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-nxc@2000 {
compatible = "fsl,dcsr-nxc";
reg = <0x2000 0x1000>;
};
=======================================================================
CoreNet Debug Controller
This node represents the region of DCSR space allocated to
the CoreNet Debug controller.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include "fsl,dcsr-corenet"
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
The CoreNet Debug controller occupies two regions in the DCSR space
with distinct functionality.
The first register range describes the CoreNet Debug Controller
functionality to perform transaction and transaction attribute matches.
The second register range describes the CoreNet Debug Controller
functionality to trigger event notifications and debug traces.
EXAMPLE
dcsr-corenet {
compatible = "fsl,dcsr-corenet";
reg = <0x8000 0x1000 0xB0000 0x1000>;
};
=======================================================================
Data Path Debug controller
This node represents the region of DCSR space allocated to
the DPAA Debug Controller. This controller controls debug configuration
for the QMAN and FMAN blocks.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include both an identifier specific to the SoC
or Debug IP of the form "fsl,<soc>-dcsr-dpaa" in addition to the
generic compatible string "fsl,dcsr-dpaa".
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-dpaa@9000 {
compatible = "fsl,p4080-dcsr-dpaa", "fsl,dcsr-dpaa";
reg = <0x9000 0x1000>;
};
=======================================================================
OCeaN Debug controller
This node represents the region of DCSR space allocated to
the OCN Debug Controller.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include both an identifier specific to the SoC
or Debug IP of the form "fsl,<soc>-dcsr-ocn" in addition to the
generic compatible string "fsl,dcsr-ocn".
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-ocn@11000 {
compatible = "fsl,p4080-dcsr-ocn", "fsl,dcsr-ocn";
reg = <0x11000 0x1000>;
};
=======================================================================
DDR Controller Debug controller
This node represents the region of DCSR space allocated to
the OCN Debug Controller.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include "fsl,dcsr-ddr"
- dev-handle
Usage: required
Definition: A phandle to associate this debug node with its
component controller.
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-ddr@12000 {
compatible = "fsl,dcsr-ddr";
dev-handle = <&ddr1>;
reg = <0x12000 0x1000>;
};
=======================================================================
Nexus Aurora Link Controller
This node represents the region of DCSR space allocated to
the NAL Controller.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include both an identifier specific to the SoC
or Debug IP of the form "fsl,<soc>-dcsr-nal" in addition to the
generic compatible string "fsl,dcsr-nal".
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-nal@18000 {
compatible = "fsl,p4080-dcsr-nal", "fsl,dcsr-nal";
reg = <0x18000 0x1000>;
};
=======================================================================
Run Control and Power Management
This node represents the region of DCSR space allocated to
the RCPM Debug Controller. This functionlity is limited to the
control the debug operations of the SoC and cores.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include both an identifier specific to the SoC
or Debug IP of the form "fsl,<soc>-dcsr-rcpm" in addition to the
generic compatible string "fsl,dcsr-rcpm".
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-rcpm@22000 {
compatible = "fsl,p4080-dcsr-rcpm", "fsl,dcsr-rcpm";
reg = <0x22000 0x1000>;
};
=======================================================================
Core Service Bridge Proxy
This node represents the region of DCSR space allocated to
the Core Service Bridge Proxies.
There is one Core Service Bridge Proxy device for each CPU in the system.
This functionlity provides access to the debug operations of the CPU.
PROPERTIES
- compatible
Usage: required
Value type: <string>
Definition: Must include both an identifier specific to the cpu
of the form "fsl,dcsr-<cpu>-sb-proxy" in addition to the
generic compatible string "fsl,dcsr-cpu-sb-proxy".
- cpu-handle
Usage: required
Definition: A phandle to associate this debug node with its cpu.
- reg
Usage: required
Value type: <prop-encoded-array>
Definition: A standard property. Specifies the physical address
offset and length of the DCSR space registers of the device
configuration block.
EXAMPLE
dcsr-cpu-sb-proxy@40000 {
compatible = "fsl,dcsr-e500mc-sb-proxy",
"fsl,dcsr-cpu-sb-proxy";
cpu-handle = <&cpu0>;
reg = <0x40000 0x1000>;
};
dcsr-cpu-sb-proxy@41000 {
compatible = "fsl,dcsr-e500mc-sb-proxy",
"fsl,dcsr-cpu-sb-proxy";
cpu-handle = <&cpu1>;
reg = <0x41000 0x1000>;
};
=======================================================================
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
DCSR memory map root
1-53이 문서의 binding은 preliminary 상태이며 변경될 수 있습니다. Generic 이름만 포함한 일부 compatible string은 부적절한 것으로 판명되거나, chip의 나머지 부분과 block이 통합되는 방식을 설명하는 property가 추가로 필요할 수 있습니다.
Debug Control and Status Register(DCSR) root node는 정의된 DCSR memory map의 base address와 range를 지정합니다. Child node는 이 memory space 안의 개별 debug block을 설명합니다.
필수 string `compatible`에는 `fsl,dcsr`와 `simple-bus`를 모두 포함해야 합니다. DCSR space는 memory-mapped bus에 존재합니다.
필수 u32 `#address-cells`는 child node의 physical address를 표현하는 cell 수이고 `#size-cells`는 child node physical-address size를 표현하는 cell 수입니다. 필수 encoded array `ranges`는 DCSR space의 physical-address range를 지정합니다.
dcsr: dcsr@f00000000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "fsl,dcsr", "simple-bus";
ranges = <0x00000000 0xf 0x00000000 0x01008000>;
};
Event Processing Unit
54-103EPU node는 DCSR space에서 Event Processing Unit에 할당된 영역을 나타냅니다. 필수 `compatible`은 `fsl,dcsr-epu`이고 `reg`는 device configuration block의 DCSR register physical-address offset과 length입니다.
필수 `interrupts`는 EPU가 생성하는 interrupt 세 개의 specifier로 이루어집니다. Specifier 형식은 interrupt parent node의 binding이 정의합니다.
EPU counter는 overflow 또는 value match를 조건으로 performance-monitor interrupt를 assert할 수 있습니다. Interrupt를 assert한 counter는 EPU Counter Interrupt Status Register `EPCPUISR`에 기록됩니다.
EPU는 SoC 내부 debug-event source에 따라 `epu_xt_int0`, `epu_xt_int1` 중 하나 또는 둘 다를 assert할 수도 있습니다. Event source는 EPU Interrupt Status Register `EPISR0`, `EPISR1`에 기록됩니다. Interrupt 번호 순서는 `perfmon`, `event0`, `event1`입니다.
dcsr-epu@0 {
compatible = "fsl,dcsr-epu";
interrupts = <52 2 0 0
84 2 0 0
85 2 0 0>;
interrupt-parent = <&mpic>;
reg = <0x0 0x1000>;
};
Nexus Port Controller
104-140NPC node는 DCSR space에서 Nexus Port Controller에 할당된 영역을 나타냅니다. 필수 `compatible`은 `fsl,dcsr-npc`입니다.
`reg`는 서로 기능이 다른 두 DCSR 영역을 지정합니다. 첫 range는 NPC control/status register이고 두 번째는 NPC internal trace buffer입니다.
NPC trace buffer는 Nexus trace data를 Aurora port로 전송하거나 DDR 기반 trace buffer로 옮기기 전에 staging하는 작은 memory buffer입니다. 어떤 configuration에서는 이 buffer가 유일한 trace buffer일 수 있습니다.
dcsr-npc {
compatible = "fsl,dcsr-npc";
reg = <0x1000 0x1000 0x1000000 0x8000>;
};
Nexus Concentrator
141-165NXC node는 DCSR space에서 Nexus Concentrator에 할당된 영역입니다. 필수 `compatible`은 `fsl,dcsr-nxc`이고 `reg`는 device configuration block의 DCSR register physical-address offset과 length입니다.
dcsr-nxc@2000 {
compatible = "fsl,dcsr-nxc";
reg = <0x2000 0x1000>;
};
CoreNet Debug Controller
166-198이 node는 DCSR space에서 CoreNet Debug controller에 할당된 영역입니다. 필수 `compatible`은 `fsl,dcsr-corenet`입니다.
`reg`는 서로 다른 두 영역을 지정합니다. 첫 range는 transaction 및 transaction-attribute match를 수행하는 CoreNet Debug Controller 기능이고, 두 번째 range는 event notification과 debug trace를 trigger하는 기능입니다.
dcsr-corenet {
compatible = "fsl,dcsr-corenet";
reg = <0x8000 0x1000 0xB0000 0x1000>;
};
Data Path Debug Controller
199-227DPAA Debug Controller는 QMAN과 FMAN block의 debug configuration을 제어합니다. 이 node는 해당 controller에 할당된 DCSR 영역을 나타냅니다.
`compatible`에는 `fsl,<soc>-dcsr-dpaa` 형식의 SoC 또는 Debug IP 전용 identifier와 generic `fsl,dcsr-dpaa`를 모두 포함해야 합니다. `reg`는 DCSR register offset과 length입니다.
dcsr-dpaa@9000 {
compatible = "fsl,p4080-dcsr-dpaa", "fsl,dcsr-dpaa";
reg = <0x9000 0x1000>;
};
OCeaN Debug Controller
228-255OCN node는 DCSR space에서 OCeaN Debug Controller에 할당된 영역입니다. `compatible`에는 `fsl,<soc>-dcsr-ocn` 형식의 전용 identifier와 generic `fsl,dcsr-ocn`을 모두 포함합니다.
`reg`는 device configuration block의 DCSR register physical-address offset과 length입니다.
dcsr-ocn@11000 {
compatible = "fsl,p4080-dcsr-ocn", "fsl,dcsr-ocn";
reg = <0x11000 0x1000>;
};
DDR Controller Debug Controller
256-287이 node는 DDR Controller debug 영역을 나타냅니다. 필수 `compatible`은 `fsl,dcsr-ddr`이고 `dev-handle`은 이 debug node를 해당 component controller와 연결하는 phandle입니다.
`reg`는 device configuration block의 DCSR register offset과 length입니다.
원문 L259~260은 DDR Controller 절 제목 아래에서도 이 영역을 `OCN Debug Controller`에 할당된 영역이라고 적습니다. 문맥상 불일치해 보이지만 원문은 그대로 보존했습니다.
dcsr-ddr@12000 {
compatible = "fsl,dcsr-ddr";
dev-handle = <&ddr1>;
reg = <0x12000 0x1000>;
};
Nexus Aurora Link Controller
288-316NAL node는 DCSR space에서 Nexus Aurora Link Controller에 할당된 영역입니다. `compatible`에는 `fsl,<soc>-dcsr-nal` 형식의 전용 identifier와 generic `fsl,dcsr-nal`을 모두 포함해야 합니다.
`reg`는 device configuration block의 DCSR register offset과 length입니다.
dcsr-nal@18000 {
compatible = "fsl,p4080-dcsr-nal", "fsl,dcsr-nal";
reg = <0x18000 0x1000>;
};
Run Control and Power Management
317-345RCPM Debug Controller 영역은 SoC와 core의 debug operation을 제어하는 데 한정됩니다. Node는 이 기능에 할당된 DCSR space를 나타냅니다.
`compatible`에는 `fsl,<soc>-dcsr-rcpm` 형식의 전용 identifier와 generic `fsl,dcsr-rcpm`을 모두 포함해야 합니다. `reg`는 DCSR register offset과 length입니다.
dcsr-rcpm@22000 {
compatible = "fsl,p4080-dcsr-rcpm", "fsl,dcsr-rcpm";
reg = <0x22000 0x1000>;
};
Core Service Bridge Proxy
346-388Core Service Bridge Proxy는 system의 CPU마다 하나씩 존재하며 CPU debug operation에 접근하게 합니다. Node는 각 proxy에 할당된 DCSR 영역을 나타냅니다.
`compatible`에는 `fsl,dcsr-<cpu>-sb-proxy` 형식의 CPU 전용 identifier와 generic `fsl,dcsr-cpu-sb-proxy`를 모두 포함해야 합니다. `cpu-handle`은 debug node를 해당 CPU와 연결하는 phandle이고 `reg`는 DCSR register offset과 length입니다.
예제는 e500mc CPU0과 CPU1의 proxy를 각각 offset 0x40000과 0x41000에 배치합니다.
dcsr-cpu-sb-proxy@40000 {
compatible = "fsl,dcsr-e500mc-sb-proxy",
"fsl,dcsr-cpu-sb-proxy";
cpu-handle = <&cpu0>;
reg = <0x40000 0x1000>;
};
dcsr-cpu-sb-proxy@41000 {
compatible = "fsl,dcsr-e500mc-sb-proxy",
"fsl,dcsr-cpu-sb-proxy";
cpu-handle = <&cpu1>;
reg = <0x41000 0x1000>;
};
요약과 해설
dcsr.txt:1-388DCSR root와 EPU·Nexus·CoreNet·DPAA·DDR·RCPM·CPU proxy의 register·interrupt 계약을 block별로 설명합니다.