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

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