国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

講講UFS初始化和啟動(dòng)

SSDFans ? 來源:未知 ? 作者:李倩 ? 2018-06-15 14:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這一節(jié)講講UFS初始化。

初始化和啟動(dòng)包括三個(gè)階段:部分初始化,加載啟動(dòng)代碼(可選)和初始化完成。

部分初始化階段

這個(gè)階段開始于上電或者設(shè)備重啟,它涉及到整個(gè)UFS棧的初始化。

這個(gè)初始化階段完成后,整個(gè)物理層(M-PHY)和數(shù)據(jù)鏈路層(UniPro)應(yīng)該被初始化好,傳輸層可以和主機(jī)交互Read命令和“TEST UNIT READY”命令(主機(jī)發(fā)該命令給設(shè)備,查詢?cè)O(shè)備是否準(zhǔn)備好),主機(jī)也可以通過設(shè)備管理器訪問設(shè)備描述符(Device Descriptor),獲取設(shè)備配置信息。

加載啟動(dòng)代碼

如果啟動(dòng)代碼不是存儲(chǔ)在UFS設(shè)備上,則沒有這一階段。主機(jī)怎么知道啟動(dòng)代碼是不是存儲(chǔ)在UFS設(shè)備上呢?

經(jīng)過前一階段的初始化,主機(jī)可以訪問設(shè)備描述符,獲得“bBootLunEn ”屬性,讀取該屬性可以知道啟動(dòng)代碼是否在UFS設(shè)備上,以及具體在哪個(gè)Boot LU 上面。

如果bBootLunEn = 01h或者02h,說明啟動(dòng)代碼存儲(chǔ)在UFS設(shè)備上。由于Boot LU是映射到普通的LU上的,要讀取啟動(dòng)代碼,還需要知道Boot LU和存儲(chǔ)啟動(dòng)代碼LU的映射。主機(jī)可以通過讀取單元描述符(Unit Descriptor)知道,比如:

查找到具體存儲(chǔ)代碼的LU,主機(jī)就可以讀取該LU獲得啟動(dòng)代碼。

初始化完成

當(dāng)主機(jī)完成前面兩個(gè)階段,主機(jī)會(huì)通過設(shè)備管理器,給設(shè)備設(shè)置fDeviceInit = 1,這是一個(gè)標(biāo)志(flag),用以初始化。 主機(jī)設(shè)置了該標(biāo)志后,然后就一直在那查詢?cè)摌?biāo)志的值。

與此同時(shí),UFS設(shè)備的固件繼續(xù)完成自己的初始化,當(dāng)設(shè)備完成初始化,認(rèn)為可以響應(yīng)主機(jī)任何命令或者請(qǐng)求時(shí),就清掉fDeviceInit,即fDeviceInit = 0。

當(dāng)主機(jī)查詢到fDeviceInit =0,就可以發(fā)任何UFS協(xié)議中的任何命令或請(qǐng)求給UFS設(shè)備。

至此,整個(gè)UFS初始化和啟動(dòng)完成。

下圖具體展示了UFS初始化和啟動(dòng)過程(可選的,Opt):

再解釋一下這個(gè)啟動(dòng)過程:

主機(jī)給設(shè)備上電或者重啟設(shè)備,然后主機(jī)和設(shè)備端的物理層和數(shù)據(jù)鏈路層完成初始化,之后主機(jī)ping設(shè)備(通過NOP OUT UPIU),確認(rèn)設(shè)備雙方連接正常。設(shè)備收到NOP OUT UPIU,應(yīng)該回NOP IN UPIU,表明雙方連接沒有問題。

