百问网Linux技术区电子积木?精致JZ2440开发板 支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持MMU,加速系统启动)

1  /  1  页   1 跳转 查看:1355

支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持MMU,加速系统启动)

支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持MMU,加速系统启动)

专门针对Z2440开发板量身打造的u-boot-1.3.4(其他2440的开发需要稍作修改),支持下列特性:
  • 支持NAND FLASH启动
  • 支持USB device 下载 (配合dwn工具下载)
  • 支持DM9000以太网板,可以用 tftpboot 和 nfs 功能
  • 支持启动信息显示在LCD (消除上一版本启动时LCD屏会闪一下的问题,不可见字符显示不正常问题)
  • 支持串口和LCD双显示
  • 支持USB host,支持U盘,不影响usb device下载功能,暂不支持usb键盘 (新增)
  • 支持NAND 硬件ECC,和软件256字节ECC计算结果相同,加快了NAND FLASH读写数据的速度
  • 增加MMU的支持,可以加速NAND FLASH读写,从而加速系统启动过程 (试验性,MMU采用平行映射,只用了段映射)
注意:MMU的代码属于试验性代码,开启MMU后可能导致某些模块工作不正常,这个还需要慢慢修改,如果不想要MMU支持就关掉CONFIG_USE_MMU。
另外,由于加了usb host和fat支持,以前程序载入到0x33f80000已经不适合了(程序+bss段已经超过512K,导致LCD显示不正常),还有支持了MMU后LCD的framebuffer映射到SDRAM的最后1M空间(映射为写穿模式),其它SDRAM空间映射为回写模式,其余区域映射为无cache,无buffer模式。现在将程序载入地址改为0x33e00000

打补丁方法:

  • 下载u-boot-1.3.4,这个可以在 ftp://ftp.denx.de/pub/u-boot/ 下载
  • 解压下载的u-boot-1.3.4.tar.bz2
  • 将附件解压开(得到denx.bmp, jz2440.patch),把denx.bmp拷贝到 u-boot-1.3.4/tools/logos/,覆盖原来的图片
  • 把jz2440.patch拷贝到u-boot-1.3.4目录下,进入u-boot-1.3.4目录,用下面的命令给源码打补丁
    cat jz2440.patch | patch -p1 -R
  • 编译u-boot,用下面的命令
        make O=../build/u-boot jz2440_config
        make O=../build/u-boot
        大约半分钟之后就编译完成,注意编译的中间文件和目标文件不在源码目录,而是在上一级目录下的build/u-boot,这样编译的好处是不用破坏源码树。
  • 把编译出来的u-boot.bin烧写到NAND FLASH的0地址,重启看看效果吧。


请将发现支持MMU后工作不正常的模块报告出来,我会查原因来完善代码。

附件附件:

下载次数:69
文件类型:application/octet-stream
文件大小:
上传时间:2010-3-29 18:11:43
描述:bz2

最后编辑henry.li 最后编辑于 2010-03-29 18:12:33
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4

LCD显示效果非常漂亮!
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持硬件...

新增 “支持NAND FLASH 硬件ECC” 功能。
另外,修改usb host代码,目前用gcc 4.3.4编译出来的u-boot.bin 可以支持u盘了
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持硬件...

这是个不错的项目,为什么不用一个代码仓库hosting的网站,比如gitorious.org,来公开源代码的仓库呢?一方面可以让大家看的到代码每一步的修改,另一方面也方面更多的人一起参与进来。
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持硬件...

这个纯属个人业余爱好,本来u-boot就是开源的,我不过是把修改的部分公布出来而已,欢迎大家继续修改,支持更多特性
 

回复 5F henry.li 的帖子

支持。这是个不错的项目,为什么不用一个代码仓库hosting的网站,比如gitorious.org,来公开源代码的仓库呢?一方面可以让大家看的到代码每一步的修改,另一方面也方面更多的人一起参与进来。
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持硬件...

我打算在u-boot里面支持MMU,这样从FLASH里面读取Linux映像的速度会加快,谁有vivi的代码,上传一份给我参考一下,谢谢。
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持硬件...

请问在U-boot里是怎么保证显存的地址是4M对齐的呢?
 

回复:支持<电子积木.精致JZ2440开发板>的u-boot-1.3.4 (更新,新增支持硬件...

不需要保证显存是4M对齐的吧,保证是4K对齐的
在start_armboot()中
#ifdef CONFIG_LCD
    /* board init may have inited fb_base */
    if (!gd->fb_base) {
#        ifndef PAGE_SIZE
#         define PAGE_SIZE 4096
#        endif
        /*
         * reserve memory for LCD display (always full pages)
         */
        /* bss_end is defined in the board-specific linker script */
        addr = (_bss_end + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1);
        size = lcd_setmem (addr);
        gd->fb_base = addr;
    }
#endif /* CONFIG_LCD */
显存的位置在BSS段结束后的 4K对齐位置,当然你觉得这个位置不爽的话也可以自己指定
 
1  /  1  页   1 跳转

地址:广东省深圳市南山区南山大道3003号久商大厦C-1406;邮编:518052;电话:0755-86200561

粤ICP备09041549号, 版权所有 百问网   Sitemap

Powered by Discuz!NT 2.0.1214    Copyright © 2001-2010 Comsenz Inc.
Processed in 0.046875 second(s) , 4 queries.
返顶部