转载于:http://blog.163.com/solylee@126/blog/static/1718231572010101910485331/

本人的开发环境是u-boot-1.1.6版本,fedora 9+虚拟机的linux系统,开发板cpu为at9263ek的板子,以下是本人在试验过程中总结出来的步骤,

(1)修改/u-boot-1.1.6/common/main.c第269行udelay
(10000);改为udelay
(10);

(2)修改/u-boot-1.1.6/lib_arm/board.c第459,udelay(100000);改为udelay(10);462行udelay(100000);改为udelay(10);

(3)经研究发现,严重影响速度的就一句话,即/u-boot-1.1.6/drivers/nand/nand_base.c第2634行 int nand_scan
(struct mtd_info *mtd, int maxchips)这个函数的最后一句return this->scan_bbt
(mtd);我屏蔽掉了这句,减少了4秒。改为return
0;

(4)
/u-boot-1.1.6.lcd/include/configs/at91sam9263ek.h

修改62行#define CONFIG_BOOTDELAY   3改为 #define
CONFIG_BOOTDELAY   0

修改启动时bootdelay的时间

(5)
/u-boot-1.1.6/include/configs/at91sam9263ek.h这个程序里面269行#define AT91C_ETH_TIMEOUT          30000改为#define
AT91C_ETH_TIMEOUT         3无法启动

(6) 严重影响速度的是/u-boot-1.1.6/board/at91sam9263ek/dm9161a.c这个函数的do….while语句177行

do {

at91_EmacReadPhy(p_mac,
AT91C_PHY_ADDR, DM9161_BMSR, &IntValue);

at91_EmacReadPhy(p_mac,
AT91C_PHY_ADDR, DM9161_BMSR, &IntValue);

tick++;

}
while (!(IntValue & DM9161_LINK_STATUS) && (tick <
AT91C_ETH_TIMEOUT));

在相关头文件中找到AT91C_ETH_TIMEOUT的定义,改变他的大小可减小启动速度。但是不知道会不会对uboot有影响

鉴于本人水平有限,以上方法都是本人试出来的,至于修改后导致的今后的启动无法进行或是其他bug,均不负责,有知道bug的欢迎指正

关于uboot的一些优化的更多相关文章

  1. Uboot+Linux启动时间优化

    动机 设备启动时间往往是项目立项时的一项重要技术指标.快速的启动时间意味着设备宕机时间的缩短,系统的快速恢复,也能改善用户使用时的体验感受,是一项重要的市场竞争力. 准备 优化启动时间之前,我们首先要 ...

  2. 嵌入式Linux启动优化手记2&nbsp;U…

    参考一下 原文地址:U-boot优化">嵌入式Linux启动优化手记2 U-boot优化作者:ZhaoJunling 既然不能使用新的U-boot,那就优化一点是一点,慢慢干吧. 1. ...

  3. 烧写ARM开发板系统教程----->uboot 、内核以及文件系统

    一.sd启动 将u-boot镜像写入SD卡,将SD卡通过读卡器接上电脑(或直接插入笔记本卡槽),通过"cat /proc/partitions"找出SD卡对应的设备,我的设备节点是 ...

  4. S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !

    大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...

  5. (五)u-boot2013.01.01 for TQ210:《移植前的准备及u-boot初编译》

    移植前的准备 移植前,要做的事情是搭建开发环境以及对U-boot源码的获取.首先说一下开发环境: 1.此次U-boot移植的硬件平台是天嵌的TQ210开发板: CPU:板载核心是S5PV210(Cor ...

  6. (一)u-boot2013.01.01 for TQ210:《Uboot简介》

    一直想写一个s5pv210硬件平台的u-boot的移植文档,但一直都忙着没时间写.先写一些u-boot的脚本分析吧,包括makefile,mkconfig,config.mk,主要侧重于语法句意的分析 ...

  7. 第2阶段——编写uboot之编译测试以及改进(3)

    编译测试: 1.将写好的uboot复制到linux下面 2.make编译,然后将错误的地方修改,生成boot.bin (编译出错的解决方案:http://www.cnblogs.com/lifexy/ ...

  8. 第2阶段——编写uboot之启动内核和制作Makefile(2)

    目标: 1   添加头文件setup.h和serial.h 2   写main函数   2.1 帮内核设置串口0, (内核启动会打印出启动信息) 2.2把内核读入到SDRAM 2.3设置参数(参考u- ...

  9. DM6446 uboot分析

    1. 顶层目录下的Makefile 按照配置顺序: davinci_config :    unconfig @./mkconfig $(@:_config=) arm arm926ejs davin ...

随机推荐

  1. 导入别人struts2项目可能要做的改变

    然后: 接着 再接着 最后

  2. 关于Javascript没有块级作用域和变量声明提升

    Javascript是没有块级作用域的,在语句块中声明的变量将成为语句块所在代码片段的局部变量.例如: if(true){ var x=3; } console.log(x); 结果输出3. 再如: ...

  3. C语言基础一

    C语言学习 C语言的特点 语言简单.紧凑.使用方便.灵活 运算符丰富 数据类型丰富 具有结构化的控制语句 语法限制不太严格,程序设计自由度大 C语言允许直接访问物理地址,可以对硬件进行直接操作 生成代 ...

  4. HYSBZ - 2038经典莫队算法题

    无修改的莫队 emmm莫队的几条性质,必须是离线的,复杂度是n*sqrt(n) 就是通过预处理查询区间,然后从(l,r)转移到(ll,rr),这样的复杂度是曼哈顿距离,即abs(l-ll)+abs(r ...

  5. Eclipse Dynamic Web Module 3.0 requires Java 1.6 or newer && Filter mapping specifies an unknown filter name characterEncodingFilter

    一直在宇宙最强的 IDE 下生长的,自然很难习惯 eclipse 这种开源且免费且各种版本且各种定制的 IDE 下没有少吃苦头. 最近用 maven 搭建了一个 springmvc/mybatis 的 ...

  6. 魔法效果——dijkstra+堆(邻接表存储)

    dijkstra本身每次要for一遍,才能找出最小的节点,但用了堆之后,直接取出堆首就可以了. 但要注意的一点是,c++自带的stl里的priority_queue本身是先入大出的,而我们要求的是最小 ...

  7. nginx负载均衡的简单实现

    负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...

  8. 1109. Group Photo (25)

    Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...

  9. LeetCode Largest Palindrome Product

    原题链接在这里:https://leetcode.com/problems/largest-palindrome-product/description/ 题目: Find the largest p ...

  10. andriod&linux&c函数原型

    1.dlopen 功能:打开一个动态链接库,并返回动态链接库的句柄 包含头文件: #include <dlfcn.h> 函数定义: void * dlopen( const char * ...