U-Boot(“通用引导加载程序”,通常简称为U-Boot)是一种开源的主引导加载程序,用于嵌入式设备中打包引导设备操作系统内核的指令。它可用于多种计算机架构,包括68k、ARM、Blackfin、MicroBlaze、MIPS、Nios、SuperH、PPC、RISC-V和x86。

联发科从2018年开始将MT7621移植到主线U-Boot。从这个版本开始,U-Boot框架将不会被触摸。所有添加的组件(架构、目标、命令、驱动程序)都遵循U-Boot标准。本次移植使用2018.09版本,PC使用ubuntu18.04.

准备工具链

通常,主线U-Boot可以与版本高于或等于4.8的所有gcc一起编译。以下版本的gcc已经过测试:

gcc-4.8+        gcc-5.x        gcc-6.x        gcc-7.x        gcc-8.1

如果你使用的是OpenWrt,则可以直接使用OpenWrt的工具链。否则,您可以使用buildroot构建工具链。建议使用gcc-5.x或更高版本。本次移植中kernel需要从openwrt中提出做独立编译使用,因此uboot可以和openwrt使用同一个编译器。

交叉编译工具链在openwrt中的路径:

路径不是唯一的。它基于您正在使用的OpenWrt版本。您应该查看源代码以获得实际路径。

U-Boot configuration

将uboot和工具链放置在额外创建的单独目录,方便源码打包和使用。通常我们需要在编译环境中指定编译器路径,方便使用。但是对于经常使用多个不同版本编译器的电脑,直接在环境变量中定义反而使用繁琐,因此我们先构建一个编译框架。该框架包含:不同board的defconfig文件目录,Makefile需要使用到的子Makefile,最终生成的Image的存放目录,脚本目录,uboot源码目录,menuconfig后生成的.config备份目录,使用到dts的源码还可以增加一个存放不同board的dts目录,一个Makefile文件。根据使用场景可以再增加其他目录。此时我们就可以通过顶层Makefile快速生成所需目标。此处就不放出框架源码了,可自由发挥。

先简单的使用脚本编译测试编译情况:

新建build.sh脚本,指定架构和编译器路径,然后make配置文件,最后编译,运行一次之后就可以手动随时编译或配置了,脚本主要是在当前终端指定一次编译器路径。

defconfig

进入源码路径下的configs目录下,可以找到如下四个MT7621的默认配置文件

要使用MT7621 RFB 802.11ax板从NAND启动的默认配置(启用NMBM):make mt7621_nand_ax_rfb_defconfig
        要使用MT7621 RFB板从NAND启动的默认配置(启用NMBM):make mt7621_nand_rfb_defconfig
        要使用MT7621 RFB 802.11ax板从SPI-NOR引导的默认配置,请执行以下操作:make mt7621_ax_rfb_defconfig
        要使用默认配置从SPI-NOR引导MT7621 RFB板:make mt7621_rfb_defconfig

IEEE 802.11.ax即第六代无线网络技术,是Wi-Fi标准的名称。我们本次移植的目标board并没有wifi,而且从spi flash启动,因此选择默认配置mt7621_rfb_defconfig,将该配置写入到build.sh脚本中,赋予脚本运行权限(chmod 777 build.sh),然后执行脚本(./build.sh)
在弹出menuconfig配置页面后,根据需要自行配置,然后保存退出,进行编译。

编译成功后,可以看到生成了一些镜像,其中u-boot-mt7621.bin:spl/u-boot-spl-mtk-pad.bin + u-boot.img,该镜像可直接烧录

同时编译过程中可以看到 mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined,在我们的脚本中加入如下行即可解决警告。不解决也不影响。

自定义配置

在U-Boot的根源目录下,执行:

    make menuconfig

您将获得一个菜单,列出U-Boot的所有可配置功能。(以下菜单的选项及位置可能与你正在使用的版本不完全一样,这是完全可能的,所以配置项的分析仅供参考通用项)

1.架构选择

o Architecture select (MIPS architecture)  --->

MT7621是MIPS架构,默认配置不用动。

2.MT7621 平台

顶层路径

o MIPS architecture  --->  

一级路径

o Target select (Support MediaTek MT7621)  ---> 下有多个平台,默认选择了MT7621平台

o MediaTek MT7621 platform  --->  当前平台下的一些配置

o Endianness selection (Little endian)  --->  大小端模式选择

o CPU selection (MIPS32 Release 2)  --->  CPU的版本,默认选择Release 2

o General setup  ---> 通用的一些设置

o OS boot interface  --->  和内核系统启动相关设置

二级路径

o MIPS architecture  --->

o MediaTek MT7621 platform  --->  下则是当前平台下的一些设置了,详情如下:

o Board select (MT7621 reference board)  ---> 下是选择不同的board,用户新增的board可以放在该路径下

o (0x10000) SPL alignment size        配置SPL的对齐大小

0x1000 for SPI NOR flash with 4KiB sector support
        0x10000 for SPI NOR flash with 64KiB erase block
        0x20000 for NAND flash with 128KiB block size

o (0x30000) Maximum U-Boot size        配置uboot最大大小

SPL在启动后会在该范围内搜索镜像,所以该项需要配置正确,并且要与分区表对应。

o Do optional memtest after DRAM initialization

在DRAM初始化后启用提示,允许用户启动完整内存测试,一般该项用于测试阶段。

o Force to use single MIPS core / Force to use single VPE per core

强制使用单核/VPE,即使芯片具有双核。

o Clear watchdog reset indication bit

启动后,u-boot将显示导致上次重置的原因(冷启动/软重置/看门狗重置)。这是通过硬件寄存器位完成的。应清除该位,以确保在下次重置时指示正确的原因。但是,如果您想保留此位以便内核可以使用它,请不要启用此选项。

o Use legacy DDR initialization

        o CPU & DDR configuration  --->

配置CPU频率和DRAM频率/大小,最后一项是在DRAM控制器初始化期间启用冗余输出

                o CPU Frequency

对于20/40MHz晶体,频率是20MHz的倍数。

当 Use legacy DDR initialization 未被选择时

o Use user-prefered DRAM initialization parameters first:

默认情况下,U-Boot将自动确定DRAM大小,并使用默认DDR AC定时设置。您可以让U-Boot使用特定的DDR AC定时设置初始化DRAM。如果初始化后的实际DRAM大小不等于属于特定DDR AC定时设置的大小,U-Boot将使用正确的DDR AC定时设置重新初始化DRAM。强烈建议手动为板选择正确的DRAM大小。

Reset the chip if failed to initialize DRAM

如果U-Boot未能初始化DDR控制器和DDR芯片,则重置板并重试

Enable verbose output during DRAMC initialization

输出初始化log,这仅用于调试目的。

o (0x50000) Default kernel offset in the NOR

kernel在存储器中的偏移位置,需要与自己的分区信息相对应

o (3) Delay for mtkautoboot command (seconds)

使用mtkautoboot命令时的延时时间,本次移植启动kernel我们不使用该命令。

o Enable dual image support

使能双镜像支持,若使用该选项,则需要增加备份分区

双镜像支持是用于镜像/固件备份和恢复的机制。
        此功能需要两个MTD分区:主固件分区,用于存储要启动的固件。以及备份固件分区,它只存储备份固件。
        当u-boot尝试引导固件时,它将首先检查两个分区中固件的完整性。
                如果两个固件都正确,u-boot将引导主分区中的固件。
                如果其中一个固件损坏,将由另一个分区的固件替换。
                如果两个固件都损坏,u-boot将不会更新固件。
        当FIT映像与最新的MTK SDK一起使用时,支持内核和rootfs的完整性检查(更新于4.2.1.0)

为了使双映像可用,mtdparts应该至少包含以下带有mtd分区的部分menuconfig中指定的名称:

    32768k(firmware),32768k(firmware_backup)

 Update backup image after upgrading main image
                如果希望备份映像与主映像保持最新,请选择此选项。否则备份映像将保持不变。
                未选中时,第一次u-boot执行双映像检查时,如果备份映像不存在,将从主映像更新

二级路径

o MIPS architecture  --->

o General setup  ---> 通用的一些设置

o Build U-Boot image with exception vectors

为uboot镜像添加异常向量,在使用SPL启动时,可禁用该选项,将减少镜像大小

MIPS CM GCR Base Address

CM GCR的基地址,默认值为 0x1fbf8000,根据前文中的内存映射可知该地址即为CM GCR首地址,GCR为全局配置寄存器

二级路径

o MIPS architecture  --->

o OS boot interface  --->  和内核系统启动相关设置

oHand over legacy command line to Linux kernel

将遗留命令行移交给Linux内核,bootargs信息

o Hand over legacy environment to Linux kernel

将遗留环境移交给Linux内核,内存大小、initrd等信息

o Hand over a flattened device tree to Linux kernel

将设备树移交给Linux内核,传递设备树信息

3.General setup

顶层路径

o General setup  --->

一级路径

o Local version - append to U-Boot release

在U-Boot版本的末尾附加一个额外的字符串。这将显示在启动日志中。在此设置的字符串将按顺序附加在对象的文件名匹配localversion*的任何文件的内容之后。您的总字符串可以最多为64个字符。

版本控制还存在一个配置 CONFIG_IDENT_STRING 该配置可在uboot第一行版本信息打印时跟随在最后,该宏通常用于版本信息区分。

o Automatically append version information to the version string

自动将版本信息附加到版本字符串

o Optimize for size

优化大小。启用此选项将向gcc传递“-Os”而不是“-O2”,产生较小的U-Boot镜像。默认情况下,U-Boot启用此选项。

o Select defaults suitable for booting general purpose Linux distributions

选择适用于引导通用Linux发行版的默认值。选择此选项可启用各种适合的选项和命令用于构建用于引导通用Linux发行版的u-boot。如下图,该项默认选择部分命令和其他功能,一般情况下用户不使用该项。

o Add arch, board, vendor and soc variables to default environment

将arch、board、vendor和soc变量添加到默认环境。定义此项以便将描述U-Boot构建配置的变量添加到默认环境中。这些将被命名为arch、cpu、board、vendor和soc。启用此选项将导致定义以下内容:

- CONFIG_SYS_ARCH
         - CONFIG_SYS_CPU
         - CONFIG_SYS_BOARD
         - CONFIG_SYS_VENDOR
          - CONFIG_SYS_S

o Number of DRAM banks

DRAM bank 数量。配置DDR颗粒的片数。

oEnable kernel command line setup

启用内核命令行设置。启用在“bootm_low”和“bootm_low”+BOOTMAPSZ之间的空间中分配和保存内核命令行。

oEnable kernel board information setup

启用board内核信息设置。允许在“bootm_low”和“bootm_low+BOOTMAPSZ”之间的空间中分配和保存bd_info的内核副本

oEnable malloc() pool before relocation

在重新定位之前启用malloc池。在重新定位之前,许多平台上的内存非常有限。不过,如果需要,我们可以提供一个小型malloc()池。驱动程序模型尤其需要此操作,以便它可以分配初始串行设备和所需的任何其他设备。

o(0x400) Size of malloc() pool before relocation

重新定位前malloc池的大小。

o(0x100000) Size of malloc() pool in SPL before relocation

重新定位之前SPL中malloc池的大小。

o(0x400) Size of malloc() pool in TPL before relocation

重新定位前TPL中malloc池的大小。

oConfigure standard U-Boot features (expert users)

配置标准U-Boot功能(专家用户)。此选项允许禁用或调整某些基本U-Boot选项和设置。这适用于可以容忍“非标准”U-Boot的专用环境。只有当你真的知道自己在做什么时,才使用这个。

o64bit physical address support

64位物理地址支持。这里选 y 以支持64位物理内存地址。这不仅可用于64位SoC,还可用于32位SoC上的大型物理地址扩展。

4.Boot images

顶层路径

Boot images  --->

一级路径

o Enable support for Android Boot Images

启用对Android启动映像的支持。这将支持引导使用Android图像格式标头的图像。

o Support Flattened Image Tree

支持FIT镜像。此选项允许您启动新的uImage结构“FIT”。FIT在形式上是FDT,它可以在单个blob中包含各种类型的图像(内核、FDT blob、ramdisk等)。要启动这个新的uImage结构,请将blob的地址传递给“bootm”命令。FIT非常灵活,支持压缩、多个映像、多个配置、通过哈希验证以及验证引导(使用RSA进行安全引导)。

以下7个选项是在使用 Support Flattened Image Tree 后出现的:

o Support SHA256 checksum of FIT image contents

支持FIT镜像内容的SHA256校验和。启用此选项可支持FIT图像内容的SHA256校验和。SHA256校验和是一个256位(32字节)哈希值,用于检查图像内容是否已损坏。SHA256建议用于安全应用程序,因为(截至2016年)没有已知可行的攻击可能会与不同的输入数据产生“冲突”。使用此选项可获得最高的安全性。请注意,仅支持SHA256变体:U-Boot当前不支持SHA512和其他变体。

oEnable signature verification of FIT uImages

启用FIT uImages的签名验证。此选项启用FIT uImages的签名验证,使用RSA签名和验证的哈希。如果定义了CONFIG_SHA_PROG_HW_ACCEL,即使用硬件支持渐进哈希,则RSA库将使用它。参见文档/uImage.FIT/签名。txt获取更多详细信息。警告:当依赖具有所需签名的签名FIT镜像时,默认情况下禁用旧镜像格式,因此无法加载未签名的镜像。在这种情况下,如果板需要传统镜像格式支持,请使用CONFIG_IMAGE_FORMAT_LEGACY启用它。

o Show verbose messages when FIT images fail

FIT映像失败时显示详细消息。通常,系统将具有有效的FIT映像,因此调试消息是对代码空间的浪费。如果正在调试映像,则可以启用此选项以获取有关失败的详细信息。

o Select the best match for the kernel device tree

为内核设备树选择最佳匹配项。如果未显式选择任何配置,则默认为fdt的兼容性字段与U-Boot本身的兼容性字段最匹配的配置。如果匹配U-Boot的fdt根节点的最特定兼容性条目,则该匹配被视为“最佳”。忽略配置fdt中的条目顺序。

o Support Flattened Image Tree within SPL

支持SPL中的FIT。该选项应该是将dtb加入到SPL镜像中,一般不会用。

o Enable SPL loading U-Boot as a FIT

启用SPL加载U-Boot作为FIT。通常在SPL框架中,作为构建的一部分生成遗留映像。其中包含U-Boot以及应加载位置的信息。相反,此选项可以生成FIT,从而提供更大的灵活性。特别是,它可以处理从多个设备树中的选择,并将正确的设备传递给U-Boot。

o Enable SPL loading U-Boot as a FIT

此选项与上一个选项相同,但对应的配置宏不同。

o Enable support for the legacy image format

启用对旧图像格式的支持。此选项启用传统图像格式。默认情况下,它是为向后兼容而启用的,除非将FIT_SIGNATURE设置为禁用,以便无法加载未签名的图像。如果在这种情况下板需要传统图像格式支持,请在此处启用它。

