在linux的kenel配置的时候,会生成一个mach-types.h文件,里面用来定义处理器的ID,在2.6.36之前好像是生成到include/asm-arm文件夹里面,2.6.36之后则会生成到include/generated目录里面。
这个处理器的ID作用大家都知道,就是bootloader一定要把处理器ID号传给内核,这样内核才能找到相应的处理器,如果匹配时出错,则会出现系统死掉。如果是新添加一个处理器,则需要修改arch/arm/tools/mach-types 文件,并在文件里面加上你的处理器的ID号
machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
例如,S3C2440的定义如下
s3c2440 ARCH_S3C2440 S3C2440 362
362即是2440的处理器ID号。。。
转一篇有用的文章:
http://hi.baidu.com/youren4548/blog/item/2a3eb699ac841d1b6e068cd7.html
mach-types.h 的生成
2011-01-27 20:42
准备将Linux的启动过程仔细的看看,内核为2.6.16,芯片为SEP4020,首先看的部分是机器号的添加。修改的文件为:linux/arch/arm/tools/mach-types,在其最后添加了
sep4020 ARCH_4020 GFD4020
194
bootloader一定要把机器号传给内核,这样内核才能找到相应的处理器,如果匹配时出错,则会出现系统死掉。但是内核又是如何根据这个194找到我们的处理器,找到我们的板级设备??
对我们有用的是 /linux/include/asm-arm/
mach-types.h文件,但是我们在编译内核时
|