欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種支持多安全引導(dǎo)的芯片及其啟動(dòng)方法與流程

文檔序號(hào):12734601閱讀:526來(lái)源:國(guó)知局
一種支持多安全引導(dǎo)的芯片及其啟動(dòng)方法與流程

本發(fā)明涉及嵌入式芯片領(lǐng)域中的引導(dǎo)(boot)技術(shù),尤其涉及一種支持多安全boot的芯片及其啟動(dòng)方法。



背景技術(shù):

基帶芯片采用嵌入式架構(gòu),通過(guò)引導(dǎo)代碼(bootrom,boot code in read only memory)來(lái)負(fù)責(zé)系統(tǒng)硬件的初始化及二級(jí)boot程序的引導(dǎo)加載。同時(shí),bootrom是固化在芯片的內(nèi)存(ROM)中。而芯片應(yīng)用的產(chǎn)品領(lǐng)域比較多,如智能機(jī),數(shù)據(jù)卡等,每一種產(chǎn)品形態(tài)都可能使用不同的boot啟動(dòng)方式,在這種情況下,系統(tǒng)的安全性受到越來(lái)越多的重視,因此,支持多種安全boot方式的bootrom實(shí)現(xiàn)對(duì)于手機(jī)基帶芯片在產(chǎn)品應(yīng)用方面至關(guān)重要。

以往基帶芯片主要應(yīng)用在數(shù)據(jù)卡產(chǎn)品中,使用的boot啟動(dòng)方式比較單一,包括硬件引導(dǎo)控制器(bootctrl,boot controller)和軟件閃存引導(dǎo)(nandflash boot)方式。隨著基帶芯片的產(chǎn)品應(yīng)用形態(tài)增加,單一的boot方式已無(wú)法滿足產(chǎn)品要求。



技術(shù)實(shí)現(xiàn)要素:

為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種支持多安全boot的芯片及其啟動(dòng)方法。

本發(fā)明實(shí)施例提供的支持多安全boot的芯片啟動(dòng)方法,包括:

系統(tǒng)初始化后,從寄存器中讀取寄存器值;

確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;

檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

基于Nandflash boot啟動(dòng)boot操作,讀取配置字段信息;

基于所述配置字段信息,執(zhí)行字段信息檢查;

當(dāng)檢查通過(guò)后,執(zhí)行Nandflash boot操作,并對(duì)所述Nandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行通用串行總線設(shè)備引導(dǎo)(usb device boot)操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

從閃存(Nandflash)中讀取配置字段信息,獲取通用串行總線(usb,universal serial bus)超時(shí)時(shí)間值;

執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行Nandflash boot操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

執(zhí)行通用串行總線高速集成電路引導(dǎo)(usb hsic boot,universal serial bus high speed intergrated circuit boot)操作并對(duì)所述usb hsic boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置 字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

執(zhí)行同步動(dòng)態(tài)輸入輸出引導(dǎo)(sdio slave boot,synchronous dynamic input output slave boot)操作,并對(duì)所述sdio slave boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

基于嵌入式多媒體卡引導(dǎo)(emmc boot,embedded multi media card boot)啟動(dòng)boot操作,讀取配置字段信息;

基于所述配置字段信息,執(zhí)行字段信息檢查;

當(dāng)檢查通過(guò)后,執(zhí)行emmc boot操作,并對(duì)所述emmc boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行usb device boot操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

從emmc中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;

執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行emmc boot操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

從串行外設(shè)接口閃存(spinandflash,serial peripheral interface nandflash)中讀取配置字段信息;

基于所述配置字段信息,執(zhí)行字段信息檢查;

當(dāng)檢查通過(guò)后,執(zhí)行spinandflash boot操作,并對(duì)所述spinandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查通過(guò)后,執(zhí)行usb device boot操作。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

從spinandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;

執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;

當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行spinandflash boot過(guò)程。

本發(fā)明實(shí)施例中,所述確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證,包括:

基于通用同步/異步收發(fā)傳輸器引導(dǎo)(uart boot,universal asynchronous receiver/transmitter boot)啟動(dòng)boot操作。

