Makefile
in the same directory을 살펴보십시오. 마하 mx31ads.c를 들어, 그것은 갖는다 kconfig를가 해당 항목이
# i.MX31 based machines
obj-$(CONFIG_MACH_MX31ADS) += mach-mx31ads.o
,
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 스크립트를 사용하여 생성/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에서 발견된다. 존재하지 않을 경우 호출되지 않기 때문에 모든 요소를 추가 할 필요가 없습니다. 커널 init은 머신 ATAG를보고 부트 로더가 전달하는 머신과 일치하는 섹션을 반복합니다. machine_desc
의 위치는 리눅스 부팅 초기에 어셈블러에서 이루어집니다.
http://lxr.free-electrons.com/source/arch/arm/mach-imx/?v=4.4의 Kconfig 및 Makefile을 살펴보십시오. 예를 들어, Kconfig는 MACH_MX31MOBOARD 변수를 선언하고이 변수는 Makefile에서 보드 특정 코드를 작성하는 데 사용됩니다. – alexander
사실, 지금 당장은 디바이스 드라이버에 플랫폼 정보를 하드 코딩해서 DT를 구성 할 수 있습니다. – user3528438
@ user3528438 좋은 아이디어, 많은 시간을 절약 할 수 있습니다. 답을하면 받아 들일거야. – fadedbee