U-BOOT中文文档 概述与配置选项 .

http://blog.csdn.net/evilcode/article/details/5690177

 

前言:近期在学习U-Boot,学习过程不外乎学习文档,阅读代码。U-BOOT源码树提供的README文档讲得比较详细,可以作为一个起点,看了下网上似乎也没有完全的中文翻译,因此才有翻译的打算,一方面可以共享,另一方面今后自己查阅起来也比较方便。本系列翻译的内容来源于U-BOOT 1.3.4源码目录下的README文件,不足之处,还请各位大侠批评指正。

概述:
=====

本目录包含U- Boot的源代码。U-Boot是一个用于嵌入式单板的bootloader,支持PowerPC, ARM, MIPS及其它几种处理器。它可以安装在boot ROM中,用来对硬件进行初始化和测试,或者下载及运行应用代码。

U-Boot的开发与Linux联系紧密:有一部分代码来源于Linux内核代码树,两者有一些相同的头文件,并且U-Boot为支持Linux映像的启动也提供了特别的支持。

为了使该软件能易于配置及扩展,我们已经做了一些工作。比如所有操作命令都以相同的调用接口实现,这样便于添加新的命令。此外,你还可以在monitor上动态地加载及运行代码,而不是向monitor添加不太常用的代码(比如硬件测试程序)。


状态:
=====

对于在Makefile中存在配置的单板,一般是经过一定的测试,并可以为是"可工作的"。实际上,很多单板也正式地在生产中使用。

遇到问题时,请在CHANGELOG和CREDITS两个文件中查找一个具体的移植是由谁贡献的。MAINTAINERS文件列出了单板维护者。


获取帮助:
=========

如果你对U-Boot有疑问,或者想为U-Boot贡献,你应该向U-Boot邮件列表<u- boot-users@lists.sourceforge.net>发送消息。在提问前,请搜索邮件列表的历史记录:http://lists.sourceforge.net/lists/listinfo/u-boot-users/


获取源代码:
===========

U-Boot源代码使用git仓库维护,地址为:git://www.denx.de/git /u-boot.git;你也可以在线浏览:http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git; a=summary

该页面的"snapshots"链接允许你下载任一版本的源码树。官方发布可以通过FTP下载:ftp://ftp.denx.de/pub/u-boot/

预编译(并经过测试)的映像可以从这里下载:ftp://ftp.denx.de/pub/u-boot/images/


我们来自哪里:
=============

