最近利用空闲把linux移植到MPC875上,本贴记录详细过程
首先下载u-boot,安装交叉编译环境
make distclean
make Adder87x_config 默认单板
make all
u-boot烧到flash启动,根据程序运行情况一步步修改,一般是配置文件错误。
ppc_8xx-objdump -S u-boot > u-boot.S 反汇编后查看程序跑到哪步,这个办法比较好用,在Flash挂仿真器调试时可以定到具体地址
uboot起始文件start.s
--》cpu_init_f
--》board_init_f lib_ppc/board.c
--> 初始化列表
然后跳转到RAM,进入RAM之前cache一定要关闭(MPC好像就是这样)。
uboot移植成功后即可开始内核移植。
sunbo_bb 于 2009-09-29 22:21:35发表:
下最新linux内核,修改makefile arch=powerpc CROSS_COMPILE=ppc_8xx-
make menuconfig 选择MPC,尽量少修改配置,因为不懂很容易出错
make 即可
此时会报vga之类的错误,重新make menuconfig 去掉vga相关模块;
编译成功后,再一步步去掉不需要的驱动模块;
u-boot bootm只能启动uImage,因此用make uImage或者用u-boot mkimage生成uImage
linux环境kermit 串口进入bootloader,loadb 0xcc 下载uImage 切换至kermit
send /bin /../uImage
下载完毕后connect 进入bootloader
bootm 0xcc 启动kernel
bootm会把uImage解压到内存中,解压后的结果与vmlinux相同
可以使用ppc_8xx-objdump -S vmlinux> vmlinux.S 反汇编后查看内核启动过程,利用点灯来一步步定位内核启动时死在哪步。
Sainft 于 2009-09-29 15:37:03发表:
很有技术感