• IMX6ULL移植篇-uboot源码主要目录说明


    一.  uboot 源码分析前提

    由于 uboot 会使用到一些经过编译才会生成的文件,因此,我们在分析 uboot的时候,需要先编译一下 uboot 源码工程。

    这里所用的开发板是 nand-flash 版本。

    本文学习续上一篇文章,如下:

    IMX6ULL移植篇-uboot源码目录表_凌肖战的博客-CSDN博客


     

     二.  uboot 源码主要目录说明

      编译后的 uboot 源码目录如下:

    1. wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/alientek_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ ls
    2. api examples load.imx tools
    3. arch fs MAINTAINERS u-boot
    4. board imx6ull_alientek_nand.sh MAKEALL u-boot.bin
    5. cmd imxdownload Makefile u-boot.cfg
    6. common imxdownload.c net uboot.code-workspace
    7. config.mk imxdownload.h post u-boot.imx
    8. configs include README u-boot.lds
    9. disk Kbuild scripts u-boot.map
    10. doc Kconfig snapshot.commit u-boot-nodtb.bin
    11. drivers lib System.map u-boot.srec
    12. dts Licenses test u-boot.sym

    下面说明几个常见的目录或文件。

    1.   arch 文件夹

    这个文件夹里面存放着和架构有关的文件。

    I.MX6ULL 使用的 Cortex-A7 内核,Cortex-A7 属于 armv7,所以我们要关心 “armv7” 这个文件夹。

    arch/arm/cpu/目录下的 u-boot.lds 就是整个 uboot 的链接脚本,即ARM 芯片所使用的 u-boot 链接脚本文件!

    uboot的根目录下也有 u-boot.lds文件,这两个文件是一样的。根目录下的u-boot.lds文件是由 “arch/arm/cpu” 目录下的 u-boot.lds生成的

    2.    board 文件夹

    board 文件夹就是和具体的板子有关的,使用的 I.MX 系列以前属于 freescale,只是 freescale 后来被 NXP 收购了。

    所以,我们可以找到名为 “freescale” 的文件夹。在里面找到和 mx6u(I.MX6UL/ULL)有 关的文件夹。

    如下图所示:

    1. drwxrwxr-x 2 wangtian wangtian 4096 525 2019 mx6ul_14x14_ddr3_arm2
    2. drwxrwxr-x 2 wangtian wangtian 4096 96 16:44 mx6ull_alientek_emmc
    3. drwxrwxr-x 2 wangtian wangtian 4096 96 17:22 mx6ull_alientek_nand
    4. drwxrwxr-x 2 wangtian wangtian 4096 525 2019 mx6ull_ddr3_arm2
    5. drwxrwxr-x 2 wangtian wangtian 4096 12 2020 mx6ullevk

    这 5 个文件夹对应 5 种板子,以“mx6ul”开头的表示使用 I.MX6UL 芯片的板子,以 mx6ull 开头的表示使用 I.MX6ULL 芯片的板子。

    mx6ullevk 是 NXP 官方的I.MX6ULL开发板,正点原子的ALPHA开发板就是在这个基础上开发的,这里本人推测出 mx6ull_alientek_nand文件可能是 nand-flash版的 IMX6ULL开发板使用的文件。

    3.  configs 文件夹

    uboot 是此文件夹为 uboot 的默认配置文件目录,uboot 是可配置的。 一般半导体或者开发板厂商都会制作好一个配置文件。
    配置文件统一命名为“ xxx_defconfig ”, xxx 表示开发板名字。这些配置文件对应不同的板子。
    NXP 官方开发板和正点原子的开发板配置文件肯定也在这个文件夹中。 正点原子的 阿尔法开发板对应的 如下所示:
    1. mx6ull_14x14_ddr3_arm2_defconfig
    2. mx6ull_14x14_ddr3_arm2_emmc_defconfig
    3. mx6ull_14x14_ddr3_arm2_epdc_defconfig
    4. mx6ull_14x14_ddr3_arm2_nand_defconfig
    5. mx6ull_14x14_ddr3_arm2_qspi1_defconfig
    6. mx6ull_14x14_ddr3_arm2_spinor_defconfig
    7. mx6ull_14x14_ddr3_arm2_tsc_defconfig
    8. mx6ull_alientek_emmc_defconfig
    9. mx6ull_alientek_nand_defconfig

    因为正点原子教学视频中与本人现在的 uboot文件存在偏差(可能因为现在正点原子阿尔法开发板多了新的)。所以,我这里猜测,我这里所用的 nand-flash版的阿尔法开发板可能是 mx6ull_alientek_nand_defconfig 配置文件。
    输入如下命令即可配置 uboot
    make mx6ull_14x14_ddr512_emmc_defconfig
    注意:在编译 uboot 之前一定要使用 defconfig 来配置 uboot
    之前在编译 uboot时,就配置了 uboot。这里就使用到了 /configs 目录下的胖配置文件 mx6ull_alientek_nand_defconfig。配置命令如下:
    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_alientek_nand_defconfig

    三.  总结:

    我们移植uboot的时候重点要关注。两个方面:

    1. /board/freescale/目录下文件

    2. /configs目录下配置文件,主要是_defconfig

    下一篇继续说明 uboot的主要的一些文件作用。

  • 相关阅读:
    23 种设计模式的通俗解释,虽然有点污,但是很正点
    数组反转(LeetCode)
    C++日期类的基本实现
    Quartz定时任务
    软件工程概论
    前端将图片储存table表格中,页面回显
    windows11家庭版安装hyperv-v
    对象存储
    一文带你学会 consul 基本使用和 Docker 部署
    Zookeeper高级_选举机制
  • 原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/132721436