uboot的配置文件介绍

17 篇文章 2 订阅
5 篇文章 1 订阅

u-boot 支持很多开发板, 而开发板外设不同, 所以给每个开发板都会有一个自己的配置头文件, 这个文件是 include\configs\板名.h,u-boot 中使用到所有宏定义都应该在定义在这个文件中, 这个文件有两类宏定义, 一种 CFG_开头, 一种是 CONFIG_开头的。
CONFIG_开头的宏一般使用来定义芯片级的功能, CFG_开头的宏一般 是用来定义板级功能。头文件中定义的宏应该全局宏, 而不是针对某个模块内部使用的, 一般是裁剪功能的宏。以 tiny4412 开发板为示例:
include\configs\tiny4412.h
系统时钟配置, 根据开发板使用的外部晶振时钟配置。

#define CONFIG_SYS_CLK_FREQ 24000000
/* DRAM 起始地址 */
#define CONFIG_SYS_SDRAM_BASE 0x40000000

像 EXYNOS4412 有两个起始内存, 0x4000_0000 和 0xA000_0000, 要根据自己的硬件连接情况修改。
以下几项是关于命令行功能开启, 几乎所有的版本都会支持。

#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_CMDLINE_TAG
#define CONFIG_INITRD_TAG
#define CONFIG_CMDLINE_EDITING
/* 配置 u-boot 的堆空间大小
* Size of malloc() pool
* 1MB = 0x100000, 0x100000 = 1024 * 1024
*/
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + (1 << 20))
配置调试串口 , 一般是串口 0
#define CONFIG_SERIAL0 1
串口波特率配置
#define CONFIG_BAUDRATE 115200

以下是 u-boot 命令配置: 第个一个宏对应一个命令或一类命令。
宏特征: CONFIG_CMD_命令前缀, 后面是命名名。
#include <config_cmd_default.h> //所有版本的 u-boot 都支持的命令。

#define CONFIG_CMD_PING// ping 命令
#define CONFIG_CMD_USB//usb 命令
#define CONFIG_CMD_MOVINAND//movi 命令
#undef CONFIG_CMD_FLASH//flash 命令
#undef CONFIG_CMD_IMLS
#define CONFIG_CMD_CACHE
//操作 cache 的命令
#define CONFIG_CMD_REGINFO
#define CONFIG_CMD_MMC
//mmc 类命令
#define CONFIG_CMD_MOVI//movi 命令
#define CONFIG_CMD_ELF//操作 elf 命令
#define CONFIG_CMD_FAT

//fat 类命令 fatls,fatload,fatinfo

#define CONFIG_CMD_MTDPARTS//mtd 分区命令, 一般针对 NandFlash
#define CONFIG_CMD_EXT2//ext2 文件系统相关命令

所以, 用户如果想增加或删除某一个命令直接增加相应宏或取消相应的宏定义就可以了。 如果要取消的命令定义在 config_cmd_default.h 中, 可以使用#undef 取消宏定义。

环境变量配置: 非常重要! 以下默认配置, 可以通过 setenv 修改。
 

