u-boot-2013.04-rc1 在ok6410的移植
#1.解压
tar -jxvf u-boot-2013.04-rc1.tar.bz2
#2.删除不必要的文件
/arch/下除arm
/arch/arm/cpu/下除arm1176和uboot.lds
/arch/arm/include/asm/arch-* 除 arch-64xx
/board/下除samsung
/board/samsung/下smdk*除smdk6400
/nand_spl/board/下除samsung
/include/configs/下除smdk6400.h
#3.准备ok6410的单板信息
mv board/samsung/smdk6400 board/samsung/ok6410
mv board/samsung/ok6410/smdk6400_nand_spl.c board/samsung/ok6410/ok6410_nand_spl.c
mv board/samsung/ok6410/smdk6400.c board/samsung/ok6410/ok6410.c
board/samsung/ok6410/ok6410.c 中 smdk6400 改为 ok6410 s3c6400 -> s3c6410
board/samsung/ok6410/makefile 中 smdk6400 改为 ok6410
#4.建立nand_spl
mv nand_spl/board/samsung/smdk6400 nand_spl/board/samsung/ok6410
nand_spl/board/samsung/ok6400/makefile 中 smdk6400 改为 ok6410
#5.建立头文件
mv arch/arm/include/asm/arch-s3c64xx/s3c6400.h arch/arm/include/asm/arch-s3c64xx/s3c6410.h
arch/arm/include/asm/arch-s3c64xx/s3c6410.h 中
#define DMC1_MEM_CFG 0X0001001A /* burst 4, 14-bit row, 10-bit col */
#define DMC1_MEM_CFG2 0XB45
#define DMC1_CHIP0_CFG 0X150F0 /* 0X5000_0000~0X5FFF_FFFF(256MB) */
mv include/configs/smdk6400.h include/configs/ok6410.h
include/configs/ok6410.h 中 S3C6400 改为 S3C6410
#define CONFIG_SYS_PROMPT "ok6410#"
#define CONFIG_IDENT_STRING "for ok6410"
#define PHYS_SDRAM_1_SIZE 0x10000000 /* 256MB */
#6.处理器makefile
arch/arm/cpu/arm1176/s3c64xx/makefile 中 S3C6400 改为 S3C6410
#7.其他
ok6410.c 和 lowlevel_init.S 中 smdk6400 -> ok6410 s3c6400 -> s3c6410
arch/arm/cpu/arm1176/s3c64xx中
cpu_init.S reset.S speed.c timer.c
drivers/usb/host/s3c64xx-hcd.c
drivers/mtd/nand/s3c64xx.c
drivers/serial/s3c64xx.c
include/common.h CONFIG_S3C6400 -> CONFIG_S3C6410
drivers/usb/host/ohci-hcd.c CONFIG_S3C6400 -> CONFIG_S3C6410
#8.顶层makefile
SMDK6400 -> OK6410
#9.编译
export BUILD_DIR=./build
make ok6410_config
make all
DEBUG:
#arm-linux-ld:/home/forlinx/u-boot/u-boot-2013.04-rc1/build/u-boot.lds:19: syntax error
/home/forlinx/u-boot/u-boot-2013.04-rc1/board/samsung/ok6410/u-boot-nand.lds 中
align -> ALIGN
#/home/forlinx/u-boot/u-boot-2013.04-rc1/build/nand_spl/board/samsung/ok6410/start.S:227: undefined reference to `_main'
nand_spl/board/samsung/ok6410/Makefile 中
SOBJS = start.o cpu_init.o lowlevel_init.o crt0.o
$(obj)crt0.S:
@rm -f $@
@ln -s $(TOPDIR)/arch/arm/lib/crt0.S $@
/arch/arm/lib/crt0.S 中注释
@bl coloured_LED_init
@bl red_led_on
#10.MMC启动
编写 arch/arm/cpu/arm1176/s3c64xx/s3c6410_sdboot.c
arch/arm/cpu/arm1176/s3c64xx/Makefile中
COBJS-$(CONFIG_S3C6410) += cpu_init.o speed.o
COBJS-$(CONFIG_BOOT_SD) += s3c6410_sdboot.o
COBJS-y += timer.o init.o
arch/arm/cpu/arm1176/start.S中
#if defined(CONFIG_BO