如何将u-boot.2022.10版本移植到imx6ull开发板_第1页
如何将u-boot.2022.10版本移植到imx6ull开发板_第2页
如何将u-boot.2022.10版本移植到imx6ull开发板_第3页
如何将u-boot.2022.10版本移植到imx6ull开发板_第4页
如何将u-boot.2022.10版本移植到imx6ull开发板_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页如何将u-boot.2022.10版本移植到imx6ull开发板

嗨喽,大家好,我是程序猿老王,程序猿老王就是我。

今天给大家讲一讲如何将u-boot.2022.10版本移植到imx6ull开发板上。

环境

3.4、编译通过,u-boot所有依赖库已全部安装完毕

二、U-Boot中添加自己的开发板

在U-Boot中添加自己的开发板(NXP)官方uboot中默认都是NXP自己的开发板,虽说我们可以直接在官方的开发板上直接修改,使u-boot可以完整的运行在我们的板子上。但是从学习的角度来讲,这样我们就不能了解到uboot是如何添加新平台的。接下来我们就参考NXP官方的I.MX6ULLEVK开发板学习如何在u-boot中添加我们的开发板或者开发平台。

1、添加开发板默认配置文件先在configs目录下创建默认配置文件,复制mx6ull_14x14_evk_defconfig,然后重命名为mx6ull_toto_defconfig,命令如下:

cdconfigscpmx6ull_14x14_evk_defconfigmx6ull_toto_defconfig然后将文件mx6ull_toto_defconfig中的内容改成下面的:

CONFIG_ARM=yCONFIG_ARCH_MX6=yCONFIG_SYS_(TE)XT_BASE=0x87800000CONFIG_SYS_MALLOC_LEN=0x1000000CONFIG_NR_(DRAM)_BANKS=1CONFIG_ENV_SIZE=0x2000CONFIG_ENV_OFFSET=0xC0000CONFIG_MX6ULL=yCONFIG_TARGET_MX6ULL_TOTO=y...可以看出,mx6ull_toto_defconfig基本和mx6ull_14x14_evk_defconfig中的内容一样,只是第9行做了修改

2、添加开发板对应的头文件在目录include/configs下添加I.MX6ULL-ALPHA开发板对应的头文件,复制include/configs/mx6ullevk.h,并重命名为mx6ull_toto.h,命令如下:

cpinclude/configs/mx6ullevk.hinclude/configs/mx6ull_toto.h拷贝完成以后将:

#ifndef__MX6ULLEVK_CONFIG_H#define__MX6ULLEVK_CONFIG_H改为:

#ifndef__MX6ULL_TOTO_CONFIG_H#define__MX6ULL_TOTO_CONFIG_Hmx6ull_toto.h里面有很多宏定义,如配置uboot默认串口打印使用(uart)的第几个口,网口默认使用哪个网口等,也有一些u-boot环境变量的的默认配置。如果我们想要改变默认的uart和enet口,那就在mx6ull_toto.h里面做修改即可。

3、添加开发板对应的板级文件夹uboot中每个板子都有一个对应的文件夹来存放板级文件,比如开发板上外设驱动文件等等。NXP的I.MX系列(芯片)的所有板级文件夹都存放在board/freescale目录下,在这个目录下有个名为mx6ullevk的文件夹,这个文件夹就是NXP官方I.MX6ULLEVK开发板的板级文件夹。复制mx6ullevk,将其重命名为mx6ull_toto,命令如下:

cdboard/freescalecp-rmx6ullevk/mx6ull_toto进入mx6ull_toto目录中,将其中的mx6ullevk.c文件重命名为mx6ull_toto.c,命令如下:

cdmx6ull_totomvmx6ullevk.cmx6ull_toto.c我们还需要对mx6ull_toto目录下的文件做一些修改:

3.1、修改mx6ull_toto目录下的Makefile文件

将mx6ull_alientek_emmc下的Makefile文件内容改为如下所示:

#SPDX-License-Iden(ti)fier:GPL-2.0+#(C)Copyright2023FreescaleSem(ic)onductor,Inc.obj-y:=mx6ull_toto.o重点是第4行的obj-y,改为mx6ull_toto.o,这样才会编译mx6ull_toto.c这个文件。

3.2、修改mx6ull_toto目录下的imximage.cfg文件

将imximage.cfg中的下面一句:

