u-boot比較簡單, 從u-boot的官網下載就行. 我是從ftp下載下來的,
網址:ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2
x-loader可以從這邊下載
網址:http://gitorious.org/x-load-omap3
這個是for omap3的x-loader, 可以直接用這邊的作porting.
toolchain部份, 原本光碟附的是arm2007-q3.看了看 gcc -v的資訊後, 發現是從這裡下載的
網址:http://www.codesourcery.com/sgpp/lite_edition.html
這家公司提供了free的arm-gcc toolchain, 直接就可以拿來使用!
我是下載2010q1的版本作為porting依據.
接下來就是進行porting的動作了.
u-boot:
因為u-boot有把timll公司開發的devkit8000納到main trunk裡, 所以內建已經有支援devkit8000.
只要注意下列幾個地方
arch/arm/config.mk:
CROSS_COMPILE ?= /home/shaw/work/workspace/arm-2010q1/bin/arm-none-linux-gnueabi-
CROSS_COMPILE ?= /home/shaw/work/workspace/arm-2010q1/bin/arm-none-linux-gnueabi-
記得把cross compiler設定成先前下載的arm cross compiler
接著請參考Porting U-Boot issue(can't boot kernel with latest u-boot)
arm在boot kernel時,需要將MACH ID從u-boot傳到kernel中作比對,
在作porting時記得先比對kernel預設的MachID和bootloader所傳入的MachID是否相同
arch/arm/include/asm/mach-types.h:
#define MACH_TYPE_DEVKIT8000 2001 //for old kernel. The newest id value is 2330
kernel:#define MACH_TYPE_DEVKIT8000 2001 //for old kernel. The newest id value is 2330
shaw@shaw-ubuntu:~/share/kernel/linux-2.6.28-omap$ vim arch/arm /tools/mach-types
omap3_devkit8000 MACH_OMAP3_DEVKIT8000 OMAP3_DEVKIT8000 2001
我目前是改成2001, 要查詢最新的MachID可以到http://www.arm.linux.org.uk/developer/machines/查
接著只要輸入
make devkit8000_config
make
make
就可完成u-boot的建置.
沒有留言:
張貼留言