기기 트리 소스(DTS) 형식에는 기기 트리가 텍스트 형식으로 표현되어 있습니다. 기기 트리 컴파일러(DTC)는 이러한 형식을 Linux 커널에서 기대하는 형식인 바이너리 기기 트리로 처리합니다.
참조 사용
DTC(기기 트리 컴파일러 + 오버레이 패치) 프로젝트는 dtc-format.txt 및 manual.txt에서 DTS 형식을 설명합니다.
DTO 형식과 규칙은 dt-object-internal.txt에 설명되어 있습니다.
이러한 문서에서는 오버레이 DT에서 노드 fragment@x
및 구문 __overlay__
를 사용하여 기본 DT를 업데이트하는 방법을 설명합니다. 예:
/ {
fragment@0 {
target = <&some_node>;
__overlay__ {
some_prop = "okay";
...
};
};
};
그러나 fragment@x
및 구문 __overlay__
를 사용하지 않는 것이 좋습니다. 대신 참조 구문을 사용하세요. 예:
&some_node {
some_prop = "okay";
...
};
참조 문법은 문법 __overlay__
를 사용하여 위와 동일한 객체로 dtc
에서 컴파일됩니다. 이 구문은 프래그먼트에 번호를 지정하도록 강제하지 않으므로 오버레이 DTS를 쉽게 읽고 쓸 수 있습니다. dtc
에서 이 구문 코드를 지원하지 않으면 AOSP의 DTC를 사용하세요.
라벨 사용
컴파일 시간에 표시되지 않는 노드의 정의되지 않은 참조를 허용하려면 오버레이 DT .dts
파일의 헤더에 /plugin/
태그가 있어야 합니다. 예:
/dts-v1/;
/plugin/;
여기에서 앰퍼샌드(&)가 접두사로 지정된 절대 노드 경로인 참조를 사용하여 오버레이될 노드를 타겟팅할 수 있습니다. 예를 들어 기본 DT의 node@0
의 경우 다음과 같습니다.
기본 DT에서 라벨을 정의 ... | ... 한 다음 라벨을 사용합니다. |
---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
재정의
참조 대상 속성이 기본 DT에 존재하는 경우 DTO 이후에 재정의됩니다. 재정의되지 않은 경우에는 추가됩니다. 예:
main.dts | overlay.dts | 병합된 결과 |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |
추가
참조 대상 속성이 기본 DT에 존재하지 않는 경우 DTO 이후에 추가됩니다. 예:
main.dts | overlay.dts | 병합된 결과 |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |
하위 노드
다음은 하위 노드 문법의 예입니다.
main.dts | overlay.dts | 병합된 결과 |
---|---|---|
[my_main_dt.dts] |
[my_overlay_dt.dts] |
/dts-v1/; |