DeviceTree
-
[리눅스 커널] devicetree overlayLinux/kernel 2023. 8. 7. 19:22
글의 참고 - https://docs.kernel.org/devicetree/overlay-notes.html - https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/configuration/device-tree.adoc - https://www.microchip.com/forums/m1212896.aspx - https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README - https://www.cnblogs.com/qiengo/p/5915508.html 글의 전제 - 밑줄로 작성된 글은 강조 표시를 의미한다. - 그림 출처는..
-
[커널][디바이스트리] 디바이스 트리에서 8, 16, 64 비트값 선언하고 읽기.Linux/kernel 2023. 8. 3. 02:25
디바이스 트리에서 특정 노드에 정수형 프로퍼티를 선언할 경우, 아래와 같이 선언할 수 있다. gpclk0_gpio4: gpclk0_gpio4 { brcm,pins = ; brcm,function = ; }; gpclk1_gpio5: gpclk1_gpio5 { brcm,pins = ; brcm,function = ; }; gpclk1_gpio42: gpclk1_gpio42 { brcm,pins = ; brcm,function = ; }; `brcm,pins` , `brcm,function`, `brcm,pull` 기본적으로 모두 unsigned int 로 선언된 프로퍼티들이다. 위에 값들을 불러올 때, 값이 작다고 of_read_property_u8(), of_read_property_u16() 함수를 호..
-
[커널][디바이스트리] Label을 사용하는 이유와 참조시 주의점Linux/kernel 2023. 8. 3. 02:25
디바이스트리에 노드를 작성할 때, 아래와 같은 양식을 따른다. [ Label : ] Name@[ Addres ] : { ... } 대괄호로 묶인 Label과 Address는 옵션이다. 여기서 Label을 사용하는 이유와 참조시 주의점에 대해 알아보자. 1. Label을 선언하는 이유는 해당 노드를 참조하기 위해서는 반드시 Label을 선언한다. soc { rpi3b { compatible = "rpi3b"; }; }; // compile error 1 &rpi3b { phandle = ; }; rpi3b 노드는 레이블이 선언하지 않았기 때문에, 컴파일 에러를 낸다. 2. 특정 노드의 프로퍼티를 수정하기 위해 노드를 참조할 경우, 가장 최상위에 &{NODE_NAME} 식으로 선언해야 한다. soc { rp..