杭州美控自动化怎么样:有关uboot与kernel机器号问题

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 23:41:14
有关uboot与kernel机器号问题 2010/03/29 02:51 P.M.

   以前老是看到别人说Uboot与kernel机器号不匹配,到底在哪修改,稀里糊涂...... 只听别人说在kernel的那个文件把什么地方修改为什么,但是具体就是不明白为什么?

1. 先来看看Uboot里的机器号:

         打开board/smdk2410/smdk2410.c,在board_init函数里你会看到以下内容

        /* arch number of SMDK2410-Board */
        gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;

       这便是Uboot下对应的目标板机器号,可是这是个字符串啊,在哪定义的呢?请看include/asm-arm/mach-types.h,你便可以看到它具体的定义值了。

      #define MACH_TYPE_SMDK2410 193

2. 上面讲了Uboot的机器号,那么kernel对应的机器号在哪呢?

     这个文件大家应该不会陌生吧,在我们的kernel目录下有这么一个(arch/arm/mach-s3c2410/mach-smdk2410.c)文件,对应文件最后有这么一段:

     MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch
                                    * to SMDK2410 */
        /* Maintainer: Jonas Dietsche */
        .phys_io        = S3C2410_PA_UART,
        .io_pg_offst    = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
        .boot_params    = S3C2410_SDRAM_PA + 0x100,
        .map_io         = smdk2410_map_io,
        .init_irq       = s3c24xx_init_irq,
        .init_machine   = smdk2410_init,
        .timer          = &s3c24xx_timer,
MACHINE_END

     这下找到我们内核里对应的机器号了吧,具体对应的值请参考include/asm-arm/mach-types.h

     #define MACH_TYPE_SMDK2410             193