那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

講講UFS初始化和啟動

SSDFans ? 來源:未知 ? 作者:李倩 ? 2018-06-15 14:50 ? 次閱讀

這一節講講UFS初始化。

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

部分初始化階段

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

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

加載啟動代碼

如果啟動代碼不是存儲在UFS設備上,則沒有這一階段。主機怎么知道啟動代碼是不是存儲在UFS設備上呢?

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

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

查找到具體存儲代碼的LU,主機就可以讀取該LU獲得啟動代碼。

初始化完成

當主機完成前面兩個階段,主機會通過設備管理器,給設備設置fDeviceInit = 1,這是一個標志(flag),用以初始化。 主機設置了該標志后,然后就一直在那查詢該標志的值。

與此同時,UFS設備的固件繼續完成自己的初始化,當設備完成初始化,認為可以響應主機任何命令或者請求時,就清掉fDeviceInit,即fDeviceInit = 0。

當主機查詢到fDeviceInit =0,就可以發任何UFS協議中的任何命令或請求給UFS設備。

至此,整個UFS初始化和啟動完成。

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

再解釋一下這個啟動過程:

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

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

加載啟動代碼階段,主機通過讀取設備描述符,獲得啟動代碼在哪個LU上,然后發個試探性命令“TEST UNIT READY”給該LU,查看該LU是否準備好。如果Boot LU準備好,主機就通過發READ命令給設備,加載啟動代碼。

然后,主機設置fDeviceInit = 1,然后一直輪詢該標志,一旦fDeviceInit 變成0,標志UFS設備初始化完成。

最后,再把設備初始化過程中,雙方交互的內容做個總結:

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據鏈路層
    +關注

    關注

    0

    文章

    58

    瀏覽量

    12035
  • UFS
    UFS
    +關注

    關注

    6

    文章

    105

    瀏覽量

    24154

原文標題:蛋蛋讀UFS之六:UFS設備初始化和啟動

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RT-Thread自動初始化詳解

    初始化函數不需要被顯式調用,只需要在函數定義處通過宏定義的方式進行申明,就會在系統啟動過程中被執行,非常的方便。 1 普通初始化 前面也講了,我們在寫單片機的程序時,需要對硬件進行初始化
    的頭像 發表于 06-25 21:38 ?1.1w次閱讀
    RT-Thread自動<b class='flag-5'>初始化</b>詳解

    自動初始化機制原理詳解

    自動初始化機制是指初始化函數不需要被顯式調用,只需要在函數定義處通過宏定義的方式進行申明,就會在系統啟動過程中被執行。這篇文章就來探索一下其中的奧秘, 簡單理解其原理!
    的頭像 發表于 12-16 09:33 ?1082次閱讀
    自動<b class='flag-5'>初始化</b>機制原理詳解

    BPI啟動,Flash初始化失敗

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

    手機模塊初始化向導

    手機模塊初始化向導:為了剛好的對手機模塊進行初始化,所以把最基本的向導寫下來.本向導適用于本公司的西門子TC35I和華為GT9000模塊。一、在初始化手機模塊前,請先確定DT
    發表于 09-18 09:41 ?17次下載

    RDA1846S初始化設置

    RDA1846S初始化設置RDA1846S初始化設置RDA1846S初始化設置
    發表于 01-15 17:08 ?0次下載

    UCOS_III_配置與初始化

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

    HX711初始化程序

    這是HX711的初始化程序
    發表于 02-08 01:51 ?91次下載

    嵌入式開發復位和初始化詳細討論

    13.5 復位和初始化 任何運行在實際硬件上的嵌入式應用程序,都必須在啟動時實現一些基本的系統初始化。本節將對此予以詳細討論。 13.5.1 初始化序列 圖13.14顯示了一個適用于A
    發表于 10-19 09:12 ?1次下載
    嵌入式開發復位和<b class='flag-5'>初始化</b>詳細討論

    ds1302時鐘芯片初始化,自動決定DS1302是否需要初始化程序

    ds1302芯片時鐘芯片大家都在問到底需要不需要初始化?這篇文章將會給大家一個程序,可以自動決定DS1302是否需要初始化
    發表于 10-19 19:19 ?8640次閱讀

    8253初始化程序分享_8253應用案例

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

    在51平臺下初始化文件的引入導致全局變量無法初始化的問題如何解決

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

    C++之初始化列表學習的總結

    類中可以使用初始化列表對成員進行初始化
    的頭像 發表于 12-24 17:39 ?896次閱讀

    單片機問題總結:MPU6050的DMP模塊初始化放在線程啟動之前

    單片機問題總結:MPU6050的DMP模塊初始化放在RTOS線程啟動之前文章目錄單片機問題總結:MPU6050的DMP模塊初始化放在RTOS線程啟動之前問題復現問題總結問題解決問題復現
    發表于 12-06 14:06 ?10次下載
    單片機問題總結:MPU6050的DMP模塊<b class='flag-5'>初始化</b>放在線程<b class='flag-5'>啟動</b>之前

    RT-Thread自動初始化機制

    ??在分析之前首先查閱 RT-Thread 的官方文檔 [RT-Thread 自動初始化機制](https://www.rt-thread.org/document/site
    的頭像 發表于 06-17 08:52 ?2768次閱讀
    RT-Thread自動<b class='flag-5'>初始化</b>機制

    EE-359:ADSP-CM40x啟動時間優化和器件初始化

    電子發燒友網站提供《EE-359:ADSP-CM40x啟動時間優化和器件初始化.pdf》資料免費下載
    發表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x<b class='flag-5'>啟動</b>時間優化和器件<b class='flag-5'>初始化</b>
    香港六合彩码报| 蓝盾百家乐代理打| 百家乐官网代理博彩正网| 土豪百家乐的玩法技巧和规则| 百家乐官网打水套利| 佳豪娱乐| 狮威百家乐娱乐场| 博盈娱乐场| 新彩百家乐的玩法技巧和规则| 同花顺百家乐官网娱乐城| 和田市| 百家乐管家| 九州百家乐娱乐城| 温州市百家乐官网鞋业有限公司 | 百家乐赌机玩法| 澳门百家乐官网鸿福厅| 致胜百家乐的玩法技巧和规则| 网络百家乐官网破| 百家乐官网h游戏怎么玩| 德州扑克胜率计算器| 自贡百家乐赌场| 百家乐官网轮盘一体机厂家| 百家乐官网真人视屏游戏| 大发888在线娱乐城代理| 百家乐电投网址| 沙龙百家乐官网代理| 百家乐官网如何投注| 大发888游乐场下载| 百家乐注册彩金| 百家乐官网免费送现金| 博士百家乐官网现金网| 金博士百家乐的玩法技巧和规则 | 百家乐澳门赌| 24山向吉凶山运| 百家乐官网赌场怎么玩| 百家乐官网网站排行| 利澳娱乐城官方网| 新全讯网3344666| 百家乐赌场群| 七乐百家乐现金网| 环球百家乐官网的玩法技巧和规则 |