o Set up board-specific details in device tree before boot

启动前在设备树中设置特定于板的详细信息。这会导致U-Boot在引导到操作系统之前调用ft_board_setup()。此功能可以在设备树中设置各种特定于板的信息,供操作系统使用。然后将设备树传递给操作系统。

o Set up system-specific details in device tree before boot

启动前在设备树中设置系统特定的详细信息。这会导致U-Boot在引导到操作系统之前调用ft_system_setup()。此功能可以在设备树中设置各种系统特定信息,供操作系统使用。然后将设备树传递给操作系统。

o Update the device-tree stdout alias from U-Boot

从U-Boot更新设备树stdout别名。这使用别名节点中U-Boot的串行别名来更新传递给OS的设备树。所选节点中的“linux,stdout路径”属性设置为指向正确的串行节点。此选项当前引用CONFIG_CONS_INDEX,当与设备树一起使用时,这是不正确的,因为此选项不存在/不应使用。

o ()  Extra Options (DEPRECATED)

额外选项(已弃用)。

o (0x80200000) Text Base

U-Boot最初运行的内存地址。

o Enable arch_fixup_memory_banks() call

启用arch_fixup_memory_banks()调用。在OS引导之前启用FDT内存映射同步。此功能可用于引导具有不同内存设置的OS,其中部分内存位置应用于不同目的。

5.API

顶层路径

API  --->

一级路径

o Enable U-Boot API

此选项启用U-Boot API。有关更多信息,请参见api/README。

6.Boot timing

顶层路径

Boot timing  --->

一级路径

o Boot timing and reporting

启动时间和报告。启动时启用启动时间记录。要使用它,请使用bootstage.h中合适的bootstage_ID插入对bootstage_mark()的调用。每个ID只记录一个条目。您可以使用bootstage_mark_name()为条目命名。您还可以在启动前使用bootstage_start()记录特定阶段的运行时间,完成后使用bootstage_accum()记录。Bootstage将累加所有累积时间并报告它。通常,ID在Bootstage.h中定义,但通过传递Bootstage_ID_ALLOC作为ID,可以使用少量额外的“用户”ID。调用show_boot_progress()也会导致日志条目,但这些条目没有名称。

以下4个选项是在使用 Boot timing and reporting 后出现的:

o Boot timing and reported in SPL

启动时间并以SPL报告。启用SPL中的引导时间记录。要使U-Boot正确可见,请同时启用BOOTSTAGE_STASH。这将在SPL完成时隐藏计时信息,并在U-Boot正确启动时加载计时信息。

o Display a detailed boot timing report before booting the OS

在引导操作系统之前显示详细的引导定时报告。在OS启动之前启用启动时间报告的输出。这显示U-Boot在引导过程的每个阶段花费了多长时间。报告大致如下:

计时器摘要(以微秒为单位):

o Store boot timing information in the OS device tree

在OS设备树中存储引导定时信息。将引导阶段信息保存在FDT中。将创建根“bootstage”节点,并将每个bootstage id作为子节点。每个子级都有一个“name”属性,“mark”包含标记时间(以微秒为单位),或“accum”包含该引导阶段id的累积时间(以毫秒为单位)。例如:

Linux内核中的代码可以在/proc/devicetree中找到。

o Stash the boot timing information in memory before booting OS

在引导操作系统之前,将引导定时信息保存在内存中。

o (30) Number of boot stage records to store

要存储的引导阶段记录数。这是引导阶段记录列表的大小,是可以记录的最大引导阶段记录数。

o (5) Number of boot stage records to store for SPL

要为SPL存储的引导阶段记录数。

o (0) Address to stash boot timing information

存储启动时间信息的地址。

o (0x1000) Size of boot timing stash region

启动定时存储区域的大小

7.Boot media

顶层路径

Boot media  --->

一级路径

o Support for booting from NAND flash

支持从NAND闪存启动。启用此选项将使U-Boot二进制文件能够通过NAND闪存启动。这不是必须的,有些SoC需要,有些则不需要。

o Support for booting from ONENAND

支持从ONNAND启动。

o Support for booting from QSPI flash

支持从QSPI闪存启动。

o Support for booting from SATA

支持从SATA启动。

oSupport for booting from SD/EMMC

支持从SD/EMC启动。

o Support for booting from SPI flash

支持从SPI闪存启动。

8.delay before  booting

顶层路径

o (0) delay in seconds before automatically booting

自动运行bootcmd之前的延迟;
        设置为0可无延迟自动启动,但您可以通过按键输入停止。
        设置为-1以禁用自动启动。
        设置为-2以自动启动,无延迟且不检查中止
        如果该值大于等于0,则在启动bootmenu中的默认项之前,它还用于默认延迟。如果小于0,则使用默认值10s。
        有关详细信息,请参阅doc/README.autoboot。

9.Enable boot arguments

顶层路径

o Enable boot arguments

        使能bootargs参数,该参数会传递至kernel命令行。为bootm命令提供启动参数。启动参数在CONFIG_BOOTARGS选项中指定。启用此选项可以指定ONFIG_BOOTARGS字符串。如果禁用此选项,CONFIG_BOOTARGS将未定义,并且不会占用U-Boot映像中的任何空间。即使该项不使能,通过在uboot中定义bootargs环境变量仍能达到目的。

o ()Boot arguments(该项在Enable boot arguments使能后配置)

这可用于向bootm命令传递参数。CONFIG_BOOTARGS的值进入环境值“BOOTARGS”。注意,该值还将覆盖FDT blob中的“选定”节点。

10.Enable default bootcmd

顶层路径

o Enable a default value for bootcm

使能一个默认的bootcmd,bootcmd指示启动OS的方法。通常该命令和bootargs相同,即使配置项不使能,在uboot环境变量中自定义一个bootcmd仍能达到目的。为环境中的bootcmd项提供默认值。如果启用了自动启动,这将自动运行。启用此选项可以将CONFIG_BOOTCOMMAND指定为字符串。如果禁用此选项,CONFIG_BOOTCOMMAND将未定义,并且不会占用U-Boot映像中的任何空间。

o (mtkautoboot) bootcmd value(该项在Enable a default value for bootcm使能后配置)

        在使用默认bootcmd的时候,用户需要在此指定bootcmd的具体内容。这是将用作bootcmd的命令字符串,如果设置了UTOBOOT,将自动运行。

11.Console

顶层路径

Console  --->

一级路径

o Console recording

这提供了一种通过循环缓冲区记录控制台输出(并提供控制台输入)的方法。这对测试非常有用。即使控制台处于静默状态,也会记录控制台输出。要启用控制台录制,请从代码中调用console_record_reset_enable()。

当使能Console recording后,配置如下项:

o (0x400) Output buffer size

设置控制台输出缓冲区的大小。当填充完毕后,将不再记录数据,直到删除一些数据。缓冲区在malloc()区域就绪后立即分配。

o (0x100) Input buffer size

设置控制台输入缓冲区的大小。当它包含数据时,tstc()和getc()将优先于实际设备输入。缓冲区在malloc()区域就绪后立即分配。

o ()  Board specific string to be added to uboot version string

要添加到uboot版本字符串的板特定字符串。IDENT_STRING [=]。如果你对uboot源码熟悉,你将会知道,在/include/version.h文件中定义了如下宏,而我们在此处定义的字符串即为这个宏的末尾,在项目中,我们通常会使用该宏自定义版本信息。

o (4) loglevel

日志级别小于控制台日志级别的所有消息都将被编译。日志级别定义如下:

o Support a silent console

此选项允许控制台静默,这意味着控制台设备上不会出现任何输出。这是通过将环境变量“silent”设置为非空值来控制的。注意,这也会在启动Linux时使控制台静音。

设置控制台后,将检查变量,并设置GD_FLG_SILENT标志。稍后更改环境变量将更新标志。

当使能Support a silent console后,配置如下项:

o Only silence the U-Boot console

通常当U-Boot控制台静默时,Linux的控制台也会静默(假设主板引导到Linux)。该选项允许linux控制台正常运行,即使U-Boot被静默。

o Changes to the 'silent' environment variable update immediately

更改“静默”环境变量后,立即更新控制台静默标志。这允许使用“setenv”使控制台静默或取消静默。其效果是,对变量的任何更改都将影响GD_FLG_SILENT标志。

o Allow flags to take effect on relocation

在某些情况下,环境直到重新定位(例如NAND)才可用。此选项使“静默”环境变量的值在重新定位时生效。

o Buffer characters before the console is available

在控制台初始化(即串行UART初始化等)之前,所有控制台输出都会被默默丢弃。定义CONFIG_PRE_CONSOLE_BUFFER将导致U-Boot在控制台初始化到缓冲区之前缓冲任何控制台消息。缓冲区是一个循环缓冲区,因此如果它溢出,将丢弃先前的输出。请注意,SPL当前不支持此功能。能够与SPL共享控制台前缓冲区将非常有用。

当使能Buffer characters before the console is available后,配置如下项:

o  (4096) Sets the size of the pre-console buffer

控制台前缓冲区的大小影响在控制台输出溢出并开始丢弃之前可以保存多少控制台输出。通常情况下,除非启用了调试,否则在这个早期阶段很少有输出,所以允许有大约10行的文本。如果您正在使用视频控制台并希望在控制台上看到完整的引导输出,这是一个有用的功能。如果没有此选项,将仅显示重新定位后的输出。

o ()   Address of the pre-console buffer

这将设置控制台前缓冲区的起始地址。这必须在可用内存中,并且在重新定位之前以及可能在设置DRAM之前进行访问。因此,请仔细选择地址。我们应该考虑删除此选项,改为在board_init_f_init_reserve()中分配内存。

o Enable console multiplexing

这允许多个设备用于每个控制台“文件”。例如,可以将stdout设置为转到串行和视频。类似地,可以将stdin设置为来自串行和键盘。可以从任一来源提供输入。控制台多路复用为U-Boot增加了少量大小。对环境变量stdout、stdin和stderr的更改将立即生效。

o Select console devices from the environment

这允许在启动时设置多个输入/输出设备。例如,如果stdout设置为“串行,视频”,则输出将在引导时发送到串行和视频设备。可以在启动后更新环境变量以更改输入/输出设备。

o Allow board control over console overwriting

如果启用此选项,并且板特定函数overwrite_console()返回1,则stdin、stderr和stdout将切换到串行端口,否则将使用环境中的设置。如果未启用,控制台将不会切换到串行。

o Update environment variables during console init

控制台环境变量(stdout、stdin、stderr)可用于在启动时确定正确的控制台设备。此选项在控制台启动时(重新定位后)将控制台设备写入这些变量。这将导致环境更新以匹配实际选择的控制台设备。

o Don't display the console devices on boot

通常,U-Boot在设置重新定位后控制台时,在启动时显示stdout、stdin和stderr的当前设置。启用此选项以抑制此输出。它可以通过从板代码调用stdio_print_current_devices()获得。

o Allow deregistering stdio devices

通常不需要注销stdio设备,因为它们从未停用。但如果使用了可以移除的stdio设备(例如USB键盘),则可以启用此选项以确保正确处理。

12.Logging

顶层路径

Logging  --->

一级路径

o Enable logging support

这支持记录状态和调试消息。这些可以显示在控制台上,记录在内存缓冲区中,或者在不需要时丢弃。日志记录支持各种类别和严重级别

当使能Enable logging support后,配置如下项:

o (5) Maximum log level to record

这将选择要记录的最大日志级别。高于此值的任何值都将被忽略。如果可能,将在生成时丢弃低于此级别的日志语句。等级:

o Allow log output to the console

启用将日志记录写入控制台的日志驱动程序。通常,控制台是串行端口或LCD显示器。只显示日志消息-其他详细信息,如级别、类别、文件和行号被省略。

 o Provide a test for logging

这将启用“日志测试”命令来测试日志记录。它通常从pytest中执行,并以各种不同的方式输出日志信息,以测试日志系统是否能够使用varoius设置正确工作。

 o Log all functions which return an error

当U-Boot中返回错误时,有时很难找出根本原因。例如,由于SPI控制器中的问题或闪存部分未返回预期信息,从SPI闪存读取可能失败。此选项更改log_ret()以记录它看到的任何错误。禁用此选项后,log_ret()是nop。您可以将log_ret()添加到返回错误代码的所有函数。

o Enable logging support in SPL

这支持记录状态和调试消息。这些可以显示在控制台上,记录在内存缓冲区中,或者在不需要时丢弃。日志记录支持各种类别和严重级别。

当使能Enable logging support后,配置如下项:

o (3) Maximum log level to record in SPL

这将选择要记录的最大日志级别。高于此值的任何值都将被忽略。如果可能,将在生成时丢弃低于此级别的日志语句。

13.Enable raw initrd images

顶层路径

Enable raw initrd images

注意,定义SUPPORT_RAW_INITRD允许用户向内核提供原始INITRD映像。语法略有不同,initrd的地址必须按其大小进行扩充,格式如下:“<initrd address>:<initrd size>”。

14.Default fdt file

顶层路径

()  Default fdt file

此选项用于将默认fdt文件设置为引导操作系统。

15.Execute Misc Init

顶层路径

Execute Misc Init

启用此选项将调用“misc_init_r”函数

16.add U-Boot environment vers

顶层路径

add U-Boot environment variable vers

        如果定义了此变量,U-Boot将创建一个名为“ver”的环境变量,显示“version”命令打印的U-Boot版本。对该变量的任何更改将在下次重置时还原。

17.Display information

顶层路径

Display information about the CPU during start up

        启动期间显示有关CPU的信息。显示U-Boot启动时U-Boot正在运行的CPU的信息。为此调用函数print_cpuinfo()。

Display information about the board during early start up

在早期启动期间显示有关电路板的信息。显示U-Boot启动时U-Boot正在运行的板的信息。调用board函数checkboard()来执行此操作。

Display information about the board during late start up

在延迟启动期间显示有关电路板的信息

使能信息输出后在uboot启动时将多输出如下信息:

18.Start-up hooks

顶层路径

Start-up hooks  --->

一级路径

o -*- Call arch-specific init soon after relocation

重新定位后立即调用特定于arch的init。使用此选项,U-Boot将在重新定位后立即调用arch_early_init_r()。此时驱动程序模型正在运行,缓存已打开。请注意,如果已启用,则首先调用board_early_init_r()。这可用于设置特定于体系结构的设备。

o Call arch-specific init after relocation, when console is ready

重新定位后,当控制台就绪时,调用特定于arch的init。使用此选项,U-Boot将在重新定位后调用arch_misc_init(),以允许执行其他相关的初始化。该功能应由板定义,并将在重新定位后设置控制台后调用。

o Call board-specific init before relocation

