u-boot-2010.3移植到Tiny6410问题总结

问题1:

  u-boot-2010.3中nand_spl文件夹的作用:实现从Nandflash启动在编译是会建立几个链接文件,用这几个链接文件生成u-boot-spl-16k.bin

  nand_spl/board/samsung/smdk6400文件下有config.mk,Makefile和u-boot.lds三个文件,看看这三个文件再加上uboot根目录下的makefile文件就可以大概明白nand_spl这种方式是如何实现的了:

在uboot根目录下的makefile中有:

$(obj)u-boot-nand.bin:nand_spl $(obj)u-boot.bin
cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin

是将两个bin档用这种方式合并成一个bin档!!!

更具体点说,就是在nand_spl目录下的u-boot-spl.bin做了以下事情:

1.设置cpu为svc模式

2.关闭开门狗和中断

3.初始化系统时钟

4.禁用MMU和Cache

5.初始化sdram控制器

6.设置sp,跳到刚才提到的nand_boot.c里面的nand_boot函数,这个函数初始化nand的控制器,并将4K之后的u- boot.bin image从nand中load到sdram中,然后跳转到u-boot.bin image的开始处继续后续的工作。

  具体说明见:http://blog.csdn.net/dndxhej/article/details/8227565

问题2:

  bootm函数只能引导uImage内核,不能引导zImage内核,可以用uboot的mkimage工具将zImage转换为uImage,其实uImage只不过是在zImage的基础上添加了64字节的头部,里面包含一些内核的信息,bootm函数需要读取这些信息!

  附带:uboot的工具mkimage使用方法

时间: 2024-11-02 17:03:25

u-boot-2010.3移植到Tiny6410问题总结的相关文章

u-boot移植为tiny6410步骤

1. 修改顶层Makefile文件 2. 修改arch/arm/cpu/arm1176/s3c64xx/cpu_init.S 3. 修改arch/arm/cpu/arm1176/s3c64xx/Makefile 4. 修改arch\arm\include\asm\arch-s3c64xx\s3c64x0.h 5. 修改arch/arm/include/asm/arch-s3c64xx/s3c6400.h 6. 创建tiny6410的文件夹 在board/samsung建立tiny6410的文件夹

u-boot-2012.04.01移植到Tiny6410!

1.下载u-boot-2012.04.01 http://ftp.denx.de/pub/u-boot/ 2.解压文件 # tar zxvf u-boot-2012.04.01.tar.bz 3.进入uboot根目录.新建一个单板 //Uboot里面没有6410单板只有6400单板的文件用6400的文件创建一个6410单板: # cd /borad/samsung # mkdir smdk6410  //创建6410单板文件夹 4.复制smdk6400文件到创建的文件目录 # cp smdk64

移植SDL运行库到Tiny6410 上

在移植游戏之前, 我们首先需要将 SDL/SDL_mixer/SDL_ttf/SDL_image 这四个库移植到 Tiny6410 上, 另外还需要 iconv 库. libiconv-1.13.1.tar.gz Iconv 库 下载:http://ftp.gnu.org/pub/gnu/libiconv/SDL-1.2.14.tar.gz SDL 库 http://www.libsdl.org/download-1.2.phpSDL_image-1.2.8.tar.gz SDL_image 库

系统移植总结

menu 简述嵌入式linux系统移植的主要内容有哪些? 1> 搭建交叉开发环境 2> 移植bootloader 3> 移植linux内核 4> 制作根文件系统 一.搭建交叉开发环境 1.交叉编译工具链的制作(GCC交叉编译器的生成) (1)       下载Binutils.GCC.Glibc源码 (2)       配置并编译Binutils取得所需的汇编和链接程序(连接程序ld,汇编程序as,主要为GNU系统提供汇编和连接工具) (3)       配置并编译GCC源码生成G

移植u-boot-2012.4到Tiny6410_1G_Nandflash

1.打开根目录下的Makefile文件 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 "

Linux-2.6.39在Tiny6410上的移植

Linux内核版本号:linux 2.6.39交叉编译工具:arm-linux-gcc 4.5.1Linux内核下载:www.kernel.org开发板:友善之臂Tiny6410 一.解压内核 tar xzvf linux-2.6.39.tar.gz 二.修改Makefile ARCH ?= $(SUBARCH) CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) 改成: ARCH ?= arm CROSS_COMPILE ?= arm-lin

Tiny6410移植tslib

一.将Tiny6410一线触摸程序改成输入设备(input device) 由于友善一线触摸下位机不开源,所以只能在官方提供的内核模块上进行修改. 官方源代码:http://pan.baidu.com/s/1bog4rZD 1.修改模块加载函数 1 static int __init dev_init(void) 2 { 3 int ret; 4 #ifdef TS_INPUT_DRIVER 5 /* alloc input system device */ 6 ts.input = input

X-009 FriendlyARM tiny4412 uboot移植之SD Card用起来Kernel boot起来

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  开发环境:

Linux-2.6.39在Tiny6410上的移植 - 外设驱动移植

Linux内核版本号:linux 2.6.39 交叉编译工具:arm-linux-gcc 4.5.1 Linux内核下载:www.kernel.org 开发板:友善之臂Tiny6410 LCD:友善之臂S70 一.移植LED驱动 打开arch/arm/mach-s3c64xx/mach-mini6410.c添加下列代码: 1 static struct gpio_led tiny6410_gpio_led[] = { 2 [0] = { 3 .name = "led1", //设备名