MTK DDR调试

本文介绍了MTK DDR的调试过程,包括获取Flash ID、解析不同DDR类型的兼容性规则,如EMCP、Discrete LP2/LP3类的兼容条件,并详细阐述了编译时的错误情况及其原因,如LPDDR2、LPDDR3和PCDDR3的混合不兼容问题。编译后生成的`custom_emi.h`文件用于开机时匹配DDR时序。
摘要由CSDN通过智能技术生成

1. 获取 flash id:

硬件信息:通过这个节点可以知道当前flash的id,上层根据id找到对应的flash名字。

 

cat /sys/block/mmcblk0/device/cid

 

\kernel-4.4\drivers\mmc\core\Mmc.c

MMC_DEV_ATTR(cid, "%08x%08x%08x%08x\n", card->raw_cid[0], card->raw_cid[1]

 

MT8163_MT8127

GDT42A32ED7_T2E     0x700100543532373332010585581e937d

 

 

MT8321 只支持如下方式兼容:

1. EMCP类: 只要emmc id不同,就可以兼容。

2. discrete lp2 类: dram vendor ID不同,就可以兼容(也就是说不同晶圆厂家兼容,具体对应的是datasheet中的MR5值,对应到code中MemoryDeviceList_xxxx.xlsx 表格的MODE_REG5 列)

3. discrete lp3 类: dram vendor ID不同,就可以兼容(也就是说不同晶圆厂家兼容,具体对应的是datasheet中的MR5值,对应到code中MemoryDeviceList_xxxx.xlsx 表格的MODE_REG5 列)

4. PCDDR3:不支持。

 

编译脚本

判断哪些ddr可以兼容,编译时会允许这个脚本

vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/MT8127/emigen.pl

 1 if ($scan_idx eq $PartNum) # scan column 2 for Part Number
 2 
 3         {
 4             my $boardid ;
 5             $boardid = &xls_cell_value($Sheet, $row, $COLUMN_BOARD_ID) ;
 6             if ($CustBoard_ID eq $boardid)
 7             {
 8                 $rows_part_found[$num_part_found] = $row;
 9 
10                 print "\nPartNum($PartNum==$scan_idx) found in row $row\n" ;
11                 $Total_PART_NUMBER[$TotalCustemChips] = $PartNum;
12                 $num_part_found += 1 ;
13                 $TotalCustemChips += 1;
14             }
15         }
1 if ($num_part_found == 0)
2     {
3          print "\n[Error]unsupported part number $PartNum\n" ;
4         die "\n[Error]unsupported part number $PartNum\n" ;
5     }

 

①:Board ID不匹配,不支持

 [Error]unsupported part number H9TKNNN8KDMP

所以xls表格里面配置的board id跟当前平台不一致的话,会报不支持。

 

②:兼容不了LPDDR2和LPDDR3同时选配

TotalCustemChips:2 

[Error] LPDDR2 and LPDDR3 are not allowed to be mixed in the Combo Discrete DRAM list.

 

③:兼容不了多个PCDDR3同时选配

[Error] At most one discrete PCDDR3 DRAM is allowed in the Combo MCP list

 

 

④:兼容不了LPDDR3和PCDDR3同时选配

 [Error] At most one discrete PCDDR3 DRAM is allowed in the Combo MCP list

 

编译过后会生成

out/target/product/hiteq8127_ce/obj/PRELOADER_OBJ/inc/custom_emi.h

此文件包含兼容的所有ddr时序,就是将xls表格里的时序信息构建成数组。开机时会利用这个数组emi_settings[]找到指定的ddr。

 1 EMI_SETTINGS emi_settings[] =
 2 {
 3      
 4     //K4E6E304EE_EGCF
 5     {
 6         0x0,        /* sub_version */
 7         0x0003,        /* TYPE */
 8         0,        /* EMMC ID/FW ID checking length */
 9         0,        /* FW length */
10         {
   0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},        /* NAND_EMMC_ID */
11         {
   0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},        /* FW_ID */
12         0x000250A2,        /* EMI_CONA_VAL */
13         0xAA00AA00,        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值