加載啟動(dòng)代碼可選(上圖藍(lán)色方框中的步驟)。主機(jī)讀取UFS設(shè)備描述符,如果bDescrAccessEn = 0,設(shè)備描述符不可訪問,那么,即使啟動(dòng)代碼存儲(chǔ)在UFS設(shè)備上,我們也無法在該階段加載啟動(dòng)代碼,因?yàn)橹T如bBootEnable和bBootLunEn之類的信息無法獲取,主機(jī)就無法知道存儲(chǔ)代碼存儲(chǔ)在哪個(gè)LU上。因此,如果bDescrAccessEn = 0,加載啟動(dòng)代碼階段不應(yīng)該放在這里,而是在設(shè)備徹底初始化好后。

加載啟動(dòng)代碼階段,主機(jī)通過讀取設(shè)備描述符,獲得啟動(dòng)代碼在哪個(gè)LU上,然后發(fā)個(gè)試探性命令“TEST UNIT READY”給該LU,查看該LU是否準(zhǔn)備好。如果Boot LU準(zhǔn)備好,主機(jī)就通過發(fā)READ命令給設(shè)備,加載啟動(dòng)代碼。

然后,主機(jī)設(shè)置fDeviceInit = 1,然后一直輪詢?cè)摌?biāo)志,一旦fDeviceInit 變成0,標(biāo)志UFS設(shè)備初始化完成。

最后,再把設(shè)備初始化過程中,雙方交互的內(nèi)容做個(gè)總結(jié):

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)鏈路層

    關(guān)注

    0

    文章

    63

    瀏覽量

    12409
  • UFS
    UFS
    +關(guān)注

    關(guān)注

    6

    文章

    113

    瀏覽量

    26370

