最近这段时间在忙着把老胡做的dodder-linux(基于OS-6800),移植到kinnick板子上面。
从来没做过Linux相关的项目,只是看了点书,对Linux有些粗浅的了解而已。这次做了这个移植以后,对u-boot,linux kernel,boardcom sdk 都有了一些了解,不过不是很深入,等移植完了以后,在对不清楚的部分进行一下深入的学习。
移植U-BOOT很简单,只要找到合适的demo board,然后照着进行修改就好了,因为使用的是mpc8541,是个soc,所以对board部分的修改就很少了,主要就是在配置相应的config file,然后地址映射,flash部分修改了一点。对内存的初始化还不是很了解。
移植kernel就更加简单了,安装mpc8555_cds进行修改,发现没输出,由于没有可用的ICD,所以只有找代码,一次次试,最后发现原来是u-boot传进来的关于串口配置的参数有错误,修改好以后就可以看见输出了,后面就可以使用Printk进行调试了。最后修改了一下MTD部分,根据hw spec中相应flash设置,修改了flash地址的映射。
修改sdk主要集中在makefile部分,把芯片类型设置成bcm56314.然后修改sdk的启动脚本。
总的来说,linux下的移植并不困难,因为只要你使用的板子不是很偏门,基本上都有现成的代码可供使用,只要找到了需要修改的地方,只要做很少的修改就可以让Linux在板子上跑起来。