3,770
社区成员




我们想在 通过GPIO的读取来区分QCM2290 上不同的硬件版本
要求:
我们希望使用不同的 GPIO 配置来唯一地标识我们设备的每个硬件版本。
基于这些 GPIO 状态,我们需要在启动过程的早期做出决策,以正确选择设备树 blob 覆盖 (dtbo)。
问题:
引导加载程序阶段可行性:您能否确认 CM2290 引导加载程序(UEFI 或 XBL)是否可以可靠地读取 GPIO 状态,如果可以,应该在引导加载程序的哪个阶段发生这种情况?
您能否提供任何推荐的方法或代码示例来实现早期 GPIO 状态检测以进行硬件区分?
你可以使用 CDT(客户定义表,Customer - Defined Table)来区分不同的硬件 ID。
下面我给你写个示例(基于 C6490 LA)。
1, 使用 CDT 进行区分概述
如果你有两种液晶显示屏(LCD),例如:一种是 LCD - ili9881c,另一种是 LCD - ili9881p,你可以使用 CDT 来加以区分。
对于通用闪存存储(UFS),CDT 存储在逻辑单元号 3(LUN3)中,通常 “erase all” 命令只会擦除 LUN 0、1、2、4、5,LUN3 存储着 CDT 和双倍数据速率(DDR)训练参数。
对于 LCD - ili9881c:
adb root (获取 adb 超级用户权限)
adb reboot bootloader (重启进入引导加载程序)
fastboot flash cdt LCD - ili9881c_CDT.bin (通过 fastboot 工具刷入 LCD - ili9881c 的 CDT 文件)
fastboot reboot (重启设备)
对于 LCD - ili9881P:
adb root (获取 adb 超级用户权限)
adb reboot bootloader (重启进入引导加载程序)
fastboot flash cdt LCD - ili9881p_CDT.bin (通过 fastboot 工具刷入 LCD - ili9881p 的 CDT 文件)
fastboot reboot (重启设备)
执行以下指令生成 cdt.bin 文件:
cd boot_images/QcomPkg/Tools (进入该目录)
python cdt_generator.py cdp_1.0_jedec_lpddr4.xml cdt.bin (使用 Python 脚本生成 cdt.bin 文件)
fastboot flash cdt cdt.bin (通过 fastboot 工具刷入 cdt.bin 文件)
以下是启动日志:
B - 425749 - CDT - Image Load, Start
B - 428525 - CDT Version:3,Platform ID:34,Major ID:1,Minor ID:0,Subtype:6
这个是6490上的一个例子, 你可以参考这个给2290做不同的CDT 以便能够适配不同的硬件.