移植Uboot2017到TINY4412<1>

梦想还是要有的,万一实现了呢

移植相关

硬件:
-核心板:Tiny4412 - 1412
-底板: Tiny4412/Super4412SDK 1506
软件:
-移植uboot版本: u-boot-2017.05.tar.bz2
-工具链:arm-linux-gcc 4.5.1
工具链就不介绍如何安装了。

新版的UBOOT增加了SPL的支持。
SPL:Secondary Program Loader,第二阶段程序加载器(其实就相当于uboot的第一阶段,只不过单独编译成一个文件了)。编译u-boot-spl.bin复用的是u-boot的代码。通过宏定义CONFIG_SPL_BUILD进行条件编译,当然有一些函数虽然名字相同,但是调用的不同源文件里的函数,比如init_board_f(),后面再继续说。

我们要移植的处理器为三星公司的exynos4412。所以我到board/samsung/找到一款基于exynos4xxx(4412、4210)的处理器进行移植。在/board/samsung目录下基于exynos4xxx的开发板有:origen、odroid、trats、trats2,smdkv310。origen和smdkv310支持spl配置,这里笔者选择了origen进行移植。

创建板级相关文件

首先
#make clean
#make distclean
然后
#grep “origen” * -nR
#grep “ORIGEN” * -nR
搜索,哪些文件跟origen相关
然后依葫芦画瓢。复制,粘贴, 修改。将origen修改为tiny4412,ORIGEN修改为TINY4412。
这里写图片描述
(注:mach-types.h这个文件是自动生成的,不需要修改。在include/configs/tiny4412.h:#define CONFIG_MACH_TYPE MACH_TYPE_TINY4412后就会自动生成编号)
拷贝,修改之后
#make tiny4412_defconfig
#make ARCH=arm CROSS_COMPILE=arm-linux- V=1 -j8
(V=1:表示显示编译详细信息。 -j8:笔者电脑是四核八线程,加该选项为了提高编译速度)
如果修改正确,此时是可以编译通过,如果不能编译通过,请检查,是否有文件遗漏未修改。
编译通过后在根目录生成
u-boot.bin(完整的uboot)
spl目录生成
u-boot-spl.bin(SPL)
当然,此时的镜像文件,烧写到SD是没有反应的,还需要做相应的修改。

修改制作BL2的工具

(参考:Android_Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf)
这里写图片描述
官方提供了BL1文件(E4412_N.bl1.bin),所以我们就将SPL镜像制作成BL2。(当然也可以不使用官方的BL1文件,将SPL镜像制作成BL1,为了简单,方便,笔者选择使用了官方的BL1)如果对启动流程不是很清楚的话请查看笔者的另一篇文章:《exynos4412启动流程》。
这里写图片描述
该片内内存映射反应了,BL2主要为主体+校验和+签名。在官方文档中有描述,BL2的签名已经写在BL1中,所以制作BL2不需要加签名,校验为前(14*1024-4)字节的校验和,并将校验和写在(14*1024-4)地址处,即完成BL2制作。
制作BL2的源码为/u-boot-2017.05/board/samsung/tiny4412/tools/mktiny4412spl.c(其实是复制mkorigenspl.c)

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <sys/stat.h>
/*
 * no make BL1,so don't need add header
 */
#define BUFSIZE         (16*1024)
#define IMG_SIZE        ((14*1024)-4)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值