我们想在 通过GPIO的读取来区分QCM2290 上不同的硬件版本

weixin_32291731 2025-01-13 16:15:00

我们想在 通过GPIO的读取来区分QCM2290 上不同的硬件版本

要求:
我们希望使用不同的 GPIO 配置来唯一地标识我们设备的每个硬件版本。
基于这些 GPIO 状态,我们需要在启动过程的早期做出决策,以正确选择设备树 blob 覆盖 (dtbo)。

问题:
引导加载程序阶段可行性:您能否确认 CM2290 引导加载程序(UEFI 或 XBL)是否可以可靠地读取 GPIO 状态,如果可以,应该在引导加载程序的哪个阶段发生这种情况?
您能否提供任何推荐的方法或代码示例来实现早期 GPIO 状态检测以进行硬件区分?

...全文
637 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

你可以使用 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 (重启设备)

  1. 修改设备树
    使用 vim 编辑器打开:vim yupik - iot - hsp - pm7250b - LCD - ili9881p - lt9611 - 2f - overlay.dts

img

  1. 修改 Makefile 文件
    使用 vim 编辑器打开:vim LINUX/android/vendor/qcom/proprietary/devicetree/qcom/Makefile

img

  1. 修改 CDT
    使用 vim 编辑器打开:vim boot_images/boot/QcomPkg/Tools/cdp_1.0_jedec_lpddr4.xml

img

执行以下指令生成 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 以便能够适配不同的硬件.

3,770

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