#ifdefCONFIG_USE_IMXIMG_PLUGIN/*PLUGINplugin-binary-fileI(RAM)_FREE_START_(AD)DR*/PLUGINboard/freescale/mx6ullevk/plugin.bin0x00907000#else改为:

#ifdefCONFIG_USE_IMXIMG_PLUGIN/*PLUGINplugin-binary-fileIRAM_FREE_START_ADDR*/PLUGINboard/freescale/mx6ull_toto/plugin.bin0x00907000#else3.3、修改mx6ull_toto目录下的Kconfig文件

修改Kconfig文件,修改后的内容如下:

ifTARGET_MX6ULL_TOTOconfigSYS_BOARDdefault"mx6ull_toto"configSYS_VENDORdefault"freescale"configSYS_CONFIG_NAMEdefault"mx6ull_toto"configIMX_CONFIGdefault"board/freescale/mx6ull_toto/imximage.cfg"endif3.4、修改mx6ull_toto目录下的M(AI)NTAINE(RS)文件

修改MAINTAINERS文件,修改后的内容如下:

MX6ULLTOTOBOARDM:PengFanS:MaintainedF:board/freescale/mx6ull_toto/F:include/configs/mx6ull_toto.hF:configs/mx6ull_toto_defconfigF:configs/mx6ull_14x14_evk_plugin_defconfigF:configs/mx6ulz_14x14_evk_defconfig4、修改arch/arm/mach-imx/mx6/Kconfig修改文件arch/arm/mach-imx/mx6/Kconfig,在468行加入如下内容:

configTARGET_MX6ULL_TOTObool"Supportmx6ull_toto"dependsonMX6ULLselectBOARD_LATE_INITselectDMselectDM_THERMALimplyCMD_DM在717行添加如下内容:

source"board/freescale/mx6ull_toto/Kconfig"5、其他需要修改的地方在uboot启动信息中会有“Board:MX6ULL14x14EVK”这一句,也就是说板子名字为“MX6ULL14x14EVK”。那么如果要将其改为我们想要的名字,就需打开文件mx6ull_toto.c,找到函数checkboard,将其改为如下所示内容:

intcheckboard(void){if(is_(cpu)_type(MXC_CPU_MX6ULZ))puts("Board:MX6ULZ14x14EVK\n");elseputs("Board:MX6ULLTOTO\n");return0;}6、使用新添加的板子配置编译uboot在uboot根目录下新建一个名为build.sh的shell脚本,在这个shell脚本里面输入如下内容:

#!/bin/bashmakeARCH=armC(ROS)S_COM(PI)LE=arm-linux-gnueabihf-distcleanmakeARCH=armCROSS_COMPILE=arm-linux-gnueabihf-mx6ull_toto_defconfigmakeARCH=armCROSS_COMPILE=arm-linux-gnueabihf--j8build.sh添加可执行权限,命令如下:

chmod777build.sh三、编译、下载、验证

1、编译./build.sh2、编译成功...DTCarch/arm/dts/imx6ulz-bsh-smm-m2.dtbDTCarch/arm/dts/imx6ulz-14x14-evk.dtbDTCarch/arm/dts/imx6q-apalis-eval.dtbDTCarch/arm/dts/imx6dl-colibri-eval-v3.dtbSHIPPEDdts/dt.dtbCATu-boot-dtb.binCOPYu-boot.dtbCOPYu-boot.binCFGSu-boot-dtb.cfgoutMKIMAGEu-boot-dtb.imx3、下载验证使用imxdownload将新编译出来的u-boot.bin烧写到(SD)卡中测试,SecureCRT输出结果如下:

sudo./imxdownloadu-boot.bin/dev/sdbU-Boot2022.10-gaef9f25a-dirty(Apr052023-17:49:18+0800)CPU:Freescalei.MX6ULLrev1.1792MHz(runningat396MHz)CPU:Industrialtemperaturegrade(-40Cto105C)at26CResetcause:PORModel:Freescalei.MX6UltraLiteLite14x14EVKBoardBoard:MX6ULLTOTODRAM:512MiBCore:65devices,17uclasses,devicetree:separateMMC:FSL_SDHC:0,FSL_SDHC:1Lo(adi)ngEnvironmentfromMMC...OKIn:serialOut:serialErr:serialNet:CouldnotgetPHYforFEC1:addr1CouldnotgetPHYforFEC1:addr1Getsharedmiibuson(ethernet)@2188000CouldnotgetPHYforFEC1:addr2Getsharedmiibusonethernet@2188000Could

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论