本發(fā)明實(shí)施例提供的支持多安全boot的芯片,包括:

第一讀取單元,用于當(dāng)系統(tǒng)初始化后,從寄存器中讀取寄存器值;

認(rèn)證單元,用于確定出與述寄存器對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;

第二讀取單元,用于檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù);

執(zhí)行單元,用于對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證。

本發(fā)明實(shí)施例中,所述執(zhí)行單元,包括:

第一執(zhí)行子單元,用于基于Nandflash boot啟動(dòng)boot操作,讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行Nandflash boot操作,并對(duì)所述Nandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行usb device boot操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第二執(zhí)行子單元,用于從Nandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行Nandflash boot操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第三執(zhí)行子單元,用于執(zhí)行usb hsic boot操作,并對(duì)所述usb hsic boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第四執(zhí)行子單元,用于執(zhí)行sdio slave boot操作,并對(duì)所述sdio slave boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第五執(zhí)行子單元,用于基于emmc boot啟動(dòng)boot操作,讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行emmc boot操作,并對(duì)所述emmc boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行usb device boot操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第六執(zhí)行子單元,用于從emmc中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安 全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行emmc boot操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第七執(zhí)行子單元,用于從spinandflash中讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行spinandflash boot操作,并對(duì)所述spinandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查通過(guò)后,執(zhí)行usb device boot操作。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第八執(zhí)行子單元,用于從spinandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行spinandflash boot過(guò)程。

本發(fā)明實(shí)施例中,所述執(zhí)行單元包括:

第九執(zhí)行子單元,用于基于uart boot啟動(dòng)boot操作。

本發(fā)明實(shí)施例的技術(shù)方案中,系統(tǒng)初始化后,從寄存器中讀取寄存器值;確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證。芯片的bootrom支持多安全boot啟動(dòng)方式,且支持usb boot方式進(jìn)行版本下載功能,達(dá)到了對(duì)應(yīng)多種產(chǎn)品應(yīng)用及軟件版本燒錄效果,節(jié)省了產(chǎn)品硬件成本及軟件版本燒錄成本,提高了不同產(chǎn)品使用率及軟件版本生產(chǎn)/維修效率、提高了整個(gè)系統(tǒng)的安全性等。

附圖說(shuō)明

圖1為本發(fā)明實(shí)施例的支持多安全boot的芯片啟動(dòng)方法的流程示意圖;

圖2為本發(fā)明實(shí)施例的支持多安全boot的芯片的結(jié)構(gòu)組成示意圖;

圖3是本發(fā)明實(shí)施例的nandflash boot啟動(dòng)流程圖;

圖4是本發(fā)明實(shí)施例的usb device boot啟動(dòng)的流程圖;

圖5是本發(fā)明實(shí)施例的emmc boot啟動(dòng)流程圖;

圖6是本發(fā)明實(shí)施例的sdio slave boot啟動(dòng)流程圖;

圖7是本發(fā)明實(shí)施例的spinandflash boot啟動(dòng)流程圖;

圖8是本發(fā)明實(shí)施例的usb hsic boot啟動(dòng)流程圖;

圖9是本發(fā)明實(shí)施例的bootrom的安全檢查流程圖。

具體實(shí)施方式

為了能夠更加詳盡地了解本發(fā)明實(shí)施例的特點(diǎn)與技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)行詳細(xì)闡述,所附附圖僅供參考說(shuō)明之用,并非用來(lái)限定本發(fā)明實(shí)施例。

為了克服現(xiàn)有技術(shù)中存在的數(shù)據(jù)卡使用單一boot方式、系統(tǒng)安全性不夠和燒錄不方便等問(wèn)題和缺陷,本發(fā)明實(shí)施例提供了一種支持多安全boot的芯片及其啟動(dòng)方法。在智能機(jī)產(chǎn)品中,需求usb hsic boot、sdio slave boot、uart boot等通訊接口方式與應(yīng)用處理器(AP,Application Processer)芯片對(duì)接啟動(dòng);在數(shù)據(jù)卡和uFi產(chǎn)品中,需求nandflash boot、emmc boot、spinandflash等外存儲(chǔ)方式啟動(dòng),并使用安全流程檢查,具有許可信息才能運(yùn)行。

