0. 寫在前面
1. 深入淺出Device Tree
在設(shè)備樹之前,板級(jí)信息都是通過硬編碼的方式編譯進(jìn)內(nèi)核的仆葡,
TODO:內(nèi)核中的實(shí)際源代碼是怎樣的
1.2 DTS格式
1.2.1
1.2.x 設(shè)備樹實(shí)例
2. 深入理解Device Tree的運(yùn)作原理*
2.1 DTB文件格式
之前猜測(cè)DTB文件會(huì)是直接把樹形結(jié)構(gòu)dump下來帕膜,但仔細(xì)想想這樣也是不合理的霎烙,并不能很容易的讀取一棵樹遂填,通過文檔和DTC編譯器源碼了解到DTB文件的格式是一種扁平化結(jié)構(gòu)尚猿,在啟動(dòng)時(shí)進(jìn)行設(shè)備樹的構(gòu)建智绸。
TODO:
內(nèi)核如何構(gòu)建DTB
TODO: 啟動(dòng)階段內(nèi)核是如何解析DTB的野揪?
驅(qū)動(dòng)側(cè)如何使用設(shè)備樹
3. 分析Raspiberry Pi 4B的設(shè)備樹文件
參考
https://github.com/devicetree-org/devicetree-specification/releases/tag/v0.3
https://www.raspberrypi.org/documentation/configuration/device-tree.md
https://elinux.org/Device_Tree_Source_Undocumented#conditional_node_compilation
http://www.wowotech.net/device_model/dt-code-file-struct-parse.html
FAQ
Bootloader初始化硬件與Linux設(shè)備驅(qū)動(dòng)程序初始化是否重復(fù)冗余?
-
PC與嵌入式的Bootloader有什么不同瞧栗?
BIOS 第一階段斯稳,GRUB 、WIndow Bootmgr 第二階段
U-BOOT 第一二階段迹恐、加載操作系統(tǒng)之后就不復(fù)存在了
image.png 時(shí)鐘樹和中斷是怎么樣工作的?