RK3288 dts和dtsi介紹
Device Tree 是一種描述硬體的資料結構,它起源於 OpenFirmware ( OF )。在 Linux2.6 中, ARM 架構的板機硬體細節過多地被硬編碼在 arch/arm/plat-xxx 和 arch/arm/mach-xxx ,採用 Device Tree 後,許多硬體的細節可以直接透過它傳遞給 Linux ,而不再需要在 kernel 中進行大量的冗餘編碼。
Device Tree 由一系列被命名的結點( node )和屬性( property )組成,而結點本身可包含子節點。所謂屬性,其實就是成對出現的 name 和 value 。
在 Device Tree 中,可描述的資訊包括(原先這些資訊大多被硬編碼到 kernel 中):
· CPU 的數量和類別
· 記憶體基地址和大小
· 匯流排和橋
· 外設連線
· 中斷控制器和中斷使用情況
· GPIO 控制器和 GPIO 使用情況
· Clock 控制器和 Clock 使用情況
它基本上就是畫一棵電路板上( CPU 、匯流排、裝置組成)的樹, Bootloader 會將這棵樹傳遞給核心,然後核心可以識別這棵樹,並根據它展開出 Linux 核心中的 platform_device 、 i2c_client 、 spi_device 等裝置,而這些裝置用到的記憶體、 IRQ 等資源,也被傳遞給了核心,核心會將這些資源繫結給展開的相應的裝置。
.dts 檔案是一種 ASCII 文字格式的 Device Tree 描述。基本上,在 ARM Linux 中,一個 .dts 檔案對應一個 ARM 的 machine ,一般放置在核心的 arch/arm/boot/dts/ 目錄。由於一個 SOC 可能對應多個 machine (一個 SOC 可以對應多個產品和電路板),勢必這些 .dts 檔案需包含許多共同的部分, Linux 核心為了簡化,把 SOC 公用的部分或者多個 machine 共同的部分一般提煉為 .dtsi ,類似於 C 語言的標頭檔案。其他的 machine 對應的 .dts 就是 include 這個 .dtsi 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69948385/viewspace-2675088/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RK3288最新開源開發板介紹
- HTTP介紹和HTML簡介HTTPHTML
- Lombok介紹和配置Lombok
- Redis介紹和使用Redis
- The Graph介紹和使用
- PKI和CA 介紹
- RK3288 HDMI配置和除錯除錯
- LayerMask 的介紹和使用
- XML和JSON的介紹XMLJSON
- HTTPS 和HTTP的介紹HTTP
- ddddocr基本使用和介紹
- Python JWT 介紹和使用PythonJWT
- BlockingQueue 的介紹和使用BloC
- iOS Runtime介紹和使用iOS
- MySQL MRR和ICP介紹MySql
- Tensorflow介紹和安裝
- Spring Reactor基本介紹和案例SpringReact
- Sqoop的介紹和安裝OOP
- 【Linux】jq 命令介紹和使用Linux
- web worker的介紹和使用Web
- 容器技術和Docker介紹Docker
- Linux Boot,Kernel 和 Service 介紹Linuxboot
- HandlerMapping、Handler和HandlerAdapter的介紹APPAPT
- LVFS專案公告和介紹
- Charles 功能介紹和使用教程
- canvas描邊和填充介紹Canvas
- OutputStreamWriter介紹&程式碼實現和InputStreamReader介紹&程式碼實現
- ssr、ss和vpn介紹和區別
- Python介紹和基礎運用Python
- SAP ABAP MIME Repository 和 API 介紹API
- 介紹 Go 的陣列和切片Go陣列
- Linux中重定向和管道介紹Linux
- 1- hive和sqoop元件介紹HiveOOP元件
- Oracle 備份和恢復介紹Oracle
- clang-format的介紹和使用ORM
- Web Storage API的介紹和使用WebAPI
- 1.4.0協程之StateFlow和SharedFlow介紹
- 1.Pytest 介紹和安裝