U-BOOT-2016.07移植 (第一篇) 初步分析
U-BOOT-2016.07移植 (第二篇) 添加单板
U-BOOT-2016.07移植 (第三篇) 代码重定位
目录
1. 编译和移植环境
编译环境:Ubuntu9.10
交叉编译工具:arm-linux-gcc 4.4.3
u-boot版本号:2016.07
移植目标单板信息: JZ2440v2
CPU: S3C2440
NAND: K9F2G08U0C
NOR: MX29LV160DBTI
网卡:DM9000A
2. 在board中创建单板目录
由于u-boot-2016.07支持S3C2410开发板,所以我们可以直接将S3C2410的单板相关文件都复制为S3C2440的
cd board/samsung/
cp smdk2410 -r smdk2440
- 修改Kconfig文件
if TARGET_SMDK2440
config SYS_BOARD
default "smdk2440"
config SYS_VENDOR
default "samsung"
config SYS_SOC
default "s3c24x0"
config SYS_CONFIG_NAME
default "smdk2440"
endif
- 修改MAINTAINERS文件
SMDK2440 BOARD
M: David Müller <d.mueller@elsoft.ch>
S: Maintained
F: board/samsung/smdk2440/
F: include/configs/smdk2440.h
F: configs/smdk2440_defconfig
- 修改Makefile
obj-y := smdk2440.o
obj-y += lowlevel_init.o
- 将smdk2410.c改名为smdk2440.c
mv smdk2410.c smdk2440.c
3. 创建单板相关头文件
同样,我们将include/configs/目录下的smdk2410.h文件复制为smdk2440.h
cd include/config
cp smdk2410.h smdk2440.h
- 修改smdk2440.h前面几行的几个配置选项
#define CONFIG_S3C2410 /* specifically a SAMSUNG S3C2410 SoC */
#define CONFIG_S3C2440 /* specifically a SAMSUNG S3C2440 SoC */
#define CONFIG_SMDK2410 /* on a SAMSUNG SMDK2410 Board */
#define CONFIG_SMDK2440 /* on a SAMSUNG SMDK2440 Board */
4. 创建defconfig文件
在我写的前一篇文章中,在分析Makefile的时候,我们知道配置单板的时候,需要用到configs/%_defconfig 文件,所以我们也将smdk2410_defconfig复制过来
cd configs/
cp smdk2410_defconfig smdk2440_defconfig
- 修改smdk2440_defconfig
CONFIG_ARM=y
CONFIG_TARGET_SMDK2440=y
CONFIG_BOOTDELAY=5
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="SMDK2440 # "
CONFIG_CMD_USB=y
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_DHCP=y
CONFIG_CMD_PING=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y
5. 修改arch/arm/Kconfig文件
vi arch/arm/Kconfig
添加以下内容:
config TARGET_SMDK2440
bool "Support smdk2440"
select CPU_ARM920T
source "board/samsung/smdk2440/Kconfig"
6. 尝试配置并编译
在做完上述步骤的时候,我们就完成了S3C2440单板的添加,虽然都是复制S3C2410的,但我们只要在S3C2410的配置文件基础上进行修改即可
make smdk2440_config
make
以上就是U-BOOT-2016.07添加S3C2440单板配置文件的方法,接下来就是修改代码移植了。