重新定位前调用板特定的初始化。一些板需要在启动后尽快执行初始化。使用此选项,U-Boot在重新定位前的init序列中驱动程序模型就绪后调用board_early_init_f()。请注意,尚未设置正常的串行控制台,但如果启用了调试UART,它将可用。

o Call board-specific init after relocation

重新定位后调用板特定的初始化。一些电路板需要在重新定位后直接执行初始化。使用此选项,U-Boot在重新定位后的init序列中调用board_early_init_r()。

o Call board-specific as last setup step

调用板特定于最后一个设置步骤。一些板需要在控制权传递给命令行解释器之前立即执行初始化(例如,取决于初始化序列的后期阶段的初始化)。使用此选项,U-Boot在启动命令行解释器之前调用last_stage_init()。

19.Security support

Empty

20.Update support

顶层路径

Update support  --->

一级路径

o Auto-update using fitImage via TFTP

通过TFTP使用FIT镜像自动更新。此选项允许使用通过TFTP引导发送的fitImage中的数据执行NOR更新。

o (0)   The number of connection retries during auto-update

自动更新期间的连接重试次数。

o (100) Delay in mSec to wait for the TFTP server during auto-update

自动更新期间等待TFTP服务器的延迟(毫秒)。

21.SPL / TPL

顶层路径

SPL / TPL  --->

在分析配置项前,先看下SPL和TPL是什么?

TPL是比U-Boot更早阶段的Loader,TPL运行在SRAM中,其作用是代替ddr bin负责完成DRAM的初始化工作。TPL 相当于 ddr bin,SPL 相当于 miniloader。

一级路径

o -*- Enable SPL

如果您想构建SPL以及普通图像,请设置Y。

o Support SPL based upon the common SPL framework

基于通用SPL框架支持SPL。在common/SPL/下启用SPL框架。该框架支持MMC、NAND和YMODEM以及U-Boot和Linux内核的其他加载方法。如果不确定,请设置Y。

o (arch/$(ARCH)/cpu/u-boot-spl.lds) Linker script for the SPL stage

SPL阶段的链接器脚本:arch/$(ARCH)/cpu/u-boot-spl.lds。SPL阶段通常需要与常规U-Boot阶段不同的链接器脚本(因为它从不同的内存区域运行)。将此设置为要用于SPL的链接器脚本的路径。

o Call board-specific initialization in SPL

调用SPL中特定于板的初始化。如果启用此选项,U-Boot将从board_init_r()调用函数spl_board_init()。该功能应由board提供。

o Support returning to the BOOTROM

支持返回BOOTROM。一些平台(例如Rockchip RK3368)在其ROM中提供支持,以在从SPL阶段执行基本设置之后加载下一个引导阶段。启用此选项,通过BOOT_DEVICE_BOOTROM返回BOOTROM(如果未针对给定板实现,则返回引导设备列表中的下一个引导设备)

o Support SPL loading and booting of RAW images

支持SPL加载和启动RAW图像。当此选项为y时,SPL将支持加载和引导RAW映像。如果未设置此选项,SPL会转到其他可用的引导介质以找到合适的映像。

o Support SPL loading and booting of Legacy images

支持SPL加载和启动旧映像。当此选项为y时,SPL将支持加载和引导Legacy映像。如果未设置此选项,SPL会转到其他可用的引导介质以查找合适的映像。

o Only use malloc_simple functions in the SPL

        仅在SPL中使用malloc_simple函数

o Only use malloc_simple functions in the TPL

仅在TPL中使用malloc_simple函数

o Enable SDRAM location for SPL stack

为SPL堆栈启用SDRAM位置

o BSS section is in a different memory region from text

BSS部分位于与文本不同的内存区域。一些平台在SPL中需要一个大的BSS区域,因为已经设置了RAM,所以可以提供这个区域。在这种情况下,BSS可以移动到RAM。然后应启用此选项,以便使用正确的设备树位置。通常,我们将设备树放在BSS的末尾,但启用此选项后,它将位于_image_binary_end。

o Disable output of the SPL banner 'U-Boot SPL ...'

禁用SPL横幅“U-Boot SPL”的输出。使能后如下打印会消失,略微减少几ms启动时间

o Display a board-specific message in SPL

在SPL中显示板特定消息。如果启用此选项,U-Boot将在显示spl控制台横幅(“U-Boot spl…”)后立即调用函数spl_display_print()。该功能应board目录提供。

o MMC raw mode: by sector

MMC原始模式:按扇区。在原始模式下,使用扇区号指定MMC/SD上的U-Boot位置。

o MMC Raw mode: by partition

MMC原始模式:按分区。在原始模式下使用MMC/SD时,使用分区加载U-Boot。

o Support CPU drivers

支持CPU驱动程序。启用此选项以支持SPL中的CPU驱动程序。这些驱动程序可以设置CPU并提供有关它们的信息,例如型号和名称。这在SPL中很有用,因为更早设置CPU可以提高引导性能。启用此选项以在drivers/cpu中构建驱动程序,作为SPL构建的一部分。

o Support crypto drivers

支持加密驱动程序。在SPL中启用加密驱动程序。这些驱动程序可用于加速安全应用程序中的安全引导处理。启用此选项以在驱动程序/加密中构建驱动程序,作为SPL构建的一部分。

o Support hashing drivers

支持哈希驱动程序。在SPL中启用哈希驱动程序。这些驱动程序可用于加速安全应用程序中的安全引导处理。启用此选项可作为SPL构建的一部分,为哈希加速构建系统特定的驱动程序。

o Support DMA drivers

支持DMA驱动程序。在SPL中启用DMA(直接内存访问)驱动程序。这些驱动器可用于处理存储器到外围设备的数据传输,而无需CPU移动数据。启用此选项以在drivers/dma中构建驱动程序,作为SPL构建的一部分。

o Support misc drivers

支持杂项驱动程序。在SPL中启用杂项驱动程序。这些驱动程序执行不同的任务,这些任务不属于其他类别。对于支持SPL构建的驱动程序(并非所有驱动程序都支持),启用此选项可在driver/misc中构建驱动程序,作为SPL构建中的一部分。

o Support an environment

支持环境。在SPL中启用环境支持。U-Boot环境提供了许多设置(基本上是名称/值对),可以控制U-Boot操作的许多方面。通常,SPL中不需要这样做,因为它的任务简单得多,配置更少。但有些板使用这一点来支持EXT2和FAT上的“Falcon”引导,SPL在不首先启动U-boot的情况下直接引导到Linux。启用此选项将使env_get()和env_set()在SPL中可用。

o Support EXT filesystems

支持EXT文件系统。使用SPL支持EXT2/3/4文件系统。这允许从SPL内的EXT文件系统加载U-Boot(或Falcon模式下的Linux)。必须单独启用对底层块设备(如MMC或USB)的支持。

o Support FAT filesystems

支持FAT文件系统。使用SPL支持FAT和VFAT文件系统。这允许从SPL内的FAT文件系统加载U-Boot(或Falcon模式下的Linux)。必须单独启用对底层块设备(如MMC或USB)的支持。

o Support FPGAs

支持FPGA。支持SPL中的FPGA。现场可编程门阵列提供软件可配置硬件,通常用于实现外围设备(如UART、LCD显示器、MMC)或加速定制处理功能,如图像处理或机器学习。有时,在引导过程中尽早对FPGA进行编程是很有用的,这个选项可以在SPL中实现这一点。

o Support GPIO

支持GPIO。在SPL中启用对GPIO(通用输入/输出)的支持。GPIO允许U-Boot读取输入线的状态(高或低)并设置输出线的状态。这可用于驱动LED、控制各个系统部件的电源以及读取用户输入。例如,GPIO在SPL中可用于启用“生命迹象”LED。启用此选项以在drivers/gpio中构建驱动程序,作为SPL构建的一部分

o Support I2C

支持I2C。启用SPL中I2C(集成电路间)总线的支持。I2C与时钟和数据线一起工作,可以由一个或多个主设备或从设备驱动。这是一种相当复杂的总线,但由于它只需要两条线路进行通信,因此被广泛使用。通常速度为400kbps,但某些硬件支持高达3.4Mbps。例如,I2C在SPL中用于在提高CPU时钟速度之前配置电源管理IC(PMIC)。启用此选项以在drivers/i2c中构建驱动程序,作为SPL构建的一部分。

o Support common libraries

支持公共库。在SPL中启用对通用U-Boot库的支持。例如,这些库包括处理U-Boot映像、环境和USB的通用代码。此选项在许多板上启用。启用此选项以在公共/作为SPL构建的一部分构建代码。

o Support disk partitions

支持磁盘分区。在SPL中启用对磁盘分区的支持。'“磁盘”有点用词不当,因为它包括非旋转介质,如闪存(如MMC和USB记忆棒中使用的)。分区提供了一种将磁盘分割成不同区域的方法,在开始或结束处放置分区表,该表描述每个“分区”的位置和大小。这些分区通常用作单独的块设备,通常每个分区中都有一个EXT2或FAT文件系统。此选项使U-Boot中启用的任何分区支持也可以在SPL中使用。它将代码放入磁盘/中。

o Support generic libraries

支持通用库。在SPL中启用对通用U-Boot库的支持。这些库包括处理设备树、哈希、printf()、压缩等的通用代码。此选项在许多板上启用。启用此选项以在lib/中构建代码,作为SPL构建的一部分。

o Support MMC

支持MMC。在SPL中启用对MMC(多媒体卡)的支持。这将启用MMC协议实现,并允许在SPL中使用任何已启用的驱动程序。根据应用程序(SPL_LIBDISK_support),MMC可以与磁盘分区支持一起使用,也可以不支持磁盘分区。启用此选项以在driver/mmc中构建驱动程序,作为SPL构建的一部分。

o Support MPC8XXX DDR init

支持MPC8XXX DDR初始化。在SPL中的MPC8XXX系列上启用对DDR-SDRAM(双倍数据速率同步动态随机存取存储器)的支持。这允许在将U-Boot加载到可以运行的DRAM之前设置DRAM。

o Support MTD drivers

支持MTD驱动程序。在SPL中启用对MTD(内存技术设备)的支持。MTD在原始NAND上提供了一个块接口,也可以与SPI闪存一起使用。这允许SPL从支持的MTD设备加载U-Boot。有关如何启用特定MTD驱动程序,请参见SPL_NAND_SUPPORT和SPL_ONENAND_SUPPORT。

o Support new Mentor Graphics USB

支持新的Mentor Graphics USB。支持SPL中的Mentor Graphics USB。这是一些板使用的新驱动程序。启用此选项以在drivers/usb/musb-new中构建驱动程序,作为SPL构建的一部分。旧驱动程序位于drivers/usb/musb中。

o Support NAND flash

支持NAND闪存。在SPL中启用对NAND闪存的支持。NAND闪存可用于允许SPL从受支持的设备加载U-Boot。这将使drivers/mtd/nand中的驱动程序成为SPL构建的一部分。

o Support networking

支持联网。在SPL中启用对网络设备(如以太网)的支持。这允许SPL通过网络链路而不是从板载外设加载U-Boot。由于网络堆栈使用许多环境变量,因此需要环境支持。另请参见SPL_ETH_SUPPORT。

o Drop CPU code in SPL

在SPL中删除CPU代码。这特定于ARM926EJ-S CPU。它禁用标准启动。S启动代码,大概是为了在该CPU上使用替换代码。除非你知道你在做什么,否则你不应该启用它。

o Support NOR flash

支持NOR闪存。支持从SPL中的内存映射NOR闪存加载U-Boot。NOR闪存写得慢,但读得快,内存映射设备使其非常容易访问。从NOR加载通常只需一个memcpy()即可实现。

o Support XIP

支持XIP。启用支持执行代替U-Boot或内核映像。如果闪存支持就地执行,则无需将映像从闪存复制到ram。它在具有足够的闪存但没有足够的ram来加载图像的系统中非常有用。

o Support OneNAND flash

支持OneNAND闪存。在SPL中启用对OneNAND闪存的支持。OneNAND是一种NAND闪存,因此可用于允许SPL从受支持的设备加载U-Boot。这将启用driver/mtd/onenand中的驱动程序,作为SPL构建的一部分。

o Activate Falcon Mode

激活Falcon 模式。允许从SPL直接引导到操作系统。有关更多信息,请阅读doc/README.falcon

o (u-boot-lzma.img) SPL payload

SPL引导的有效负载。对于向后兼容,默认为u-boot。即没有任何标题的RAW图像。对于TPL,TPL/u-boot-with-TPL.bin。对于新板,建议使用u-boot.img

o Support PCI drivers

支持PCI驱动程序。在SPL中启用PCI支持。对于需要PCI引导或必须在SPL中使用PCI执行某些初始化的平台,这提供了必要的驱动程序支持。这使drivers/pci中的驱动程序成为SPL构建的一部分。

o Support PCH drivers

支持PCH驱动程序。在SPL中启用对PCH(平台控制器集线器)设备的支持。这些用于在启动早期设置GPIO和SPI外围设备。这将使drivers/pch中的驱动程序成为SPL构建的一部分。

o Support POST drivers

支持POST驱动程序。在SPL中启用POST(开机自检)支持。POST是一个检查硬件(CPU或板)是否正常工作的过程。这是可以在引导之前执行的健全性检查。这将启用post/drivers中的驱动程序作为SPL构建的一部分。

o Support reset drivers

支持重置驱动程序。启用SPL中的重置控制支持。通过使用驱动程序模型提供的通用重置API,这在SPL中处理驱动程序中的IP重置(如U-Boot中)非常有用。这将使drivers/reset中的驱动程序成为SPL构建的一部分。

o Support power drivers

支持电源驱动器。启用SPL中的电源控制支持。这包括对PMIC(电源管理集成电路)的支持以及PMIC提供的一些功能。特别地,电压调节器可用于启用/禁用电源并改变其电压。在SPL中,打开启动外设并调整CPU电压以提高时钟速度非常有用。这将使drivers/power、drivers/power/pmic和drivers/power/regulator中的驱动程序成为SPL构建的一部分。

o Support power domain drivers

支持电源域驱动程序。在SPL中启用对电源域控制的支持。许多SoC允许向SoC(功率域)的部分施加功率或从SoC的部分移除功率。这可用于节省电力。该API提供了控制这种电源管理硬件的方法。这将使drivers/power/domain中的驱动程序成为SPL构建的一部分。

o Support booting from RAM

支持从RAM启动。启动RAM中的映像。图像可以预先加载,也可以通过SPL直接加载到RAM中(例如使用USB)。

o Support RTC drivers 

支持RTC驱动程序。在SPL中启用RTC(实时时钟)支持。这包括支持读取和设置时间。一些RTC设备还具有一些非易失性(电池支持)存储器,如果需要,可以访问这些存储器。这将使drivers/rtc中的驱动程序成为SPL构建的一部分。

o Support loading from SATA

支持从SATA加载。在SPL中启用SATA(串行AT附件)支持。这允许使用SATA设备(如硬盘驱动器和闪存驱动器)加载U-Boot。SATA用于高端嵌入式系统,可以提供比MMC更高的性能,但成本和功耗略高。这允许使用配置的设备从SATA加载。

