ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2010年8月19日 星期四

uboot - config and makefile , in a view of porting

mkconfig variant ARCH CPU BOARD VENDOR SOC 以 target smdk2410_config 來看: mkconfig smdk2410 arm arm920t smdk2410 NULL s3c24x0 所以
  • variant = smdk2410
  • ARCH = arm
  • CPU = arm920t
  • BOARD = smdk2410
  • VENDOR=
  • SOC = s3c24x0
這些variable 被使用:
  • create include/asm-CPU,, 建立 link 到 asm
  • 建立link include/asm-CPU 或 include/asm/asm-s3c24x0 到 asm-CPU/arch
  • create include/config.mk -- 定義 ARCH, CPU, BOARD, SOC
  • create include/config.h -- 產生內容: #include <configs/variabt.h> -- 所以重要的是 configs/variabt.h

所以要 porting uboot 要修改的部份有:
  • include/asm-CPU
  • include/asm-soc
  • include/configs/variant.h

Makefile 的部份: all : depends on u-boot u-boot depends on $(SUBDIRS) $(OBJS) $(LIBS) $(SUBDIRS), $(OBJS) 和 $(LIBS) 的 rule 都是簡單的 make 而已。 $(OBJS) 內都是 cpu/$(CPU)/ 下的 source 檔 $(LIBS) 除一般標準的 driver, disk rtc.. folde 外,還有 board/$(board)/lib$(board).a
所以 porting 時,還要create board/$(board) 目錄。 create 自己需要的 library
Makefile 的 include file:
  • include/config.mk --- 定義 ARCH, CPU, BOAD, VENDOR, SOC -- 這是標準的,不用改
  • config.mk -- 這也是標準的 rule,不用改 --
    • $(CPU)_config.mk -- 標準,不用改
    • cpu/$(CPU)/config.mk
    • cpu/$(CPU)/$(SOC)/config.mk
    • board/$(BOARD)/config.mk

所以porting時,要作自己的 cpu/$(CPU)/$(SOC)/config.mk 和 board/$(BOARD)/config.mk

沒有留言:

標籤

網誌存檔