요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
DT compatible string versioning for SiFive open-source IP blocks
This document describes the version specification for DT "compatible"
strings for open-source SiFive IP blocks. HDL for these IP blocks
can be found in this public repository:
https://github.com/sifive/sifive-blocks
IP block-specific DT compatible strings are contained within the HDL,
in the form "sifive,<ip-block-name><integer version number>".
An example is "sifive,uart0" from:
https://github.com/sifive/sifive-blocks/blob/v1.0/src/main/scala/devices/uart/UART.scala#L43
Until these IP blocks (or IP integration) support version
auto-discovery, the maintainers of these IP blocks intend to increment
the suffixed number in the compatible string whenever the software
interface to these IP blocks changes, or when the functionality of the
underlying IP blocks changes in a way that software should be aware of.
Driver developers can use compatible string "match" values such as
"sifive,uart0" to indicate that their driver is compatible with the
register interface and functionality associated with the relevant
upstream sifive-blocks commits. It is expected that most drivers will
match on these IP block-specific compatible strings.
DT data authors, when writing data for a particular SoC, should
continue to specify an SoC-specific compatible string value, such as
"sifive,fu540-c000-uart". This way, if SoC-specific
integration-specific bug fixes or workarounds are needed, the kernel
or other system software can match on this string to apply them. The
IP block-specific compatible string (such as "sifive,uart0") should
then be specified as a subsequent value.
An example of this style:
compatible = "sifive,fu540-c000-uart", "sifive,uart0";
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
SiFive IP compatible 버전 형식
1-14이 문서는 open-source SiFive IP block의 DT `compatible` 문자열 버전 규칙을 설명합니다. HDL은 `https://github.com/sifive/sifive-blocks` 공개 저장소에 있습니다.
IP block 전용 문자열은 HDL 안에 `sifive,<ip-block-name><integer version number>` 형식으로 들어갑니다. 예로 upstream UART HDL의 `sifive,uart0`가 있습니다.
버전 번호 증가 정책
15-20IP block이나 IP 통합이 version auto-discovery를 지원하기 전까지, 소프트웨어 인터페이스가 바뀌거나 소프트웨어가 알아야 할 방식으로 기반 IP 기능이 바뀔 때 maintainer는 compatible 문자열의 뒤쪽 숫자를 증가시킵니다.
드라이버 match
21-26드라이버 개발자는 `sifive,uart0` 같은 match 값을 사용해 특정 upstream sifive-blocks commit에 대응하는 register interface와 기능을 지원한다고 표시할 수 있습니다. 대부분의 드라이버는 이런 IP block 전용 compatible 문자열에 match할 것으로 예상합니다.
SoC 전용 문자열 우선
27-38특정 SoC의 DT data를 작성할 때는 `sifive,fu540-c000-uart` 같은 SoC 전용 compatible을 계속 첫 값으로 지정해야 합니다. 그래야 SoC 통합에 특화된 버그 수정이나 workaround가 필요할 때 kernel 또는 다른 system software가 이 문자열에 match할 수 있습니다.
그 뒤에 `sifive,uart0` 같은 IP block 전용 문자열을 후속 값으로 지정합니다.
compatible = "sifive,fu540-c000-uart", "sifive,uart0";
요약과 해설
sifive-blocks-ip-versioning.txt:1-38바인딩의 하드웨어 모델과 속성 순서를 먼저 해설하고, 접을 수 있는 영어 원문 전체와 원문 줄 좌표를 보존한 한국어 전문 번역을 제공합니다.