另外,芯片在調(diào)試生產(chǎn),測(cè)試及市場(chǎng)應(yīng)用中,會(huì)涉及軟件版本燒錄或更新問(wèn)題,一般采用燒錄器燒錄或者使用仿真器燒錄,對(duì)于燒錄器燒錄方式,一般都需要特定的硬件設(shè)備和軟件支持,適用于存儲(chǔ)器件(nandflash,emmc等)出廠燒錄,對(duì)于仿真器燒錄,適用于實(shí)驗(yàn)室調(diào)試階段使用。而在軟件版本燒錄或版本更新時(shí),在bootrom中實(shí)現(xiàn)usb device boot方式,通過(guò)usb口與PC機(jī)相連,實(shí)現(xiàn)版本燒錄和版本更新功能。

圖1為本發(fā)明實(shí)施例的支持多安全boot的芯片啟動(dòng)方法的流程示意圖,如圖1所示,所述支持多安全boot的芯片啟動(dòng)方法包括以下步驟:

步驟101:系統(tǒng)初始化后,從寄存器中讀取寄存器值。

本發(fā)明實(shí)施例中,芯片復(fù)位釋放后,芯片中的中央處理器(CPU,Center Processing Unit)從內(nèi)存(ROM)中開(kāi)始執(zhí)行bootrom程序,進(jìn)行關(guān)中斷,初始 化棧,設(shè)置數(shù)據(jù)段,初始化計(jì)時(shí)器和uart。這里,bootrom程序由一些列的bootrom指令組成。

本發(fā)明實(shí)施例中,從寄存器中讀取寄存器值的目的是為了獲取與所述寄存器值對(duì)應(yīng)的boot操作。

步驟102:確定出與所述寄存器值對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查。

步驟103:檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù),并對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證。

本發(fā)明實(shí)施例中,寄存器值與boot操作間的配置關(guān)系不做限定。

下面以其中一種寄存器值與boot操作間的配置關(guān)系為例進(jìn)行說(shuō)明。

寄存器值為0000:基于Nandflash boot啟動(dòng)boot操作,讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行Nandflash boot操作,并對(duì)所述Nandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行通用串行總線設(shè)備引導(dǎo)usb device boot操作。

具體地,芯片系統(tǒng)直接從Nandflash boot啟動(dòng),讀取配置字段信息,對(duì)配置字段信息進(jìn)行判斷,如配置字段信息符合,進(jìn)入Nandflash boot過(guò)程,進(jìn)行安全檢查,否則跳轉(zhuǎn)到usb device boot過(guò)程。芯片usb接口與PC機(jī)對(duì)接,用于軟件版本下載燒錄。

寄存器值為0001:從閃存Nandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行Nandflash boot操作。

具體地,芯片系統(tǒng)從Nandflash讀取配置字段信息,獲取usb超時(shí)時(shí)間值,進(jìn)入usb device boot過(guò)程,芯片usb接口與PC機(jī)對(duì)接,用于軟件版本下載燒錄,如果usb超時(shí),則返回nandflash boot過(guò)程。

寄存器值為0010:執(zhí)行usb hsic boot操作,并對(duì)所述usb hsic boot操作讀 取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

具體地,進(jìn)入usb hsic boot方式,進(jìn)行安全檢查,否則復(fù)位芯片。在做智能機(jī)調(diào)制解調(diào)器(Modem)時(shí),芯片支持無(wú)外存啟動(dòng),通過(guò)usb hsic從AP芯片側(cè)下載版本到本芯片內(nèi)部隨機(jī)存儲(chǔ)器(IRAM,Inner Random Access Memory)中執(zhí)行。

寄存器值為0011:執(zhí)行sdio slave boot操作,并對(duì)所述sdio slave boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

具體地,進(jìn)入sdio slave boot方式,進(jìn)行安全檢查,否則復(fù)位芯片。在做智能機(jī)Modem時(shí),芯片支持無(wú)外存啟動(dòng),通過(guò)sdio slave從AP芯片側(cè)下載版本到本芯片IRAM中運(yùn)行。