- 从8xxrom源代码开始
- 建立了 PPCBoot 项目 (http://sourceforge.net/projects/ppcboot)
- 清理代码
- 让代码更易于添加自定义单板
- 可以添加其它类型的 [PowerPC] CPU
- 扩展了函数,特别是:
  * 为 Linux 引导程序提供了扩展的接口
  * 下载 S-Record
  * 从网络引导
  * 从 PCMCIA / CompactFlash / ATA disk / SCSI ... 等设备引导
- 建立了ARMBoot项目 (http://sourceforge.net/projects/armboot)
- 添加了其它CPU家族 (从ARM开始)
- 建立了 U-Boot 项目 (http://sourceforge.net/projects/u-boot)
- 当前项目的主页: http://www.denx.de/wiki/U-Boot


命名与拼写:
===========

本项目的官方名称为"Das U-Boot"。在所有文档中都应使用"U-Boot"。比如:

    这是U-Boot项目的README文件。

文件名等,也应基于u-boot字符串。比如:

    include/asm-ppc/u-boot.h

    #include <asm/u-boot.h>

变量名,宏定义等,也需要基于u_boot或者U_BOOT来定义。比如:

    U_BOOT_VERSION        u_boot_logo
    IH_OS_U_BOOT        u_boot_hush_start


版本编号:
=========

U-Boot使用3级版本编号,包含一个版本,子版本及补丁级别:"U-Boot-2.34.5" 表示版本2,子版本34,补丁级别4。

补丁级别用于表示发行版本间的某个阶段,比如,官方发布版本的补丁级别总是0。


目录结构:
====================

- board        与单板相关的文件
- common    一些与架构无关的函数
- cpu        针对特定CPU的文件
  - 74xx_7xx    针对Freescale MPC74xx 和 7xx CPU 的文件
  - arm720t    针对ARM 720 CPU 的文件
  - arm920t    针对ARM 920 CPU 的文件
    - at91rm9200 针对Atmel AT91RM9200 CPU 的文件
    - imx    针对Freescale MC9328 i.MX CPU 的文件
    - s3c24x0    针对Samsung S3C24X0 CPU 的文件
  - arm925t    针对ARM 925 CPU 的文件
  - arm926ejs    针对ARM 926 CPU 的文件
  - arm1136    针对ARM 1136 CPU 的文件
  - at32ap    针对Atmel AVR32 AP CPU 的文件
  - i386    针对i386 CPU 的文件
  - ixp        针对Intel XScale IXP CPU 的文件
  - leon2    针对Gaisler LEON2 SPARC CPU 的文件
  - leon3    针对Gaisler LEON3 SPARC CPU 的文件
  - mcf52x2    针对Freescale ColdFire MCF52x2 CPU 的文件
  - mcf5227x    针对Freescale ColdFire MCF5227x CPU 的文件
  - mcf532x    针对Freescale ColdFire MCF5329 CPU 的文件
  - mcf5445x    针对Freescale ColdFire MCF5445x CPU 的文件
  - mcf547x_8x    针对Freescale ColdFire MCF547x_8x CPU 的文件
  - mips    针对MIPS CPU 的文件
  - mpc5xx    针对Freescale MPC5xx  CPU 的文件
  - mpc5xxx    针对Freescale MPC5xxx CPU 的文件
  - mpc8xx    针对Freescale MPC8xx  CPU 的文件
  - mpc8220    针对Freescale MPC8220 CPU 的文件
  - mpc824x    针对Freescale MPC824x CPU 的文件
  - mpc8260    针对Freescale MPC8260 CPU 的文件
  - mpc85xx    针对Freescale MPC85xx CPU 的文件
  - nios    针对Altera NIOS CPU 的文件
  - nios2    针对Altera Nios-II CPU 的文件
  - ppc4xx    针对AMCC PowerPC 4xx CPU 的文件
  - pxa        针对Intel XScale PXA CPU 的文件
  - s3c44b0    针对Samsung S3C44B0 CPU 的文件
  - sa1100    针对Intel StrongARM SA1100 CPU 的文件
- disk        处理磁盘驱动器分区的代码
- doc        文档 (不要报太大期望^_^)
- drivers    常用的设备驱动
- dtt        数字温度计及调节器的驱动
- examples    示范代码
- include    头文件
- lib_arm    针对ARM架构的文件
- lib_avr32    针对AVR32架构的文件
- lib_generic    针对所有架构的文件
- lib_i386    针对i386架构的文件
- lib_m68k    针对m68k架构的文件
- lib_mips    针对MIPS架构的文件
- lib_nios    针对NIOS架构的文件
- lib_ppc    针对PowerPC 架构的文件
- lib_sparc    针对SPARC架构的文件
- libfdt    支持平坦设备树(flattened device trees)的库文件
- net        网络代码
- post        上电自检
- rtc        实时时钟驱动
- tools        编译S-Record或U-Boot映像等相关工具

软件配置:
=======================

配置一般使用宏定义实现;使用宏的原因是避免可能存在的不可达代码。

有两类配置变量:

* _OPTIONS_ 配置:
  这类配置以"CONFIG_"开始,用户可以自行选择。

* _SETTINGS_ 配置:
  这类配置以"CFG_"开始,与硬件相关。如果你不清楚它的含义,则不要随便修改。

后面我们会添加一个配置工具,可能类似于Linux Kernel配置工具。目前,我们还得手动完成配置,比如建一些软链接,编辑一些配置文件。下面我们使用TQM8xxL单板作为范例。


选择处理器架构与单板类型:
-------------------------

对所有已经支持的单板,有默认配置可以直接使用;只需要输入"make <board_name>_config".

比如: 对一个 TQM823L 单板类型:

    cd u-boot
    make TQM823L_config

对于Cogent平台,你需要指定CPU类型;比如 "make cogent_mpc8xx_config"。还要根据cogent/README的指导来配置cogent目录。


配置选项:
----------------------

配置依赖于单板类型与CPU类型;所有这些信息都保存在一个配置文件 "include/configs/<board_name>.h" 中

比如: 对一个 TQM823L 单板,所有配置设置都在文件"include/configs/TQM823L.h"中。

有许多选项与对应的Linux内核配置选项名称相同,目的是之后容易做一个配置工具。

需要配置的选项如下:

- CPU类型:    只能定义一个,比如CONFIG_MPC85XX.

- 单板类型:    只能定义一个,比如CONFIG_MPC8540ADS.

- CPU子卡类型: (如果定义了CONFIG_ATSTK1000)
        只能定义一个,比如CONFIG_ATSTK1002

- CPU Module 类型 (如果定义了CONFIG_COGENT)
        只能定义下列中的一个:CONFIG_CMA286_60_OLD
--- FIXME --- 尚未经过测试的:
        CONFIG_CMA286_60, CONFIG_CMA286_21, CONFIG_CMA286_60P,
        CONFIG_CMA287_23, CONFIG_CMA287_50

- 母板类型: (如果定义了CONFIG_COGENT)
        可以选择下列定义:
        CONFIG_CMA101, CONFIG_CMA102

- 母板I/O Modules: (如果定义了CONFIG_COGENT)
        可以择下面的一个或多个定义:
        CONFIG_CMA302

- 母板选项: (如果定义了CONFIG_CMA101或者CONFIG_CMA102)
        可以择下面的一个或多个定义:
        CONFIG_LCD_HEARTBEAT    - 在LCD上每秒钟用旋转字符(即|/-/|/-/)更新字符的位置

- Board flavour: (如果定义了CONFIG_MPC8260ADS)
        CONFIG_ADSTYPE
        可选值有:
            CFG_8260ADS    - 最初的 MPC8260ADS
            CFG_8266ADS    - MPC8266ADS
            CFG_PQ2FADS    - PQ2FADS-ZU 或者 PQ2FADS-VR
            CFG_8272ADS    - MPC8272ADS

- MPC824X 家族成员 (如果定义了CONFIG_MPC824X)
        只能定义下列中的一个:
        CONFIG_MPC8240, CONFIG_MPC8245

- 8xx CPU 选项: (如果使用MPC8xx CPU)
        CONFIG_8xx_GCLK_FREQ    - 不推荐: 如果get_gclk_freq()不能工作(比如,没有32KHz PIT/RTC参考时钟),用该宏定义CPU时钟。

        CONFIG_8xx_OSCLK    - 锁相环输入时钟(EXTCLK或者XTAL/EXTAL)

- 859/866/885 CPU 选项: (如果使用MPC859, MPC866或者MPC885 CPU):
        CFG_8xx_CPUCLK_MIN
        CFG_8xx_CPUCLK_MAX
        CONFIG_8xx_CPUCLK_DEFAULT
            参见文档 doc/README.MPC866

        CFG_MEASURE_CPUCLK

        定义该宏来测量实际的CPU时钟,否则需要保证配置的正确性。通常用于单板确认锁相环是否锁定到预期的频率上。注意,本功能需要一个稳定的参考时钟 (32kHz RTC时钟或者CFG_8XX_XIN)

- Intel Monahans 选项:
        CFG_MONAHANS_RUN_MODE_OSC_RATIO

        定义Monahans的运行模式频率与晶振频率的比值. 有效值为8, 16, 24, 31. 核心频率为该值乘以13MHz.

        CFG_MONAHANS_TURBO_RUN_MODE_RATIO

        定义Monahans turbo 模式频率与晶振频率的比值. 有效值为1(不定义的默认值)和2. 核心频率是上面计算出的值与该值的乘积.

- Linux内核接口:
        CONFIG_CLOCKS_IN_MHZ

        U-Boot在内部使用Hz保存所有时钟信息。为了与旧的Linux内核(要求bd_info数据内的时钟是MHZ单位)达到二进制兼容,可以定义环境变量"clocks_in_mhz",U-Boot在传递给Linux内核前,将时钟数据转换为MHZ。
        当定义了 CONFIG_CLOCKS_IN_MHZ 时,"clocks_in_mhz=1"的定义会自动包含到默认的环境中。

        CONFIG_MEMSIZE_IN_BYTES        [只与 MIPS 相关]

        当向linux传递memsize参数时,有一些版本的单位是字节,其它的则是MB,如果定义 CONFIG_MEMSIZE_IN_BYTES,则参数单位为字节。

        CONFIG_OF_LIBFDT

        新的内核版本要求使用平坦设备树(基于开放固件的概念)将固件设置传递给内核

        CONFIG_OF_LIBFDT
         * New libfdt-based support
         * 增加"fdt"命令
         * bootm命令自动更新fdt

        OF_CPU - cpus节点的名称
        OF_SOC - soc节点的名称
        OF_TBCLK - timebase频率
        OF_STDOUT_PATH - 终端设备的路径

        带有QUICC引擎的单板需要将OF_QE设置为UCC MAC地址

        CONFIG_OF_BOARD_SETUP

        单板在将平坦设备树传递给内核前需要做额外的修改

        CONFIG_OF_BOOT_CPU

        该定义填充到boot参数头部的CPU部分。如果不定义,默认值为0。

- 串口:
        CFG_PL010_SERIAL

        如果希望支持Amba PrimeCell PL010串口控制器,则定义此宏。

        CFG_PL011_SERIAL

        如果希望支持Amba PrimeCell PL011串口控制器,则定义此宏。

        CONFIG_PL011_CLOCK

        如果你使用Amba PrimeCell PL011串口控制器,将该宏定义为串口控制器的时钟频率。

        CONFIG_PL01x_PORTS

        如果你的单板使用Amba PrimeCell PL010 或者 PL011 串口控制器,定义该宏为一个列表(注:即数组初始化列表,该数组类型是一个指针数组),列表里每一项为串口的基地址。例子参见 "include/configs/versatile.h"


- 终端接口:
        根据单板的情况,定义一个串口终端(比如 CONFIG_8xx_CONS_SMC1, CONFIG_8xx_CONS_SMC2, CONFIG_8xx_CONS_SCC1, ...), 或者定义CONFIG_8xx_CONS_NONE来关闭串口终端

        注意: 如果定义了 CONFIG_8xx_CONS_NONE, 串口例程必须在其它地方定义(比如 serial_init(), serial_getc(), ...)

        CONFIG_CFB_CONSOLE
        使能终端设备的彩色帧缓冲. 需要下列定义 (cf. smiLynxEM, i8042, board/eltec/bab7xx)
            VIDEO_FB_LITTLE_ENDIAN    图像存储组织 (默认为大端序)
            VIDEO_HW_RECTFILL    图像芯片支持矩形填充(rectangle fill)
                        (cf. smiLynxEM)
            VIDEO_HW_BITBLT        图像芯片支持位块传输(bit-blit) (cf. smiLynxEM)
            VIDEO_VISIBLE_COLS    可视像素列 (cols=pitch)
            VIDEO_VISIBLE_ROWS    可视像素行
            VIDEO_PIXEL_SIZE    每像素字节数
            VIDEO_DATA_FORMAT    图像数据格式 (0-5, cf. cfb_console.c)
            VIDEO_FB_ADRS        帧缓冲地址
            VIDEO_KBD_INIT_FCT    keyboard int fct
                        (i.e. i8042_kbd_init())
            VIDEO_TSTC_FCT        test char fct
                        (i.e. i8042_tstc)
            VIDEO_GETC_FCT        get char fct
                        (i.e. i8042_getc)
            CONFIG_CONSOLE_CURSOR    打开/关闭 光标绘制 (需要 blink timer cf. i8042.c)
            CFG_CONSOLE_BLINK_COUNT blink 间隔 (cf. i8042.c)
            CONFIG_CONSOLE_TIME    在右上角显示时间/日期信息 (需要 CONFIG_CMD_DATE)
            CONFIG_VIDEO_LOGO    在左上角显示Linux logo
            CONFIG_VIDEO_BMP_LOGO    使用bmp_logo.h作为logo(默认是linux_logo.h)。 需要 CONFIG_VIDEO_LOGO
            CONFIG_CONSOLE_EXTRA_INFO
                        除了logo外的其它单板信息

        如果定义了CONFIG_CFB_CONSOLE, 视频终端是默认的i/o. 使用'console=serial'环境可以强制使用串口终端

        如果定义了 CONFIG_SILENT_CONSOLE, 可以用'silent'环境变量屏蔽所有终端消息(包括U-Boot和Linux的输出!)。更多信息见doc/README.silent

- 终端波特率:
        CONFIG_BAUDRATE - 以bps为单位
        选择一个CFG_BAUDRATE_TABLE列出的波特率。
        CFG_BAUDRATE_TABLE 见下面。
        CFG_BRGCLK_PRESCALE, baudrate prescale

- 中断驱动的串口输入:
        CONFIG_SERIAL_SOFTWARE_FIFO

        仅用于PPC405GP。
        使用一个中断处理程序来接收串口数据。它将使能并使用硬件握手(RTS/CTS)和串口内置FIFO。必须设置中断驱动的输入缓冲的字节数。

        不定义该宏则禁用此特性, 包括禁用缓冲和硬件握手。

- 终端 UART 编号:
        CONFIG_UART1_CONSOLE

        仅用于AMCC PPC4xx。
        如果定义该宏,则使用内部UART1作为默认的U-Boot终端 (否则使用UART0)

- 引导延时:    CONFIG_BOOTDELAY - in seconds
        在自动引导默认映像前的延时,设为-1表示禁用自动引导。

        与CONFIG_BOOTDELAY相关的选项见 doc/README.autoboot. 这些选项都不是必需的。
        CONFIG_BOOT_RETRY_TIME
        CONFIG_BOOT_RETRY_MIN
        CONFIG_AUTOBOOT_KEYED
        CONFIG_AUTOBOOT_PROMPT
        CONFIG_AUTOBOOT_DELAY_STR
        CONFIG_AUTOBOOT_STOP_STR
        CONFIG_AUTOBOOT_DELAY_STR2
        CONFIG_AUTOBOOT_STOP_STR2
        CONFIG_ZERO_BOOTDELAY_CHECK
        CONFIG_RESET_TO_RETRY

- 自动引导命令:
        CONFIG_BOOTCOMMAND
        只有定义了CONFIG_BOOTDELAY时,才需要定义这个宏。如果在引导延时内没有字符输入,则自动执行该宏定义的命令字符串。

        CONFIG_BOOTARGS
        该宏用于向bootm命令传递参数。CONFIG_BOOTARGS的值也被赋给环境变量"bootargs"

        CONFIG_RAMBOOT and CONFIG_NFSBOOT
        两个宏值分别被赋给环境变量"ramboot"和"nfsboot"。用于简化从RAM和NFS两种引导途径之间的切换。

- 预引导命令:
        CONFIG_PREBOOT

        如果定义了该选项,则在进行引导延时的计时前或者运行自动引导命令前,检查环境变量"preboot"是否存在,如果存在则进入交互模式。

        该功能在"preboot"是由程序自动生成或修改的情况下比较有用。比如,LWMON单板的代码:当引导系统时,如果用户按下特定组合键,preboot会被修改。

- Serial Download Echo Mode:
        CONFIG_LOADS_ECHO
        如果定义为1,在串口下载(使用"loads"命令)过程中,会对所有收到的字符进行回显。在某些终端上可能有用(如"cu"),但对大多数终端只是浪费时间。这个设置定义了"loads_echo"环境变量的默认值。

- Kgdb 串口波特率: (如果定义了 CONFIG_CMD_KGDB)
        CONFIG_KGDB_BAUDRATE
        选择一个 CFG_BAUDRATE_TABLE 列出的波特率,见下面。

- Monitor 功能:
        可以用#include "config_cmd_all.h"包含所有Monitor命令,并用#undef去掉不需要的命令。也可以使用"config_cmd_default.h",并#define需要的命令。

        下列命令里,不带*号的是默认的命令配置

        CONFIG_CMD_ASKENV    * ask for env variable
        CONFIG_CMD_AUTOSCRIPT      支持自动脚本
        CONFIG_CMD_BDI          bdinfo
        CONFIG_CMD_BEDBUG    * 包含 BedBug 调试器
        CONFIG_CMD_BMP        * BMP 支持
        CONFIG_CMD_BSP        * 单板相关命令
        CONFIG_CMD_BOOTD      bootd
        CONFIG_CMD_CACHE    * icache, dcache
        CONFIG_CMD_CONSOLE      coninfo
        CONFIG_CMD_DATE        * 支持RTC, date/time...
        CONFIG_CMD_DHCP        * 支持DHCP
        CONFIG_CMD_DIAG        * 诊断
        CONFIG_CMD_DOC        * Disk-On-Chip Support
        CONFIG_CMD_DTT        * Digital Therm and Thermostat
        CONFIG_CMD_ECHO          echo arguments
        CONFIG_CMD_EEPROM    * 支持EEPROM读写
        CONFIG_CMD_ELF        * bootelf, bootvx
        CONFIG_CMD_ENV          saveenv
        CONFIG_CMD_FDC        * 支持软驱
        CONFIG_CMD_FAT        * 支持FAT分区
        CONFIG_CMD_FDOS        * 支持Dos磁盘
        CONFIG_CMD_FLASH      flinfo, erase, protect
        CONFIG_CMD_FPGA          支持FPGA设备初始化
        CONFIG_CMD_HWFLOW    * RTS/CTS 硬件流控
        CONFIG_CMD_I2C        * I2C 串行总线支持
        CONFIG_CMD_IDE        * IDE 硬盘支持
        CONFIG_CMD_IMI          iminfo
        CONFIG_CMD_IMLS          列出所有找到的映像
        CONFIG_CMD_IMMAP    * 支持IMMR dump
        CONFIG_CMD_IRQ        * irqinfo
        CONFIG_CMD_ITEST      Integer/string test of 2 values
        CONFIG_CMD_JFFS2    * 支持JFFS2文件系统
        CONFIG_CMD_KGDB        * kgdb
        CONFIG_CMD_LOADB      loadb
        CONFIG_CMD_LOADS      loads
        CONFIG_CMD_MEMORY      md, mm, nm, mw, cp, cmp, crc, base,
                      loop, loopw, mtest
        CONFIG_CMD_MISC          Misc functions like sleep etc
        CONFIG_CMD_MMC        * MMC memory mapped support
        CONFIG_CMD_MII        * MII实用命令
        CONFIG_CMD_NAND        * NAND支持
        CONFIG_CMD_NET          bootp, tftpboot, rarpboot
        CONFIG_CMD_PCI        * pciinfo
        CONFIG_CMD_PCMCIA        * PCMCIA支持
        CONFIG_CMD_PING        * 向网络主机发送 ICMP ECHO_REQUEST
        CONFIG_CMD_PORTIO    * 端口I/O
        CONFIG_CMD_REGINFO    * 寄存器dump
        CONFIG_CMD_RUN          run command in env variable
        CONFIG_CMD_SAVES    * save S record dump
        CONFIG_CMD_SCSI        * SCSI 支持
        CONFIG_CMD_SDRAM    * 打印 SDRAM 配置信息 (需要CONFIG_CMD_I2C)
        CONFIG_CMD_SETGETDCR      支持访问DCR寄存器 (仅用于4xx)
        CONFIG_CMD_SPI        * 支持SPI串行总线
        CONFIG_CMD_USB        * 支持USB
        CONFIG_CMD_VFD        * 支持VFD (TRAB)
        CONFIG_CMD_CDP        * 支持Cisco Discover Protocol
        CONFIG_CMD_FSL        * 支持Microblaze FSL


        例如: 如果你需要除了网络支持外的所有功能,可以配置如下:

        #include "config_cmd_all.h"
        #undef CONFIG_CMD_NET

    其它命令:
        fdt (平坦设备树) 命令: CONFIG_OF_LIBFDT

    注意: 如果你不清楚,请不要开启"icache"和"dcache"命令(配置参数CONFIG_CMD_CACHE)。在8xx或8260上无法使能数据 cache(访问IMMR区间必须不过cache),在其它使用数据cache作为初期栈和数据保存的系统里也不能禁用数据cache。

        XXX - 该列表需要更新!

- 看门狗:
        CONFIG_WATCHDOG
        如果定义该变量,则使能看门狗支持。必须有平台特定的看门狗实现。对8xx和8260 CPU,SIU看门狗功能在SYPCR寄存器中使能。

- U-Boot版本:
        CONFIG_VERSION_VARIABLE
        如果定义该宏,U-Boot创建一个"ver"环境变量,用于显示"version"命令所打印出的U-Boot版本。本变量是只读的。

- 实时时钟:

        如果选择了 CONFIG_CMD_DATE,需要同时选择RTC的类型。使用下列定义中的一个:

        CONFIG_RTC_MPC8xx    - 使用MPC8xx的内部RTC
        CONFIG_RTC_PCF8563    - 使用Philips PCF8563 RTC
        CONFIG_RTC_MC13783    - 使用MC13783 RTC
        CONFIG_RTC_MC146818    - 使用MC146818 RTC
        CONFIG_RTC_DS1307    - 使用Maxim, Inc. DS1307 RTC
        CONFIG_RTC_DS1337    - 使用Maxim, Inc. DS1337 RTC
        CONFIG_RTC_DS1338    - 使用Maxim, Inc. DS1338 RTC
        CONFIG_RTC_DS164x    - 使用Dallas DS164x RTC
        CONFIG_RTC_ISL1208    - 使用Intersil ISL1208 RTC
        CONFIG_RTC_MAX6900    - 使用Maxim, Inc. MAX6900 RTC
        CFG_RTC_DS1337_NOOSC    - 关闭DS1337的OSC输出

        注意:如果RTC使用I2C,则需要配置I2C接口。参加见下面的I2C支持。

- 时间戳支持:

        如果定义CONFIG_TIMESTAMP, 与映像相关的命令如bootm或iminfo会打印给定映像的时间戳(日期和时间)。如果定义了CONFIG_CMD_DATE,该选项自动使能。

- 分区支持:
        CONFIG_MAC_PARTITION,  CONFIG_DOS_PARTITION, CONFIG_ISO_PARTITION

        如果使能了IDE或SCSI支持(CONFIG_CMD_IDE 或者    CONFIG_CMD_SCSI),你必须至少配置一种分区类型的支持

- IDE 复位例程:
        CONFIG_IDE_RESET_ROUTINE - 在几个单板的配置文件中定义,但并未使用!

        CONFIG_IDE_RESET - 如果定义了,会调用下面的函数复位IDE:
            ide_set_reset(int reset)
        这个函数必须在单板相关文件里定义。

- ATAPI 支持:
        CONFIG_ATAPI

        定义该宏来支持ATAPI。

- LBA48 支持
        CONFIG_LBA48

        定义该宏可支持大于137GB的磁盘。需要检查CFG_64BIT_LBA, CFG_64BIT_VSPRINTF 和 CFG_64BIT_STRTOUL选项。如果不定义它们,LBA48使用32位变量,只能支持到最大2.1TB的磁盘。

        CFG_64BIT_LBA:
            如果使能,则IDE子系统使用64位的扇区地址,默认是32位。

- SCSI 支持:
        当前只支持 SYM53C8XX SCSI 控制器; 定义 CONFIG_SCSI_SYM53C8XX 来使能。

        可以调整CFG_SCSI_MAX_LUN [8], CFG_SCSI_MAX_SCSI_ID [7] 及 CFG_SCSI_MAX_DEVICE [CFG_SCSI_MAX_SCSI_ID * CFG_SCSI_MAX_LUN] 定义最大LUN, SCSI ID及目标的最大设备数。
        定义CFG_SCSI_SYM53C8XX_CCF 以修正clock timing(时钟时序?) (80Mhz)

- 网络支持 (PCI设备):
        CONFIG_E1000
        支持Intel 8254x GE芯片。

        CONFIG_E1000_FALLBACK_MAC
        量产后,在EEPROM为空时的默认MAC地址。

        CONFIG_EEPRO100
        支持Intel 82557/82559/82559ER芯片。还可以定义CONFIG_EEPRO100_SROM_WRITE使能首次初始化时的EEPROM写流程.

        CONFIG_TULIP
        支持 Digital 2114x 芯片。
        还可以定义 CONFIG_TULIP_SELECT_MEDIA 支持单板特定的modem芯片初始化(KS8761/QS6611).

        CONFIG_NATSEMI
        支持 National dp83815 芯片.

        CONFIG_NS8382X
        支持 National dp8382[01] gigabit 芯片.

- 网络支持 (其它设备):

        CONFIG_DRIVER_LAN91C96
        支持 SMSC 的 LAN91C96 芯片.

            CONFIG_LAN91C96_BASE
            将该宏定义为LAN91C96 I/O空间的物理地址。

            CONFIG_LAN91C96_USE_32_BIT
            定义该宏以使能32位寻址

        CONFIG_DRIVER_SMC91111
        支持 SMSC 的 LAN91C111 芯片

            CONFIG_SMC91111_BASE
            定义设备的物理地址 (I/O 空间)

            CONFIG_SMC_USE_32_BIT
            如果数据总线是32位的,定义此宏

            CONFIG_SMC_USE_IOFUNCS
            如果定义则使用I/O函数,否则使用I/O宏 (有些硬件不能用宏)

        CONFIG_DRIVER_SMC911X
        支持 SMSC 的 LAN911x 和 LAN921x 芯片

            CONFIG_DRIVER_SMC911X_BASE
            定义设备的物理地址 (I/O 空间)

            CONFIG_DRIVER_SMC911X_32_BIT
            如果数据总线为32位,定义此宏

            CONFIG_DRIVER_SMC911X_16_BIT
            如果数据总线为16位,定义此宏。如果处理器自动将1个32位数据转化为2个16位数据,可以试着用 CONFIG_DRIVER_SMC911X_32_BIT.

- USB 支持:
        目前只支持UHCI host controller (PIP405, MIP405, MPC5200); 定义 CONFIG_USB_UHCI 来使能。
        定义 CONFIG_USB_KEYBOARD 使能USB键盘支持,定义 CONFIG_USB_STORAGE 使能USB存储设备。
        注意: 受支持的是USB键盘和USB软驱 (TEAC FD-05PUB).
        MPC5200 USB 需要附加的定义:
            CONFIG_USB_CLOCK
                对 528 MHz 时钟: 0x0001bbbb
            CONFIG_USB_CONFIG
                对差分驱动器: 0x00001000
                对单边驱动器: 0x00005000
            CFG_USB_EVENT_POLL
                可以定义此宏来允许中断查询,否则使用异常中断。

- USB 设备:
        如果希望使用USB终端,定义下面的宏。
        在串口终端重建固件后,使用命令"setenv stdin usbtty; setenv stdout usbtty" 并接上USB线缆. "dmesg"命令应该会打印它找到一个新设备. 可以将usbtty环境变量设为gserial或者cdc_acm。前者让设备对USB host表现为Linux gserial设备,后者让设备表现为通用设备类抽象控制模型(Common Device Class Abstract Control Model)的串行设备。
        如果你选择usbtty = gserial,应该能通过下面的命令枚举一个Linux host
        # modprobe usbserial vendor=0xVendorID product=0xProductID
        如果你选择 cdc_acm, 将环境变量usbtty设为cdc_acm就行了. 你还可以在单板配置头文件中定义下面的宏。

            CONFIG_USB_DEVICE
            定义该宏来建立一个UDC设备

            CONFIG_USB_TTY
            如果定义该宏,则可以使用一个tty类型的设备与UDC设备通信

            CFG_CONSOLE_IS_IN_ENV
            如果你想将标准输入、标准输出、标准错误设为usbtty,定义该宏。

            mpc8xx:
                CFG_USB_EXTC_CLK 0xBLAH
                从外部时钟"blah"导出USB时钟。
                - CFG_USB_EXTC_CLK 0x02

                CFG_USB_BRG_CLK 0xBLAH
                从brgclk导出USB时钟
                - CFG_USB_BRG_CLK 0x04

        如果你有一个USB-IF分配的VendorID,你可以将自己的vendor值定义在BoardName.h,或者直接定义在 usbd_vendor_info.h. 如果你不定义 CONFIG_USBD_MANUFACTURER, CONFIG_USBD_PRODUCT_NAME, CONFIG_USBD_VENDORID 和 CONFIG_USBD_PRODUCTID, U-Boot则默认对target host表现为Linux设备。

            CONFIG_USBD_MANUFACTURER
            定义公司的名称
            - CONFIG_USBD_MANUFACTURER "my company"

            CONFIG_USBD_PRODUCT_NAME
            定义设备的名称
            - CONFIG_USBD_PRODUCT_NAME "acme usb device"

            CONFIG_USBD_VENDORID
            将此宏定义为你从USB-IF(Implementors Forum)分配的Vendor ID。为避免污染USB名字空间,要求该值必须是唯一的
            - CONFIG_USBD_VENDORID 0xFFFF

            CONFIG_USBD_PRODUCTID
            定义设备的Product ID
            - CONFIG_USBD_PRODUCTID 0xFFFF


- MMC 支持:
        U-Boot支持Intel PXA上的MMC控制器,定义CONFIG_MMC以使能支持。用与flash类似的方式将MMC设备映射到物理内存,即可在boot提示符下访问设备。 CONFIG_CMD_MMC使能命令行。MMC驱动支持FAT文件系统,可以通过CONFIG_CMD_FAT开启.

- 日志Flash文件系统支持:
        CONFIG_JFFS2_NAND, CONFIG_JFFS2_NAND_OFF, CONFIG_JFFS2_NAND_SIZE,
        CONFIG_JFFS2_NAND_DEV
        用于NAND设备上的默认分区的参数

        CFG_JFFS2_FIRST_SECTOR,
        CFG_JFFS2_FIRST_BANK, CFG_JFFS2_NUM_BANKS
        用于NOR设备上的默认分区的参数

        CFG_JFFS_CUSTOM_PART
        定义此宏来创建一个私有分区,你必须提供一个函数: struct part_info* jffs2_part_info(int part_num)

        如果只定义一个JFFS2分区,也可以定义下面的宏来禁用chpart命令。
        #define CFG_JFFS_SINGLE_PART    1
        在没有自定义分区的时候,这个是默认行为。

- 键盘支持:
  CONFIG_ISA_KEYBOARD
  定义该宏以支持标准PC键盘
  CONFIG_I8042_KBD
  支持标准PC键盘,US(默认)和GERMAN键盘布局(通过"keymap=de"切换)。为cfb_console提供函数i8042_kbd_init, i8042_tstc和i8042_getc。支持光标闪烁。
- 视频支持:
  CONFIG_VIDEO
  定义该宏以支持视频 (输出到视频).
  CONFIG_VIDEO_CT69000
  支持 Chips & Technologies 69000 视频芯片
  CONFIG_VIDEO_SMI_LYNXEM
  使能Silicon Motion SMI 712/710/810 视频芯片. 视频输出由环境变量'videoout' (1 = LCD and 2 = CRT). 如果不定义videoout,默认为CRT
  对CT69000 和 SMI_LYNXEM 驱动, 视频模式由环境变量'videomode'选择, 有两个选择:
  - "videomode=num"   'num' is a standard LiLo mode numbers.
  支持下列标准模式 (* 为默认值):
        Colors 640x480 800x600 1024x768 1152x864 1280x1024
  -------------+---------------------------------------------
        8 bits | 0x301* 0x303  0x305   0x161     0x307
       15 bits | 0x310 0x313  0x316   0x162     0x319
       16 bits | 0x311 0x314  0x317   0x163     0x31A
       24 bits | 0x312 0x315  0x318     ?     0x31B
  -------------+---------------------------------------------
  (i.e. setenv videomode 317; saveenv; reset;)
  - "videomode=bootargs" 所有视频参数从bootargs提取. (见 drivers/video/videomodes.c)
  CONFIG_VIDEO_SED13806
  使能 Epson SED13806 驱动. 该驱动支持8bpp和16bpp模式(由CONFIG_VIDEO_SED13806_8BPP或 CONFIG_VIDEO_SED13806_16BPP定义)
- 键盘支持:
  CONFIG_KEYBOARD
  定义该宏来使能自定义键盘支持。它简单地调用drv_keyboard_init(),该函数需要在单板相关文件中提供。目前使用该宏的单板只有RBC823。
- LCD 支持: CONFIG_LCD
  定义该宏以支持 LCD (输出至LCD); 同时从下列的显示支持中选择一种:
  CONFIG_ATMEL_LCD:
   HITACHI TX09D70VM1CCA, 3.5", 240x320.
  CONFIG_NEC_NL6448AC33:
   NEC NL6448AC33-18. Active, color, single scan.
  CONFIG_NEC_NL6448BC20
   NEC NL6448BC20-08. 6.5", 640x480.
   Active, color, single scan.
  CONFIG_NEC_NL6448BC33_54
   NEC NL6448BC33-54. 10.4", 640x480.
   Active, color, single scan.
  CONFIG_SHARP_16x9
   Sharp 320x240. Active, color, single scan.
   It isn't 16x9, and I am not sure what it is.
  CONFIG_SHARP_LQ64D341
   Sharp LQ64D341 display, 640x480.
   Active, color, single scan.
  CONFIG_HLD1045
   HLD1045 display, 640x480.
   Active, color, single scan.
  CONFIG_OPTREX_BW
   Optrex  CBL50840-2 NF-FW 99 22 M5
   or
   Hitachi  LMG6912RPFC-00T
   or
   Hitachi  SP14Q002
   320x240. Black & white.
  Normally display is black on white background; define
  CFG_WHITE_ON_BLACK to get it inverted.
- Splash Screen 支持: CONFIG_SPLASH_SCREEN
  如果设置该选项, 将检查环境变量"splashimage". 如果变量存在则显示一张BMP图像, 普通的logo, 版权及系统信息不再显示. "splashimage"指定了位图的存放地址. 终端也被重定向到"nulldev". 由于启动的早期就会加载Splash screen, 使用它可以实现安静的启动.
- Gzip 压缩的BMP支持: CONFIG_VIDEO_BMP_GZIP
  如果设置该选项, 除了支持标准BMP图像外, splashscreen或者bmp命令可以使用gzip压缩的BMP图像.
- 压缩支持:
  CONFIG_BZIP2
  如果设置了该选项,u-boot将包含对bzip2压缩映像的支持。如果不设置该选项,则只支持未压缩的或者gzip压缩的映像。
  注意: bzip2 算法需要大量的RAM, 因此malloc区大小(通过CFG_MALLOC_LEN定义)至少为4MB。
- MII/PHY 支持:
  CONFIG_PHY_ADDR
  PHY在MII总线上的地址。
  CONFIG_PHY_CLOCK_FREQ (ppc4xx)
  MII总线的时钟频率。
  CONFIG_PHY_GIGE
  如果设置该选项,则支持GE PHY的速度/双工检测
  CONFIG_PHY_RESET_DELAY
  有一些PHY (如Intel LXT971A) 在复位后需要经过一定的时延才能访问MII寄存器,需要设置该宏。该设置的单位为usec (LXT971A至少需设为300usec)。
  CONFIG_PHY_CMD_DELAY (ppc4xx)
  有一些PHY (如Intel LXT971A) 在发起MII命令时,需要额外的时延才能读取MII状态寄存器。
- 以太网支持:
  CONFIG_ETHADDR
  CONFIG_ETH2ADDR
  CONFIG_ETH3ADDR
  为对应的以太网接口定义一个默认的MAC地址, 当不能自动确定时使用该定义.
- IP 地址:
  CONFIG_IPADDR
  为默认的以太网接口定义一个默认的IP地址(在没有确定IP地址的时候使用,比如通过bootp确定IP地址)。
- 服务器 IP 地址:
  CONFIG_SERVERIP
  定义默认的TFTP服务器IP地址。在使用"tftboot"命令时,将使用该地址连接TFTP服务器。
- Multicast TFTP Mode:
  CONFIG_MCAST_TFTP
  定义该宏以支持组播TFTP(按rfc-2090); 比如与atftp工作. 可以允许从多个目标tftp同时下载相同的boot image. 注意: 使用的以太网驱动必须提供函数mcast()支持加入/离开一个组播组.
  CONFIG_BOOTP_RANDOM_DELAY
- BOOTP 恢复模式:
  CONFIG_BOOTP_RANDOM_DELAY
  如果你的网络中有多个系统使用BOOTP启动, 你可能需要避免出现所有系统同时发送BOOTP请求的情况(如因电源恢复产生的系统同时上电), 将导致BOOTP服务器过载. 定义 CONFIG_BOOTP_RANDOM_DELAY 将在发送BOOTP请求前插入随机延时. 插入规则如下:
  1st BOOTP request: delay 0 ... 1 sec
  2nd BOOTP request: delay 0 ... 2 sec
  3rd BOOTP request: delay 0 ... 4 sec
  4th and following
  BOOTP requests:  delay 0 ... 8 sec
- DHCP 高级选项:
  可以定义下列CONFIG_BOOTP_*宏来微调DHCP的功能:
  CONFIG_BOOTP_SUBNETMASK
  CONFIG_BOOTP_GATEWAY
  CONFIG_BOOTP_HOSTNAME
  CONFIG_BOOTP_NISDOMAIN
  CONFIG_BOOTP_BOOTPATH
  CONFIG_BOOTP_BOOTFILESIZE
  CONFIG_BOOTP_DNS
  CONFIG_BOOTP_DNS2
  CONFIG_BOOTP_SEND_HOSTNAME
  CONFIG_BOOTP_NTPSERVER
  CONFIG_BOOTP_TIMEOFFSET
  CONFIG_BOOTP_VENDOREX
  CONFIG_BOOTP_SERVERIP - TFTP服务器由serverip环境变量指定, 而不是BOOTP服务器.
  CONFIG_BOOTP_DNS2 - 当客户端从DHCP服务器请求DNS serverip时, 允许向客户端提供多个DNS服务器地址. 如果使能 CONFIG_BOOTP_DNS2, 辅助DNS服务器地址将存在环境变量"dnsip2"里. 当定义了CONFIG_BOOTP_DNS时, 主要DNS服务器地址总是存在变量"dnsip"中.
  CONFIG_BOOTP_SEND_HOSTNAME - 有些DHCP服务器可以动态更新DNS服务器,这个功能需要DHCP请求者的hostname. 如果定义了CONFIG_BOOTP_SEND_HOSTNAME, "hostname"环境变量的内容将根据选项12传递给DHCP服务器.
  CONFIG_BOOTP_DHCP_REQUEST_DELAY
  设置在收到"DHCP Offer"与发送"DHCP Request"间的32位延时(微秒单位 microsecond). 这规避了某些DHCP服务器不能100%响应"DHCP请求"的问题. 比如, 在180MHz的AT91RM9200处理器上,这个延时至少为1500 usec, 才能保证Windows Server 2003 DHCP服务器100%响应. 我建议定义在50,000 usec以上是比较安全的. 否则只能指望后面的重试会成功. 当然, DHCP超时与重试过程需要更长的时延.
 - CDP 选项:
  CONFIG_CDP_DEVICE_ID
  The device id used in CDP trigger frames.
  CONFIG_CDP_DEVICE_ID_PREFIX
  添加到MAC地址的2个字符前缀.
  CONFIG_CDP_PORT_ID
  包含端口ascii名称的printf格式串. 一般设为"eth%d", 对第一个以太网口为eth0, 对第二个以太网口为eth1等等.
  CONFIG_CDP_CAPABILITIES
  表示设备能力的32位整数. 0x00000010 表示普通的不转发的主机.
  CONFIG_CDP_VERSION
  包含软件版本的ascii字符串.
  CONFIG_CDP_PLATFORM
  包含平台名称的ascii字符串.
  CONFIG_CDP_TRIGGER
  A 32bit integer sent on the trigger.
  CONFIG_CDP_POWER_CONSUMPTION
  A 16bit integer containing the power consumption of the
  device in .1 of milliwatts.
  CONFIG_CDP_APPLIANCE_VLAN_TYPE
  VLAN id
- Status LED: CONFIG_STATUS_LED
  有几个配置可以用LED显示当前的状态. 比如, 在运行U-Boot代码时, LED快闪, 收到BOOTP应答时, 停止快闪, 在运行linux内核时慢闪(由linux内核的状态LED驱动支持). 定义 CONFIG_STATUS_LED 可以打开U-Boot的这个功能.
- CAN Support: CONFIG_CAN_DRIVER
  定义 CONFIG_CAN_DRIVER 在支持 CAN 的系统上使能驱动支持(可选), 比如 TQM8xxL.
- I2C 支持: CONFIG_HARD_I2C | CONFIG_SOFT_I2C
  使能I2C串行总线命令. 定义任一个宏可以在选择的CPU内包含相应的I2C驱动(但不能同时定义).
  可以在u-boot命令行下使用i2c命令(只要在CONFIG_COMMANDS中设置了CONFIG_CMD_I2C),并与基于 i2c的实时时钟芯片通讯。命令接口的说明见common/cmd_i2c.c.
  CONFIG_I2C_CMD_TREE 是一个推荐配置,它将所有i2c命令置于一个单独的'i2c'根命令下。老的'imm', 'imd', 'iprobe'等命令已经过时,以后可能会删除。
  CONFIG_HARD_I2C 选择一个I2C控制器硬件。
  CONFIG_SOFT_I2C 配置u-boot使用软件(即bit-banging)驱动代替CPM或相似的I2C支持。
  当你定义了CONFIG_HARD_I2C 或者 CONFIG_SOFT_I2C后,还有其它几个数值也需要定义。
  两种定义下都需要再定义 CFG_I2C_SPEED 为你预定的i2c总线运行频率(Hz单位),定义CFG_I2C_SLAVE为本节点的地址(即CPU的i2c节点地址)。
  目前,u-boot在mpc8xx上的i2c代码(cpu/mpc8xx/i2c.c)将CPU设为主节点,因此地址应设为0(见手册,如 MPC823e User's Manual p.16-473)。将CFG_I2C_SLAVE设为0。
  对CONFIG_HARD_I2C,上面就是所有需要的设置。
  如果你使用软件i2c接口(CONFIG_SOFT_I2C),还需要定义下列宏(例子取自include/configs /lwmon.h):
  I2C_INIT
  (可选). 定义用于使能i2c控制器或配置端口的命令。
  eg: #define I2C_INIT (immr->im_cpm.cp_pbdir |= PB_SCL)
  I2C_PORT
  (仅用于MPC8260 CPU). 定义要使用的I/O (the code assumes both bits are on the same port). 有效的值为0..3,对应端口A..D。
  I2C_ACTIVE
  使I2C数据线处于激活状态(driven)的必要代码。如果数据线对collector是开放的,定义可以为空。
  eg: #define I2C_ACTIVE (immr->im_cpm.cp_pbdir |=  PB_SDA)
  I2C_TRISTATE
  使I2C数据线处于三态(非激活)的必要代码。如果数据线对collector是开放的,定义可以为空。
  
  eg: #define I2C_TRISTATE (immr->im_cpm.cp_pbdir &= ~PB_SDA)
  I2C_READ
  定义一段代码,在I2C数据线为高时返回TRUE,为低时返回FALSE。
  eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
  I2C_SDA(bit)
  如果 <bit> 为TRUE,将I2C总线置为高,否则置为低。
  eg: #define I2C_SDA(bit) /
   if(bit) immr->im_cpm.cp_pbdat |=  PB_SDA; /
   else immr->im_cpm.cp_pbdat &= ~PB_SDA
  I2C_SCL(bit)
  如果 <bit> 为TRUE,将I2C时钟线置为高,否则置为低。
  eg: #define I2C_SCL(bit) /
   if(bit) immr->im_cpm.cp_pbdat |=  PB_SCL; /
   else immr->im_cpm.cp_pbdat &= ~PB_SCL
  I2C_DELAY
  每个时钟周期会调用该延时4次,因此它控制了数据传输速率。数据速率为 1 / (I2C_DELAY * 4)。通常定义成下面的样子:
  #define I2C_DELAY  udelay(2)
  CFG_I2C_INIT_BOARD
  当单板在i2c总线正在传输时复位,芯片会认为当前传输仍然在进行。对一些单板而言,直接访问i2c SCLK线是可行的,可以将处理器引脚作为GPIO使用,或者另连一根引脚连到总线上。如果定义了该选项,boards/xxx/board.c中自定义的i2c_init_board()例程会在boot过程较早阶段执行。
  CONFIG_I2CFAST (仅用于PPC405GP|PPC405EP)
  该选项使能u-boot基于环境变量'i2cfast'配置bd_info结构体内的bi_iic_fast[]标志。(见 i2cfast)
  CONFIG_I2C_MULTI_BUS
  该选项允许使用多个I2C总线,每个总线必须有一个控制器。不论在什么时候,只有一个总线是激活的。要切换到不同的总线,使用'i2c dev'命令。注意总线编号从0开始。
  CFG_I2C_NOPROBES
  当使用'i2c probe'命令时(或者老的'iprobe'命令),跳过本选项指定的一组I2C设备。如果设置了CONFIG_I2C_MULTI_BUS,表示指定一组总线-设备对,否则表示设备地址的一维数组。
  e.g.
   #undef CONFIG_I2C_MULTI_BUS
   #define CFG_I2C_NOPROBES {0x50,0x68}
  将忽略地址 0x50 和 0x68
   #define CONFIG_I2C_MULTI_BUS
   #define CFG_I2C_MULTI_NOPROBES {{0,0x50},{0,0x68},{1,0x54}}
  将忽略总线0上的地址0x50和0x68,总线1上的地址0x54
  CFG_SPD_BUS_NUM
  如果定义了宏,则表示DDR SPD的I2C总线号,如果没有定义,U-Boot假定SPD在I2C总线0。
  CFG_RTC_BUS_NUM
  如果定义了宏,则表示RTC的I2C总线号,如果没有定义,U-Boot假定RTC在I2C总线0。
  CFG_DTT_BUS_NUM
  如果定义了宏,则表示DTT的I2C总线号,如果没有定义,U-Boot假定DTT在I2C总线0。
  CONFIG_FSL_I2C
  如果想使用Freescale的I2C驱动(drivers/i2c/fsl_i2c.c),定义该宏。
  • 0
    点赞
  • 2
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值