o Support serial

支持串口。启用SPL中串行的支持。这允许在SPL运行时使用串行UART显示消息。它还引入了printf()和panic()函数。除非有空间原因,否则通常应启用此选项。即使如此,请考虑启用USE_TINY_PRINTF,它是一个小型PRINTF()版本。

o Support SPI flash drivers

支持SPI闪存驱动程序。支持在SPL中使用SPI闪存,并从SPI闪存加载U-Boot。SPI闪存(串行外围总线闪存)以用于将其连接到系统的SPI总线命名。它是一种简单但快速的双向4线总线(时钟、芯片选择和两条数据线)。这将使drivers/mtd/spi中的驱动程序成为SPL构建的一部分。这通常需要SPL_SPI_SUPPORT。

o Support SPI drivers

支持在SPL中使用SPI。这用于连接到SPI闪存以加载U-Boot。有关详细信息,请参见SPL_SPI_FLASH_SUPPORT。SPI驱动程序提供SPI闪存和CPU之间的数据传输。此选项可用于启用其他用途(如SPI PMIC)所需的SPI驱动程序。

o Driver support for thermal devices

温度传感器的驱动器支持。启用对温度传感设备的支持。一些SoC具有片上温度传感器,允许在温度过高或过低时发出警告、速度节流甚至自动断电。其他设备可以是分立的,但连接在合适的总线上。

o Support USB host drivers

支持USB主机驱动程序。启用对USB(通用串行总线)主机设备的访问,以便SPL可以从连接的USB外围设备(如USB闪存棒)加载U-Boot。虽然USB启动时间比大多数总线稍长,但它非常灵活,因为可以连接多种不同类型的存储设备。此选项启用drivers/usb/host中的驱动程序,作为SPL构建的一部分。

o Suppport USB Gadget drivers

支持USB小工具驱动程序。启用USB小工具API,该API允许在SPL中启用USB设备功能。

o Support watchdog drivers

支持看门狗驱动程序。在SPL中启用对看门狗驱动程序的支持。看门狗通常是一个硬件外围设备,当它检测到一段时间没有活动(例如软件崩溃)时,它可以重置系统。这将使驱动程序/监视器中的驱动程序成为SPL构建的一部分。

o Support loading using Ymodem

支持使用Ymodem加载。虽然从串行加载很慢,但当没有其他选项时,它可能是一个有用的备份。Ymodem协议提供了一种通过串行线传输U-Boot以用于SPL的可靠方法,并带有校验和以确保正确性。

o Enable the RTC32K OSC on AM33xx based platforms

启用对AM33xx RTC的访问,并选择外部32kHz时钟源。

o Enable TPL

使能TPL。如果您想构建TPL以及普通镜像和SPL,请设置y。

o Call board-specific initialization in TPL

TPL中特定于板的初始化调用。如果启用此选项,U-Boot将从board_init_r()调用函数spl_board_init()。该功能应由board会提供。

o Linker script for the TPL stage

TPL阶段的链接器脚本。TPL阶段通常需要与常规U-Boot阶段不同的链接器脚本(因为它从不同的内存区域运行)。将此设置为要用于TPL的链接器脚本的路径。可以保留为空,以触发Makefile基础结构回退到SPL阶段使用的链接器脚本。

o TPL needs a separate text-base

TPL需要单独的文本库。如果TPL阶段不应从SPL阶段继承其文本基础,则启用。启用后,必须在下面设置TPL阶段的.text部分的基址。

 oTPL needs a separate initial stack-pointer

TPL需要单独的初始堆栈指针。如果TPL阶段不应从SPL阶段的设置继承其初始堆栈指针,则启用。

o (0xbfc00000) Base address for the .text section of the TPL stage

TPL阶段的.text部分的基地址。

o (65536) Maximum size (in bytes) for the TPL stage

TPL阶段的最大大小(字节)。

o Support returning to the BOOTROM (from TPL)

支持返回BOOTROM

o Support misc drivers in TPL

支持TPL中的其他驱动程序

o Support an environment

支持环境

o Support I2C

支持I2C

o Support common libraries

支持公共库

o Support generic libraries

支持通用库

o Support MPC8XXX DDR init

支持MPC8XXX DDR初始化

o Support MMC

支持MMC

o Support NAND flash

支持NAND闪存

o Support booting from RAM

支持从RAM启动

o Support serial

支持串口

o Support SPI flash drivers

支持SPI闪存驱动程序

o Support SPI drivers

        支持SPI驱动程序

22.Command line interface

顶层路径

Command line interface  --->

一级路径

o Support U-Boot commands

支持U-Boot命令。启用U-Boot的命令行功能。这提供了一种将命令输入U-Boot的方法,用于多种目的。它还允许执行脚本(包含命令)。可以单独启用各种命令和命令类别。根据启用的命令数量,这会大大增加U-Boot的大小。

o Use hush shell

使用hush shell。此选项启用“hush”shell(来自Busybox)作为命令行解释器,从而启用强大的命令行语法,如if…then…else…fi条件或“&&”和“||”构造(“shell脚本”)。如果禁用,您将获得旧的、简单得多的行为,但内存占用空间较小。

o Enable command line editing

启用命令行编辑。为交互式命令行输入操作启用编辑和历史记录功能

o Enable auto complete using TAB

使用TAB键启用自动补全

o Enable long help messages

启用长帮助消息。在需要包含长帮助消息时定义,内存不足时不要设置此选项。

o (=> ) Shell prompt

此字符串显示在光标左侧的命令行中。

o Autoboot options  --->

二级路径

o Autoboot

这将启用自动引导。有关详细信息,请参阅doc/README.autoboot。

o Stop autobooting via specific input key / string

通过特定输入键/string停止自动启动。此选项仅通过发出特定的输入键或字符串来停止(中止)自动启动功能。如果未启用,任何输入键都将中止U-Boot自动引导过程,并将设备带到U-Boot提示符以供用户输入。

o (Autoboot in %d seconds\n) Autoboot stop prompt

自动引导停止提示。此字符串在CONFIG_BOOTDELAY选择的引导延迟开始之前显示。如果未定义,则没有输出指示正在进行自动引导。请注意,此定义用作printf()调用的(唯一)参数,因此它可能包含“%”格式规范,前提是它还包含所需的参数(用逗号分隔,与printf语句完全相同)。用户有责任仅选择在给定上下文中有效的参数。

o Enable encryption in autoboot stopping

在自动启动停止时启用加密

o Delay autobooting via specific input key / string

通过特定输入键/string延迟自动启动。(此处输入字符)

o Stop autobooting via specific input key / string

通过特定输入键/string停止自动启动。(此处输入字符)

o Enable Ctrl-C autoboot interruption

启用Ctrl-C自动启动中断

o Info commands  --->

二级路径

o bdinfo

打印板信息

o config

打印“.config”内容。如果启用此选项,“.config”文件内容将嵌入U-Boot映像中,并可通过“config”命令在控制台上打印。这提供了在正在运行的U-Boot上启用哪些选项的信息。

o coninfo

打印控制台设备和信息。

o cpu

打印有关可用CPU的信息。这通常显示CPU的数量、类型(例如制造商、架构、产品或内部名称)和时钟频率。根据CPU驱动程序,其他信息可能可用。

o license

打印GPL许可文本

o Boot commands  --->

         二级路径

        o bootd

运行存储在环境“bootcmd”中的命令,即“bootd”执行与“Run bootcmd“相同的操作。

        o bootm

                从内存启动应用程序映像。

        o bootz

                引导Linux zImage

        o bootmenu

                添加ANSI终端引导菜单命令。

        o dtimg

               Android DTB/DTBO图像操作命令。将dtb/dtbo文件从映像中读取到RAM中,转储映像结构信息等。这些dtb/dtbo文件应进一步合并到一个dtb中,作为引导过程的一部分,需要传递到内核。

        o bootelf, bootvx

                从内存启动ELF/vxWorks映像。

        o Flattened Device Tree utility commands

                在引导到操作系统之前,执行FDT相关设置。

        o go

                在给定地址启动应用程序。

        o run

                在给定的环境变量中运行该命令。

        o iminfo

                打印应用程序镜像的标题信息。

        o imls

                列出闪存中找到的所有图像

        o imxtract

                提取多重镜像的一部分。

        o poweroff

                关闭系统

        o spl export - Export boot information for Falcon boot

spl export-导出Falcon引导的引导信息。Falcon模式允许直接从SPL引导到Linux等操作系统,从而跳过U-Boot。参见doc/README。有关如何使用此命令的完整信息。

        o fitImage update command

fitImage更新命令。实现“fitupd”命令,该命令允许在NOR Flash中自动存储TFTP服务器上的软件更新

        o thor - TIZEN 'thor' download

thor zeTIZEN“thor”下载。实现“thor”下载协议。这是一种通过USB从连接的主机下载软件更新的方法。U-Boot源代码中没有关于这一点的文档,但您应该能够在网络间找到一些东西。

        o zboot - x86 boot command

zboot-x86引导命令。对于x86机器,通常启动包含内核和设置的bzImage文件。bin文件。后者包含了来dark ages的配置信息,x86板仍然需要从中选择。考虑优先使用FIT,因为它支持直接引导32位和64位内核以及安全引导。文档可在doc/uImage.FIT/x86-FIT-bot.txt中找到

o Environment commands  --->

         二级路径

        o ask for env variable

询问env变量。

        o env export

                导出环境。

        o env import

                导入环境。

        o editenv

                编辑环境变量。

        o search env

                允许搜索环境变量

        o saveenv

                将所有环境变量保存到已编译的持久存储中。

        o env exists

                检查是否在环境中定义了用于shell脚本的变量。

        o env callbacks - print callbacks and their associated variables

                env回调-打印回调及其相关变量。某些环境变量已定义回调通过U_BOOT_ENV_CALLBACK。当变量发生变化时,将调用这些函数。例如,更改“波特率”调整串行波特率。此命令列出当前定义的回调。

        o env flags -print variables that have non-default flags

env flags-打印具有非默认标志的变量。一些环境变量具有控制其行为的特殊标志。例如,序列号只能写入一次,不能删除。此命令显示具有特殊标志的变量。

o Memory commands  --->

         二级路径

        o binop

从内存中计算任意大小字节数组的二进制运算(xor、or、and),并将结果存储在内存或环境中。

        o crc32

                计算CRC32。

        o crc32 -v

                添加-v选项以根据crc32校验和验证数据。

        o eeprom - EEPROM subsystem

                (已弃用,需要转换为驱动程序型号)提供读取和写入通过I2C总线连接的EEPROM(电可擦除可编程只读存储器)芯片的命令。

        o loopw

                地址范围上的无限写入循环。

        o md5sum

               计算MD5校验和。

        o meminfo

                显示内存信息。

        o md, mm, nm, mw, cp, cmp, base, loop
md-内存显示
                mm—内存修改(地址自动递增)
                nm-内存修改(恒定地址)
                mw-内存写入(填充)
                cp-内存拷贝
                cmp-内存比较
                base-打印或设置地址偏移
                loop-初始化地址范围上的循环

        o memtest

                简单的RAM读/写测试。

        o mdc, mwc

mdc-内存显示循环
                mwc-内存写入循环

        o sha1sum

                计算SHA1校验和。

        o strings - display strings in memory

这与Unix“字符串”命令的工作原理类似,只是它使用内存范围。将显示范围内找到的可打印字符字符串。可以提供将序列视为字符串的最小字符数。

o Compression commands  --->

         二级路径

        o lzmadec

支持从内存中解压缩LZMA(Lempel-Ziv-Markov链算法)图像。

        o unzip

解压缩zip压缩的内存区域。

        o zip

使用zlib deflate方法压缩内存区域。

o Device access commands  --->

         二级路径

        o armflash

ARM Ltd参考设计闪存分区访问

        o adc - Access Analog to Digital Converters info and data

访问模数转换器信息和数据。显示ADC设备信息,并允许从指定的模数转换器打印一次模拟转换数据。

        o bind/unbind - Bind or unbind a device to/from a driver 

将设备绑定到驱动程序或从驱动程序解除绑定。

        o clk - Show clock frequencies

显示时钟频率

        o demo - Demonstration commands for driver model

提供一个“demo”命令,该命令可用于与驱动程序模型一起玩。要正确使用此功能,您需要启用一个或两个演示设备(DM_demo_SHAPE和DM_demo_StIMPLE)。
否则,您将始终得到一个空的设备列表。演示设备在沙盒设备树中定义,因此最简单的选择是使用沙盒并将-d点传递给沙盒的u-boot。dtb文件。

        o dfu

启用命令“dfu”,该命令用于使U-Boot通过USB创建dfu类设备。该命令要求设置“dfu_alt_info”环境变量,并定义要向主机公开的alt设置。

        o dm - Access to driver model information

访问驱动模块信息。提供对驱动程序模型数据结构和信息的访问,例如设备列表、uclasse列表和每个设备的状态(例如已激活)。这不是操作所必需的,但可以用于查看驱动程序模型的状态以进行调试或感兴趣。

        o fdcboot - Boot from floppy device

从软盘设备启动。

        o flinfo, erase, protect

NOR闪存支持:
                flinfo-打印闪存信息
                erase-擦除闪存
                protect-启用或禁用FLASH写入保护

        o fpgad - dump FPGA registers

转储FPGA寄存器

        o fuse - support for the fuse subssystem

保险丝子系统的支持

        o gpio

GPIO 支持

        o GPT (GUID Partition Table) command

(GUID分区表)命令

        o GPT Random UUID generation

GPT随机UUID生成

        o ide - Support for IDE drivers

支持IDE驱动程序

        o io - Support for performing I/O accesses

支持执行I/O访问

        o iotrace - Support for tracing I/O activity

支持跟踪I/O活动

        o i2c

I2C 支持

        o loadb

通过串行线加载二进制文件。

        o loads

通过串行线加载S-Record文件

        o mmc

MMC内存映射支持。

        o Enable support for RPMB in the mmc command

启用读取、写入和编程eMMC中Replay Protection Memory Block分区密钥的命令。

        o mmc swrite

启用对“mmc-swrite”命令的支持,以将Android Image写入eMMC。

        o nand

nand 支持

        o mmc_spi - Set up MMC SPI device

提供设置MMC(多媒体卡)SPI(串行外围接口)设备的方法。该设备提供了一种通过SPI使用单个数据线访问MMC设备的方法,限制为20MHz。它非常有用,因为它减少了所需的协议代码量。

        o onenand - access to onenand device

访问onenand设备

        o part

读取并显示各种介质上的分区表信息。

        o pci - Access PCI devices

提供对PCI(外围互连总线)的访问,PCI是某些设备上使用的一种总线,允许CPU与其外围设备通信。子命令允许总线枚举、显示和更改配置空间以及一些其他功能。

        o pinit - Set up PCMCIA device

