特点和功能
U-boot
Yamon
支持的cpu和board
1. 支持种类繁多,包括arm的各个系列,ppc,mips
2. mips的支持较差,目前支持au1100,au1500系列,4kec的需要自己移植
(工作量主要在起始代码的初始化部分,包括cahe和中断的初始化)
1.基本上对mips系列的都支持,包括SEADTM ,SEAD-2TM MaltaTM, AltasTM
2.基本上属于mips系列专用,未听说过将Yamon应用去其他架构的实例(可行性低,相当于重写)
Image大小
通常200k~300k左右,可对一些功能进行裁减至100k下
一般最小500k
主要包括初始代码(start code)+大端image+小端image,通过修改,可裁减掉一种endian的image,大概减少200k左右
最小化裁减:可能接近100k
代码结构
1. 采用了将平台无关和平台相关的代码分开处理的方法
1. 采用了将平台无关和平台相关的代码分开处理的方法
内核启动方式
串口,tftp,本地, DHCP
串口,tftp,本地
内核支持格式
Vmlinux,或gzip压缩,或bzip2压缩,或zImage
只支持原始的vmlinux,网上有人也尝试修改过yamon来支持zImage(amd的1500开发板提供了支持zImage的补丁)
调试功能
只有简单的Go
功能强大,支持gdb,还有异常处理等
可移植性
对于移植到新的板子或cpu,需要修改的目录结构较清晰,容易添加
因为yamon没有采用大量的ifdef来控制选项,是通过yamon启动后自动detect到cpu和board的类型的,所以修改稍微麻烦
可裁减性
结构清晰,易于裁减
结构也较清晰,但由于存在较多yamon自动检测的部分,裁减性稍差
可扩展性
易于扩展,对于扩展shell命令和增加Driver较为容易
对shell command和Driver的支持也较易添加
总结
U-boot是一个较为通用的Bootloader,主要目的是启动内核,同时给开发者提供较为方便的移植性,U-Boot的扩展功能什么丰富;
Yamon(Yet Another Monitor)是主要针对MIPS系列cpu的一个功能强大的Rom monitor程序,Yamon的扩展功能较为单一;
结论
使用U-Boot作为开发用Bootloader