在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

uboot的啟動(dòng)BL1和BL2兩個(gè)階段介紹

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-12-04 17:53 ? 次閱讀

之前對(duì)這個(gè)uboot的源碼了解有些許遺忘。最近做AVB校驗(yàn),需要uboot到kernel的這個(gè)過程。這里再復(fù)習(xí)一下。

與大多數(shù)BootLoader一樣,uboot的啟動(dòng)過程分為BL1和BL2兩個(gè)階段。

BL1階段通常是開發(fā)板的配置等設(shè)備初始化代碼,需要依賴依賴于SoC體系結(jié)構(gòu),通常用匯編語言來實(shí)現(xiàn);

BL2階段主要是對(duì)外部設(shè)備如網(wǎng)卡、Flash等的初始化以及uboot命令集等的自身實(shí)現(xiàn),通常用C語言來實(shí)現(xiàn)。

1、BL1階段

uboot的BL1階段代碼通常放在start.s文件中,用匯編語言實(shí)現(xiàn),其主要代碼功能如下:

? (1) 指定uboot的入口。在鏈接腳本uboot.lds中指定uboot的入口為start.S中的_start。

? (2)設(shè)置異常向量(exception vector)

? (3)關(guān)閉IRQ、FIQ,設(shè)置SVC模式

? (4)關(guān)閉L1 cache、設(shè)置L2 cache、關(guān)閉MMU

? (5)根據(jù)OM引腳確定啟動(dòng)方式

? (6)在SoC內(nèi)部SRAM中設(shè)置棧

? (7)lowlevel_init(主要初始化系統(tǒng)時(shí)鐘SDRAM初始化、串口初始化等)

? (8)設(shè)置開發(fā)板供電鎖存

? (9)設(shè)置SDRAM中的棧

? (10)將uboot從SD卡拷貝到SDRAM中

? (11)設(shè)置并開啟MMU

? (12)通過對(duì)SDRAM整體使用規(guī)劃,在SDRAM中合適的地方設(shè)置棧

? (13)清除bss段,遠(yuǎn)跳轉(zhuǎn)到start_armboot執(zhí)行,BL1階段執(zhí)行完

2、BL2階段

start_armboot函數(shù)位于lib_arm/board.c中,是C語言開始的函數(shù),也是BL2階段代碼中C語言的 主函數(shù),同時(shí)還是整個(gè)u-boot(armboot)的主函數(shù),BL2階段的主要功能如下:

? (1)規(guī)劃uboot的內(nèi)存使用

? (2)遍歷調(diào)用函數(shù)指針數(shù)組init_sequence中的初始化函數(shù)

? (3)初始化uboot的堆管理器mem_malloc_init

? (4)初始化SMDKV210開發(fā)板的SD/MMC控制器mmc_initialize

? (5)環(huán)境變量重定位env_relocate

? (6)將環(huán)境變量中網(wǎng)卡地址賦值給全局變量的開發(fā)板變量

? (7)開發(fā)板硬件設(shè)備的初始化devices_init

? (8)跳轉(zhuǎn)表jumptable_init

? (9)控制臺(tái)初始化console_init_r

? (10)網(wǎng)卡芯片初始化eth_initialize

? (11)uboot進(jìn)入主循環(huán)main_loop

這里主要對(duì)第二個(gè)階段BL2進(jìn)行一個(gè)分析。

3、start_armboot函數(shù)分析

start_armboot函數(shù)的主要功能如下:

? (1)遍歷調(diào)用函數(shù)指針數(shù)組init_sequence中的初始化函數(shù)

依次遍歷調(diào)用函數(shù)指針數(shù)組init_sequence中的函數(shù),如果有函數(shù)執(zhí)行出錯(cuò),則執(zhí)行hang函數(shù),打印出”### ERROR ### Please RESET the board ###”,進(jìn)入死循環(huán)。

? (2)初始化uboot的堆管理器mem_malloc_init

? (3)初始化SMDKV210的SD/MMC控制器mmc_initialize

? (4)環(huán)境變量重定位env_relocate