寄存器值為0100:基于emmc boot啟動(dòng)boot操作,讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行emmc boot操作,并對(duì)所述emmc boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行usb device boot操作。

具體地,芯片系統(tǒng)直接從emmc boot啟動(dòng),讀取配置字段信息進(jìn)行判斷,如配置字段信息符合,則進(jìn)入emmc boot過(guò)程,并進(jìn)行安全檢查,否則跳轉(zhuǎn)到usb device boot過(guò)程。芯片usb接口與PC機(jī)對(duì)接,用于軟件版本下載燒錄。

寄存器值為0101:從emmc中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行emmc boot操作。

具體地,芯片系統(tǒng)從emmc讀取配置字段信息,獲取usb超時(shí)時(shí)間值,進(jìn)入usb device boot過(guò)程。芯片usb接口與PC機(jī)對(duì)接,用于軟件版本下載燒錄,如果usb超時(shí),則返回emmc boot過(guò)程。

寄存器值為1000:從spinandflash中讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行spinandflash boot操作,并對(duì)所述spinandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查通過(guò)后,執(zhí)行usb device boot操作。

具體地,芯片系統(tǒng)直接從spinandflash讀取配置字段信息進(jìn)行判斷,如配置字段信息符合,進(jìn)入spinandflash boot過(guò)程,并進(jìn)行安全檢查,否則跳轉(zhuǎn)到usb device boot過(guò)程,芯片usb接口與PC機(jī)對(duì)接,用于軟件版本下載燒錄。

寄存器值為1001:從spinandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行spinandflash boot過(guò)程。

具體地,芯片系統(tǒng)從spinandflash讀取配置字段信息,獲取usb超時(shí)時(shí)間值,進(jìn)入usb device boot過(guò)程,芯片usb接口與PC機(jī)對(duì)接,用于軟件版本下載燒錄,如果usb超時(shí),則返回spinandflash boot過(guò)程。

寄存器值為其它:基于uart boot啟動(dòng)boot操作。

具體地,進(jìn)入uart boot方式,采用1K modem協(xié)議,通過(guò)uart與PC控制臺(tái)程序交互,便于調(diào)試與下載,也可支持通過(guò)uart接口外接AP芯片,通過(guò)uart從AP芯片側(cè)下載版本到本芯片IRAM啟動(dòng)。

本發(fā)明實(shí)施例中,以存儲(chǔ)外設(shè)作為boot方式時(shí),支持與usb device boot作為組合boot方式,便于存儲(chǔ)外設(shè)在無(wú)軟件版本或錯(cuò)誤軟件版本時(shí)用于usb device boot啟動(dòng)實(shí)現(xiàn)軟件版本燒錄。

圖2為本發(fā)明實(shí)施例的支持多安全boot的芯片的結(jié)構(gòu)組成示意圖,如圖2所示,所述支持多安全boot的芯片包括:

第一讀取單元21,用于當(dāng)系統(tǒng)初始化后,從寄存器中讀取寄存器值;

認(rèn)證單元22,用于確定出與述寄存器對(duì)應(yīng)的boot操作,并對(duì)配置字段信息進(jìn)行檢查;

第二讀取單元23,用于當(dāng)檢查通過(guò)后,啟動(dòng)所述對(duì)應(yīng)的boot操作讀取數(shù)據(jù);

執(zhí)行單元24,用于對(duì)所述數(shù)據(jù)進(jìn)行安全認(rèn)證。

在一種實(shí)施方式中,所述執(zhí)行單元24,包括:

