uboot验证内核镜像是否有效

校验流程

这块也不算复杂,后面整理好了之后,一并上传。
这里写图片描述
这里写图片描述
这里写图片描述
下面是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 。
    */
    if (*(ulong *)(addr + 9*4) == LINUX_ZIMAGE_MAGIC) {
        printf("Boot with zImage\n");
        ...
    }
 #endif 

这里写图片描述

uImage的校验方式
uImage = 64字节头信息 + zImage

1 : 为什么这么说? 
2 : 64字节头信息又是什么?代表了什么含义?

那么我们来看一下 uImage 和 zImage 的镜像内容。
这里写图片描述

这里写图片描述

平台 : hi3520
这里写图片描述

实验验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值