1 uboot移植
1.1 移植准备工作
1.1.1 安装交叉编译工具链
版本:arm-linux-gcc 4.4.1
环境:ubuntu14.04.01LTS
1.1.2建立OK6410配置项
从官网下载u-boot-2012.10.tar.bz2,由于uboot支持的smdk6400单板与我们的板子OK6410最相似,所以修改是基于smdk6400进行的,初步修改uboot建立OK6410配置项。
详细修改过程如下:
进入u-boot-2012.10顶层目录,在board/Samsung目录下,新建一个ok6410文件夹,把smdk6400下的所有文件拷贝到ok6410下面。将smdk6400.c改为ok6410.c,将smdk6400_nand_spl.c改为ok6410_nand_spl.c。修改ok6410文件夹下的Makefile:将COBJS-y := smdk6400.o改为COBJS-y := ok6410.o。
在nand_spl/board/samsung下,新建一个ok6410文件夹,把smdk6400下的所有文件拷贝到ok6410下面。修改ok6410文件夹下的Makefile:COBJS = nand_boot.o nand_ecc.o s3c64xx.osmdk6400_nand_spl.o nand_base.o改为COBJS = nand_boot.o nand_ecc.o s3c64xx.o ok6410_nand_spl.o nand_base.o;@ln -s$(TOPDIR)/board/samsung/smdk6400/lowlevel_init.S $@改为@ln -s $(TOPDIR)/board/samsung/ok6410/lowlevel_init.S$@;$(obj)smdk6400_nand_spl.c:
@rm -f $@
@ln -s$(TOPDIR)/board/samsung/smdk6400/smdk6400_nand_spl.c $@改为$(obj)ok6410_nand_spl.c:
@rm -f $@
@ln -s$(TOPDIR)/board/samsung/ok6410/ok6410_nand_spl.c $@
在include/configs文件夹下,修改板子配置文件。将smdk6400.h拷贝一份为ok6410.h。修改ok6410.h将CONFIG_S3C6400改为CONFIG_S3C6410,CONFIG_SMDK6400改为CONFIG_OK6400。
在arch/arm/include/asm/arch-s3c64xx文件夹下,将s3c6400.h拷贝一份为s3c6410.h并修改#ifndef __S3C6400_H__为#ifndef __S3C6410_H__;修改
#define __S3C6400_H__为#define __S3C6410_H__。
进入arch/arm/cpu/arm1176/s3c64xx,打开Makefile,将CONFIG_S3C6400修改为CONFIG_S3C6410。
进入board/samsung/ok6410,打开ok6410.c和lowlevel_init.S;
进入arch/arm/cpu/arm1176/s3c64xx,打开cpu_init.S、reset.S、speed.c和timer.c;
进入/drivers/mtd/nand,打开s3c64xx.c;
进入/drivers/serial,打开s3c64xx.c;
进入/drivers/usb/host,打开s3c64xx-hcd;
将上面文件中的#include <asm/arch/s3c6400.h>改为#include <asm/arch/s3c6410.h>
修改uboot顶层的Makefile,修改编译工具:将CROSS_COMPILE ?改为CROSS_COMPILE ?= arm-linux-
在下面代码处添加#########################################################################
## ARM1176 Systems
#############################