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
- 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
沒有留言:
張貼留言