设置PCMCIA(个人计算机存储器)设备

        o read - Read binary data from a partition

从分区读取二进制数据

        o sata - Access SATA subsystem

访问SATA子系统

        o saves - Save a file over serial in S-Record format

以S-Record格式串行保存文件

        o scsi - Access to SCSI devices 

访问SCSI设备

        o sdram - Print SDRAM configuration information

打印SDRAM配置信息

        o sf

SPI flash 支持

        o sf test - Allow testing of SPI flash

允许测试SPI闪存

        o sspi

SPI实用程序命令。

        o tsi148 - Command to access tsi148 device

访问tsi148设备的命令

        o universe - Command to set up the Turndra Universe controller

设置Turndra Universe控制器的命令

        o usb

                USB支持

        o sdp

启用命令“sdp”,该命令用于使U-Boot通过USB模拟串行下载协议(sdp)。

        o UMS usb mass storage

UMS USB大容量存储支持

o Shell scripting commands  --->

         二级路径

        o echo

回显参数到控制台

        o itest

整数比较时返回true/false。

        o source

从内存运行脚本

        o setexpr

计算布尔表达式和数学表达式,并将结果存储在env变量中。还支持将内存位置的值加载到变量中。如果启用CONFIG_REGEX,setexpr也支持gsub函数。

o Network commands  --->

         二级路径

        o bootp

bootp-使用bootp/TFTP协议通过网络引导映像

        o dhcp

使用DHCP/TFTP协议通过网络启动映像

        o Request & store 'rootpath' from BOOTP/DHCP server

从BOOTP/DHCP服务器请求并存储“rootpath”。尽管配置名为BOOTP_BOOTPATH,但它将路径存储在变量“rootpath”中。

        o Request & store 'dnsip' from BOOTP/DHCP server

从BOOTP/DHCP服务器请求并存储“dnsip”

        o Store 'dnsip2' from BOOTP/DHCP server

从BOOTP/DHCP服务器存储“dnsip2”

        o Request & store 'gatewayip' from BOOTP/DHCP server

从BOOTP/DHCP服务器请求并存储“gatewayip”

        o Request & store 'hostname' from BOOTP/DHCP server

从BOOTP/DHCP服务器请求并存储“hostname”

        o serverip variable takes precedent over DHCP server IP.

serverip变量优先于DHCP服务器IP。

        o Request & store 'netmask' from BOOTP/DHCP server

从BOOTP/DHCP服务器请求并存储“netmask”

        o Request & store 'ntpserverip' from BOOTP/DHCP server

从BOOTP/DHCP服务器请求并存储“ntpserverrip”

        o Send PXE client arch to BOOTP/DHCP server

将PXE客户端arch发送到BOOTP/DHCP服务器

        o tftpboot

tftpboot-使用TFTP协议通过网络引导映像

        o tftp put

TFTP put命令,用于将文件上载到服务器

        o tftpsrv

充当TFTP服务器并引导第一个接收到的文件

        o Control TFTP timeout and count through environment

如果设置,则允许通过环境变量tftptimeout控制TFTP超时,并通过变量tftptimeoutcountmax控制TFTP最大超时计数。如果未设置,则超时和最大值硬定义为每个TFTP传输1秒和10次超时。

        o rarpboot

使用RARP/TFTP协议通过网络启动映像

        o nfs

使用NFS协议通过网络启动映像。

        o mii

启用MII实用程序命令。

        o ping

向网络主机发送ICMP ECHO_REQUEST

        o cdp

执行CDP网络配置

        o sntp

通过网络同步RTC

        o dns

查找主机名的IP

        o linklocal

使用链路本地协议获取网络IP地址

o ethsw

允许控制二级以太网交换机命令。目前vsc9953以太网驱动程序支持这些。子命令允许启用/禁用端口以及查看/维护过滤数据库(FDB)等操作

o pxe

使用PXE协议通过网络启动映像

o wol

等待lan Magic Packet唤醒

o Misc commands  --->

         二级路径

        o Enable board-specific commands

启用板特定命令。(已弃用:请为每个命令定义一个Kconfig选项)某些电路板具有特定于电路板的命令,这些命令仅在开发期间启用,需要在生产时关闭。此选项提供了一种控制这一点的方法。启用的命令因电路板而异。

        o mmc bkops enable

mmc bkops启用。启用在eMMC设备上设置手动后台操作握手的命令。该功能在符合标准>=4.41的eMMC设备上可选。

        o blkcache - control and stats for block cache

块缓存的控制和统计信息。启用blkcache命令,该命令可用于控制缓存函数的操作。这在开发期间微调缓存的操作时非常有用,但也允许在缓存可能影响性能时禁用缓存(例如,使用ums命令时)。

        o icache or dcache

icache或dcache。启用“icache”和“dcache”命令

        o Enable the 'display' command, for character displays

为字符显示启用“display”命令。

        o led

启用允许控制板支持的led的“led”命令。led可以用“led列表”列出,并通过led打开/关闭/切换/闪烁进行控制。任何LED驱动器都可以使用此命令进行控制,例如LED_gpio。

        o date

启用“date”命令以获取/设置RTC设备中的时间/日期。

        o time

运行命令并总结执行时间。

        o gettime - read elapsed time

启用“gettime”命令,该命令读取自U-Boot开始运行以来经过的时间。这以秒和毫秒为单位显示时间。另请参阅“bootstage”命令,该命令为引导计时提供了更多的灵活性。

        o sleep

延迟执行一段时间

        o support for multiprocessor

支持多处理器。这提供了在多处理器情况下使用不同处理器的选项。

        o timer

访问系统计时器。

        o qfw

这提供了对QEMU固件接口的访问。主要功能是允许轻松加载通过-kernel/-initrd传递到qemu系统的文件

        o terminal - provides a way to attach a serial terminal

终端-提供连接串行终端的方法。提供类似“cu”的串行终端命令。这可用于从系统控制台访问其他串行端口。终端非常简单,没有特殊的字符处理。与cu一样,您可以按~。(波浪号后跟句点)退出。

        o uuid, guid - generation of unique IDs 

这将启用两个命令:uuid-生成随机通用唯一标识符,guid-基于随机uuid生成全局唯一标识符这两个命令非常相似,只是输出的尾数不同。

o TI specific command line interface  --->

TI特定命令行接口

o Power commands  ----

电源命令

o Security commands  --->

         二级路径

        o Enable the 'aes' command

启用“aes”命令。这提供了使用AES(高级加密标准)加密和解密数据的方法。该算法使用对称密钥,广泛用作流密码。算法支持不同的密钥长度,但该命令目前仅支持128位。

        o Enable the 'blob' command

启用“blob”命令。这与Freescale安全引导机制一起使用。Freescale的SEC块具有内置的Blob协议,该协议提供了一种跨系统电源周期保护用户定义数据的方法。SEC块保护称为Blob的数据结构中的数据,该结构提供机密性和完整性保护。将数据封装为blob,每次使用Blob协议来保护数据时,都会使用不同的随机生成密钥来加密数据。该随机密钥本身使用从SoC的非易失性密钥和16位密钥标识符导出的密钥进行加密。生成的加密密钥与加密数据一起称为blob。非易失性安全密钥仅在安全引导期间可用。在解封装期间,执行反向过程以取回原始数据。

        o Support 'hash' command

支持“hash”命令。这提供了一种使用各种支持的算法(如SHA1、MD5、CRC32)对内存中的数据进行哈希的方法。计算的摘要可以保存到内存或环境变量中。还可以根据内存中的数据验证哈希。

o Firmware commands  ----

固件命令

o Filesystem commands  --->

         二级路径

        o Enable the 'btrsubvol' command

启用“btrsubvol”命令。这使“btrsubvol”命令能够列出BTRFS文件系统的子卷。没有用于列出BTRFS目录或加载BTRFS文件的特殊命令-当启用BTRFS(请参阅fs_BTRFS)时,可以通过通用“fs”命令(请参阅CMD_fs_generic)来完成此操作。

        o ext2 command support

启用EXT2 FS命令

        o ext4 command support

                启用EXT4 FS命令

        o ext4 write command support

启用EXT4 FS写入命令

        o FAT command support

FAT命令支持

        o filesystem commands

启用适用于多个fs类型的文件系统命令(例如load、ls)。

        o fsuuid command

为文件系统UUID启用fsuuid命令。

        o jffs2 command

启用支持JFFS2(日志闪存文件系统版本2)文件系统的命令。这使fsload、ls和fsinfo能够加载文件、列出目录和获取文件系统信息。

        o MTD partition support

MTD分区支持

        o Default MTD IDs

以Linux MTD命令行分区格式定义用于MTD分区的默认MTD ID列表。

        o Default MTD partition scheme

以Linux MTD命令行分区格式定义默认MTD分区方案

        o Padd partition size to take account of bad blocks

填充分区大小以考虑坏块。

        o reiser - Access to reiserfs filesystems

这提供了两个在resiers文件系统上运行的命令,这是几年前常用的命令:
                reiserls列出文件
                reiserload-加载文件

        o zfs - Access of ZFS filesystem

这提供了访问ZFS文件系统的命令,通常在Solaris系统上使用。提供了两个子命令:

zfsls-list目录中的文件
                zfsload-加载文件

o Debug commands  --->

         二级路径

        o bedbug

bedbug(emBEDdeddeBUGger)命令为一些PowerPC处理器提供调试功能。有关详细信息,请参阅doc/README.bedbug中的文档

        diag - Board diagnostics

此命令提供对板诊断测试的访问。这些称为开机自检(POST)。该命令允许列出可用的测试,并运行所有测试或按名称标识的特定测试。

        kgdb - Allow debugging of U-Boot with gdb

这将启用一个“kgdb”命令,允许gdb通过串行链路连接到U-Boot以进行调试。这允许单步执行、检查变量等。目前仅在PowerPC上支持。

        log - Generation, control and access to logging

这提供了对日志记录功能的访问。它允许在有限的范围内控制日志数据的输出(设置用于发送记录的默认最大日志级别)。它还提供对用于测试日志系统的命令的访问。

        trace - Support tracing of function calls and timing

启用命令以控制U-Boot内功能跟踪的使用。这允许记录包括定时信息的呼叫跟踪。该命令可以将数据写入内存以导出analysys(例如使用bootchart)。参见doc/README。跟踪以获取详细信息。

o Enable UBI - Unsorted block images commands

启用UBI-未排序块镜像命令。UBI是MTD层之上的一个软件层,它允许在MTD设备上使用类似LVM的逻辑卷,隐藏闪存芯片的一些复杂性,如磨损和坏块,并提供一些其他有用的功能。有关更多详细信息,请访问MTD网站(www.linux-MTD.infradead.org)。如果要使用U-Boot UBI命令,请激活此选项。

o Support MTK BLE ADVERTISING function

支持MTK BLE广告功能。此选项启用MT7915 BLE广告功能。

23.Partition Types

顶层路径

Partition Types  --->

一级路径

o Enable Partition Labels (disklabels) suppor

启用分区标签(disklabels)支持

o Enable Apple's MacOS partition table

       启用Apple的MacOS分区表

o Enable Apple's MacOS partition table for SPL 

        为SPL启用Apple的MacOS分区表

o Enable MS Dos partition table

        启用MS Dos分区表

o Enable MS Dos partition table for SPL

        为SPL启用MS Dos分区表

o Enable ISO partition table

        启用ISO分区表

o Enable ISO partition table for SPL

        为SPL启用ISO分区表

o Enable AMIGA partition table

        启用AMIG分区表

o Enable AMIGA partition table for SPL

        为SPL启用AMIGA分区表

o Enable EFI GPT partition table

        启用EFI GPT分区表

o Number of the EFI partition entries

        EFI分区条目数

o Offset (in bytes) of the EFI partition entries

       EFI分区项的偏移量(字节)

o Enable EFI GPT partition table for SPL

        为SPL启用EFI GPT分区表

o Enable support of UUID for partition

        启用分区UUID支持

o Enable support of UUID for partition in SPL

        为SPL中的分区启用UUID支持

o Enable support of GUID for partition type

启用分区类型的GUID支持

24.Device Tree Control

顶层路径

Device Tree Control  --->

(dtc) Path to dtc binary for use within mkimage

mkimage中使用的dtc二进制文件的路径。为了生成FIT图像,mkimage主机工具将调用dtc应用程序以创建输出。在某些情况下,系统dtc可能不支持所有必需的功能,此处应给出不同版本的路径。

一级路径

o Run-time configuration via Device Tree

通过设备树进行运行时配置

o Board-specific manipulation of Device Tree

设备树的板特定操作。在某些情况下,必须能够修改U-Boot的设备树(例如从中删除设备)。此选项使设备树可写,并提供板特定的“board_fix_fdt”回调(在重新定位前调用),使板初始化能够修改设备树。重新定位后,U-Boot将使用修改后的副本。

o Enable run-time configuration via Device Tree in SPL

通过SPL中的设备树启用运行时配置

o Enable run-time configuration via Device Tree in TPL

通过TPL中的设备树启用运行时配置

o Enable use of a live tree

启用活动树的使用。通常U-Boot使用平面设备树,这样可以节省空间,避免在使用前打开设备树。但是,平面树不支持U-Boot内的修改,因为它会使驱动程序模型设备树偏移无效。此选项启用重新定位后可用的活动树,并可根据需要进行调整。

o Provider of DTB for DT control (Embedded DTB for DT control)  --->

         二级路径

        o Separate DTB for DT control

用于DT控制的单独DTB

o Embedded DTB for DT control

用于DT控制的嵌入式DTB

        o Provided by the board at runtime

运行时由board提供

        o Prior stage bootloader DTB for DT control

用于DT控制的前级引导加载器DTB

o (mt7621_nor_rfb) Default Device Tree for DT control 

DT控制的默认设备树

o Support embedding several DTBs in a FIT image for u-boot

        支持在FIT映像中嵌入多个DTB以用于u-boot

25.Environment

顶层路径

Environment  ---> 

一级路径

o Environment in EEPROM

环境变量在EEPROM中

o Environment is in a FAT filesystem

环境变量位于FAT文件系统中

o Environment is in a EXT4 filesystem

环境变量位于EXT4文件系统中

o Environment in flash memory

环境变量位于flash 内存中

o Environment in an MMC device

环境变量在MMC中

o Environment in a NAND device

环境变量在NAND中

o Environment in a non-volatile RAM

环境变量在非易失性RAM中

o Environment is in OneNAND

环境变量在OneNAND中

o Environment is in remote memory space

环境变量在远程存储空间

o Environment is in SPI flash

环境变量在SPI Flash中

o Environment in a UBI volume

环境变量在UBI卷中

o (0x80000) Environment Offset

环境变量偏移

o (0x40000) Environment Size

环境变量大小

o (0x10000) Environment Sector-Size

环境变量块大小

o Create default environment from file

从文件创建默认环境

