IPB

Welcome Guest ( Log In | Register )

> [转]移植uboot到ARMer9开发系统上, by lane@www.embeder.com
猫猫草
post 2007-04-27 08:55:56, Fri
Post #1


猫猫猫
***

Group: Power Cat
Posts: 626
Joined: 2006-12-8
Member No.: 2



首先了解ARMer9开发系统硬件设计上和三星原装SMDK2410之间的区别。

让uboot在ARMer9开发系统上跑起来,目前只需要关注如下的硬件区别,解决了下面这个问题,uboot就可以在ARMer9开发系统上正常地从串口输出,进入提示符。很多命令都可以使用,当然有些命令需要做修改。

SMDK2410 : nor flash 是AMD的1M的;
ARMer9: 是Intel E28F128J3A, 两片并联,一共32M Bytes.

下载一个uboot-1.1.1.tar.bz2.;

tar jxvf uboot-1.1.1.tar.bz2;

在uboot目录board/smdk2410 下的flash.c需要修改。这个是Flash的驱动,如何写,需要参考E28F128J3A的Datasheet. 这里我们提供一个我们修改好的flash.c文件,您只需要将这个文件覆盖掉board/smdk2410 下的文件即可。

(注意:你要安装了交叉编译器才行哦)

修改uboot目录下的Makefile,将
ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
endif

修改成

ifeq ($(ARCH),arm)
CROSS_COMPILE = /opt/host/armv4l/bin/armv4l-unknown-linux-
endif

修改processor.h中:
union debug_insn
{
u32 arm;
u16 thumb;
}
修改成:
union debug_insn
{
u32 arm_mode;
u16 thumb_mode;
}

然后配置板子
make smdk2410_config

然后
make

在uboot目录生成uboot.bin;

通过sjf2410w程序将uboot.bin下载到nor flash中, 地址为0的地方;

串口接在UART0上,uboot的启动信息将输出。

你将发现很多命令都可以使用了。uboot果然强大。
Attached File(s)
Attached File  flash.c.rar ( 5.97k ) Number of downloads: 367
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Replies
猫猫草
post 2007-04-27 08:57:15, Fri
Post #2


猫猫猫
***

Group: Power Cat
Posts: 626
Joined: 2006-12-8
Member No.: 2



常用U-BOOT命令介绍
1. ?或者help,得到所有命令列表;
2. help: help usb, 列出USB功能的使用说明
3. ping:注:通常只能运行uboot的系统PING别的机器
4. setenv: 设置环境变量
setenv serverip 10.36.20.49,设置TFTP Server的IP地址;
setenv ipaddr 10.36.20.200,设置IP地址;
setenv bootcmd ‘tftp 32000000 vmlinux; kgo 32000000’,设置启动命令(实际上就是一个脚本);
5. saveenv:在设置好环境变量以后, 保存环境变量值到flash中间;
6. tftpboot:tftpboot 0x800000 vmlinux, 将TFTP Server(IP = 环境变量中设置的serverip)中/tftpdroot目录 下的vmlinux通过TFTP协议下载到物理内存0x800000开始的地方。
7. kgo:启动没有压缩的linux内核,kgo 0x800000
8. bootm:启动通过UBOOT TOOLS—— mkimage制作的压缩LINUX内核, bootm 3200000;
9 flinfo:列出flash的信息
10. protect: 对FLASH进行写保护或取消写保护, protect on 1:0-3(就是对第一块FLASH的0-3扇区进行保护),protect off 1:0-3取消写保护
11. erase: 删除FLASH的扇区, erase 1:0-2(就是对每一块FLASH的0-2扇区进行删除)
12. cp: 将内存中数据烧写到Flash, cp 0x800000 0xc0000 0x40000(把内存中0x800000开始的0x40000字节复制到0xc0000处);
13. mw: 对RAM中的内容进行写操作, mw 32000000 ff 10000(把内存0x32000000开始的0x10000字节设为0xFF);
14. md: 显示RAM中的内容, md 0x800000;
15. loadb: 准备用 KERMIT协议接收来自kermit或超级终端传送的文件。
16. nfs: nfs 32000000 192.168.0.2:aa.txt , 把192.168.0.2(LINUX 的NFS文件系统)中的NFS文件系统中的aa.txt 读入内存0x32000000处。
17. fatls:列出DOS FAT文件系统, 如:fatls usb 0列出第一块U盘中的文件
18. fatload: 读入FAT中的一个文件,如:fatload usb 0:0 32000000 aa.txt
19. usb相关的命令:
usb start: 起动usb 功能
usb info: 列出设备
usb scan: 扫描usb storage(u 盘)设备
Go to the top of the page
 
+Quote Post

Posts in this topic


Reply to this topicStart new topic
4 User(s) are reading this topic (4 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 2024-12-25 02:23