요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* UCTL SATA controller glue
UCTL is the bridge unit between the I/O interconnect (an internal bus)
and the SATA AHCI host controller (UAHC). It performs the following functions:
- provides interfaces for the applications to access the UAHC AHCI
registers on the CN71XX I/O space.
- provides a bridge for UAHC to fetch AHCI command table entries and data
buffers from Level 2 Cache.
- posts interrupts to the CIU.
- contains registers that:
- control the behavior of the UAHC
- control the clock/reset generation to UAHC
- control endian swapping for all UAHC registers and DMA accesses
Properties:
- compatible: "cavium,octeon-7130-sata-uctl"
Compatibility with the cn7130 SOC.
- reg: The base address of the UCTL register bank.
- #address-cells, #size-cells, ranges and dma-ranges must be present and hold
suitable values to map all child nodes.
Example:
uctl@118006c000000 {
compatible = "cavium,octeon-7130-sata-uctl";
reg = <0x11800 0x6c000000 0x0 0x100>;
ranges; /* Direct mapping */
dma-ranges;
#address-cells = <2>;
#size-cells = <2>;
sata: sata@16c0000000000 {
compatible = "cavium,octeon-7130-ahci";
reg = <0x16c00 0x00000000 0x0 0x200>;
interrupt-parent = <&cibsata>;
interrupts = <2 4>; /* Bit: 2, level */
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
SATA UCTL bridge 기능
1-14UCTL은 internal I/O interconnect와 SATA AHCI host controller(UAHC) 사이의 bridge unit입니다. Application이 CN71XX I/O space의 UAHC AHCI register에 접근할 interface를 제공하고, UAHC가 Level 2 Cache에서 AHCI command-table entry와 data buffer를 가져오도록 bridge 역할을 합니다.
또한 CIU에 interrupt를 post하며 UAHC 동작, UAHC clock/reset 생성, 모든 UAHC register와 DMA access의 endian swapping을 제어하는 register를 포함합니다.
UCTL이 I/O register 접근, L2 data fetch, interrupt, clock/reset을 한곳에서 중개합니다.
SATA UCTL 주소와 자식 매핑
15-25`compatible`은 `cavium,octeon-7130-sata-uctl`이며 cn7130 SoC와 호환됩니다. `reg`는 UCTL register bank base address입니다.
`#address-cells`, `#size-cells`, `ranges`, `dma-ranges`는 모두 있어야 하며 모든 child node를 매핑할 수 있는 적절한 값을 가져야 합니다.
Direct-mapped AHCI 예제
26-42예제는 UCTL register `0x118006c000000`, 빈 `ranges`와 `dma-ranges`, 두 cell 주소·크기를 사용합니다. SATA 자식은 `cavium,octeon-7130-ahci`, 주소 `0x16c0000000000`, CIB SATA bit 2의 level interrupt `<2 4>`를 지정합니다.
uctl@118006c000000 {
compatible = "cavium,octeon-7130-sata-uctl";
reg = <0x11800 0x6c000000 0x0 0x100>;
ranges; /* Direct mapping */
dma-ranges;
#address-cells = <2>;
#size-cells = <2>;
sata: sata@16c0000000000 {
compatible = "cavium,octeon-7130-ahci";
reg = <0x16c00 0x00000000 0x0 0x200>;
interrupt-parent = <&cibsata>;
interrupts = <2 4>; /* Bit: 2, level */
};
};
요약과 해설
sata-uctl.txt:1-42AHCI register·L2 data·clock/reset·endian 제어와 CIB interrupt를 설명합니다.