[Armadillo:07355] Re: CON9の初期設定

Takenoshita Koyo email@hidden
2011年 6月 23日 (木) 17:49:15 JST


(2011年06月23日 15:08), s.maruyama wrote:
> お世話になっております、丸山です。
> 
>> { MX25_PIN_CSPI1_SS0, MUX_ALT5, MUX_ALT5, -1, -1 },
> -1 はどんな意味ですか
mx25_iomux_config()でstruct iomux_infoの処理をしています。

pad1やpad2メンバに-1が設定されていた場合、
IOMUXC_SW_PAD_CTL_PAD_xxxレジスタの設定を行いません。
i.MX25では、IOMUXC_SW_PAD_CTL_PAD_xxxレジスタを持たないパッドも
あるので、このような実装になっています。

> 
> ブートローダーのソースを書き換えて起動したとすると、
> ブートローダー起動中の初期設定はできると思いますが、
> 次に、Linux起動中の初期設定は、ブートローダーのソースを
> 書き換えた内容を引き継ぎますか。
Linuxカーネル内のドライバで使うパッドだけ、再設定します。
それ以外のパッドは、ブートローダで設定されたままとなります。

> 
> もし、引き継がないとしたら、カーネルのどのファイルを変更すればよろしいで 
> しょうか。
linux-2.6.26-at/arch/arm/mach-mx25/armadillo400_gpio.c
です。

ただ、カーネルコンフィギュレーションでCON9の機能を選択すれば、
適切な設定がなされるように作っていますので、
基本的には修正する必要はないはずだと思っています。

