eMMC燒錄時(shí)需注意的寄存器配置
eMMC芯片由NandFlash、控制器和標(biāo)準(zhǔn)接口組成,在應(yīng)用上,和NandFlash比較,由于控制器的存在,不必考慮ECC和壞塊管理策略,所以eMMC的應(yīng)用比較簡單。但是,eMMC燒寫只需要把數(shù)據(jù)燒進(jìn)去就可以了嗎?為什么數(shù)據(jù)寫進(jìn)去了,系統(tǒng)還是跑不起來?
本文引用地址:http://cafeforensic.com/article/201606/292666.htm
eMMC自誕生以來,就受到各行各業(yè)的追棒,如今,已成為存儲(chǔ)行業(yè)的主流,特別是手機(jī)和平板。美國的IHS iSuppli預(yù)測到2018年全球的eMMC出貨量達(dá)到2200Milion。
圖1 eMMC的市場前景
在給智能手機(jī)、智能電視、平板電腦等,使用大容量eMMC芯片客戶服務(wù)的過程中,遇到很多燒錄異常的投訴,統(tǒng)計(jì)下來,有90%的投訴是說的同樣一個(gè)事情:燒錄過程正常,但貼到PCB上不能正常運(yùn)行,重新通過在線的工具燒錄,又能正常運(yùn)行,這是為什么呢?
大多數(shù)工程師認(rèn)為,既然eMMC內(nèi)部有控制器,不用考慮ECC和壞塊管理策略,那么全當(dāng)成普通的Flash那樣燒寫。事實(shí)上,這樣做法是“想當(dāng)然”的照搬了之前Flash的使用方法。那么,有些人就納悶了,既然燒寫檢驗(yàn)沒問題,為什么會(huì)跑不起來,進(jìn)而第一步就懷疑是不是燒錄器的問題。
那就要從eMMC芯片的結(jié)構(gòu)進(jìn)行剖析:
eMMC芯片中有三個(gè)分區(qū),分別是Boot1、Boot2和User Area區(qū)。
圖2
eMMC燒寫,與其他任何Flash的燒錄都不一樣,Boot區(qū)是單獨(dú)有尋址地址的,因此,必須注意如下兩個(gè)關(guān)鍵步驟:
一、燒寫數(shù)據(jù):包括Boot1、Boot2和User Area區(qū)的數(shù)據(jù)。
二、設(shè)置寄存器:主要設(shè)置EXT_CSD寄存器,設(shè)置Boot加載規(guī)則,這需要根據(jù)實(shí)際的方案來設(shè)置。
下面來主要闡述eMMC的設(shè)置寄存器的關(guān)鍵之處:
通常,Boot1、Boot2和User Area區(qū)的數(shù)據(jù)都沒問題,主要是EXT_CSD寄存器的設(shè)置。這里涉及到程序Boot主要有三個(gè)寄存器,分別是BOOT_BUS_WIDTH[177]、BOOT_CONFIG_PROT[178]、PARTITION_CONFIG[179],這三個(gè)寄存器常常相互配合。
下面我們簡要介紹下這個(gè)寄存器:
一、BOOT總線位寬寄存器BOOT_BUS_WIDTH[177]:設(shè)置Boot總線寬度和單雙邊沿。
圖3
二、BOOT配置保護(hù)寄存器BOOT_CONFIG_PROT[178]:Boot設(shè)置位的保護(hù)使能。
圖4
三、分區(qū)寄存器PARTITION_CONFIG[179]:分區(qū)配置。
圖5
技術(shù)的細(xì)節(jié)就不再詳述,從上面的介紹得知,Boot三個(gè)寄存器各負(fù)責(zé)的關(guān)鍵內(nèi)容。
1.BOOT_BUS_WIDTH[177]設(shè)置位寬+單雙邊沿;
2.PARTITION_CONFIG[179]選擇哪個(gè)分區(qū)用于Boot;
3.BOOT_CONFIG_PROT[178]算是它們的雙保險(xiǎn)。
如果客戶僅僅燒錄了User區(qū)的程序,而忽視了Boot區(qū)配置,會(huì)導(dǎo)致主控CPU找不到Boot文件,無法正常啟動(dòng)整個(gè)系統(tǒng)的情況發(fā)生。
當(dāng)然,不同場合可能需要設(shè)置不同的值,但是一般情況下,90%的用戶還是選擇Boot1區(qū)+8位寬高速時(shí)序。即同時(shí)設(shè)置分區(qū)寄存器
PARTITION_CONFIG[179]=0x8/0x48和總線位寬寄存器
BOOT_BUS_WIDTH[177]=0xA/0x2。而Boot配置保護(hù)寄存器
BOOT_CONFIG_PROT[178]默認(rèn)不設(shè)置。
進(jìn)過EXT_CSD的擴(kuò)展寄存器設(shè)置,CPU找到了啟動(dòng)Boot,正常引導(dǎo)并啟動(dòng)了整個(gè)被燒錄的eMMC芯片,這時(shí),eMMC就和CPU愉快的配合,流暢的跑起來了。
評(píng)論