RK平台的U-Boot⽀持检测硬件上的GPIO或者ADC状态动态加载不同的Kernel DTB,暂称为HW-ID DTB(
Hardware id DTB)功能。
设计原理
通常硬件设计会经常更新版本和⼀些元器件,⽐如:屏幕、wifi 模组等。如果每⼀个硬件版本都要对应⼀套软件,维护起来就⽐较⿇烦。所以需要 HW_ID 功能实现⼀套软件可以适配不同版本的硬件。针对不同硬件版本,软件上需要提供对应的dtb ⽂件,同时还要提供 ADC/GPIO 硬件唯⼀值⽤于表征当前硬件版本(⽐如:定的adc 值、固定的某 GPIO 电平)。⽤⼾把这些和硬件版本对应的dtb
⽂件全打包进同⼀个resource.img,U-Boot 引导 kernel 时会检测硬件唯⼀值,从 resource.img
⾥找出和当前硬件版本匹配的 dtb 传给 kernel。
硬件参考⽬前⽀持 ADC 和 GPIO 两种⽅式确定硬件版本。
ADC 参考设计
RK3326-EVB/PX30-EVB 主板上有预留分压电阻,不同的电阻分压有不同的ADC 值,这样可以确定不同
硬件版本: