- 论坛徽章:
- 0
|
1,是如何使用dtb文件的? 我的理解是,在linux内核启动过程中会解析dtb文件,根据dtb文件中设备列表进行加注各个外设的驱动模块。不知这样理解是否正确?
正确,解析dtb并创建platform device 过程请参见of_platform_populate和of_platform_bus_probe。
dtb文件中外设列表,和在linux内核中使能各个外设驱动模块(设置*或M)有什么关系? 是否可以这么理解,要想一份linux kernel可以运行在多块板卡上,必须在linux kernel配置中包括所有这些板卡的driver 模块,这样在linux启动过程中才能根据dtb 中的列表进行加载模块。
dtb里面最后被kernel解析,并创建为platform device, 相应的 你也必须要有platform driver 才行。
是否可以这么理解?PC机在启动时会自动扫描外设,而在嵌入式中,linux内核启动过程中只是解析dtb文件,从而加载对应的模块。
因为PC机基本就是暗指X86,这样X86架构上外设都是基于PCI或者PCIE总线,这类总线可以在启动的时候,动态扫描。 嵌入式里面,ARM和PowerPC, SOC 主要的设备控制器都是基于soc总线,其不像pci/pcie总线可以动态的扫描。所以需要dtb。
是否可以这么理解?编译linux内核时必须选择某外设模块,并且dtb中包括该外设的信息。在linux内核启动过程中才能自动加载该模块。
对
|
|