# i.MX31 based machines
obj-$(CONFIG_MACH_MX31ADS) += mach-mx31ads.o
的的Kconfig有一个相应的条目,
config MACH_MX31ADS
bool "Support MX31ADS platforms"
default y
select IMX_HAVE_PLATFORM_IMX_I2C
select IMX_HAVE_PLATFORM_IMX_SSI
select IMX_HAVE_PLATFORM_IMX_UART
select SOC_IMX31
help
Include support for MX31ADS platform. This includes specific
configurations for the board and its peripherals.
增加,将会给您板的Kconfig菜单项,并建立档案。唯一的其他缺失部分是机器类型。您需要使用gen-mach-types脚本将其添加到由内核makefile处理的arm/tools/mach-type中,以创建generated/mach-type.h。你在你的电路板文件中使用这个来创建一个静态机器描述(放在一个特殊的部分)。
MACHINE_START(MX31ADS, "Freescale MX31ADS")
/* Maintainer: Freescale Semiconductor, Inc. */
.atag_offset = 0x100,
.map_io = mx31ads_map_io,
.init_early = imx31_init_early,
.init_irq = mx31ads_init_irq,
.init_time = mx31ads_timer_init,
.init_machine = mx31ads_init,
.restart = mxc_restart,
MACHINE_END
的machine_desc结构在arch.h找到。您不需要添加所有元素,因为如果不存在它们将不会被调用。内核初始化程序查找机器ATAG并遍历这些部分以匹配引导加载程序通过的机器。在linux启动的早期阶段,在汇编程序中定位machine_desc。