STM32工程师 LINUX学习笔记6 U-boot配置

本文详细介绍了如何在u-boot中移植和定制MX6ULL-ALIENTEK_EMMC开发板,涉及重点文件如默认配置文件、板级头文件、配置文件、Kconfig文件的修改以及makefile和imximage.cfg的调整,以实现对u-boot的个性化配置和编译。
摘要由CSDN通过智能技术生成

u-boot移植重点 3个文件

默认配置文件:板名_defconfig 根目录/configs目录下
板级文件: 板名.c board/fresscale/板名 文件夹下
板名.h include/configs/文件夹下

u-boot 板级文件

uboot 中每个板子都有一个对应的文件夹来存放板级文件,比如开发板上外设驱动文件等等。NXP 的 I.MX 系列芯片的所有板级文件夹都存放在 board/freescale 目录下,在这个目录下有个名为 mx6ullevk 的文件夹,这个文件夹就是 NXP 官方 I.MX6ULL EVK 开发板的板级文件夹。复制 mx6ullevk,将其重命名为 mx6ull_alientek_emmc也就是我们自己的产品名称的文件

添加开发板对应的头文件
在 目 录 include/configs 下 添 加 I.MX6ULL-ALPHA 开 发 板 对 应 的 头 文 件 , 复 制
include/configs/mx6ullevk.h,并重命名为 mx6ull_alientek_emmc.h
拷贝完成以后将:
#ifndef __MX6ULLEVK_CONFIG_H
#define __MX6ULLEVK_CONFIG_H
改为:
#ifndef __MX6ULL_ALIENTEK_EMMC_CONFIG_H
#define __MX6ULL_ALIENTEK_EMMC_CONFIG_H

mx6ull_alientek_emmc.h 文件的主要功能就是配置或者裁剪 uboot。 如配置u-boot默认串口打印使用uart的第几个口,网口默认使用哪个网口等,也有一些u-boot环境变量的的默认配置。

u-boot 配置文件

源码configs目录下就是各种配置文件。 先在 configs 目录下创建默认配置文件,将官方配置文件复制过来自己进行编辑。
官方配置文件 mx6ul_14x14_evk_emmc_defconfig内如如下:

CONFIG_ARM=y
CONFIG_ARCH_MX6=y
CONFIG_TARGET_MX6UL_14X14_EVK=y
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ul_14x14_evk/imximage.cfg,MX6UL_EVK_EMMC_REWORK"
CONFIG_CMD_GPIO=y
CONFIG_CMD_DHCP=y
CONFIG_CMD_PING=y

自己适配板子的文件mx6ull_alientek_emmc_defconfig内容如下

1 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ull_alientek_
emmc/imximage.cfg,MX6ULL_EVK_EMMC_REWORK"
2 CONFIG_ARM=y
3 CONFIG_ARCH_MX6=y
4 CONFIG_TARGET_MX6ULL_ALIENTEK_EMMC=y
5 CONFIG_CMD_GPIO=y

可以看出,mx6ull_alientek_emmc_defconfig 基本和 mx6ull_14x14_evk_emmc_defconfig 中
的内容一样,只是第 1 行和第 4 行做了修改。

u-boot 编译设置

修改板级文件夹下 Kconfig 文件

修改后的内容如下:
示例代码 33.2.3.2 Kconfig 文件

1 if TARGET_MX6ULL_ALIENTEK_EMMC
2 
3 config SYS_BOARD
4 default "mx6ull_alientek_emmc"
5 
6 config SYS_VENDOR
7 default "freescale"
8 
9 config SYS_SOC
10 default "mx6"
11
12 config SYS_CONFIG_NAME
13 default "mx6ull_alientek_emmc"
14
15 endif
这里13行设置了  config name

Kconfig文件在U-Boot中的主要功能:

  • 配置界面生成:当执行如make menuconfig、make xconfig或make nconfig等命令时,U-Boot的配置工具会读取Kconfig文件来生成配置界面。这些界面允许开发人员为特定的开发板选择和配置各种功能和选项。
  • 配置选项定义:Kconfig文件定义了可用于配置U-Boot的各种选项。这些选项可能包括选择何种CPU架构、内存配置、设备驱动支持等。每个选项通常都有一个描述,解释该选项的作用和可能的取值。
  • 依赖关系管理:Kconfig文件还描述了不同配置选项之间的依赖关系。例如,某些选项可能只有在其他特定选项被启用时才是可用的。这有助于确保配置的一致性和正确性。
  • 生成配置文件:一旦开发人员通过配置界面选择了所需的选项,配置工具就会根据Kconfig文件中的定义生成一个.config文件。这个文件记录了所有已配置的选项和它们的值,用于指导U-Boot的编译过程。
  • 编译控制:在编译U-Boot时,.config文件会被引用,以控制编译器和链接器的行为,从而生成与所选配置相匹配的目标文件和可执行文件。
    总的来说,Kconfig文件是U-Boot配置系统的重要组成部分,它允许开发人员根据特定开发板的需求定制U-Boot的行为。

修改板级文件夹下 makefile 文件

  • 将 mx6ull_alientek_emmc 下的 Makefile 文件内容改为如下所示:
    obj-y :=mx6ull_alientek_emmc.o
    这样才会编译 mx6ull_alientek_emmc.c 这个文件。

修改板级文件夹下 imximage.cfg 文件

将 imximage.cfg 中的下面一句:
PLUGIN board/freescale/mx6ullevk/plugin.bin 0x00907000
改为:
PLUGIN board/freescale/mx6ull_alientek_emmc /plugin.bin 0x00907000
imximage.cfg 文件通常与 Freescale/NXP 的 i.MX 家族处理器有关。这个文件不直接是 U-Boot 源代码树中的一部分,但它可能与 U-Boot 工具链(如 mkimage)一起使用,用于创建特定于 i.MX 平台的镜像文件。

mkimage 工具是一个常用于创建引导加载程序镜像的工具,特别是针对各种 ARM 架构,包括 i.MX。mkimage 工具使用配置文件(如 imximage.cfg)来定义镜像的特定格式和属性。

imximage.cfg 文件通常包含以下类型的信息:

  • 镜像类型:定义镜像的类型,例如是否是 U-Boot 镜像、Linux 内核镜像、设备树(DTB)等。
  • 目标架构:指定目标硬件的架构,如 ARM、MIPS 等。对于 i.MX,这通常是 ARM。
  • 操作系统:指定操作系统类型,尽管这对于 U-Boot 镜像本身可能并不重要,但对于其他类型的镜像(如 Linux 内核)可能是必要的。
    压缩方法:如果镜像被压缩,这里指定压缩方法(如 gzip、lzma、lzo 等)。
  • 加载地址:指定镜像应被加载到内存中的哪个地址。这通常是特定于目标硬件的。
  • 入口点:指定镜像的入口点,即当镜像被加载到内存中时,处理器应开始执行的地址。
  • 其他选项:可能包括其他与镜像创建相关的配置选项。
    当使用 mkimage 工具创建镜像时,可以通过 -c 选项指定配置文件(如 imximage.cfg)。这允许开发人员为不同的目标硬件和用途创建定制的镜像格式。
  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值