T2080 U-BOOT与OS内核移植 u-boot移植篇(一)——创建新目标板的u-boot工程
上一篇我们带领大家进行了环境的部署和配置。这篇文章开始,我们进入正题,开始着手进行u-boot的移植工作。
在进行u-boot代码修改前,我们应该先创建一个属于自己目标板的工程。我们的目标板使用的是T2080处理器,因此参考T2080RDB参考设计板的u-boot工程进行移植。又因为我们的目标板最终要集成可信计算模块(TPM),所以姑且给我们的目标板取个名字叫“T2080TPM”。别看只差了3个字母,过程可没这么简单。
网上有诸多前人的文章,大家都可以参考,但由于处理器的差异或一些其他原因,都不能直接用于我们的T2080项目。因此本文详细描述一个新T2080目标板u-boot工程的创建过程。
先贴一张官方手册中的方法图(文件:u-boot-2020.01/doc/README.Kconfig)。
官方手册只是个要点提示,实际要做的工作更加细致和具体。我就只给大家用流水账的方式按条目写下来,其中很多步骤之间的关系我也没有搞得太清楚,还需要更深入地学习。
一、创建新目标板文件夹并修改相应文件
1.创建新目标板文件夹
进入目录u-boot-2020.01/board/freescale,复制t208xrdb文件夹,改名为t2080tpm,新目标版文件夹就算创建好了。
2.修改t2080tpm文件夹中的相应文件
a) t208xrdb.c
修改文件名:
- t208xrdb.c -> t2080tpm.c
修改文件内容:
- Ln.20 #include “t208xrdb.h” -> #include “t2080tpm.h”
b) t208xrdb.h
修改文件名:
- t208xrdb.h->t2080tpm.h
c) MAINTAINERS
修改文件内容:
- Ln.1 T208XRDB BOARD->T2080TPM BOARD
- Ln.4 board/freescale/t208xrdb/->board/freescale/t2080tpm/
- Ln.5 include/configs/T208xRDB.h-> include/configs/T2080TPM.h
- Ln.6 configs/T2080RDB_defconfig-> configs/T2080TPM_defconfig
文件后续部分视情况保留,如果从NorFlash启动且不使用Secure Boot功能可删掉。
d) Kconfig
修改文件内容:
- Ln.1TARGET_T2080RDB-> TARGET_T2080TPM
- Ln.4 default “t208xrdb”-> default “t2080tpm”
- Ln.10 default “T208xRDB”-> default “T2080TPM”
e) Makefile
修改文件内容:
- Ln.10 CONFIG_TARGET_T2080RDB-> CONFIG_TARGET_T2080TPM
- Ln.10 t2080rdb.o-> t2080tpm.o
二、增加头文件
在u-boot-2020.01/include/configs文件夹中增加文件T2080TPM.h,并修改文件内容:
- 将文件中“__T2080RDB_H”替换为“__T2080TPM_H”
- 将文件中“t2080rdb”替换为“t2080tpm”
三、增加defconfig条目
进入目录u-boot-2020.01/arch/powerpc/cpu/mpc85xx,修改Kconfig文件内容:
- 增加条目config TARGET_T2080TPM,内容复制config TARGET_T2080RDB条目内容,并将T2080RDB改为T2080TPM
- 增加条目source “board/freescale/t2080tpm/Kconfig”
四、增加defconfig文件
进入目录u-boot-2020.01/configs,增加文件T2080TPM_defconfig(复制文件T2080RDB_defconfig并改名),并修改文件内容:
- Ln.6 CONFIG_TARGET_T2080TDB=y -> CONFIG_TARGET_T2080TPM=y
- Ln.33 CONFIG_DEFAULT_DEVICE_TREE=“t2080rdb” -> CONFIG_DEFAULT_DEVICE_TREE=“t2080tpm”
五、修改生成dtb的Makefile
进入目录u-boot-2020.01/arch/powerpc/dts,修改Makefile文件内容:
- 增加条目dtb-$(CONFIG_TARGET_T2080TPM) += t2080tpm.dtb
六、验证一下效果
至此我们的新目标板u-boot工程就算创建完成了。来验证一下效果。
t2080@ubuntu: make T2080TPM_config(加载新目标板的配置)
t2080@ubuntu: make u-boot.bin(生成u-boot.bin)
OK!成功生成u-boot.bin文件。拥有了自己的工程后,我们真的真的要开始修改u-boot代码了。我们就从start.S开始吧!