MTK平台DDR MemoryDeviceList参数的配置以及详细说明文档-已验证正常使用.doc

摘要:

针对MTK DDR参数的配置主要配置

vendor/mediatek/proprietary/bootable/bootloader/preloader/tools/emigen/AC8227L/

MemoryDeviceList_AC8227L.xls表格中的各个参数,注意针对ATC/MTK平台DDR参数配置,不同主芯片平台CONA寄存器的各个位定义不一样,请参考ARM主CPU寄存器说明文档,没有话要向供应商要这个寄存器各个位的说明书。

本文档主要针对MT8227L主芯片Android8.0系统的DDR配置

1、CONA寄存器的配置:

1.1 17位配置

第17位是指单rank还是双rank,如DDR芯片手册的:

256M型号的为单rank,17位为0,512M型号的为双rank,17位为1

1.2 15:14位和13:12位针对rank行地址配置

15:14位和13:12位针对RANK的行地址配置:

这个对应DDR芯片手册中的:

原则14:15位按照寄存器的说明应该设置成:

256M型号的只有1个rank,行地址15位:

14:15位RANK2的配置就任意(因为没有),我们将其配置成15位行地址为11(3)

13:12位RANK1配置的行地址为15位,我们配置行地址为11(3)

512M型号的有2个RANK,行地址为15位:

14:15位RANK2的配置的行地址为15位,我们将其配置成15位行地址为11(3)

13:12位RANK1配置的行地址为15位,我们配置行地址为11(3)

1.3  8和9位的配置

8和9bit 指的是bank 的位数,一般情况下bank都是8,所以这里应该是3bit。根据目前的经验,还没有遇到有4bank的情况,8、 9 位通常都是设1。

指DDR芯片手册上的:

1.4  7:6位和5:4位rank列地址的配置

对应DDR芯片手册中:

256M型号的只有1个rank,列地址10位:

7:6位RANK2的配置就任意(因为没有),我们将其配置成10位列地址为10(2)

5:4位RANK1配置的列地址为10位,我们配置列地址为10(2)

512M型号的有2个RANK,列地址为10位:

7:6位RANK2的配置的列地址为10位,我们将其配置成10位列地址为10(2)

5:4位RANK1配置的列地址为10位,我们配置列地址为10(2)

3:2位:没有特殊条件一下一般我们取11

1位:取1(使用32位数据总线)

27位:没有特殊情况下我们取0

最后CONA寄存器的值是:0x0000F3AE(为什么打开Rank2上的地址呢,主要是就算配置了,后面容量大小只有1个Rank时,寻址不会出现错误的,所以为了兼容Rank2,直接打开即可)

2、MODE_REG5寄存器的配置

MODE_REG5寄存器的值是DDR芯片的制造商ID号(Manufacturer ID),按照DDR芯片手册是:

刚好是0x000000FF

3、DDR参数列表的Type部分

   Type部分请参考DDR芯片手册中的

即可Type类型为: LPDDR3

4、DDR参数列表中的Density (Mb)

Density (Mb)请参考DDR芯片手册中的

即256M32的Density (Mb)值是8192

  512M32的Density (Mb)值是8192 + 8192

5、DDR参数列表中的Vendor

   Vendor参数请参考DDR芯片手册:

即Vendor的值填写成BIWIN

6、DDR参数列表中的Part Number

   Part Number型号请参考DDR芯片手册中:

如果使用BW52L256M32D1PF,那么Part Number列中填写BW52L256M32D1PF

如果使用BW52L512M32D2PF,那么Part Number列中填写BW52L512M32D2PF

7、DDR参数列表中的Board ID

   Board ID参数填写当前BSP使用的demo板的型号,对照表格中其它配置即可。

  这里取Board ID = AC8227L_EVB

最后按照以上步骤的结果可以得知道,我们配置的时候大概看一下表格中已经有的型号参数可以得知,表格中已经配置好的有很多了,如果我们使用的型号不再列表中,那么看一下我们的DDR型号芯片手册中的参数,对照DDR参数列表表格中的已经存在的型号的Density (Mb)和type跟我们使用的DDR型号芯片手册中相同的,拷贝一个在表格中插入一行,然后一般情况下Vendor、Part Number和MODE_REG5(制造商ID)即可,其他一般情况下是OK的。

如我们使用型号是BW52L256M32D1PF,从BW52L256M32D1PF参数可以知道,我们拷贝表格中的Hynix的H9CKNNN8GTMP型号并插入一行,将其vendor修改成BWIN,将Part Number修改成:BW52L256M32D1PF,然后再这行基础上进行即可。

8、配置DDR的客制化设置

vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/$Project/inc/

custom_MemoryDevice.h

vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/8227LGO_demo/inc/

custom_MemoryDevice.h

将文件中的

//#define CS_PART_NUMBER[0]       NK42L128M32DI-LF

#define CS_PART_NUMBER[0]       BW52L256M32D1PF

BW52L256M32D1PF为我们的新项目使用的DDR型号,即DDR参数列表中的Part Number列中包含的型号。

如果系统使用的是DDR+EMMC的套片,那么DDR可以兼容4颗,如果不是不能兼容,当兼容4颗的时候,请按照以下配置

#define CS_PART_NUMBER[0]       xxxxxxxxxxxxxx0

#define CS_PART_NUMBER[1]       xxxxxxxxxxxxxx1

#define CS_PART_NUMBER[2]       xxxxxxxxxxxxxx2

#define CS_PART_NUMBER[3]       xxxxxxxxxxxxxx3

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章