相關系列閱讀:
u-boot2010.03 移植篇(一)-----建立編譯目標 http://www.linuxidc.com/Linux/2012-11/73814.htm
u-boot2010.03 移植篇(二)-----修改start.S,支持nand啟動 http://www.linuxidc.com/Linux/2012-11/73815.htm
u-boot2010.03 移植篇(三)-----修正配置文件.解決內存大小顯示問題 http://www.linuxidc.com/Linux/2012-11/73816.htm
u-boot2010.03 移植篇(四)-----支持DM9000,實現tftp下載 http://www.linuxidc.com/Linux/2012-11/73817.htm
經過一陣子的分析篇,下面開始移植篇,這些要講的東西並不是特別多,主要是對建立說s3c6410編譯板的支持..讓我們可以編譯出自己的image
好了,在移植篇開始之前,最好先看一下分析篇..對uboot的編譯目標的選擇,以及編譯目標的過程有個大致的了解..不至於無從下手....
u-boot2010.03 Makefile分析 http://www.linuxidc.com/Linux/2012-11/73812.htm
u-boot2010.03 配置編譯目標分析 http://www.linuxidc.com/Linux/2012-11/73813.htm
下面開始 移植篇(一)-----修改Makefile,生成編譯目標---S3C6410
----------------------------------------------------------
使用環境
PC: Ubuntu 11.04
kernel: 2.6.32-28-generic
corss: arm-linux-gcc 4.3.2
arm: s3c6410
uboot: uboot-2010-03
----------------------------------------------------------
作者: LvApp
聯系方式: [email protected]
一切版權均有作者所有,歡迎轉載,請指明出處,如何修改請與本人聯系,謝謝
開始教程之前.你需要下載源碼,解壓....此處略過千萬行~~源碼為uboot2010.03這個..別整錯了.錯了也沒事,都差不多~
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
這裡,我們直接打開Makefile,找到smdk6400_config,根據6400 添加6410 的目標......如下:
- #########################################################################
- ## ARM1176 Systems
- #########################################################################
- smdk6400_noUSB_config \
- smdk6400_config : unconfig
- @mkdir -p $(obj)include $(obj)board/samsung/smdk6400
- @mkdir -p $(obj)nand_spl/board/samsung/smdk6400
- @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
- @if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then \
- echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\
- $(MKCONFIG) $(@:_config=) arm arm1176 smdk6400 samsung s3c64xx; \
- else \
- echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6400/config.tmp;\
- $(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6400 samsung s3c64xx; \
- fi
- @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
- smdk6410_noUSB_config \
- smdk6410_config : unconfig
- @mkdir -p $(obj)include $(obj)board/samsung/smdk6410
- @mkdir -p $(obj)nand_spl/board/samsung/smdk6410
- @echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
- @if [ -z "$(findstring smdk6400_noUSB_config,$@)" ]; then \
- echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
- $(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx; \
- else \
- echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
- $(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx; \
- fi
- @echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
接著修改交叉編譯器:
- # set default to nothing for native builds
- ifeq ($(HOSTARCH),$(ARCH))
- CROSS_COMPILE ?= arm-linux-
- endif