关于 U-BOOT 中 SPL 的移植一
2015-07-27 10:51
190 查看
出于兴趣,本人使用 JZ2440V2 的开发板进行 linux 的一些开发,纯属业余爱好,文中若有错误,还请见谅。
JZ2440V2 开发板厂商提供的 U-BOOT 是很古老的 v1.1.6 。写这篇文章是,最新的版本已经是 2015.07 了。
U-BOOT 经过多年发展,已经很庞大了,S3C2440 自动加载的 4K 代码,太小了,装不下 copy_code_to_sdram 前的代码。所以 要支持从 NAND flash 等启动,就要使用 SPL ,当然你也可以直接修改代码,将 copy_code_to_sdram 之前的代码压缩到 4K 以内,不过这样做就相当于回到了很古老的 U-BOOT 。
废话不多说了,进入主题。
SPL 是个什么东西,你可以理解为一个 U-BOOT 的 bootloader ,是个 U-BOOT 的简洁版,所以不添加驱动的情况下,编译出来大小只有 1K 左右,S3C2440 自动 boot 的 4K 代码完全足够。
要使用 SPL 首先要打开 SPL ,就是在 \configs\xxxx_defconfig 文件中加入下面一行
CONFIG_SPL=y
其他的配置可以放在 \include\configs\xxxx.h 的配置文件中
前段时间再网上找到的资料中,很多都提到了 CONFIG_SPL_BUILD 这个选项,在现行版本中,千万不要加到你的配置文件中,否则会出现莫名其妙的错误,读者可以自行实验一下。其中的原因我分析是,配置 CONFIG_SPL=y 之后, CONFIG_SPL_BUILD 这个选项在编译 u-boot-spl.bin 的时候会自动配置。
这样,编译,报错,按理讲应该可以了,估计是目前对 SPL 支持还不够好。
对于这个问题的解决,将在后面的博文中介绍。
JZ2440V2 开发板厂商提供的 U-BOOT 是很古老的 v1.1.6 。写这篇文章是,最新的版本已经是 2015.07 了。
U-BOOT 经过多年发展,已经很庞大了,S3C2440 自动加载的 4K 代码,太小了,装不下 copy_code_to_sdram 前的代码。所以 要支持从 NAND flash 等启动,就要使用 SPL ,当然你也可以直接修改代码,将 copy_code_to_sdram 之前的代码压缩到 4K 以内,不过这样做就相当于回到了很古老的 U-BOOT 。
废话不多说了,进入主题。
SPL 是个什么东西,你可以理解为一个 U-BOOT 的 bootloader ,是个 U-BOOT 的简洁版,所以不添加驱动的情况下,编译出来大小只有 1K 左右,S3C2440 自动 boot 的 4K 代码完全足够。
要使用 SPL 首先要打开 SPL ,就是在 \configs\xxxx_defconfig 文件中加入下面一行
CONFIG_SPL=y
其他的配置可以放在 \include\configs\xxxx.h 的配置文件中
前段时间再网上找到的资料中,很多都提到了 CONFIG_SPL_BUILD 这个选项,在现行版本中,千万不要加到你的配置文件中,否则会出现莫名其妙的错误,读者可以自行实验一下。其中的原因我分析是,配置 CONFIG_SPL=y 之后, CONFIG_SPL_BUILD 这个选项在编译 u-boot-spl.bin 的时候会自动配置。
这样,编译,报错,按理讲应该可以了,估计是目前对 SPL 支持还不够好。
对于这个问题的解决,将在后面的博文中介绍。
相关文章推荐
- Android检测网络状态,判断当前网络是否可用
- ubuntu下搭建wordpress博客平台
- Android中管理多个Fragment的最佳实践,完美解决保存状态与重影问题
- MyEclispe2014和MyEclipse 10 同时破解激活
- 科学阅读的基本原则是什么
- iOS开发-发送邮件(E-mail)方法整理合集(共3种)
- iOS开发-XCode常用快捷键整理
- iOS开发-使用Storyboard进行界面跳转及传值
- iOS开发-关闭/收起键盘方法总结
- iOS开发-Object-C获取手机设备信息(UIDevice)
- iOS开发-自动布局之autoresizingMask使用详解(Storyboard&Code)
- iOS开发-Object-C学习之结构体使用
- iOS开发-使用宏自定义输出(NSLog)
- iOS开发-简单获取View截图图像(Quartz2D)
- iOS开发-重写description方法,自定义控制台(log)信息
- iOS开发-drawRect方法小技巧(超短)
- iOS开发-在Swift里使用AFNetworking方法
- Swift学习-枚举(Enumerations)的使用方法
- iOS开发-Swift获取手机设备信息(UIDevice)
- UVALive 6914