uboot 来源与移植简介

一.  uboot 简介

之前有文章对 uboot 进行了简单的说明。

Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段 bootloader 程序。这段 bootloader 程序会先初始化 DDR 等外设,然后将 Linux 内核从 flash(NAND NOR FLASH SD MMC ) 拷贝到 DDR 中,最后启动 Linux 内核。当然了, bootloader 的实 际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核。
所以我们要先搞定 bootloader ,很庆幸,有很多现成的 bootloader 软件可以使用,比如 U-Boot vivi RedBoot 等,其中以 U-Boot 使用最为广泛
uboot 的全称是 Universal Boot Loader uboot 是一个遵循 GPL 协议的开源软件, uboot 是一
个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、 USB 等高
级功能。 uboot 官网为:
http://www.denx.de/wiki/U-Boot/

1.  uboot的三种来源

种类 描述

uboot 官方的 uboot 代码

由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。

半导体厂商的 uboot 代码

半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好。

开发板厂商的uboot 代码

开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发

板的支持。

2.  uboot 如何的选择?

那么这三种 uboot 该如何选择呢?

首先, uboot 官方的基本是不会用的,因为支持太弱了。 最常用的就是半导体厂商或者开发板厂商的 uboot
如果你用的半导体厂商的评估板,那么就使 用半导体厂商的 uboot
如果你是购买的第三方开发板,比如正点原子的 I.MX6ULL 开发板, 那么就使用正点原子提供的 uboot 源码(也是在半导体厂商的 uboot 上修改的)。
当然了,你也 可以在购买了第三方开发板以后,使用半导体厂商提供的 uboot ,只不过有些外设驱动可能不支 持,需要自己移植,这个就是我们常说的 uboot 移植

3.  uboot移植

uboot 的移植并不是说我们完完全全的从零开始将 uboot 移植到我们现在所使用的开发板 或者 开发平台上。这个对于我们来说基本是不可能的,这个工作一般是半导体厂商做的,半导体厂商负责将 uboot 移植到他们的芯片上,因此半导体厂商都会自己做一个开发板,这个开发 板就叫做原厂开发板。

半导体厂商会将 uboot 移植到他们自己的原厂开发板上,测试好以后就会将这个 uboot 发布出 去,这就是大家常说的原厂 BSP 包。我们一般做产品的时候就会参考原厂的开发板做硬件,然 后,在原厂提供的 BSP 包上做修改,将 uboot 或者 linux kernel 移植到我们的硬件上。
这个就是 uboot 移植的一般流程:
①   在 uboot 中找到参考的开发平台,一般是原厂的开发板。
②   参考原厂开发板移植 uboot 到我们所使用的开发板上。

正点原子的 I.MX6ULL 开发板参考的是 NXP 官方的 I.MX6ULL EVK 开发板做的硬件,因此,我们在移植 uboot 的时候就可以以 NXP 官方的 I.MX6ULL EVK 开发板为蓝本。

你可能感兴趣的:(uboot,系统移植篇,linux,arm开发)