第一執(zhí)行子單元241,用于基于Nandflash boot啟動(dòng)boot操作,讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行Nandflash boot操作,并對(duì)所述Nandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行usb device boot操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第二執(zhí)行子單元242,用于從Nandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行Nandflash boot操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第三執(zhí)行子單元243,用于執(zhí)行usb hsic boot操作,并對(duì)所述usb hsic boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第四執(zhí)行子單元244,用于執(zhí)行sdio slave boot操作,并對(duì)所述sdio slave boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行復(fù)位操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第五執(zhí)行子單元245,用于基于emmc boot啟動(dòng)boot操作,讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行emmc boot操作,并對(duì)所述emmc boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行usb device boot操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第六執(zhí)行子單元246,用于從emmc中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行emmc boot操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第七執(zhí)行子單元247,用于從spinandflash中讀取配置字段信息;基于所述配置字段信息,執(zhí)行字段信息檢查;當(dāng)檢查通過(guò)后,執(zhí)行spinandflash boot操作,并對(duì)所述spinandflash boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查通過(guò)后,執(zhí)行usb device boot操作。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第八執(zhí)行子單元248,用于從spinandflash中讀取配置字段信息,獲取usb超時(shí)時(shí)間值;執(zhí)行usb device boot操作,并對(duì)所述usb device boot操作讀取的數(shù)據(jù)進(jìn)行安全檢查;當(dāng)安全檢查通過(guò)后,正常執(zhí)行讀取的數(shù)據(jù)、啟動(dòng)操作;當(dāng)安全檢查未通過(guò)后,執(zhí)行spinandflash boot過(guò)程。

在一種實(shí)施方式中,所述執(zhí)行單元24包括:

第九執(zhí)行子單元249,用于基于uart boot啟動(dòng)boot操作。

下面結(jié)合具體應(yīng)用場(chǎng)景對(duì)本發(fā)明實(shí)施例的技術(shù)方案再做詳細(xì)描述。

圖3是本發(fā)明實(shí)施例的nandflash boot啟動(dòng)流程圖,包括:

步驟301:配置nandflash需要的系統(tǒng)時(shí)鐘等配置。

步驟302:配置nandflash控制器,并使能nandflash。

步驟303:bootrom模塊根據(jù)引腳確定nandflash位寬和頁(yè)大小以及頁(yè)地址周期數(shù)。

步驟304:用解析的數(shù)據(jù)位寬和頁(yè)大小配置nandflash控制。

步驟306:讀nandflash的代碼數(shù)據(jù)到IRAM。

步驟307:跳轉(zhuǎn)到IRAM中執(zhí)行。

圖4是本發(fā)明實(shí)施例的usb device boot啟動(dòng)的流程圖,包括:

步驟401:配置usb需要的鎖相環(huán)(PLL,Phase Lock Loop)以及分頻寄存器。

步驟402:配置使能usb模塊。

步驟403:檢測(cè)usb插入時(shí)間內(nèi)是否有usb連接的reset命令。收到說(shuō)明有usb連接,超時(shí)則認(rèn)為無(wú)usb連接(如果無(wú)連接跳轉(zhuǎn)到emmc boot)。

步驟404:開(kāi)始usb枚舉過(guò)程(usb host和device按照協(xié)議的同步過(guò)程)。

步驟405:在usb枚舉時(shí)間內(nèi)枚舉成功(如果超時(shí)(host端沒(méi)有設(shè)備驅(qū)動(dòng)),跳轉(zhuǎn)到emmc boot)。

步驟406:在usb同步時(shí)間內(nèi)等待同步字符,超時(shí)退出usb device boot,開(kāi)始emmc boot。

步驟407:收到同步字符,等待配置寄存器標(biāo)志字符,后面為配置數(shù)據(jù)。

步驟408:第一個(gè)數(shù)據(jù)是寄存器地址。

步驟409:第二個(gè)數(shù)據(jù)是配置數(shù)據(jù)。

步驟410:當(dāng)收到寄存器地址為0時(shí)退出寄存器配置。

步驟411:等待下載數(shù)據(jù)標(biāo)志字符,后面為下載數(shù)據(jù)。

步驟412:第一個(gè)為下載地址。

步驟413:第二個(gè)數(shù)據(jù)為下載數(shù)據(jù)長(zhǎng)度。

步驟414:接收下載數(shù)據(jù)直到達(dá)到數(shù)據(jù)長(zhǎng)度。

步驟415:可以連續(xù)多次下載數(shù)據(jù)執(zhí)行9-12步的下載過(guò)程。

步驟416:如果收到執(zhí)行同步字符,后面為執(zhí)行地址。

步驟417:把收到執(zhí)行地址賦給Image_addr,并跳轉(zhuǎn)到Image_addr執(zhí)行。

