ddr初始化入口:
BOOT.BF.3.3\boot_images\core\boot\secboot3\hw\msm8952\sbl1\sbl1_config.c中load_qsee_pre_procs[]函数指针数组,如下。
1、boot_save_reset_register_log :在downloder模式下通过dumping寄存器来调试硬件重启过程。过程很简单,就是记录下寄存器的值到日志中用于dump分析。
2、boot_flash_init:初始化闪存设备。
a、通过boot_pbl_get_flash_type()获取flash类型,flash类型包括nor flash、nand flash 、ufs flash等等。我们的设备是用的nand flash。
b、通过boot_flash_dev_nand_init_and_register完成nand flash 的初始化和注册。确认nand flash 是否可用,加载分区表等动作。
3、boot_config_data_table_init:初始化配置数据表(CDT),CDT有两种存储方式,要么存在emmc 分区中,通过镜像文件获取,要么从sbl1中加载默认的cdt。我们使用的是后者。
4、sbl1_hw_platform_pre_ddr :储存平台ID。从CDT中获取platform ID信息并赋值给指针platform_id_cdb_ptr,从指针中解析出CDT版本、平台ID、主ID等信息。
后续请看下一章节分析。