如果你在i.MX RT1xxx板卡上嘗試過(guò)從SD/eMMC卡啟動(dòng),你會(huì)發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象:通常在BOOT_MODE[1:0]設(shè)置為從串行NOR Flash啟動(dòng),如果在Flash中沒(méi)有可啟動(dòng)App情況下,芯片會(huì)自動(dòng)轉(zhuǎn)入串行下載模式,但是如果此時(shí)SD/eMMC卡槽中插著存有可以正常運(yùn)行的App程序,此時(shí)芯片是可以正常啟動(dòng)的,并且啟動(dòng)是 SD/eMMC里的程序,這是怎么回事?
今天就跟大家介紹下導(dǎo)致這個(gè)現(xiàn)象背后的神秘力量——SDMMC manufacture mode(出廠模式)。
注:只有i.MX RT四位數(shù)的產(chǎn)品支持SDMMC出廠模式。
回顧i.MX RT的啟動(dòng)設(shè)備
所有i.MX RT系列均沒(méi)有內(nèi)部非易失性存儲(chǔ)器,需要配置一個(gè)外部存儲(chǔ)器存放啟動(dòng)代碼,這個(gè)外部存儲(chǔ)器我們也稱作啟動(dòng)設(shè)備。 i.MX RT 支持的啟動(dòng)設(shè)備類型非常多,并且因?yàn)閱?dòng)設(shè)備受板級(jí)環(huán)境影響可能導(dǎo)致啟動(dòng)代碼讀取異常,因此i.MX RT上設(shè)計(jì)了多級(jí)啟動(dòng)保障,如下圖所示: 芯片上電之后,首先按照BOOT_MODE引腳的配置,執(zhí)行Primary Boot即第一級(jí)啟動(dòng)流程;當(dāng)?shù)谝患?jí)流程啟動(dòng)失敗后,則進(jìn)入第二級(jí)Recovery Boot啟動(dòng)流程;如果第二級(jí)啟動(dòng)仍然失敗,則將進(jìn)入Manufacture Boot啟動(dòng)流程,嘗試從SD/eMMC啟動(dòng)。 以下將具體談?wù)勥@個(gè)第三級(jí)的,出廠啟動(dòng)模式。
何為SDMMC出廠模式
i.MX RT1xxx系列支持的一級(jí)啟動(dòng)設(shè)備有很多:串行NOR/NAND、并行NOR/NAND、SD/eMMC,當(dāng)這些一級(jí)啟動(dòng)設(shè)備中的App未能正常啟動(dòng)時(shí),為了保證系統(tǒng)仍能運(yùn)行正常,將會(huì)自動(dòng)進(jìn)入備份啟動(dòng)方案(默認(rèn)沒(méi)開(kāi)啟,需要主動(dòng)運(yùn)行eFuse 開(kāi)啟),我在之前介紹過(guò)一期《從Serial(1-bit SPI) EEPROM/NOR恢復(fù)啟動(dòng)》。
如果這個(gè)備份啟動(dòng)方案仍然失敗了怎么辦?那就需要進(jìn)入今天的主角,第三級(jí)也是最后一級(jí)啟動(dòng)方案-SDMMC manufacture方式啟動(dòng)(默認(rèn)開(kāi)啟,可以啟動(dòng)eFuse關(guān)閉。對(duì)于RT1050系列,配置在eFuse 0x470[3]-Disable SDMMC Manufacture mode),簡(jiǎn)單說(shuō)就是i.MX RT會(huì)做最后的努力:嘗試從SD/eMMC中啟動(dòng)App。 需要注意的是這個(gè)SDMMC manufacture啟動(dòng)方式和作為《一級(jí)啟動(dòng)設(shè)備 SD/eMMC 方式》兩者區(qū)別如下: 一級(jí)啟動(dòng)設(shè)備SD/eMMC可以有很多用戶配置(由BT_CFG引腳或者eFuse決定),但是SDMMC manufacture啟動(dòng)與用戶配置完全無(wú)關(guān),其固定從uSDHC1口以1bit bus width,3.3V模式去讀取啟動(dòng) App。
何時(shí)進(jìn)入SDMMC出廠模式
在i.MX RT芯片參考手冊(cè)System Boot章節(jié)可以找到如下流程圖,圖中介紹了兩種進(jìn) 入SDMMC manufacture模式的途徑。 第一種途徑是在BOOT_MODE[1:0]=2'b10(或者BOOT_MODE[1:0]=2'b00且BT_FUSE_SEL=1'b1)時(shí),主啟動(dòng)設(shè)備以及備份啟動(dòng)設(shè)備(假設(shè)已使能)均失敗的情況下自動(dòng)進(jìn)入,這種方法屬于被動(dòng)式進(jìn)入,當(dāng)然這也是該模式的主要用意。 第二種途徑是在BOOT_MODE[1:0]=2'b00且BT_FUSE_SEL=1'b0時(shí),主動(dòng)進(jìn)入 SDMMC manufacture模式,這有點(diǎn)將該模式升級(jí)成一級(jí)啟動(dòng)設(shè)備地位的感覺(jué)。 ? 最后提一下,i.MX RT上的SDMMC manufacture模式特性完全繼承自i.MX系列,我們知道在MPU世界里使用SD卡場(chǎng)景非常多,因此使能這個(gè)功能很自然,在i.MX RT上如果應(yīng)用里也有SD卡相關(guān)設(shè)計(jì),那么不妨也關(guān)注下這個(gè)特性,可以多一重保障。? ??
-
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7492瀏覽量
163854 -
程序
+關(guān)注
關(guān)注
117文章
3787瀏覽量
81060 -
sdmmc
+關(guān)注
關(guān)注
0文章
4瀏覽量
2054
原文標(biāo)題:一起聊聊i.MX RT1xxx上的神秘力量——SDMMC出廠模式
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論