圖5是本發(fā)明實(shí)施例的emmc boot啟動(dòng)流程圖,包括:

步驟501:配置emmc需要的系統(tǒng)時(shí)鐘等配置。

步驟502:配置emmc控制器,初始化emmc驅(qū)動(dòng)程序。

步驟503:讀emmc設(shè)備寄存器參數(shù),使emmc控制器參數(shù)和emmc設(shè)備參 數(shù)相互匹配。

步驟504:根據(jù)Loaded_size配置需要從emmc加載的數(shù)據(jù)大小(Loaded_size根據(jù)不同的場(chǎng)景有不同的值,需要提前根據(jù)場(chǎng)景計(jì)算出loaded_size值)。

步驟505:發(fā)送多塊讀命令從main area加載Loaded_size數(shù)據(jù)到指定地址。

步驟506:把指定地址值賦值給Image_addr,并跳轉(zhuǎn)到Image_addr執(zhí)行。

圖6是本發(fā)明實(shí)施例的sdio slave boot啟動(dòng)流程圖,包括:

步驟601:配置sdio slave需要的PLL以及分頻寄存器。

步驟602:配置sdio slave模塊,并使能sdio slave。

步驟603:檢測(cè)是否有sdio slave連接。如果沒(méi)有連接則繼續(xù)等待。

步驟604:如果有連接開(kāi)始sdio slave初始化過(guò)程,并根據(jù)sdio slave連接的sdio host的配置進(jìn)行初始化配置。

步驟605:如果初始化失敗則重新進(jìn)入檢查sdio連接流程。

步驟606:sdio slave接收代碼數(shù)據(jù)到IRAM_RM_BASE地址。

步驟607:把IRAM_RM_BASE賦值給Image_addr,并跳轉(zhuǎn)到Image_addr執(zhí)行。

圖7是本發(fā)明實(shí)施例的spinandflash boot啟動(dòng)流程圖,包括:

步驟701:配置spifc需要的系統(tǒng)時(shí)鐘等配置。

步驟702:配置spifc控制器。

步驟703:根據(jù)外部管腳確定spinandflash的page大小。

步驟704:根據(jù)頁(yè)大小配置控制器。

步驟705:通過(guò)spifc接口讀spinandflash數(shù)據(jù)到IRAM中。

步驟706:跳轉(zhuǎn)到IRAM中執(zhí)行。

圖8是本發(fā)明實(shí)施例的usb hsic boot啟動(dòng)流程圖,包括:

步驟801:配置usb hsic需要的PLL以及分頻寄存器。

步驟802:配置usb hsic模塊,并使能usb hsic。

步驟803:檢測(cè)是否有usb hsic連接的reset命令。收到說(shuō)明有usb連接,超時(shí)則認(rèn)為無(wú)usb hsic連接則繼續(xù)等待。

步驟804:開(kāi)始usb hsic枚舉過(guò)程(usb host和device按照協(xié)議的同步過(guò)程)。

步驟805:枚舉失敗則進(jìn)入等待reset命令流程重新等待連接。

步驟806:如果成功則等待同步字符,如果沒(méi)收到同步字則繼續(xù)等待。

步驟807:收到同步字符,等待配置寄存器標(biāo)志字符,后面為配置數(shù)據(jù)。

步驟808:第一數(shù)據(jù)是寄存器地址。

步驟809:第二數(shù)據(jù)是配置數(shù)據(jù)。

步驟810:當(dāng)收到寄存器地址為0時(shí)退出寄存器配置。

步驟811:等待下載數(shù)據(jù)標(biāo)志字符,后面為下載數(shù)據(jù)。

步驟812:第一個(gè)數(shù)據(jù)為下載地址。

步驟813:第二個(gè)數(shù)據(jù)為下載數(shù)據(jù)長(zhǎng)度。

步驟814:接收下載數(shù)據(jù)直到達(dá)到數(shù)據(jù)byte數(shù)。

步驟815:可以連續(xù)多次下載數(shù)據(jù)執(zhí)行步驟809-812的下載過(guò)程。

步驟816:如果收到執(zhí)行同步字符,后面為執(zhí)行地址。