o Add run-time information to the environment

        向环境中添加运行时信息

26.Networking support

顶层路径

Networking support  --->

一级路径

o Networking support

网络支持

o Random ethaddr if unset

如果未设置,则随机添加。选择此选项将允许以太网接口运行,即使该接口的ethddr变量未设置。每次启动时都会生成一个新的MAC地址,不会将其添加到环境中。

o NetConsole support

NetConsole支持。支持网络控制台的“nc”输入/输出设备。请参阅自述文件。有关详细信息,请参阅NetConsole。

27.Device Drivers

顶层路径

Device Drivers  --->

一级路径

o Generic Driver Options  --->

         二级路径

        o Enable Driver Model

此配置选项启用驱动程序模型。这带来了核心支持,包括在启动时扫描平台数据。如果启用CONFIG_OF_CONTROL,设备树也将在可用时进行扫描。

        o Enable Driver Model for SPL

在SPL中启用驱动程序模型。您需要提供一个合适的malloc()实现。如果您没有使用CONFIG_SYS_SPL_malloc_START启用的完整malloc(),请考虑使用CONFIG.SYS_malloc_SSIMPLE。在这种情况下,必须提供CONFIG_SPL_SYS_MALLOC_F_LEN来设置大小。在大多数情况下,驱动程序模型只会在SPL中分配几个uclass和设备,所以应该启用1KB。有关如何启用它的详细信息,请参阅CONFIG_SPL_SYS_MALLOC_F_LEN。

        o Enable Driver Model for TPL

在TPL中启用驱动程序模型。您需要提供一个合适的malloc()实现。如果您没有使用CONFIG_SYS_SPL_malloc_START启用的完整malloc(),请考虑使用CONFIG.SYS_malloc_SSIMPLE。在这种情况下,必须提供CONFIG_SPL_SYS_MALLOC_F_LEN来设置大小。在大多数情况下,驱动程序模型只会在SPL中分配几个uclass和设备,所以1KB就足够了。有关如何启用它的详细信息,请参阅CONFIG_SPL_SYS_MALLOC_F_LEN。对于非常小的实现禁用此功能。

        o Enable warnings in driver model

dm_warn()函数可以为其字符串占用相当多的空间。默认情况下,这是对于SPL构建禁用的,以节省空间。这将导致dm_warn()被编译出来-调用时它将什么都不做。

        o Enable debug messages in driver model core

在驱动程序模型核心中启用调试消息

        o Support device removal

我们可以通过删除设备支持来节省一些代码空间。SPL中通常不需要此选项,因此默认情况下,SPL禁用此选项。请注意,这可能会在USB子系统中产生不期望的结果,因为它会导致未拔出的设备在dm树中徘徊,并且会导致USB主机控制器在启动操作系统时无法停止。

        o Support stdio registration

支持stdio注册。通常串行驱动程序向stdio注册,以便它们可以用作正常输出设备。在SPL中,我们通常不使用stdio,因此可以省略此功能。

        o Support numbered aliases in device tree

支持设备树中的编号别名。大多数电路板都有一个“/alias”节点,其中包含到编号设备的路径(例如serial0=&serial0)。如果不需要,可以禁用此功能。

        o Support numbered aliases in device tree in SPL

支持SPL中设备树中的编号别名。

        o Support register maps

支持寄存器映射。硬件外设往往有一组或多组寄存器,可以访问这些寄存器来控制硬件。寄存器映射使用简单的读/写接口对此进行建模。它原则上可以支持任何总线类型(I2C、SPI),但到目前为止,它只支持直接内存访问。

        o Managed device resources

托管设备资源。

        o Support simple-bus driver

支持简单的总线驱动程序。此选项启用受管设备资源核心支持。无论初始化中途失败还是设备分离,devres框架管理的设备资源都会自动释放。如果禁用此选项,devres函数将返回到非托管变量。例如,devres_alloc()到kzaloc(),devm_kmalloc()和kmalloc)等。

        o Translate addresses using fdt_translate_address

使用fdt_Translate_address转换地址。如果启用此选项,将使用fdt_translate_address()函数转换reg属性。这在许多节点中使用复杂的“范围”属性的某些平台(例如MVEBU)上是必要的。因为在默认的simple_bus_translate()函数中未正确处理此转换。如果未启用此选项,将使用simple_bus_translate()进行地址转换。此函数比fdt_translate_address()更快、更小。

o Enable ADC drivers using Driver Model

使用驱动程序模型启用ADC驱动程序。这实现了用于驱动器的ADC API,它允许通过单通道和多通道方法驱动ADC功能:-启动/停止/获取数据,以转换由多个通道选择的单通道或由位掩码选择的多通道-获取数据掩码(ADC分辨率)ADC参考电压电源选项:-获取具有极性的Vdd/Vss参考电压值的方法-支持具有自动启用功能的电源显示-fdt中的电源极性设置

o Enable Exynos 54xx ADC driver

这使Exynos ADC的基本驱动程序与Exynos54xx兼容。它提供:
        -10个模拟输入通道
        -12位分辨率
        -采样率为600 KSPS

Exynos :三星的一系列处理器

o Enable Sandbox ADC test driver

启用沙盒ADC测试驱动程序。这将启用Sandbox ADC设备仿真的驱动程序。它提供:
        -4个模拟输入通道
        -16位分辨率
        -单通道和多通道转换模式

o Enable Amlogic Meson SARADC driver

启用Amlogic Meson SARADC驱动程序。

o Enable Rockchip SARADC driver

启用Rockchip SARADC驱动程序。瑞芯微的驱动。

o Support SATA controllers with driver model

支持带有驱动程序模型的SATA控制器。这将为U-Boot中的磁盘控制器启用uclass。各种驱动程序类型都可以使用此功能,例如AHCI/SATA。它目前没有提供任何标准操作。块设备接口尚未转换为驱动程序模型。

o Support SATA controllers

支持SATA控制器。这支持SATA(串行高级技术附件),这是一种用于连接硬盘驱动器和其他存储设备的串行总线标准。SATA取代了PATA(最初仅为ATA),后者代表并行AT附件,其中AT指1984年发布的IBM AT(高级技术)计算机。另请参阅提供命令行支持的CMD_SATA。

o Enable SCSI interface to SATA devices

启用此选项可允许通过SCSI层连接SATA设备。

o SATA/SCSI device support  --->

         二级路径

        o Enable DWC AHSATA driver support

启用DWC AHSATA驱动程序支持。启用此驱动程序以支持i.MX5和i.MX6 SoC中的DWC AHSATA SATA控制器。

        o Enable Freescale SATA controller driver support

启用Freescale SATA控制器驱动程序支持。启用此驱动程序以支持某些Freescale PowerPC SoC中的SATA控制器。

        o Enable Marvell SATA controller driver support via IDE interface

通过IDE接口启用Marvell SATA控制器驱动程序支持。启用此驱动程序以支持某些Marvell SoC中的SATA控制器,使用PIO在IDE兼容模式下运行。

        o Enable Marvell SATA controller driver support 

启用Marvell SATA控制器驱动程序支持。

        o Enable Silicon Image SIL3131 / SIL3132 / SIL3124 SATA driver support

启用Silicon Image SIL3131/SIL3132/SIL3124 SATA驱动程序支持

        o Enable Silicon Image SIL3114 SATA driver support

启用Silicon Image SIL3114 SATA驱动程序支持

o AXI bus drivers  ----

支持AXI(高级可扩展接口)总线,这是一种用于管理SoC设计中功能块的片上互连规范,也经常用于涉及FPGA的设计(例如,与Xilinx FPGA中的IP核通信)。这些类型的总线暴露了可以使用不同地址宽度(目前支持8、16和32)访问的虚拟地址空间。其他类似的总线架构也可以兼容。

o Support block devices

支撑块设备。启用对块设备的支持,如SCSI、MMC和USB闪存棒。这些提供了允许读取、写入和(在某些情况下)擦除块的块级接口。块设备通常有一个分区表,该表允许将设备分区为几个区域,在U-Boot中称为“分区”。文件系统可以放置在每个分区中。

o Enable Legacy Block Device

启用传统块设备。无论是否启用DM,某些设备都需要块支持。

o Use block device cache

使用块设备缓存。此选项为所有块设备启用磁盘块缓存。这在访问U-Boot下的文件系统时非常有用,因为它可以防止重复读取目录结构和其他文件系统数据结构。

o Support IDE controllers

IDE控制器。支持IDE(集成驱动器电子)硬盘驱动器。这允许从U-Boot访问IDE驱动器上的原始块和文件系统。另请参阅CMD_IDE,它提供了用于执行各种IDE操作的“IDE”命令。

o Enable support for checking boot count limit  ----

启用对检查启动计数限制的支持。

o Clock  --->

         二级路径

        o Enable clock driver support

启用时钟驱动程序支持。这允许为时钟发生器提供驱动器,包括振荡器和PLL。设备可以使用公共时钟API来请求特定时钟速率并检查可用时钟。时钟可以以树形结构馈入其他时钟,多路复用器可以为每个时钟选择源。

        o Enable cgu clock driver for HSDK

为HSDK启用cgu时钟驱动程序。启用此功能以支持Synopsys ARC HSDK上的cgu时钟

        o AT91 clock drivers

AT91时钟驱动器。此选项用于启用AT91时钟驱动器。驱动程序支持AT91时钟发生器,包括振荡器和PLL,如主时钟、慢时钟、PLLA、UTMI PLL。时钟也可以是树形结构的其他时钟的源时钟,如主时钟、usb设备时钟、矩阵时钟和通用时钟。设备可以使用公共时钟API来请求特定时钟,启用它并获取其速率。

        o Enable ICS8N3QV01 VCXO driver

启用ICS8N3QV01 VCXO驱动程序。

o Enable CPU drivers using Driver Model

使用驱动程序模型启用CPU驱动程序。这允许为CPU提供驱动程序,并在板的设备树中指定其类型。对于支持多个CPU的板,通常必须在U-Boot中设置,以便它们在操作系统中正常工作。这为查找可用CPU的信息并进行更改提供了一个框架。

o Hardware crypto devices  --->

         二级路径

        o Freescale Crypto Driver Support

Freescale Crypto驱动程序支持。

        o Big-endian access to Freescale Secure Boot

Big endian访问Freescale Secure Boot

        o Little-endian access to Freescale Secure Boot

Little-endian访问Freescale Secure Boot

o Demo for driver model  --->

驱动模型演示。

o DFU support  ----

DFU支持

o DMA Support  --->

         二级路径

        o Enable Driver Model for DMA drivers

为DMA驱动程序启用驱动程序模型。

        o TI EDMA3 driver

TI EDMA3驱动程序

o Fastboot support  --->

         二级路径

        o Enable fastboot protocol over UDP

通过UDP启用快速启动协议

        o Define FASTBOOT buffer address

定义FASTBOOT缓冲区地址

        o (0x7000000) Define FASTBOOT buffer size

定义FASTBOOT缓冲区大小

        o Enable FASTBOOT FLASH command

启用FASTBOOT FLASH命令

o FPGA support  --->

         二级路径

        o Enable Altera FPGA drivers

启用Altera FPGA驱动程序。

        o Enable Gen5 and Arria10 common FPGA drivers 

启用Gen5和Arria10通用FPGA驱动程序

        o Enable Xilinx FPGA drivers

启用Xilinx FPGA驱动程序

        o Enable Spartan3 FPGA driver

启用Spartan3 FPGA驱动程序

o GPIO Support  --->

         二级路径

        o Enable Driver Model for GPIO drivers

为GPIO驱动程序启用驱动程序模型

        o Altera PIO driver

Altera PIO驱动程序

        o DWAPB GPIO driver

DWAPB GPIO驱动程序

        o AT91 PIO GPIO driver

AT91 PIO GPIO驱动程序

        o ATMEL PIO4 driver

ATMEL PIO4驱动程序

        o DA8xx GPIO Driver

DA8xx GPIO驱动程序

        o Intel Broadwell GPIO driver

Intel Broadwell GPIO驱动程序

        o Intel ICH6 compatible legacy GPIO driver

兼容Intel ICH6的旧式GPIO驱动程序

        o i.MX7ULP RGPIO2P driver

i.MX7ULP RGPIO2P驱动程序

        o HSDK CREG GPIO griver

HSDK CREG GPIO驱动

        o LPC32XX GPIO driver

LPC32XX GPIO驱动程序

        o Qualcomm GPIO driver

高通公司GPIO驱动程序

        o Freescale/NXP MXC GPIO driver

Freescale/NXP MXC GPIO驱动程序

        o Enable the pca953x command

启用pca953x命令

        o PCF8575 I2C GPIO Expander driver

PCF8575 I2C GPIO扩展器驱动程序

        o Rockchip GPIO driver

Rockchip GPIO驱动程序

        o Xilinx GPIO driver

Xilinx GPIO驱动程序

        o tca642x - Command to access tca642x state

tca642x-访问tca642 x状态的命令

        o Tegra20..210 GPIO driver

Tegra20..210 GPIO驱动程序

        o Tegra186 GPIO driver

Tegra186 GPIO驱动程序

        o Vybrid GPIO driver

Vybrid GPIO驱动程序

        o 74x164 serial-in/parallel-out 8-bits shift register

74x164串行输入/并行输出8位移位寄存器

        o PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports

PCA95[357]x、PCA9698、TCA64xx和MAX7310 I/O端口

        o Freescale MPC8XXX GPIO driver

Freescale MPC8XXX GPIO驱动程序

        o MediaTek MT7621 GPIO driver

联发科MT7621 GPIO驱动程序

o I2C support  --->

         二级路径

        o Enable Driver Model for I2C drivers

        o Enable I2C compatibility layer 

        o Set default I2C bus number

        o Enable Driver Model for software emulated I2C bus driver

               为软件模拟I2C总线驱动程序启用驱动程序模型

        o Freescale I2C bus driver

        o Designware I2C Controller

        o Intel I2C/SMBUS driver 

        o NXP i.MX LPI2C driver

        o NXP MXC I2C driver

        o Rockchip I2C driver

        o Marvell I2C driver

        o gdsys IHS I2C driver

        o Support I2C multiplexers

        使能I2C驱动模型,后面就是选厂家

o Enable driver model keyboard support

启用驱动程序模型键盘支持

o Enable Chrome OS EC keyboard support

启用Chrome OS EC键盘支持

o Enable TWL4030 Input controller

启用TWL4030输入控制器

o LED Support  --->

         二级路径

        o Enable LED support

               启用LED支持

        o Enable status LED API 

                启用状态LED API

o Mailbox Controller Support  --->

                 使用驱动程序模型启用邮箱控制器

o Memory Controller drivers  ----

内存控制器驱动程序

o Multifunction device drivers  --->

         二级路径

        o Enable Driver Model for Misc drivers

为其他驱动程序启用驱动程序模型

        o Enable Chrome OS EC

