u-boot与Linux内核机器码
u-boot的机器码和linux的一致,才能引导。
linux内核的机器码,在arch/arm/tools/mach-types.h中,u-boot的机器码是在u-boot/include/asm-arm/mach-types.h文件中,只要两者保持一致便可,所以可以任意修改其中之一。
例如:
linux内核源码中查看机器码相关文件:
$vim arch/arm/mach-s3c2440/mach-smdk2440.c
修改机器码,使之与bootloader的机器码相同,这里使用的是u-boot,机器码为168
$vi arch/arm/tools/mach-types
379 s3c2440 ARCH_S3C2440 S3C2440 168 //修改为168
$vi arch/arm/tools/Makefile
7 include/asm-arm/mach-types.h : $(src)/gen-mach-types $(src)/mach-types
8 @echo ' Generating $@'
9 @mkdir -p $(dir $@) //添加这行(?)
10 $(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; }
$vi include/asm/mach-types.h
375 #define MACH_TYPE_S3C2440 168 //此处不需手动修改 (?)
U-boot中的相关配置文件
$vi include/asm-arm/mach-types.h
377 #define MACH_TYPE_S3C2440 168