查看: 2196|回复: 3

[MYS-8MMX开发板]U-boot的编译与移植[一]

[复制链接]

该用户从未签到

发表于 2021-8-22 16:08:57 | 显示全部楼层 |阅读模式
分享到:
上一篇文章的地址是[MYS-8MMX开发板]初上手体验https://www.cirmall.com/bbs/foru ... &fromuid=342211
(出处: 电路城论坛)
这周特别的忙,更新进度慢点了,以后还要加快速度才是。我一直从事嵌入式方向,使用的是NXP其它系列的CPU,这还是第一次接触IMX8这个片子。这篇文章主要是在uboot下搭一个移植板子的架子。除了uboot还需要一些其他的东西,我打了个包(其实也是下载的米尔科技的),需要的可以直接下载就是了。帖子主要是记录我的步骤,也可能会有遗漏或者写错的地方,如果有什么疑问的话可以给我发邮件,我们可以一块交流:liji6630@foxmail.com
链接:https://pan.baidu.com/s/1vVTSZQDyxALxhCv793x89Q
提取码:liji
--来自百度网盘超级会员V5的分享

现在开始,我还没有使用2020.04版本的uboot,直接拿MYS提供的这个Uboot版本就行了,在2020.04版本移植的方式也是一样的。
安装交叉编译环境等米尔的文档已经说的很详细了,这里不再重复,以下的说明都是针对uboot的。
补充:下一篇帖子我会补上2020.04版本uboot的试验并以此为基础进行MYS-8MMX的移植,如果顺利的话,以后我们就使用2020.04版本的了。

一、找个架子
  1. make imx8mm_ddr4_evk_defconfig
  2. make
复制代码
运行生成固件脚本,烧写到sd卡试试。

1

1

2

2
还行,竟然直接起来了。还是SPL启动的。我最担心的就是这个EVK模板和MYS-8MMX的板子内存参数不同,还得改参数。如果内存控制器初始化失败,那么这里会卡到Trying to boot from MMC1上。这样就比较好的一步步的看了。那么就开始吧。

二、 创建自己的架子
创建自己的板级目录,取名叫xiheniao,设备名字就这么的被叫成BIRD_IMX8MM_DDR4_EVK,名字不重要。
搜一下,看看有哪些是要替换的。

3

3
先不涉及修改,我们先把这个大架子搭好。
第一步,建立自己的板级目录,我们叫xiheniao吧。就是把board目录下的freescale目录复制一份,叫做xiheniao,然后保留里面的commonimx8mm_evk就可以了,其他的目录都删掉。
第二步,建立自己的配置文件,把configs下面的imx8mm_ddr4_evk_defconfig复制为bird_imx8mm_ddr4_evk_defconfig
这时候还差一些东西,我们先不动。慢慢的开始进行修改。
打开这个bird_imx8mm_ddr4_evk_defconfig,里面有一堆配置。我们目前只关注几个重点,其它的以后用到了再慢慢的看。
CONFIG_TARGET_IMX8MM_DDR4_EVK=y
这个地方,我们的板子叫BIRD_IMX8MM_DDR4_EVK,那么这里就改成:
CONFIG_TARGET_BIRD_IMX8MM_DDR4_EVK=y
然后是:
CONFIG_DEFAULT_DEVICE_TREE="fsl-imx8mm-ddr4-evk"
CONFIG_DEFAULT_FDT_FILE="imx8mm-ddr4-evk.dtb"
第一个从名字上就能看出来这个就是uboot默认的设备树,我们将它改成bird-imx8mm-ddr4-evk。第二个提前说下,这个我们暂时不改,这个定义我看代码里面是用于uboot启动的时候加载的那个设备树的名称。目前我们还不涉及到内核的启动。先不管了,只是提前说一下。
既然第一个改名为bird-imx8mm-ddr4-evk,那么设备树也得增加,那么就复制一个吧:
cp arch/arm/dts/fsl-imx8mm-ddr4-evk.dts arch/arm/dts/bird-imx8mm-ddr4-evk.dts
这时候这个配置文件就改好了。

最简单的,我们先来弄下这个设备树,先打开设备树。
发现最上面还#include "fsl-imx8mm-evk.dts",目前并不清楚这个板子和evk是啥关系,而且也不是dtsi头文件。那么干脆把这个文件取名叫bird-imx8mm-evk.dts算了,没准后面还得修改。这个dts文件就包含dtsi了。然后把include也改了。下面的model也改了,改成我们自己的名字。

4

4

光加上设备树了,还得让它参与编译,打开同级目录下的Makefile,

5

5
设备树部分现在基本就ok了。再去看看board那边。

三、修改自己的架子
现在board/xiheniao下面有个imx8mm_evk,我们换成我们的名字,就叫imx8mm_bird吧。然后进入目录。

6

6
这个imx8mm_evk.c好刺眼,换名字。其他名字就没啥好改的了。改了名也要在Makefile里面改下编译。

7

7
然后看Kconfig,这个地方最重要了。

8

8
按照这个修改就行了,既然我们把board改成了imx8mm_bird了,那么头文件也要添加这个,imx8mm_bird.h。那就继续开始复制之旅把。
cp include/configs/imx8mm_evk.h include/configs/imx8mm_bird.h
这里面有个imx_env.h看了下都是环境变量,先不管了,暂时不影响。那么现在,我们添加了board,添加了CONFIG_TARGET_,怎么编译呢。这时候还缺个地方。

9

9
稍微关注下这两个select,这代表着CONFIG_IMX8MMCONFIG_IMX8M_DDR4,还有个地方改一下:

10

10
编译下试试:
  1. make bird_imx8mm_ddr4_evk_defconfig
  2. make
复制代码
似乎看着没问题,修改下生成flash.bin的脚本,生成固件跑一下试试

11

11

12

12
既然编译没问题,运行也没问题的话,那么表示我们的架子就已经有了。以后我们只修改我们自己的板级代码就行了。
那么接下来就对照着板子的硬件原理图先在uboot里面一点点的去适配吧。

回复

使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-31 23:05
  • 签到天数: 144 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2021-8-23 09:51:55 | 显示全部楼层
    谢谢楼主记录的这么详细。
    Kconfig这个配置,我就没有经验。
    如果我自己上手,又要找上一阵子了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2021-8-24 08:07:58 | 显示全部楼层
    jobszheng5 发表于 2021-8-23 09:51
    谢谢楼主记录的这么详细。
    Kconfig这个配置,我就没有经验。
    如果我自己上手,又要找上一阵子了 ...

    哈哈,我这个属于随手记录,可能文章的排版不是那么好看,但是我会尽可能的不遗漏任何细节。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-1-31 23:05
  • 签到天数: 144 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2021-8-24 14:37:06 | 显示全部楼层
    给楼主 一朵小红花。

    这次楼主回复我,论坛居然没有系统提示。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 22:37 , Processed in 0.163189 second(s), 22 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.