启用Chrome OS EC

        o Enable support for DS4510 CPU supervisor

启用对DS4510 CPU监控器的支持

        o Enable FSL SEC_MON Driver

启用FSL SEC_MON驱动程序

        o Enable MXC OCOTP Driver

启用MXC OCOTP驱动程序

        o Enable Nuvoton NCT6102D Super I/O driver

启用Nuvoton NCT6102D超级I/O驱动程序

        o Enable power-sequencing drivers

启用电源排序驱动程序

        o Enable PCA9551 LED driver

启用PCA9551 LED驱动器

        o Enable TWL4030 LED controller

启用TWL4030 LED控制器

        o Enable Winbond Super I/O driver

启用Winbond Super I/O驱动程序

        o (0x0) Set the I2C MAC offset

设置I2C MAC偏移

o MMC Host controller Support  --->

         二级路径

        o MMC/SD/SDIO card support

MMC/SD/SDIO卡支持

        o support for MMC/SD write operations

支持MMC/SD写入操作

        o Poll for broken card detection case

轮询断卡检测案例

        o Enable MMC controllers using Driver Model

使用驱动程序模型启用MMC控制器

        o ARM AMBA Multimedia Card Interface and compatible support

ARM AMBA多媒体卡接口和兼容支持

        o Enable quirks

某些卡和主机有时会表现出意外的行为(怪癖)。该选项允许变通方法来处理这些怪癖。其中一些是默认启用的,其他可能需要额外的标志或由主机驱动程序启用。

        o Support for HW partitioning command(eMMC)

支持HW分区命令(eMMC)

        o Support eMMC replay protected memory block (RPMB)

支持eMMC重放保护内存块(RPMB)

        o Support IO voltage configuration

支持IO电压配置

        o Support IO voltage configuration in SPL

支持SPL中的IO电压配置

        o enable HS200 support

启用HS200支持

        o enable HS200 support in SPL

启用HS200支持在SPL

        o Output more information about the MMC

输出有关MMC的更多信息

        o MMC debugging

MMC调试

        o Tiny MMC framework in SPL

SPL中的微型MMC框架

        o Synopsys DesignWare Memory Card Interface

        o Freescale i.MX21/27/31 or MPC512x Multimedia Card support

        o Support for MMC controllers on PCI

支持PCI上的MMC控制器

        o TI OMAP High Speed Multimedia Card Interface support

        o Secure Digital Host Controller Interface support

安全数字主机控制器接口支持。SD卡接口

        o STMicroelectronics STM32H7 SD/MMC Host Controller support

        o Ftsdc010 SD/MMC controller Support

        o MediaTek SD/MMC Card Interface support

联发科SD/MMC卡接口支持

        o Freescale/NXP eSDHC controller support

o MTD Support  --->

         二级路径

        o Enable Driver Model for MTD drivers

为MTD驱动程序启用驱动程序模型

        o Enable parallel NOR flash support

启用并行NOR闪存支持

        o Enable MTD Device for NAND and ONENAND devices

为NAND和ONNAND设备启用MTD设备

        o Add MTD Partioning infrastructure

添加MTD分区基础

        o Enable Driver Model for CFI Flash driver

为CFI Flash驱动程序启用驱动程序模型

        o Altera Generic Quad SPI Controller

Altera通用四线SPI控制器

        o Enable NAND mapping block management

启用NAND映射块管理

o NAND Device Support  ---->

         二级路径

                [ ]   Support Atmel NAND controller                
                [ ]   Support TI Davinci NAND controller                
                [ ]   Support Denali NAND controller as a DT device       
                [ ]   Support LPC32XX_SLC controller                                   
                [ ]   Support for Freescale NFC for VF610                                
                [ ]   Support for NAND on PXA3xx and Armada 370/XP/38x               
                [ ]   Configure Arasan Nand                                                
                [ ]   Support for MT7621 NAND Controller                               
                [ ]   Support for Zynq Nand controller                                    
                *** Generic NAND options ***                                              
                [ ]   Define U-boot binaries locations in NAND                             
                [ ]   Support Denali NAND controller for SPL                         
                [ ]   Support for MT7621 NAND Controller for SPL                  
                [ ]   Use simple SPL NAND driver                                            
                [ ]   Use simplified nand base 

                选厂家的驱动和一些简单配置

o SPI Flash Support  --->

         二级路径

        [*] Enable Driver Model for SPI flash           

                启用SPI闪存的驱动程序模型                
        [*] Legacy SPI Flash Interface support                 

                传统SPI闪存接口支持    
        [*]   SPI flash Bank/Extended address register support 

               SPI闪存库/扩展地址寄存器支持
        [ ]   SPI DUAL flash memory support

                SPI DUAL闪存支持。目前,Xilinx Zynq qspi支持此功能。             
        [ ]   Atmel SPI flash support                                        

                Atmel SPI闪存支持

        [*]   EON SPI flash support                   

                EON SPI闪存支持                             
        [*]   GigaDevice SPI flash support   

                GigaDevice SPI闪存支持                               
        [*]   ISSI SPI flash support     

                 ISSI SPI闪存支持                                   
        [*]   Macronix SPI flash support

                Macronix SPI闪存支持                                      
        [*]   Spansion SPI flash support 

                Spansion SPI闪存支持                                       
        [*]   STMicro SPI flash support 

                STMicro SPI闪存支持                                  
        [*]   SST SPI flash support 

                SST SPI闪存支持                                      
        [*]   Winbond SPI flash support

                Winbond SPI闪存支持                               
        [ ]   Use small 4096 B erase sectors

                使用小4096 B擦除扇区                      
        [ ]   AT45xxx DataFlash support

                AT45xxx DataFlash支持                                        
        [*]   SPI Flash MTD support

                SPI闪存MTD支持

o UBI support  --->

         二级路径

        [ ] UBI silence verbose messages   

                UBI静音详细消息
        [ ] Enable UBI - Unsorted block images 

启用UBI-未排序的块镜像

o Bit-banged ethernet MII management channel support

Bit-banged以太网MII管理通道支持

o Marvell 88E6352 switch support

Marvell 88E6352交换支持

o Ethernet PHY (physical media interface) support  --->

选择网络连接的物理设备PHY,通常PHY为外部的,与cpu的mac接口相连。有时soc内部会集成switch,可以选择内部PHY使用。MT7621就是使用内部PHY

o NXP PFE Ethernet driver  ----

NXP PFE以太网驱动程序

o Enable Driver Model for Ethernet drivers

为以太网驱动程序启用驱动程序模型

o TI Common Platform Ethernet Switch

TI通用平台以太网交换机

o Network device support  --->

         二级路径

        [ ]   Enable GbE PHY status parsing and configuration     

                启用GbE PHY状态分析和配置        
        [ ]   Altera Triple-Speed Ethernet MAC support         

                Altera三倍速以太网MAC支持                     
        [ ]   Broadcom SF2 (Starfighter2) Ethernet support               

                Broadcom SF2(Starfighter2)以太网支持      
        [ ]   Synopsys DWC Ethernet QOS device support             

                Synopsys DWC以太网QOS设备支持          
        [ ]   Intel PRO/1000 Gigabit Ethernet support         

                Intel PRO/1000千兆以太网支持                    
        [ ]   Synopsys Designware Ethernet MAC   

                Synopsys Designware以太网MAC                                  
        [ ]   OpenCores 10/100 Mbps Ethernet MAC     

                OpenCores 10/100 Mbps以太网MAC                            
        [ ]   Ftmac100 Ethernet Support   

                Ftmac100以太网支持                       
        [ ]   Cadence MACB/GEM Ethernet Interface         

                Cadence MACB/GEM以太网接口                            
        [*]   MediaTek MT7621 Ethernet Interface 

                联发科MT7621以太网接口                                   
        [ ]   Intel Platform Controller Hub EG20T GMAC driver       

               Intel Platform Controller Hub EG20T GMAC驱动程序              
        [ ]   Enable RGMII           

                启用RGMII                                                       
        [ ]   Enable MII               

                启用MII                                                  
        [ ]   Realtek 8139 series Ethernet controller driver 

                Realtek 8139系列以太网控制器驱动程序                              
        [ ]   Realtek 8169 series Ethernet controller driver 

                Realtek 8169系列以太网控制器驱动程序                   
        [ ]   SMSC LAN911x and LAN921x controller driver 

                SMSC LAN911x和LAN921x控制器驱动程序                   
        [ ]   Enable Allwinner GMAC Ethernet support

                启用Allwinner GMAC以太网支持                           
        [ ]   Allwinner Sun4i Ethernet MAC support                           
        [ ]   Allwinner Sun8i Ethernet MAC support                             
        [ ]   Renesas SH Ethernet MAC 

                瑞萨SH以太网MAC                                           
        [ ]   TI Davinci EMAC                                                       
        [ ]   Xilinx Ethernetlite                                                       
        [ ]   Enable Three-Speed Ethernet Controller

                启用三速以太网控制器

o NVM Express device support

NVM Express设备支持。此选项支持NVM Express设备。它支持NVMe(读/写)的基本功能。SSD硬盘。

o PCI support  --->

         二级路径

        [*]   Enable driver model for PCI 

                为PCI启用驱动程序模型                                     
        [ ]     Enable compatible functions for PCI 

                为PCI启用兼容功能                           
        [*]   Enable Plug & Play support for PCI   

                启用PCI即插即用支持                             
        [ ]   Generic ECAM-based PCI host controller support   

                基于ECAM的通用PCI主机控制器支持      
        [ ]   Xilinx AXI Bridge for PCI Express                 

                用于PCI Express的Xilinx AXI桥              
        [ ]   Layerscape PCIe support                 

                Layerscape PCIe支持                     
        [ ]   Intel FPGA PCIe support

Intel FPGA PCIe支持

o PHY Subsystem  --->

 该框架旨在为PHY设备提供通用接口。PHY设备是处理OSI模型中协议的物理层的专用硬件。PHY通常用于高速接口,例如串行ATA或PCI express。API提供初始化/去初始化PHY、打开/关闭PHY以及重置PHY的功能。它的目的是尽可能与linux内核中的等效框架兼容。

o ComPhy SerDes driver 

ComPhy SerDes驱动程序。选择此选项可添加对Comphy驱动程序的支持。该驱动通过通道,并根据类型和速度初始化通道。

o Pin controllers  --->

这实现了对pinctrl框架的基本支持。您可能需要启用更多选项,具体取决于您要执行的操作。

o Power  --->

         二级路径

        [ ] Enable Driver Model for PMIC drivers (UCLASS_PMIC)

Enable Driver Model for PMIC drivers (UCLASS_PMIC)

        [ ] Enable support for the Austria Micro Systems (AMS) AS7322 PMIC

        [ ] Enable driver for Freescale MC34VR500 PMIC

        [ ] Enable Driver Model for REGULATOR drivers (UCLASS_REGULATOR)

为调节器驱动程序启用驱动程序模型

主要对PMIC的支持

o Enable support for pulse-width modulation devices (PWM)

启用对脉宽调制设备(PWM)的支持

o Enable support for the sandbox PWM

启用对sandbox PWM的支持

o Enable RAM drivers using Driver Model

使用驱动程序模型启用RAM驱动程序

o Remote Processor drivers  ----

远程处理器驱动程序

o Reset Controller Support  --->

         二级路径

        [*] Enable reset controllers using Driver Model

使用驱动程序模型启用重置控制器

        [*] Reset controller driver for MediaTek MT7621

重置联发科MT7621的控制器驱动程序

o Real Time Clock  --->

         二级路径

        [ ] Enable Driver Model for RTC drivers

启用RTC驱动程序的驱动程序模型

        [ ] Enable ARM AMBA PL031 RTC driver

启用ARM AMBA PL031 RTC驱动程序

        [ ] Enable S35392A driver

启用S35392A驱动程序

o Support SCSI controllers

支持SCSI控制器

o Support SCSI controllers with driver model

支持带有驱动程序型号的SCSI控制器

o Serial drivers  --->

         二级路径

        (115200) Default baudrate

默认波特率

        [*] Require a serial port for console

控制台需要一个串行端口

        [*] Specify the port number used for console

指定用于控制台的端口号

        [*] Provide a serial driver

提供串行驱动程序

        [*] Provide a serial driver in SPL

提供串行驱动程序在SPL中

        (1) UART used for console

用于控制台的UART

        [*] Enable Driver Model for serial drivers

为串行驱动程序启用驱动程序模型

        [ ]   Enable RX buffer for serial input

为串行输入启用RX缓冲器

        [ ]   Search for serial devices after default one failed

在默认设备失败后搜索串行设备

        [ ]   Enable Driver Model for serial drivers in TPL

为TPL中的串行驱动程序启用驱动程序模型

        [*] Enable an early debug UART for debugging

启用早期调试UART进行调试

        Select which UART will provide the debug UART (MediaTek High-speed UART)  --->

选择哪个UART将提供调试UART(联发科高速UART)

        (0xbe000c00) Base address of UART

UART的基址

        (50000000) UART input clock

ART输入时钟

        (2)   UART register shift

UART寄存器移位

        [*]   Enable board-specific debug UART init

启用特定于板的调试UART初始化

        [ ]   Show a message when the debug UART starts up

调试UART启动时显示消息

        [ ] Skip UART initialization

跳过UART初始化

        [ ] Altera JTAG UART support

        [ ] Altera UART support

        [ ] ARC UART support

        [ ] Atmel USART support

        [ ] Freescale Linflex UART support

        [ ] Freescale LPUART support

        [ ] UART support for Armada 3700

        [ ] Null serial device

空串行设备

        [ ] NS16550 UART or compatible

NS16550 UART或兼容

        [ ] ARM PL010 and PL011 driver

ARM PL010和PL011驱动程序

        [ ] Qualcomm on-chip UART

高通公司片上UART

        [ ] PXA serial port support

PXA串行端口支持

        [*] MediaTek High-speed UART support

联发科高速UART支持

o SMEM (Shared Memory mamanger) support  ----

SMEM(共享内存管理器)支持

o Sound support  --->

        主要对I2S的支持

o SPI Support  --->

         二级路径

        [*]   Enable Driver Model for SPI drivers

为SPI驱动程序启用驱动程序模型

        [ ]     Altera SPI driver

        [ ]     Andestech ATCSPI200 SPI driver

        [ ]     Atmel SPI driver

        [ ]     BCMSTB SPI driver

        [ ]     Cadence QSPI driver

        [ ]     Designware SPI driver

        [ ]     Samsung Exynos SPI driver

        [ ]     Freescale DSPI driver

        [ ]     Intel ICH SPI driver

        [ ]     Marvell Armada 3700 SPI driver

        [*]     MediaTek MT7621 SPI controller driver

        [ ]     Rockchip SPI driver

        [ ]     Allwinner A10 SoCs SPI controller

        [ ]     nVidia Tegra114 SPI driver

        [ ]     nVidia Tegra20 Serial Flash controller driver

        [ ]     nVidia Tegra20/Tegra30 SLINK driver

        [ ]     nVidia Tegra210 QSPI driver

        [ ]     Xilinx SPI driver

        [ ]   Soft SPI driver

