如何针对开发板配置设备树

如何针对开发板配置设备树,第1张

针对开发板配置设备树如下。

进入设备树目录查看设备树文件

添加led子节点的信息

返回源码目录生成dtb文件

将生成的dtb文件拷贝到开发板的网络文件系统

将dtb文件拷贝到开发板的/boot目录下重新启动开发板

如上DTS文件片段,SPI Device 节点必须定义在 SPI Master 节点下,其中 compatible 属性和 reg 属性,以上 compatible 属性用于匹配对应的 Driver 程序,reg 属性用于指定使用的 SPI Master 的编号,SPI 相关设备树文件识别见下文讲解。

匹配设备树文件在SPI子系统中有两个地方:在 spi_register_master() 中匹配和在 device register 时通过内核的通知链(notifier_block)来调用设备树匹配相关程序。

在 device register 时,需配置 CONFIG_OF_DYNAMIC 宏以开启动态匹配才能够使用设备树添加设备,该宏在 menuconfig/Device Drivers/Device Tree and Open Firmware support 中开启,如下图:

文件管理里就可以查看是否有DTBO分区。

在做Android8时,发现在dts中引入了dto。设备树叠加层(DTO)可让主要的设备树(DTB)叠加到设备树上。使用DTO的引导程序可以维护系统芯片(SOC)DT,并动态叠加针对特定设备的DT,从而向树中添加节点并对先用树中的属性进行更改。

也就是SOC的设备节点作为DTB,其他设备作为DTO,DTO可以对DTB中的节点进行引用和修改。实现DTO包括分割设备树,编译,分区和运行。

数据结构:

dt_table_header 仅适用于 dtb/dtbo 分区;您不能在 image.gz 末尾处附加此格式。如果您有一个 DTB/DTBO,则仍必须使用此格式(并且,dt_table_header 中的 dt_entry_count 为 1)。

#define DT_TABLE_MAGIC 0xd7b7ab1e。

struct dt_table_header {。

uint32_t magic// DT_TABLE_MAGIC。

uint32_t total_size// includes dt_table_header + all dt_table_entry。

// and all dtb/dtbo。

uint32_t header_size// sizeof(dt_table_header)。

uint32_t dt_entry_size// sizeof(dt_table_entry)。

uint32_t dt_entry_count// number of dt_table_entry。

uint32_t dt_entries_offset// offset to the first dt_table_entry。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11695218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存