? (5)將環(huán)境變量中網(wǎng)卡地址賦值給全局變量的開發(fā)板變量

? (6)開發(fā)板硬件設(shè)備的初始化devices_init

? (7)跳轉(zhuǎn)表jumptable_init

? (8)控制臺(tái)初始化console_init_r

? (9)網(wǎng)卡芯片初始化eth_initialize

? (10)uboot進(jìn)入主循環(huán)main_loop

聲明:本文內(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)投訴
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4173

    瀏覽量

    218422
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62705
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5067

    瀏覽量

    97619
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    125

    瀏覽量

    28249
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    tiny210上uboot啟動(dòng)分析

    (0xd002_0000處,其中0xd002_0010之前的16個(gè)字節(jié)儲(chǔ)存BL1的校驗(yàn)信息和BL1尺寸)中,并對(duì)BL1進(jìn)行校驗(yàn),校驗(yàn)OK轉(zhuǎn)入BL1
    發(fā)表于 06-27 17:04

    【OK210試用體驗(yàn)】S5PV210 IROM BL0啟動(dòng)

    ,在啟動(dòng)引導(dǎo)階段兩個(gè)作用:一是IROM運(yùn)行時(shí)使用的數(shù)據(jù)變量所在的區(qū)域,二是IROM,即BL0會(huì)將外存中的BL1引導(dǎo)到該區(qū)域中。因?yàn)镮ROM
    發(fā)表于 07-23 15:35

    【OK210試用體驗(yàn)】+ 《uboot啟動(dòng)過程分析》

    ,其中0xd002_0010之前的16個(gè)字節(jié)存儲(chǔ)的的BL1的校驗(yàn)信息和BL1尺寸)中,并對(duì)BL1進(jìn)行校驗(yàn),檢驗(yàn)OK轉(zhuǎn)入BL1進(jìn)行執(zhí)行;
    發(fā)表于 08-25 12:36

    【OK210試用體驗(yàn)】+ 《uboot啟動(dòng)過程分析》

    (DDR);BL2加載內(nèi)核,把OS在SDRAM中運(yùn)行起來,最終OS是運(yùn)行在SDRAM(內(nèi)存)中的。在這個(gè)過程中,u-boot需要初始化的硬件是CPU和DDR,所以,這兩個(gè)硬件必須在u-boot階段就做
    發(fā)表于 08-26 21:12

    【NanoPi M2試用體驗(yàn)】+SD卡啟動(dòng)BL1拷貝BL2到DDR2中運(yùn)行

    裸機(jī)程序SD卡啟動(dòng)BL1拷貝BL2到DDR2中運(yùn)行;代碼的拷貝會(huì)用到一些指針函數(shù),第一個(gè)參數(shù)為SD卡存放
    發(fā)表于 06-11 17:03

    S5PV210uboot啟動(dòng)過程分析

    BL1 尺寸)中,并對(duì) BL1 進(jìn)行校驗(yàn),校驗(yàn) OK 轉(zhuǎn)入 BL1 進(jìn)行執(zhí)行; BL1 繼續(xù)初始化,并將 BL2 復(fù)制到 IRAM 中并
    發(fā)表于 11-15 10:50

    自制s5pv210啟動(dòng)ubootBL1代碼

    自制s5pv210啟動(dòng)ubootBL1代碼
    發(fā)表于 02-10 23:21

    關(guān)于iTop4412 iROM階段啟動(dòng)流程簡(jiǎn)析

    iTop4412 irom啟動(dòng)和Exynos4212 iROM Booting Guide是一樣的。iROM階段啟動(dòng)流程本次介紹如何構(gòu)建Exynos4412中的
    發(fā)表于 04-21 11:45

    TF-A的不同啟動(dòng)階段有哪些

    不同的啟動(dòng)階段,按照鏈?zhǔn)浇Y(jié)構(gòu)依次啟動(dòng),ATF 代碼啟動(dòng)流程如圖所示: 當(dāng)芯片復(fù)位以后首先運(yùn)行 bl1 代碼,
    的頭像 發(fā)表于 09-11 16:54 ?936次閱讀
    TF-A的不同<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>階段</b>有哪些

    啟動(dòng)(Cold boot)流程及階段劃分

    restart--冷啟動(dòng) reset--熱啟動(dòng) ATF冷啟動(dòng)實(shí)現(xiàn)分為5個(gè)步驟: ? BL1 - AP Trusted ROM,一般為Boot
    的頭像 發(fā)表于 11-07 15:17 ?2423次閱讀
    冷<b class='flag-5'>啟動(dòng)</b>(Cold boot)流程及<b class='flag-5'>階段</b>劃分

    code層面 ATF中bl1啟動(dòng)

    系統(tǒng)上電之后首先會(huì)運(yùn)行ChipRom,之后會(huì)跳轉(zhuǎn)到ATF的bl1中繼續(xù)執(zhí)行。bl1主要初始化CPU、設(shè)定異常向量、將bl2的鏡像加載到安全RAM中,然后跳轉(zhuǎn)到bl2中開始運(yùn)行。
    的頭像 發(fā)表于 11-07 15:53 ?1099次閱讀
    code層面 ATF中<b class='flag-5'>bl1</b>的<b class='flag-5'>啟動(dòng)</b>

    ATF中bl2啟動(dòng)

    bl2_entrypoint。該函數(shù)定義在bl2/aarch64/bl2_entrypoint.S文件中。該階段的執(zhí)行流程如圖所示。 bl2
    的頭像 發(fā)表于 11-07 15:59 ?834次閱讀
    ATF中<b class='flag-5'>bl2</b>的<b class='flag-5'>啟動(dòng)</b>

    ATF中如何用函數(shù)完成bl2啟動(dòng)

    bl2_main函數(shù) bl2_main函數(shù)完成了bl2階段的主要操作,包括 ? 對(duì)下一個(gè)階段鏡像
    的頭像 發(fā)表于 11-07 16:04 ?719次閱讀

    ATF中bl2bl31的跳轉(zhuǎn)介紹

    bl2bl31的跳轉(zhuǎn) 在bl2_main函數(shù)中最終會(huì)調(diào)用smc(BL1_SMC_RUN_IMAGE,(unsigned long)next_bl
    的頭像 發(fā)表于 11-07 16:09 ?981次閱讀

    armv8 u-boot的啟動(dòng)介紹

    先看arm官網(wǎng)提供的一張圖: 上圖詳細(xì)概括了arm官方推薦的armv8的啟動(dòng)層次結(jié)構(gòu): 官方將啟動(dòng)分為了BL1BL2BL31,
    的頭像 發(fā)表于 12-07 11:09 ?2266次閱讀
    armv8 u-boot的<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>介紹</b>
    主站蜘蛛池模板: 四虎最新在线| 欧美激情五月| 中文字幕一区二区三区不卡| 天天天天射| 国产三级在线观看| 欧美色久| 亚洲大成色www永久网址| h视频在线观看网站| 国产一级αv片免费观看| www.xxx.国产| 久久亚洲视频| 欧美婷婷六月丁香综合色| 欧美三级日韩三级| 久久久鲁| 在线高清视频大全| 97超在线| 播五月综合| 国产嫩草影院在线观看| 免费一级欧美在线观看视频片| 泰国一级毛片aaa下面毛多| 日韩一级免费毛片| 色噜噜噜噜色| 色噜噜狠狠成人影院| 免费视频淫片aa毛片| 国产大乳喷奶水在线看| 五等分的新娘免费漫画| 最新欧美精品一区二区三区 | 日本高清视频色wwwwww色| 特级毛片免费视频观看| 女人张开腿男人桶| 欧美人与动欧交视频| 日本视频网站在线www色| 色五月激情小说| 手机毛片| 色老头在线官方网站| 精品乩伦视频| 国产片无遮挡在线看床戏| 午夜精品久久久久久91| 手机看片国产免费久久网| 天天干天天射天天爽| 奇米99|