u-boot 和 linux/kernel 中的机器码一致性问题

一、U-boot 中机器码的定义和赋值

在 u-boot-1.1.6/board/100ask24x0/100ask24x0.c 文件中的 board_init 函数内,有

    if (isS3C2410)
    {
        /* arch number of SMDK2410-Board */
        gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;
    }
    else
    {
        /* arch number of SMDK2440-Board */
        gd->bd->bi_arch_number = MACH_TYPE_S3C2440;
    }

而宏 MACH_TYPE_S3C2440 在 u-boot-1.1.6/include/asm-arm/mach-types.h 中定义为

#define MACH_TYPE_S3C2440              362
二、linux 中机器码的定义

在 linux-2.6.31/arch/arm/tools/mach-types 的第379行

s3c2440			ARCH_S3C2440		S3C2440			362

只要 u-boot 和 linux 中两者定义的机器码一致即可。

你可能感兴趣的:(Bootloader,Kernel)