步驟817:把收到執(zhí)行地址付給Image_addr,并跳轉(zhuǎn)到Image_addr執(zhí)行。

圖9是本發(fā)明實(shí)施例的bootrom的安全檢查流程圖,包括:

步驟901:讀取efuse_bypass的pin對(duì)應(yīng)的值,如果為0則開(kāi)啟安全boot功能,否則不開(kāi)啟安全功能,直接認(rèn)為安全檢查通過(guò)。

步驟902:讀取安全boot使能值。

步驟903:根據(jù)安全boot使能值判斷是否為安全boot,如果安全boot使能值不等于0xff則不開(kāi)啟安全boot。

步驟904:安全boot使能值等于0xff,讀取安全boot的PUK HASH值。

步驟905:判斷安全boot PUK的HASH值是否大于0,如果大于0啟用安全boot,否則不啟用安全boot。

步驟906:如果不開(kāi)啟安全boot,則直接跳轉(zhuǎn)到安全檢查通過(guò)流程。

步驟907:如果是安全boot,調(diào)用HASH模塊計(jì)算PUK的HASH值,并與安全boot PUK的HASH值比較是否相等,如果不相等則說(shuō)明不是有效的PUK。

步驟908:如果相等則調(diào)用HASH模塊計(jì)算一級(jí)boot的HASH值HASH_X,否則安全檢查失敗,重新進(jìn)入U(xiǎn)SB boot過(guò)程。

步驟909:讀取一級(jí)boot的加密的HASH數(shù)據(jù)。

步驟910:調(diào)用rsa模塊解密得到HASH_Y。

步驟911:比較HASH_X是否等于HASH_Y。

步驟912:如果相等則安全檢查通過(guò)。

步驟913:如果不相等則安全檢查失敗。

本發(fā)明實(shí)施例所記載的技術(shù)方案之間,在不沖突的情況下,可以任意組合。下面列出幾種組合方式。

第一種組合方式:圖3,圖9組合實(shí)現(xiàn)的功能

從Nandflash器件中讀取二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼。

第二種組合方式:圖3,圖4,圖9組合實(shí)現(xiàn)的功能

從Nandflash器件中讀取二級(jí)boot代碼后,讀取配置字段信息,進(jìn)行判斷,如信息符合,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼;如果信息不符合,通過(guò)usb slave device接口下載二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行下載的二級(jí)boot代碼。

第三種組合方式:圖4,圖9組合實(shí)現(xiàn)的功能

通過(guò)usb slave device接口下載二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼。

第四種組合方式:圖5,圖9組合實(shí)現(xiàn)的功能

從emmc器件中讀取二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二 級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼。

第五種組合方式:圖6,圖9組合實(shí)現(xiàn)的功能

通過(guò)sdio接口下載二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼。

第六種組合方式:圖7,圖9組合實(shí)現(xiàn)的功能

從spinandflash器件中讀取二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼。

第七種組合方式:圖8,圖9組合實(shí)現(xiàn)的功能

通過(guò)usb hsic device接口下載二級(jí)boot代碼后,采用圖9描述的安全檢查流程對(duì)二級(jí)boot代碼進(jìn)行加解密處理驗(yàn)證,驗(yàn)證通過(guò)后執(zhí)行二級(jí)boot代碼。

在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的方法和智能設(shè)備,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)單元或組件可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過(guò)一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。

上述作為分離部件說(shuō)明的單元可以是、或也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各實(shí)施例中的各功能單元可以全部集成在一個(gè)第二處理單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中;上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。

以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
苏尼特左旗| 新兴县| 东安县| 石阡县| 汉中市| 太仆寺旗| 澎湖县| 嘉兴市| 邻水| 元氏县| 宜州市| 册亨县| 四会市| 汉川市| 萍乡市| 秭归县| 昌黎县| 原阳县| 临城县| 纳雍县| 河曲县| 崇左市| 北川| 池州市| 志丹县| 团风县| 桂东县| 东乡族自治县| 怀柔区| 丽水市| 山东省| 安化县| 双流县| 南靖县| 左云县| 加查县| 龙海市| 井冈山市| 青川县| 察哈| 稷山县|