原文標(biāo)題:蛋蛋讀UFS之六:UFS設(shè)備初始化和啟動(dòng)

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RT-Thread自動(dòng)初始化詳解

    初始化函數(shù)不需要被顯式調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進(jìn)行申明,就會(huì)在系統(tǒng)啟動(dòng)過程中被執(zhí)行,非常的方便。 1 普通初始化 前面也講了,我們?cè)趯憜纹瑱C(jī)的程序時(shí),需要對(duì)硬件進(jìn)行初始化
    的頭像 發(fā)表于 06-25 21:38 ?1.3w次閱讀
    RT-Thread自動(dòng)<b class='flag-5'>初始化</b>詳解

    自動(dòng)初始化機(jī)制原理詳解

    自動(dòng)初始化機(jī)制是指初始化函數(shù)不需要被顯式調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進(jìn)行申明,就會(huì)在系統(tǒng)啟動(dòng)過程中被執(zhí)行。這篇文章就來探索一下其中的奧秘, 簡單理解其原理!
    的頭像 發(fā)表于 12-16 09:33 ?1951次閱讀
    自動(dòng)<b class='flag-5'>初始化</b>機(jī)制原理詳解

    BPI啟動(dòng),F(xiàn)lash初始化失敗

    我有一個(gè)KC705評(píng)估板配置為在x16模式下使用BPI Flash。在使用JTAG端口加載設(shè)計(jì)位文件的后,我可以初始化閃存。但是,當(dāng)我從BPI啟動(dòng)我的設(shè)計(jì)時(shí),閃存初始化失敗,但程序的其余部分似乎正常運(yùn)行。請(qǐng)問一下有遇到過這種問題
    發(fā)表于 10-11 13:11

    手機(jī)模塊初始化向?qū)?/a>

    手機(jī)模塊初始化向?qū)?為了剛好的對(duì)手機(jī)模塊進(jìn)行初始化,所以把最基本的向?qū)懴聛?本向?qū)нm用于本公司的西門子TC35I和華為GT9000模塊。一、在初始化手機(jī)模塊前,請(qǐng)先確定DT
    發(fā)表于 09-18 09:41 ?17次下載

    RDA1846S初始化設(shè)置

    RDA1846S初始化設(shè)置RDA1846S初始化設(shè)置RDA1846S初始化設(shè)置
    發(fā)表于 01-15 17:08 ?0次下載

    UCOS_III_配置與初始化

    UCOS_III_配置與初始化
    發(fā)表于 12-20 22:53 ?5次下載

    HX711初始化程序

    這是HX711的初始化程序
    發(fā)表于 02-08 01:51 ?92次下載

    ds1302時(shí)鐘芯片初始化,自動(dòng)決定DS1302是否需要初始化程序

    ds1302芯片時(shí)鐘芯片大家都在問到底需要不需要初始化?這篇文章將會(huì)給大家一個(gè)程序,可以自動(dòng)決定DS1302是否需要初始化
    發(fā)表于 10-19 19:19 ?1w次閱讀

    8253初始化程序分享_8253應(yīng)用案例

    本文首先介紹了8253概念及8253各通道的工作方式,其次詳細(xì)介紹了8253初始化要求及編程,最后用一個(gè)例子介紹了8253的初始化程序。
    發(fā)表于 05-23 15:52 ?2.3w次閱讀
    8253<b class='flag-5'>初始化</b>程序分享_8253應(yīng)用案例

    在51平臺(tái)下初始化文件的引入導(dǎo)致全局變量無法初始化的問題如何解決

    本文檔的主要內(nèi)容詳細(xì)介紹的是在51平臺(tái)下初始化文件的引入導(dǎo)致全局變量無法初始化的問題如何解決。
    發(fā)表于 08-20 17:31 ?0次下載
    在51平臺(tái)下<b class='flag-5'>初始化</b>文件的引入導(dǎo)致全局變量無法<b class='flag-5'>初始化</b>的問題如何解決

    C++之初始化列表學(xué)習(xí)的總結(jié)

    類中可以使用初始化列表對(duì)成員進(jìn)行初始化
    的頭像 發(fā)表于 12-24 17:39 ?1578次閱讀

    單片機(jī)問題總結(jié):MPU6050的DMP模塊初始化放在線程啟動(dòng)之前

    單片機(jī)問題總結(jié):MPU6050的DMP模塊初始化放在RTOS線程啟動(dòng)之前文章目錄單片機(jī)問題總結(jié):MPU6050的DMP模塊初始化放在RTOS線程啟動(dòng)之前問題復(fù)現(xiàn)問題總結(jié)問題解決問題復(fù)現(xiàn)
    發(fā)表于 12-06 14:06 ?10次下載
    單片機(jī)問題總結(jié):MPU6050的DMP模塊<b class='flag-5'>初始化</b>放在線程<b class='flag-5'>啟動(dòng)</b>之前

    "二十三、啟動(dòng)白屏或黑屏的處理,掛Logo問題,窗口初始化優(yōu)化及MCU與Android時(shí)序"

    二十三、啟動(dòng)白屏或黑屏的處理持Logo問題,窗口初始化優(yōu)化及MCU與Android時(shí)序1.確定Flash工作正常2.確定Flash對(duì)于壞塊的處理正常3.確定DDR的初始頻率正確,DDR頻率穩(wěn)定4.
    發(fā)表于 12-08 11:21 ?2次下載
    "二十三、<b class='flag-5'>啟動(dòng)</b>白屏或黑屏的處理,掛Logo問題,窗口<b class='flag-5'>初始化</b>優(yōu)化及MCU與Android時(shí)序"

    EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件初始化

    電子發(fā)燒友網(wǎng)站提供《EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件初始化.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x<b class='flag-5'>啟動(dòng)</b>時(shí)間優(yōu)化和器件<b class='flag-5'>初始化</b>

    GraniStudio:初始化例程

    1.文件運(yùn)行 導(dǎo)入工程 雙擊運(yùn)行桌面GraniStudio.exe。 通過引導(dǎo)界面導(dǎo)入初始化例程,點(diǎn)擊導(dǎo)入按鈕。 打開初始化例程所在路徑,選中初始化.gsp文件,點(diǎn)擊打開,完成導(dǎo)入。 2.功能
    的頭像 發(fā)表于 08-22 16:45 ?893次閱讀
    GraniStudio:<b class='flag-5'>初始化</b>例程