软SPI驱动程序。启用软SPI驱动程序。该驱动程序使用GPIO模拟SPI协议。

        [ ]   ColdFire SPI driver

        [ ]   Freescale eSPI driver

        [ ]   Freescale QSPI driver

        [ ]   SuperH SPI driver

        [ ]   Renesas Quad SPI driver

        [ ]   TI QSPI driver

        [ ]   Marvell Kirkwood SPI Driver

        [ ]   LPC32XX SPI Driver

        [ ]   MPC8XXX SPI Driver

        [ ]   MXC SPI Driver

        [ ]   MXS SPI Driver

        [ ]   McSPI driver for OMAP

o SPMI support  --->

选择此选项以启用支持SPMI总线。SPMI(系统电源管理接口)总线用于连接各种SoC上的PMIC设备。

o System reset device drivers  ---> 

         二级路径

        [ ] Enable support for system reset drivers

启用对系统重置驱动程序的支持

        [ ] Enable support for mfd syscon reboot driver

启用对mfd-syscon重新启动驱动程序的支持

        [ ] Enable support for watchdog reboot driver

启用对看门狗重新启动驱动程序的支持

o Driver support for thermal devices

温度传感器的驱动器支持

o Timer Support  --->

为计时器驱动程序启用驱动程序模型

o TPM support  ----

TPM支持。

o USB support  --->

         二级路径

        [*]   Enable driver model for USB

启用USB驱动程序模型

        *** USB Host Controller Drivers ***

        [*]   xHCI HCD (USB 3.0) support

xHCI HCD(USB 3.0)支持

        [ ]     DesignWare USB3 DRD Core Support

DesignWare USB3 DRD核心支持

        [ ]     DesignWare USB3 DRD Generic OF Simple Glue Layer

支持基于DesignWare USB3 IP Core的USB控制器与简单SoC集成中的USB2/3功能。

        [ ]     Support for PCI-based xHCI USB controller

支持基于PCI的xHCI USB控制器

        [ ]     Support for NXP Layerscape on-chip xHCI USB controller

支持NXP Layerscape片上xHCI USB控制器

        [*]   Support for MediaTek MT7621 on-chip xHCI USB controller

支持联发科MT7621片上xHCI USB控制器

        [ ]   EHCI HCD (USB 2.0) support

EHCI HCD(USB 2.0)支持

        [ ]   OHCI HCD (USB 1.1) support

OHCI HCD(USB 1.1)支持

        [ ]   UHCI HCD (most Intel and VIA) support

UHCI HCD(大多数Intel和VIA)支持

        [ ]   DesignWare USB2 Core support

DesignWare USB2核心支持

        [ ]   DesignWare USB3 DRD Core Support

DesignWare USB3 DRD核心支持

        *** Legacy MUSB Support ***

        [ ]   Legacy MUSB Host Controller

传统MUSB主机控制器

        [ ]   Legacy USB Device Controller

传统USB设备控制器

        [ ]   Legacy MUSB DaVinci

传统MUSB达芬奇

        *** MUSB Controller Driver ***

        [ ]   MUSB host mode support

MUSB主机模式支持

        [ ]   MUSB gadget mode support

MUSB小工具模式支持

        [ ]   Enable TI OTG USB controller

启用TI OTG USB控制器

        [ ]   AM35x

        [ ]   TI DSPS platforms

        [ ]   Disable DMA (always use PIO)

禁用DMA(始终使用PIO)

        *** USB Phy ***

        [ ]   TWL4030 PHY

        [ ]   OMAP PHY

        [ ]   Rockchip USB2 PHY

        *** ULPI drivers *** 

        [ ]   ULPI Viewport type

        *** USB peripherals ***

        [*]   USB Mass Storage support

USB大容量存储支持

        [ ]   USB Keyboard support

USB键盘支持

        [ ]   USB Gadget Support  ---->

        (U-Boot) Vendor name of the USB device

                USB设备的供应商名称

        (0x0) Vendor ID of the USB device

USB设备的供应商ID

        (0x0) Product ID of the USB device

                USB设备的产品ID

        [ ]   Atmel USBA

        [ ]   Broadcom UDC OTG PHY

        [ ]   DesignWare USB2.0 HS OTG controller (gadget mode)

        [ ]   ChipIdea device controller

                ChipIdea设备控制器

        (2)   Maximum VBUS Power usage (2-500 mA)

                最大VBUS功耗

        [ ]    Enable USB download gadget

                启用USB下载小工具

        [ ]   USB Ethernet Gadget

                USB以太网小工具

         [ ]   USB to Ethernet Controller Drivers  ---->

        USB转以太网控制器驱动程序

        [ ]   ASIX AX8817X (USB 2.0) support

        [ ]   ASIX AX88179 (USB 3.0) support

        [ ]   Microchip LAN75XX support

        [ ]   Microchip LAN78XX support

        [ ]   MOSCHIP MCS7830 (7730/7830/7832) suppport

        [ ]   Realtek RTL8152B/RTL8153 support

        [ ]   SMSC LAN95x support (NEW)

o Graphics support  --->

图形支持

         二级路径

        [ ] Enable driver model support for LCD/video

        [ ] Display console as white on a black background

        [ ] Skip framebuffer clear

        TrueType Fonts  ----

        [ ] Enable VESA video driver support

        [ ] ANX9804 bridge chip

        [ ] SSD2828 bridge chip

        [ ] Armada XP LCD controller

        [ ] Enable EDID library

        [ ] Enable Display support

        [ ] Enable LCD support on Tegra20

        [ ] Support video bridges

        [ ] Enable legacy video support

        [ ] Enable legacy LCD support

        [ ] Simple display driver for preconfigured display

        [ ] Enable SimpleFB support for passing framebuffer to OS

o Watchdog Timer Support  --->

         二级路径

        [ ] Enable U-Boot watchdog reset

启用U-Boot看门狗重置.此选项启用U-Boot看门狗支持,其中U-Boot使用watchdog_reset功能为U-Boot中的看门狗设备提供服务。如果您想通过U-Boot服务启用的看门狗,请启用此选项。如果您希望U-Boot启动看门狗,但从不维护它,请禁用此选项。

        [ ] Enable BCM2835/2836 watchdog driver

        [ ] i.MX7ULP watchdog

        [ ] Enable driver model for watchdog timer drivers

o Custom physical to bus address mapping

自定义物理到总线地址映射

28.File systems

顶层路径

File systems  --->

一级路径

o Enable BTRFS filesystem support

启用BTRFS文件系统支持

o Enable CBFS (Coreboot Filesystem)

启用CBFS(Coreboot文件系统)

o Enable ext4 filesystem support

启用ext4文件系统支持

o Enable ext4 filesystem write support

启用ext4文件系统写入支持

o Enable FAT filesystem support

启用FAT文件系统支持

o Enable FAT filesystem write support

启用FAT文件系统写入支持

o (65536) Set maximum possible clustersize

设置最大可能簇大小。设置FAT文件系统的最大可能簇大小。这是可用于保存文件的最小磁盘空间量。除非内存内存限制非常严格,否则保留默认值。

o Enable JFFS2 filesystem support

启用JFFS2文件系统支持

o UBIFS silence verbose messages

UBIFS静音详细消息

o Enable CRAMFS filesystem support

启用CRAMFS文件系统支持

o YAFFS2 filesystem support

YAFFS2文件系统支持

29.Library routines

顶层路径

Library routines  --->

一级路径

o Enable Software based BCH ECC

启用基于软件的BCH ECC

o Optimize libraries for speed

优化库以提高速度

o Enable Dynamic tables for CRC

为CRC启用动态表

o Use private libgcc

使用专用libgcc

o Enable tiny printf() version

启用微型printf()版本

o Do not reset the system on fatal error

发生严重错误时不重置系统

o Enable regular expression support

启用正则表达式支持

o Pseudo-random library support type (Pseudo-random library support)  --->

         二级路径

        o Pseudo-random library support

伪随机库支持

        o HW Engine for random libray support

用于随机库支持的HW引擎

o Use a very small memset() in SPL

在SPL中使用非常小的memset()

o Use a very small memset() in TPL

在TPL中使用非常小的memset()

o Bit reverse library from Linux

来自Linux的位反向库

o Support the 'dhry' command to run the dhrystone benchmark

支持“dhry”命令运行dhrystone基准测试

o Security support  --->

         二级路径

        o Support the AES algorithm

支持AES算法

        o Use RSA Library

使用RSA库

        o Trusted Platform Module (TPM) Support

可信平台模块(TPM)支持

o Android Verified Boot  ----

Android验证启动

o Hashing Support  --->

         二级路径

        o Enable SHA1 support

启用SHA1支持

        o Enable SHA256 support

启用SHA256支持

        o Enable hashing using hardware

使用硬件启用哈希

o Compression Support  --->

         二级路径

        o Enable LZ4 decompression support

启用LZ4解压缩支持

        o Enable LZMA decompression support

启用LZMA解压缩支持

        o Enable LZO decompression support 

启用LZO解压缩支持

        o Enable LZO decompression support in SPL

在SPL中启用LZO解压缩支持

        o Enable gzip decompression support for SPL build

为SPL构建启用gzip解压缩支持

        o Enable LZMA decompression support for SPL build

为SPL构建启用LZMA解压缩支持

o Enable function for getting errno-related string message

启用获取errno相关字符串消息的函数

o Enable hexdump

启用hexdump

o Enable the FDT library

启用FDT库

o Enable the FDT library overlay support

启用FDT库覆盖支持

o Enable the FDT library for SPL

为SPL启用FDT库

o overwrite MTD partitions in DTS through defined in 'mtdparts'

通过“mtdparts”中定义的覆盖DTS中的MTD分区

o System tables  ----

系统表

o Support OPTEE images

支持OPTEE镜像

o (0x00000000) OPTEE load address

OPTEE加载地址

o Support OPTEE bootm command

支持OPTEE bootm命令

30.Unit tests

顶层路径

Unit tests

选择此选项可编译U-Boot各个部分的单元测试。测试套件将是“ut”命令的子命令。这不需要包含沙盒,但它最常在那里使用。

31.Enable Failsafe Web UI

顶层路径

Enable Failsafe Web UI

MTK提供了一个uboot的web页面,用户可以在uboot下通过网页进行固件升级。

MT7621_移植篇(3) uboot编译+配置项分析相关推荐

  1. Exynos4412 Uboot 移植(一)—— Uboot 编译流程分析

    Uboot 所用版本 u-boot-2013.01 u-boot-2013.01 中有上千文件,要想了解对于某款开发板,使用哪些文件.哪些文件首先执行.可执行文件占用内存的情况,最好的方法就是阅读它的 ...

  2. u-boot移植篇——了解u-boot

    文章目录 一.U-Boot 1.1 如何下载 二.u-boot是如何引导内核的 2.1 u-boot连接脚本 2.1.1 扫盲 2.2 u-boot.lds 一.U-Boot 对于嵌入式玩家来说,ub ...

  3. u-boot编译连接分析

    时间 :2016年4月3日09:24:04 地点 :宿舍. 功能 :u-boot编译连接阶段分析.(以smdk2410开发板为例) 在顶层目录下执行完"make smdk2410_confi ...

  4. linux 移植 内存 配置,Linux 移植篇 之 uboot的移植

    本文主要针对对于s3c2410的板子 一.在 U-Boot 中建立自己的开发板类型,并测试编译 (1)进入 UBoot 根目录,修改 Makefile <1>为 james2410_con ...

  5. S5PV210 Uboot开发与移植02:Uboot配置与编译

    目录 1. uboot源码目录简介 2. uboot编译原理引入 2.1 功能模块配置 2.1.1 在.c文件中不编译相应的功能语句 2.1.2 在make时不编译相应的功能模块 2.2 跨平台编译环 ...

  6. 【u-boot】uboot代码简要分析 (u-boot 移植)

    uboot代码简要分析 (u-boot 移植) 2012-12-19 22:46:04 [转] 先来看看源码目录结构,再按照代码的执行顺序简单地分析源码 1.U-boot源码整体框架 源码解压以后,我 ...

  7. 最详细的U-BOOT源码分析及移植

    本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上: 1.u-boot工程的总体结构 2.u-boot的流程.主要的数据结构.内存分配. 3.u-boot的重要细节,主要分析流程中各函数 ...

  8. linux系统移植篇(二)—— Uboot使用介绍

    linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...

  9. 第六章、Tiny4412 U-BOOT移植六 Nand Flash源码分析

    一.U-Boot参考源码 NandFlash的初始化代码我们放在board/samsung/tiny4412/lowlevel_init.S ,这一段代码是三星SMDK4212中没有提供的,所以我们需 ...

最新文章

  1. php找不到控制器里面的方法,php – 在Laravel 4中找不到控制器类
  2. DataFrame 删除与增减行列
  3. boost::mp11::mp_partition_q相关用法的测试程序
  4. SpringCloud(二) 服务注册到Eureka
  5. AD服务器不愿意处理该请求
  6. mysql hex2bin_mysqlbinlog指令
  7. 水晶报表横向打印BUG处理
  8. 圣诞快乐:Oracle Database 19c 的10大新特性一览
  9. 拍摄女生人像,摄影师觉得最大的困难是什么?
  10. 巧用Linux 命令来拆分Windows下的大文件
  11. angular --开发环境搭建及项目创建
  12. 每天CookBook之Python-047
  13. 鸿蒙系统一直重启怎么办,我的电脑能开机随后就是进不了系统一直黑在那边,时间长了就自动重启...
  14. js实现京东购物放大镜和选项卡效果
  15. 跨境电商wms系统功能分析
  16. Hardfault调试方法(调试技术)
  17. 彩色复古装饰麻绳-----四色麻绳
  18. 洛谷——P2862 [USACO06JAN]把牛Corral the Cows
  19. 如何重现难以重现的bug
  20. 面试经验之:蚂蚁饿了么抖音美团等多家面试问题!简历优化等

热门文章

  1. 什么是做空和做多以及什么是做空期权波动率
  2. 大学python挂科补考_大学挂科后补考不过怎么样一种体验?
  3. PCB制造常用的13种测试方法,你了解几种?
  4. 五、传输层(三)TCP
  5. 你们想要知道的跳一跳都在这了,23333333
  6. oracle 归档日志 重做日志,Oracle的重做日志和归档日志
  7. 人脸识别撞脸名画_人脸识别_“名画匹配”刷爆屏 想知道你和哪副名画撞脸了吗...
  8. 计算机开机总要按f1键,华硕主板开机需要按F1键怎么解决?华硕主板开机按f1的解决方法...
  9. 电脑文件管理——XYplorer
  10. 天津工业大学计算机学院调剂信息,天津工业大学2019年硕士研究生调剂公告