[Armadillo:08686] Re: Armadillo-440ブートローダー処理中の液晶表示について

Masahiro Nakai email@hidden
2013年 3月 19日 (火) 15:01:17 JST


nakaiです。

> 今のところ不具合は見えませんが、いい加減に選んだアドレスを使っている
> のは危険だとは思います。

LCDがアクティブの場合、DRAM → LCDCへのDMA転送が行われます。
推測ですがカーネルがハングするなどの不具合は発生しないと思います。
ただし、ご指摘のとおりカーネルがLSSARに指定しているメモリを使うと
ノイズっぽく表示されてしまいます。

> 安全に使用する方法ご教授願います。

私もどうすればよいのかと困っておりました。

"Memory Hotplug"[1] が利用できるといい感じに実装できそうなのですが、
ARMでは利用不可です。。
[1]: https://www.kernel.org/doc/Documentation/memory-hotplug.txt

  bootloaderからlinuxを起動するときは、LCDのバッファ領域を"offline"としておき、
  Framebufferドライバの初期化後(ユーザーランドに入ってから)、"online"とする。


現在のリソースでは、"mem=" オプション[2]を使うのが良いかもしれません。
ですが、linux上で扱えるメモリ容量が減ってしまいます。
mem=127M とした場合は、1Mが利用不可となってしまいます。
[2]: https://www.kernel.org/doc/Documentation/kernel-parameters.txt

> ※mem起動オプションというのは知りませんでした。どこで指定するかもわ
>  かりません。
>  hermitのsetenvはramdisk=61440を指定しています。

"mem="オプションを指定する場合は、ramdisk=と同様にhermitのsetenvで指定します。
hermit> setenv console=ttymxc1,115200 ramdisk=61440 mem=127M

LSSARには、0x87f00000 を指定します。
(上記、mem=127M とした場合のテストはしておりません。)


最適解ではないかもしれませんが、ご確認ください。

以上