> 
> 以上、よろしくお願いいたします。
> 
>>> hermit-atsrc/target/armadillo4x0/board.c を見たところ、
>>> このテーブルの意味が、わかりません。
>> struct iomux_infoは、hermit-at/include/arch-mx25/iomux.hで
>> 定義されている構造体です。
>>
>> struct iomux_info {
>> int pin;
>> u8 mux1;
>> u8 mux2;
>> u16 pad1;
>> u16 pad2;
>> };
>>
>>> どれが何番ピン、PinStateの設定をLow/highにする方法など
>>> ご教授ください。
>>>
>>> static struct iomux_info gpio_pins[] = {
>>> /* CON9 */
>>> { MX25_PIN_CSI_MCLK, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>> MX25_PIN_xxx と書いてある部分(pinメンバ)がどのパッドの設定をするかを示 
>> しています。
>> どのパッドが、どのピンに対応するかは、ハードウェアマニュアルに記載があ 
>> ります。
>>
>> 例えば、MX25_PIN_CSI_MCLK の場合、
>> 「表5.13 CON9信号配列」の以下の記述から、CON9_21ピンであることが分かり 
>> ます。
>>> 21 EXT_IO14 In/Out 拡張入出力14、i.MX257のCSI_MCLKピンに接続
>>
>>
>> MUX_ALT5 と書いてある部分(mux1メンバ)がマルチプレクスの設定です。
>> そのパッドにどの機能を割り当てるかを指定します。
>> mux1で指定した値が、
>> i.MX25のReference Manualの「Appendix A IOMUX Registers」に記載のある、
>> IOMUXC_SW_MUX_CTL_PAD_xxxレジスタに書き込まれます。
>>
>> pinメンバがMX25_PIN_CSI_MCLKでmux1メンバがMUX_ALT5の場合、
>> IOMUXC_SW_MUX_CTL_PAD_CSI_MCLKのMUX_MODEが0b101に設定されます。
>> 0b101は、GPIOとして設定することを意味します。
>>
>>
>> 0x00e0と書いてある部分(pad1メンバ)が、機能の設定です。
>> そのパッドの機能(プルアップするか否か)を指定できます。
>> pad1で指定した値が、
>> i.MX25のReference Manualの「Appendix A IOMUX Registers」に記載のある、
>> IOMUXC_SW_PAD_CTL_PAD_xxxレジスタに書き込まれます。
>> (マルチプレクス用のパッドとは、微妙に名前が違います。)
>>
>> pinメンバがMX25_PIN_CSI_MCLKでpad1メンバが0x00e0の場合、
>> IOMUXC_SW_PAD_CTL_PAD_CSI_MCLKが0x00e0に設定されます。
>> 0x00e0は、100kΩプルアップとして設定することを意味します。
>>
>> mux2とpad2は使われないので、適当に設定しておいてください。
>>
>>> { MX25_PIN_CSI_VSYNC, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> { MX25_PIN_CSI_HSYNC, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> { MX25_PIN_CSI_PIXCLK, MUX_ALT5, MUX_ALT5, 0x01e0, 0x01e0 },
>>> { MX25_PIN_CSPI1_SS0, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_CSPI1_RDY, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_CLKO, MUX_ALT5, MUX_ALT5, 0x0000, 0x0000 },
>>> { MX25_PIN_EXT_ARMCLK, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_CSPI1_SS1, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_CSI_D4, MUX_ALT5, MUX_ALT5, 0x01e0, 0x01e0 },
>>> { MX25_PIN_CSPI1_SCLK, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_CSI_D5, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> { MX25_PIN_CSI_D8, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> { MX25_PIN_CSI_D6, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> { MX25_PIN_CSI_D9, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> { MX25_PIN_CSI_D7, MUX_ALT5, MUX_ALT5, 0x01e0, 0x01e0 },
>>> { MX25_PIN_VSTBY_REQ, MUX_ALT5, MUX_ALT5, 0x0080, 0x0080 },
>>> { MX25_PIN_RTCK, MUX_ALT5, MUX_ALT5, 0x00e0, 0x00e0 },
>>> /* CON14 */
>>> { MX25_PIN_GPIO_C, MUX_ALT0, MUX_ALT0, 0x00e0, 0x00e0 },
>>> { MX25_PIN_GPIO_D, MUX_ALT0, MUX_ALT0, 0x00a0, 0x00a0 },
>>> /* FFC */
>>> { MX25_PIN_DE_B, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_KPP_ROW0, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_KPP_ROW1, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_KPP_ROW2, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_KPP_ROW3, MUX_ALT5, MUX_ALT5, -1, -1 },
>>> { MX25_PIN_KPP_COL0, MUX_ALT5, MUX_ALT5, 0x00a0, 0x00a0 },
>>> { MX25_PIN_KPP_COL1, MUX_ALT5, MUX_ALT5, 0x00a0, 0x00a0 },
>>> { MX25_PIN_KPP_COL2, MUX_ALT5, MUX_ALT5, 0x00a0, 0x00a0 },
>>> { MX25_PIN_KPP_COL3, MUX_ALT5, MUX_ALT5, 0x00a0, 0x00a0 },
>>> { MX25_PIN_GPIO_A, MUX_ALT0, MUX_ALT0, 0x00e0, 0x00e0 },
>>> { MX25_PIN_GPIO_B, MUX_ALT0, MUX_ALT0, 0x00e0, 0x00e0 },
>>> { },
>>> };
>>>
>>> 以上、よろしくお願いいたします。
>>>
>>>> 竹之下です。
>>>>
>>>> hermit-atと、Atmark Distは別々のソースコードです。
>>>>
>>>> 下記のURLからダウンロードしたものを使用してください。
>>>> http://armadillo.atmark-techno.com/files/downloads/armadillo-420/source/bootloader/hermit-at-2.1.2-source.tar.gz 
>>>>
>>>>
>>>>
>>>> また、
>>>>>> 設定を変更したい場合は、ブートローダーのソースを直接書き換えてくださ
>>>>>> い。
>>>>>> hermit-atsrc/target/armadillo4x0/board.c
>>>> 上記は、
>>>> hermit-at/src/target/armadillo4x0/board.c
>>>> の間違いでした。("/"が一つ抜けていました。)
>>>> 申し訳ありません。
>>>>
>>>> (2011年06月21日 10:45), s.maruyama wrote:
>>>>> お世話になっております、丸山です。
>>>>>
>>>>> hermit-atsrc/target/armadillo4x0/board.c を探したのですが見つかりませ
>>>>> ん。
>>>>> Atmark-Dist のどこあるか教えてください。
>>>>>
>>>>> 以上、よろしくお願いいたします。
>>>>>
>>>>>> 竹之下です。
>>>>>>
>>>>>> Linuxが立ち上がるまでの間は、ブートローダー(hermit-at)で
>>>>>> 入出力方向を設定しています。
>>>>>>
>>>>>> 標準では、以下の設定になっています。
>>>>>> http://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_hardware_manual_ja-1.4.1/apb.html#table-apb-2 
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 設定を変更したい場合は、ブートローダーのソースを直接書き換えてくださ
>>>>>> い。
>>>>>> hermit-atsrc/target/armadillo4x0/board.c
>>>>>>
>>>>>> (2011年06月20日 14:06), s.maruyama wrote:
>>>>>>> お世話になっております、丸山です。
>>>>>>>
>>>>>>> Armadillo-420で開発しています。
>>>>>>>
>>>>>>> Armadillo-420のCON9に拡張ボードを接続しています。
>>>>>>> ボードに電源を投入してから、Linuxが立ち上がる迄の間は、
>>>>>>> CON9の入出力方向をアプリケーションではコントロールできませんので、
>>>>>>>
>>>>>>> 何か設定できる方法はありませんか。
>>>>>>> 方法があると助かります。
>>>>>>> 以上です、よろしくお願いいたします。
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> armadillo mailing list
>>>>>>> email@hidden
>>>>>>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>>>>>>
>>>
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 


-- 
Koyo Takenoshita




armadillo メーリングリストの案内