Uboot_for_Tiny6410_移植步骤详解

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Uboot_for_Tiny6410_移植步骤详解

一、设计要求

1.目的

1)掌握U-boot剪裁编写

2)掌握交叉编译环境的配置

3)掌握U-boot的移植

2.实现的功能

1)U-boot编译成功

2)移植U-boot,使系统支持从NAND FLASH启

二、设计方案

1.硬件资源

1)ARM处理器:ARM11芯片(Samsung

S3C6410A),基于ARM1176JZF-S核设计,运

行频率533Mhz, 最高可达667Mhz

2)存储器:128M DDR RAM,可升级至256M;

MLC NAND Flash(2GB)

3)其他资源:具有三LCD接口、4线电阻触摸

屏接口、100M 标准网络接口、标准DB9 五

线串口、Mini USB 2.0 接口、USB Host 1.1、

3.5mm音频输入输出口、标准TV-OUT 接口、

SD卡座、红外接收等常用接口;另外还引出

4路TTL串口,另1 路TV-OUT、SDIO2 接口

(可接SD WiFi)接口等;在板的还有蜂鸣器、

I2C-EEPROM、备份电池、AD可调电阻、8 个

中断式按键等。

2.软件资源

1)arm-linux-gcc-4.5.1(交叉编译)

2)u-boot-2010.09.tar.gz

arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz

三、移植过程

1.环境搭建

1)建立交叉编译环境

2)去这2 个网站随便下载都可以下载得到最

新或者你想要的u-boot。

(/batch.viewlink.

php?itemid=1694

ftp://ftp.denx.de/pub/u-boot/

下面是具体的对u-boot…的修改

一:下载并解压u-boot-gxb.tar.gz。

#tar xzvf u-boot-gxb.tar.gz

二:在顶层的目录下找到Makefile文件,并用gedit

打开

在Makefile中找到下面代码进行修改

########################################################################

## ARM1176 Systems

#########################################################################

smdk6400_noUSB_config \

smdk6400_config : unconfig

@mkdir -p $(obj)include $(obj)board/samsung/smdk6400

@mkdir -p $(obj)nand_spl/board/samsung/smdk6400

@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h

@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

@if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then \

echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\ else \

echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\ fi

@$(MKCONFIG) smdk6400 arm arm1176 smdk6400 samsung s3c64xx

@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

下面红色的为新增加的

#=====================更改部分=======================================

tiny6410_noUSB_config \

tiny6410_config : unconfig

@mkdir -p $(obj)include $(obj)board/samsung/tiny6410

@mkdir -p $(obj)nand_spl/board/samsung/tiny6410

@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h

@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

@if [ -z "$(findstring tiny6410_noUSB_config,$@)" ]; then \

echo "RAM_TEXT = 0x57e00000" >>

$(obj)board/samsung/tiny6410/config.tmp;\

else \

echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/tiny6410/config.tmp;\

fi

@$(MKCONFIG) tiny6410 arm arm1176 tiny6410 samsung s3c64xx

@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk

#==================================================================

三: arch/arm/cpu/arm1176/s3c64xx/cpu_init.S

#gedit arch/arm/cpu/arm1176/s3c64xx/cpu_init.S

#include

#include

.globl mem_ctrl_asm_init

mem_ctrl_asm_init:

/* DMC1 base address 0x7e001000 */

ldr r0, =ELFIN_DMC1_BASE

ldr r1, =0x4

str r1, [r0, #INDEX_DMC_MEMC_CMD]

ldr r1, =DMC_DDR_REFRESH_PRD

str r1, [r0, #INDEX_DMC_REFRESH_PRD]

ldr r1, =DMC_DDR_CAS_LATENCY

str r1, [r0, #INDEX_DMC_CAS_LATENCY]

ldr r1, =DMC_DDR_t_DQSS

str r1, [r0, #INDEX_DMC_T_DQSS]

ldr r1, =DMC_DDR_t_MRD

str r1, [r0, #INDEX_DMC_T_MRD]

ldr r1, =DMC_DDR_t_RAS

str r1, [r0, #INDEX_DMC_T_RAS]

ldr r1, =DMC_DDR_t_RC

str r1, [r0, #INDEX_DMC_T_RC]

ldr r1, =DMC_DDR_t_RCD

ldr r2, =DMC_DDR_schedule_RCD

orr r1, r1, r2

相关文档
最新文档