【前言】
这些文字只是草稿,希望对有需要的朋友有所朋友。欢迎一起探讨交流。
【问题】
如何才能从无到有,针对某个SOC的板子,进行移植u-boot?
【正文】
在给一个块ARM板子,移植Linux操作系统之前,都是要先移植好U-boot的。所以,我们也就一个问题,如何针对某块板子移植u-boot。通常,每个SOC(arm芯片)出现在市面上,SOC厂商都会开发一款demo板,并且有对应的BSP和SDK包。这样,我们在针对某款SOC做项目开发时,只要在SOC厂商提供的u-boot上,进行修改就可以了。但是,作为SOC原厂商,就需要针对自研的SOC/demo板,重新移植U-boot。
在某种意义上,u-boot也算是一个只有一个进程的操作系统。它需要timer进行定时,需要控制台交互信息,对内存也有简单地管理,有各种各样的设备驱动可以驱动对应的设备,支持一些简单的文件系统(例如vfat格式)。不过,U-boot不具有进程调度和管理的功能,也不支持中断,它只有一个进程。
在这这专题文章中,我只会涉及到最小系统的u-boot移植。最小系统的概念,在这里就简单定义为只包含CPU、TIMER、UART和DDR四个模块。在u-boot中,只要移植好针对这四个模块的代码,u-boot就可以正常跑起来。后续也就可以移植和调试其他硬件模块的u-boot驱动了。
这个专题大概会分为以下几部分进行讲述。如果大家对这些内容都理解了,并且也自己动手移植了u-boot,那么相信以后遇到u-boot的各种各样的问题,自己也就慢慢调试地解决问题了。
0)前言篇
本文
1)Makefile篇
详细讲述u-boot的Makefile体系。理解了U-boot目录下的所有相关Makefile文件之后,也就明白了,移植U-boot过程中,为何要创建各个目录;或者说,编译针对某个SOC 板子的U-boot时,相应地会编译哪些目录下的文件。
2)移植篇
在前篇的基础上,讲述如何针对(),从无到有进行移植u-boot。
3)u-boot启动分析篇
分析u-boot的启动流程,整理清楚U-boot从启动到加载并启动Linux的整个过程。
阅读(2115) | 评论(0) | 转发(0) |