校驗流程
這塊也不算複雜,後面整理好了之後,一併上傳。
下面是u-boot的實驗log:
zimage的校驗方式
zimage的第37-40個位元組存放這zimage的 「魔數」
依據 :
路徑 : uboot/common/cmd_bootm.c
函式 : do_bootm( ) ;
#ifdef config_zimage_boot
#define linux_zimage_magic 0x16f2818
if(argc < 2)else
/**看 addr + 9 * 4 判斷從addr往後的第36個位元組後 即 37 ~ 40個位元組是否為0x16f2818
好,下面我用 winhex 開啟zimage 。
uimage的校驗方式
uimage = 64位元組頭資訊 + zimage
1 : 為什麼這麼說?
2 : 64位元組頭資訊又是什麼?代表了什麼含義?
那麼我們來看一下 uimage 和 zimage 的映象內容。
平台 : hi3520
實驗驗證
uboot分析 uboot啟動核心
u boot啟動核心概述 u boot啟動完成後,最終進入到main loop 迴圈中。若在bootdelay倒計時為0之前,u boot控制台有輸入,則進入命令解析 執行的迴圈 若控制台無輸入,u boot將啟動核心。u boot啟動核心可歸結為以下四個步驟 1 將核心搬移至ddr中 2 校驗核心...
uboot啟動核心
假設bootcmd nand read.jffs2 0x30007fc0 kernel bootm 0x30007fc0 1 nand read.jffs2 0x30007fc0 kernel nand read.jffs2 0x30007fc0 kernel 從nand讀出核心 從 讀?從kern...
uboot啟動核心
經過了前面的的一系列準備,終於要啟動核心了。在uboot分析二中,提到過下面的這個函式 void main loop void 在啟動核心的時候在uboot裡面用到什麼命令呢?bootcmd 命令 nand.read.jffs 0x30007f00 kernel 從nand的kernel 分割槽讀核...