#define CONFIG_ETHADDR 00:40:5c:26:0a:5b // MAC 地址
#define CONFIG_NETMASK 255.255.255.0 // 子网掩码
#define CONFIG_IPADDR 192.168.0.20 //开发板 IP 地址
#define CONFIG_SERVERIP 192.168.0.10 //网络服务器 IP 地址
#define CONFIG_GATEWAYIP 192.168.0.1 //网关 IP
#define CONFIG_BOOTDELAY 3 //启动延时参数
/* Default boot commands for Android booting. */
#define CONFIG_BOOTCOMMAND "movi read kernel 0 40008000;movi read rootfs 0 41000000
100000;bootm 40008000 41000000"
CONFIG_BOOTCOMMAND: 对应于环境变量的 bootcmd, 默认启动命令, 就是倒计时为 0 时候会执行命
名。
#define CONFIG_BOOTARGS "root=/dev/mmcblk0p1 rootfstype=ext4 console=ttySAC0,115200
init=/linuxrc uhost0=y ctp=2 skipcali=y" //传递给操作系统的启动参数
CONFIG_BOOTARGS : 对应于环境变量的 bootargs, 是传递给内核的信息。
串口命令提示符号: 一般都会修改成自己的喜欢的
#define CONFIG_SYS_PROMPT "TINY4412 # "
表示可以输入多少个字节再回车
#define CONFIG_SYS_CBSIZE 256 /*串口缓冲区大小 */
串口打印缓冲大小, 最小应该是串口缓冲区大小加命令提示符号大小
#define CONFIG_SYS_PBSIZE CONFIG_SYS_CBSIZE+ sizeof(CONFIG_SYS_PROMPT) /* Print Buffer Size */
命令最多能带个多少参数(以空格分割的字符串)
#define CONFIG_SYS_MAXARGS 16
启动参数缓冲区大小, 一般等于串口缓冲区大小
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
定时器 1 秒计数多少次, 这个定时器配置有关, 用于倒计时。
#define CONFIG_SYS_HZ 1000
有效波特率, 通过 setenv 可以设置的波特率速度定义:
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
栈区大小, 根据自己的需要配置, 一般 256K 够了。
#define CONFIG_STACKSIZE (1 << 10) /* 256 KiB */
板上有多少个内存芯片数量, tiny4412 有 4 片 256M 内存。
#define CONFIG_NR_DRAM_BANKS 4
一片内存大小: tiny4412 是 256 MB
#define SDRAM_BANK_SIZE 0x10000000 /* 256 MB */
第 1 片内存的起始地址:
#define PHYS_SDRAM_1 CONFIG_SYS_SDRAM_BASE /* SDRAM Bank #1 */
第 1 片内存的大小:
#define PHYS_SDRAM_1_SIZE SDRAM_BANK_SIZE
第 2 片内存的起始地址: 等于第 1 片地址加上大小
#define PHYS_SDRAM_2 (CONFIG_SYS_SDRAM_BASE + SDRAM_BANK_SIZE) /* SDRAM Bank #2
*/
第 2 片内存的大小:
#define PHYS_SDRAM_2_SIZE SDRAM_BANK_SIZE
第 3 片内存的起始地址: 等于第 1 片地址加上 2*第 1 片大小(大小都相同)
#define PHYS_SDRAM_3 (CONFIG_SYS_SDRAM_BASE + 2 * SDRAM_BANK_SIZE) /* SDRAM Bank
#3 */
#define PHYS_SDRAM_3_SIZE SDRAM_BANK_SIZE
#define PHYS_SDRAM_4 (CONFIG_SYS_SDRAM_BASE + 3 * SDRAM_BANK_SIZE) /* SDRAM Bank
#4 */
#define PHYS_SDRAM_4_SIZE SDRAM_BANK_SIZE
#define PHYS_SDRAM_5 (CONFIG_SYS_SDRAM_BASE + 4 * SDRAM_BANK_SIZE) /* SDRAM Bank
#5 */
#define PHYS_SDRAM_5_SIZE SDRAM_BANK_SIZE
#define PHYS_SDRAM_6 (CONFIG_SYS_SDRAM_BASE + 5 * SDRAM_BANK_SIZE) /* SDRAM Bank
#6 */
#define PHYS_SDRAM_6_SIZE SDRAM_BANK_SIZE
#define PHYS_SDRAM_7 (CONFIG_SYS_SDRAM_BASE + 6 * SDRAM_BANK_SIZE) /* SDRAM Bank
#7 */
#define PHYS_SDRAM_7_SIZE SDRAM_BANK_SIZE
#define PHYS_SDRAM_8 (CONFIG_SYS_SDRAM_BASE + 7 * SDRAM_BANK_SIZE) /* SDRAM Bank
#8 */
#define PHYS_SDRAM_8_SIZE SDRAM_BANK_SIZE

环境变量存储位置配置:
没有 NorFlash 则定义 CONFIG_SYS_NO_FLASH
#define CONFIG_SYS_NO_FLASH 1
长度:
#define CONFIG_SYS_MONITOR_LEN (256 << 10) /* 256 KiB */
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值