(2013/03/19 14:04), 高橋 宏章 wrote:
> nakai様
> 
> 高橋 です。
> 
> 下記について回答させていただきます。
> 
>>> 当初考えていた
>>> 「電源投入からカーネル起動までは、液晶が真っ暗ですが、電源が投入
>>>  されて何かしら処理をしていることを液晶画面上に明示したい」
>>> という目標は達成されましたので、これでよしとしたいと思います。
>>
>> そうですか。良かったです。
> 
> ロゴ切り替わり時の画面の乱れは気になることは気になるので、もし時間
> が許せば対策は考えてみようとは思いますが、現状優先順位は低いです。
> 
> 
>> 後々のために1点教えてください。
>>
>>> 3) logoデータを展開するアドレスを変更(レジスタLSSARも)。
>>>    ※展開したメモリを他の処理で使われると画面が乱れる。
>>
>> LSSARはどのようにしたのでしょうか?
>> - カーネルメモリの外にしたということでしょうか?
>>  (例えば、起動オプションでmem=127Mとして最後の1Mに割り当てたり?)
>> - 単に通常起動時にカーネルが触らない(触らなそうな)アドレスとしたのでしょうか?
> 
> 後者です。
> 
> 安全なアドレスか確認を取ったわけではないので、あえて具体的なアドレス
> を示しませんでしたが、現状は0x87000000を指定しています。
> 
> ご教授いただいたアドレス0x80bc0000から640x480(x2)サイズを使用すると、
> 画面半分よりちょい上あたりから下の画面に乱れが生じました。
> 最初はレジスタの設定かと思ってすごい悩みました…
> 
> board.cのarmadillo4x0_memory_mapにて、freeが0x83000000となっているの
> で、ここなら使っても大丈夫かと思って試したのですが、ユーザーランドの
> 展開途中で画面が乱れます。
> ※ユーザーランドの展開時サイズが50M程度あるので、展開時に0x83000000
>   に達するためだと思っていますが…
> 
> それで、結局前述のアドレスにしました。RAMの後ろの方なので使っていな
> い”だろう”という判断です。
> 
> 今のところ不具合は見えませんが、いい加減に選んだアドレスを使っている
> のは危険だとは思います。
> 安全に使用する方法ご教授願います。
> 
> ※mem起動オプションというのは知りませんでした。どこで指定するかもわ
>  かりません。
>  hermitのsetenvはramdisk=61440を指定しています。
> 
> 以上、よろしくお願い致します。
> 
> ----- Original Message ----- From: "Masahiro Nakai" <email@hidden>
> To: "Armadillo general discussion list" <email@hidden>
> Sent: Tuesday, March 19, 2013 1:20 PM
> Subject: [Armadillo:08684] Re: Armadillo-440ブートローダー処理中の液晶表示について
> 
> 
>> nakaiです。
>>
>>> 当初考えていた
>>> 「電源投入からカーネル起動までは、液晶が真っ暗ですが、電源が投入
>>>  されて何かしら処理をしていることを液晶画面上に明示したい」
>>> という目標は達成されましたので、これでよしとしたいと思います。
>>
>> そうですか。良かったです。
>>
>>
>> 後々のために1点教えてください。
>>
>>> 3) logoデータを展開するアドレスを変更(レジスタLSSARも)。
>>>    ※展開したメモリを他の処理で使われると画面が乱れる。
>>
>> LSSARはどのようにしたのでしょうか?
>> - カーネルメモリの外にしたということでしょうか?
>>  (例えば、起動オプションでmem=127Mとして最後の1Mに割り当てたり?)
>> - 単に通常起動時にカーネルが触らない(触らなそうな)アドレスとしたのでしょうか?
>>
>>
>> (2013/03/19 11:45), 高橋 宏章 wrote:
>>> 高橋です。
>>>
>>> nakai様よりいただいたパッチを元に試験した結果の報告です。
>>>
>>> Armadillo起動直後にhermitに指定したロゴが表示されるようになりま
>>> した。
>>>
>>> ただし、Linuxが起動し、Linuxに指定したロゴへ切り替わる時は1秒ほ
>>> ど画面が乱れます。
>>> これはnakai様のおっしゃる
>>>
>>>> Linux起動時にLCDを止めるなどの処理を作りこむと
>>>> 使えそうなものになるかもしれません。
>>>
>>
>>> ありがとうございました。
>>>
>>>
>>> ■変更点について
>>> 当方の開発環境では、LCDとI/F基板は液晶開発セットと異なるので変更
>>> を行いました。
>>> 変更した箇所をまとめておきます。
>>>
>>> <mx25_lcdc.c>
>>> 1) LCD_WIDTH,LCD_HEIGHTを640x480に変更。
>>> 2) LCDCレジスタの値を使用LCDに合わせて変更。
>>>    LSR-XMAX,YMAX
>>>    LVPWR-VPW
>>>    LPCR-PCD
>>>    LHCR-H_WIDTH,H_WAIT_1,H_WAIT_2
>>>    LVCR-V_WIDTH,V_WAIT_1,V_WAIT_2
>>> 3) logoデータを展開するアドレスを変更(レジスタLSSARも)。
>>>    ※展開したメモリを他の処理で使われると画面が乱れる。
>>> 4) PWMは液晶開発セットとは論理が逆なので変更。
>>>
>>> <logo_armadillo_clut224.c>
>>> 1) 独自のロゴから生成されたファイルに変更。
>>>
>>> 以上、よろしくお願い致します。
>>>
>>> ----- Original Message ----- From: "高橋 宏章" <email@hidden>
>>> To: "Armadillo general discussion list" <email@hidden>
>>> Sent: Friday, March 15, 2013 8:39 AM
>>> Subject: [Armadillo:08676] Re:Armadillo-440ブートローダー処理中の液晶表示について
>>>
>>>
>>>> 高橋です。
>>>>
>>>> nakai様、ありがとうございます。
>>>>
>>>> 内容を確認し、試したいと思います。
>>>> 結果は後日報告させていただきます。
>>>>
>>>> 以上、よろしくお願い致します。
>>>>
>>>> ----- Original Message ----- From: "Masahiro Nakai" <email@hidden>
>>>> To: "Armadillo general discussion list" <email@hidden>
>>>> Sent: Wednesday, March 13, 2013 6:54 PM
>>>> Subject: [Armadillo:08669] Re: Armadillo-440ブートローダー処理中の液晶表示について
>>>>
>>>>
>>>>> nakaiです。
>>>>>
>>>>> Armadillo-440のhermitでLCDを有効化してみました。
>>>>> パッチを添付します。
>>>>>
>>>>> Linux起動時にLCDを止めるなどの処理を作りこむと
>>>>> 使えそうなものになるかもしれません。
>>>>>
>>>>> 参考まで。
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> (2013/03/12 16:03), 高橋 宏章 wrote:
>>>>>> 高橋です。
>>>>>>
>>>>>> yoshida様、回答ありがとうございます。
>>>>>>
>>>>>> 下記についてですが、
>>>>>>
>>>>>>> かなりイメージが大きいようですね。
>>>>>>> 因みにブートロゴ表示というのは、ペンギン+Armadilloロゴ表示まで
>>>>>>> 15秒かかっている、ということでしょうか。
>>>>>>
>>>>>> そうです。(ロゴは変更していますが)
>>>>>>
>>>>>>> だとすると、表示までに時間がかかっている要因は、
>>>>>>> kernel と、userlandイメージの展開に時間がかかっているのかと
>>>>>>> 思うのですが、非圧縮イメージを試すことはできますか?
>>>>>>
>>>>>> そうです。15秒程度というのは、展開に要する時間のようです。
>>>>>>
>>>>>> 非圧縮のユーザーランドは50M近くあるのでArmadillo-440のフラッシュには
>>>>>> 残念ながら乗らないです。
>>>>>> 圧縮状態で20M弱です。カーネルだけであれば非圧縮で乗りますので、多少
>>>>>> の時間短縮はできそうです。
>>>>>> ユーザーランドの非圧縮をmicroSDに入れて、microSDから起動という手もあ
>>>>>> りますが、microSDが壊れてArmadilloが起動しなくなるのは困るので考えて
>>>>>> ません。
>>>>>>
>>>>>> ちなみに、ユーザーランドが大きいのはGUIのアプリをQtで開発していて、
>>>>>> (Howto : Armadillo-440でQt!を参照させていただきました。)
>>>>>> このQtのライブラリ関係が大きいようです。
>>>>>>
>>>>>> やはりブートローダーからのLCD描画は難しいですか。
>>>>>>
>>>>>> あとは、
>>>>>> ブートローダーからは、ユーザーランドの展開はさせないで、カーネルに
>>>>>> ロゴの表示をさせてから、カーネルからユーザーランドの展開ができないか
>>>>>> と考えているのですが、こちらも難しいでしょうか?
>>>>>>
>>>>>> なるべく使わないつもりですが、有償の手も検討してみます。
>>>>>>
>>>>>> 以上、よろしくお願い致します。
>>>>>>
>>>>>> ----- Original Message -----
>>>>>>> yoshidaです。
>>>>>>>
>>>>>>>> ユーザーランドが大きくなってしまったため電源投入からブートロゴ表示まで
>>>>>>>> 現状15秒程度かかっています。
>>>>>>>
>>>>>>> かなりイメージが大きいようですね。
>>>>>>> 因みにブートロゴ表示というのは、ペンギン+Armadilloロゴ表示まで
>>>>>>> 15秒かかっている、ということでしょうか。
>>>>>>>
>>>>>>> だとすると、表示までに時間がかかっている要因は、
>>>>>>> kernel と、userlandイメージの展開に時間がかかっているのかと
>>>>>>> 思うのですが、非圧縮イメージを試すことはできますか?
>>>>>>>
>>>>>>> 圧縮イメージ:  linux.bin.gz, romfs.img.gz
>>>>>>> 非圧縮イメージ:linux.bin, romfs.img
>>>>>>>
>>>>>>>> 対策としては、ブートローダーに液晶表示の処理を組み込めばよいのかなと考
>>>>>>>> えてはおりますが、どこから手をつければよいのかわからない状態です。
>>>>>>>
>>>>>>> Bootloaderで直接LCDに描画させる必要がある為、簡単では無いと思います。
>>>>>>> ※少なくとも私はすぐに思いつきませんでした
>>>>>>>
>>>>>>> 尚、有償の高速起動のソリューションも弊社パートナーで
>>>>>>> 何社か提供されてますので、そういったツールを検討頂くのも一つの
>>>>>>> 手段かと思います。より詳細な情報は、アットマークテクノ営業部、
>>>>>>> もしくはご購入代理店にお問い合わせ頂けると幸いです。
>>>>>>>
>>>>>>> アットマークテクノ営業部:email@hidden
>>>>>>> アットマークテクノ代理店:http://www.atmark-techno.com/purchase/business
>>>>>>>
>>>>>>> (2013/03/08 9:35), 高橋 宏章 wrote:
>>>>>>>> 日本高周波の高橋と申します。
>>>>>>>> お世話になります。
>>>>>>>>
>>>>>>>> Armadillo-440を使用しております。
>>>>>>>> ブートローダー処理中の液晶表示についてご教授願います。
>>>>>>>>
>>>>>>>>
>>>>>>>> <やりたいこと>
>>>>>>>> ブートローダー処理中の液晶画面に画像または文字列の表示をさせたい。
>>>>>>>>
>>>>>>>>
>>>>>>>> <詳細>
>>>>>>>> 環境は、Armadillo-440+自前の液晶IFボードですが、ほぼArmadillo-440液晶
>>>>>>>> モデルの標準環境と思っていただいて構いません。
>>>>>>>>
>>>>>>>> Armadilloに電源を投入すると、ブートローダーがカーネルとユーザーランドを
>>>>>>>> 展開し、カーネルが処理をして初めて液晶にLinuxのブートロゴが表示されます。
>>>>>>>> 電源投入からカーネル起動までは、液晶が真っ暗ですが、電源が投入されて何
>>>>>>>> かしら処理をしていることを液晶画面上に明示したいと考えております。
>>>>>>>> ユーザーランドが大きくなってしまったため電源投入からブートロゴ表示まで
>>>>>>>> 現状15秒程度かかっています。
>>>>>>>>
>>>>>>>>
>>>>>>>> 対策としては、ブートローダーに液晶表示の処理を組み込めばよいのかなと考
>>>>>>>> えてはおりますが、どこから手をつければよいのかわからない状態です。
>>>>>>>> 実際にやられた方がいらっしゃれば、どの辺の処理を変更すればよいか教えて
>>>>>>>> いただけると助かります。
>>>>>>>> また、他に対応策をご存知の方おられましたら教えて下さい。
>>>>>>>>
>>>>>>>>
>>>>>>>> 以上、よろしくお願い致します。
>>>>>>>>
>>>>>>>> ----------
>>>>>>>> 日本高周波株式会社
>>>>>>>>   高橋 宏章(Hiroaki Takahashi)
>>>>>>>>  E-mail email@hidden
>>>>>>>>  URL http://www.nikoha.co.jp/
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> 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
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>
>> _______________________________________________
>> 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
> 




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