您的位置:首页 > 其它

关于 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 支持还不够好。

对于这个问题的解决,将在后面的博文中介绍。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: