进入设备树目录查看设备树文件
添加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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)