2016-10-24 10 views
0

ビルド中のLinuxカーネルにボード固有のコードを追加する必要があります。Linuxカーネルにボードファイルを追加する方法と "make menu config"でどこを見つけるか?

(私はすでにデバイスツリーを使用しているはずですが、私が触発したドライバはありません。私はすでに朝食の前に十数個の新しいことを学んでいます。デバッグに変更ボードファイルを使用しているプラ​​ットフォームドライバ/ドライバを入手したらデバイスツリーに変換します)

私はarch/arm/myboard/myboard.cというファイルを持っています。

ここで、既存のボードファイルはmake menuconfigにありますか? (http://lxr.free-electrons.com/source/arch/arm/mach-imx/mach-mx31ads.c?v=4.4など)

私のボードをここにも表示させるにはどうすればいいですか?

+1

http://lxr.free-electrons.com/source/arch/arm/mach-imx/?v=4.4のKconfigとMakefileを見てください。たとえば、KconfigはMACH_MX31MOBOARD変数を宣言し、その変数はMakefileでボード固有のコードを作成するために使用されます。 – alexander

+1

実際には、今のところプラットフォーム情報をデバイスドライバにハードコードしておき、設定可能にするにはDTを使用することができます。 – user3528438

+0

@ user3528438素晴らしいアイデアは、これは私に多くの時間を節約します。それを答えると私はそれを受け入れるでしょう。 – fadedbee

答えて

2

Makefile in the same directoryをご覧ください。 マッハmx31ads.cために、それは、

# 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をメニュー項目を与えると、ファイルを構築します追加、対応するエントリを持っていました。他の欠けている部分はマシンタイプです。これはarm/tools/mach-typeに追加する必要があります。これはgen-mach-typesスクリプトを使用してカーネルmakefileによって処理され、/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の位置は、linuxのブートの非常に早い段階でアセンブラで行われます。

関連する問題