03-CDT(一)

目录

介绍

CDT结构

 创建CDT文件

CDT与QUP分配表链接

生成二进制文件


介绍

配置数据表(CDT)是编程到平台设备上的EEPROM或eMMC/UFS的软件表。它包含硬件信息,如平台ID和DDR参数,这对于初始化各种软件模块至关重要。

理想情况下,CDT信息应在工厂编程到设备上的EEPROM芯片中。然而,较低成本的设备或开发设备通常没有EEPROM芯片。当EEPROM不存在时,CDT信息需要在源代码中定义,并在编译时链接到构建中。

在引导期间,引导加载程序从EEPROM或源代码中获取CDT信息,并将信息加载到共享内存中。然后,其他模块可以自由地访问信息以执行动态初始化。

从用户的角度来看,CDT只是内存中的一个连续字节数组。

CDT是存储在SBL的数据区域(用作默认设置)中的字节数组,此外,还存储在外部非易失性数据分区(在eMMC或EEPROM上)中。在设备启动期间,SBL在恢复到默认设置之前检查是否存在外部非易失性CDT分区。

CDT提供特定于平台/设备的数据,例如硬件平台ID、DDR/SDRAM配置等,各种系统模块利用这些数据在启动时或启动后执行动态配置。CDT中必须有正确的平台ID,才能正确操作各种系统模块。错误配置的平台ID会导致难以调试的稳定性问题,例如,由于错误的PMIC操作、GPIO错误配置、图像之间的内存映射重叠等。

CDT结构

CDT由三个主要部分组成:

  1. The CDT header consists of:
    1. A magic number
    2. A version number
    3. Two reserved fields
  2. The block metadate section
  3. Individual CDBs
    1. CDB0-Platform ID                 // 通常需要修改
    2. CDB1-DDR parameters
    3. Additional CDBs-user-defined data

 创建CDT文件

A sample CDT file:cdp_0_1.xml。

Path:boot_images\QcomPkg\Tools\cdp_0_1.xml

 定义:

CDT是一个软件表,包含初始化各种软件模块所需的硬件信息,如平台ID、子类型(subtype)。QTI汽车平台使用Platfrom ID=25(对应图中0x19),而子类型取决于OEM定制,图中为0x01。

 

CDT与QUP分配表链接

1. 定义CDT是在硬件上编程的定义

2. 将OEM定义的平台ID和子类型添加到QUPAC_Access.xml文件下定义的权限,该文件位于:<repo.location>\tz_8155\trustzone_images\core\settings\buses\qup_accesscontrol\qupv3\config\855\QUPAC_Private.xml

 图中的25,x  对应<OEM platform_id>, <OEM subtype_id>, // OEM Platform

生成二进制文件

$ python cdt_generator.py cdp_0_1.xml CDT.bin

最后的CDT.bin 即为生成的二进制文件。最后通过fastboot烧写进车机系统。

$ fastboot flash cdt Test_Device/boot_8155/boot_images/QcomPkg/Tools/CDT.bin

最后重启车机即可正常进入系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕大明白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值