&size(24){&color(darkgreen){''SM501''};};
#navi(WPAR)
~''CONTENTS''
#contents
----

**WPAのUSBポート [#ff517314]
#ref(usb-con.jpg);

***SM501のUSBCanon PTP extensionsポートを動かす [#ndce50b4]
--キヤノンのremote capture対応機種(金子)
#ref(cam.JPG);
-デジカメを制御するために、SM501のUSBポートの利用を検討しています。(金子)
-怪しそうだけど、解決する可能性はあるのだろうか?期間は?(金子)
--まず、動作検証するための、Linux版デジカメ制御SDKが必要だよね。(金子)
--使う予定ではなかったので、かなりいい加減です。現状は、celinux-040503 のcodeを元に、現在のkernelにかなり適当に移植しました。(ま、動くしいいかな?と思って…) 問題点は、データ転送中にerrorが発生している。スループットが出ない。もちろんHotPlugには対応していない。と、こんなところでしょうか?使っている最中に、ハングとかは、多分したことないと思います。errorは出てても通信はちゃんとやってる?みたいなのでスループットをあまり気にしなければ、今のままでも使えるかもね。(errorが出てるからスループットが上がらないという噂も…) 動作実績のデバイスは、USBストレージが2種類と、USB-Etherというかその他のドライバは、入っていません。(ta)
--修正するとしたら、最新のコードにすると動くようになるとかだったらいいな… (ta)
--ちなみにRTS7751R2DのVGA出力をコンソールにしてUSBキーボードを使うと,途中で文字が入力できなくなったり,変な行に飛んだことがありました/h/
--デジカメ借用しました。(3/18まで)(金子)
---Windowsでの動作確認、WPAで制御できるかの検討を長谷部君にお願いしたいです。(金子)

-Silicon Motionからの回答
 金子様
 
 こちらこそ、新年のご挨拶もせず申し訳ありません。
 
 SM501のUSBはマスターとしての動作実績といたしましては、
 キーボード、マウスがございます。詳細を以下に記します。
 -ロースピード時のコントロール転送およびインタラプト転送 : 実績あり
 -ISOCHRONOUS転送 :  シミュレーション上でのみ確認
 -BULK転送 : PCI評価ボードにて動作試験が終了(実績は不明)
 -フルスピードデバイス:  シミュレーション上でのみ確認(実績は不明)
 
 WindowsCE環境下では、USBに接続できるカメラ、及び、ドライバ
 がない為に検証はできておりません。
 
 また、USBに関しましては2つのerrataが出ております。
 1、 USBを使用する場合は、外部クロックの周波数を24MHzにしなければならない
 (AA-1)。これに伴い
 パネルクロックや、UARTの転送可能速度に影響がでます。
 
 2、 Hostバス接続の場合、ハングすることがある(AA-10)ので、ソフトワーク
 アランドが必要。
 
 詳細は添付ファイルを参照してください。
 
 また、参考USBドライバーはWindowsCE用となっており、Linuxはございません。ただ
 し、ルネサス様の
 評価ボード(赤いボード)でSM501のUSBは動作しておりますので、ルネサス様から
 Linuxドライバを入手
 できるかも知れませんので、ルネサス様に問い合わせしていただけますでしょうか。
 
 よろしくお願いいたします。
 
#ref(Usb.zip);
#ref(SM501ErrataUpdated.zip);

**Documentation [#l8ac1679]


***SM501 is controled through MMIO registers, [#m26a4044]
that are handled as follows.
+Open dev/fb0:
 fd = open("/dev/fb0", O_RDWR);
+Set MMIO address as follows:
 ioctl(fd, 0, address)
+Read a register value as follows:
 int reg32;
 ioctl(fd, 1, &reg32)
+Write a value to the register as follows:
 ioctl(fd, 2, reg32)

***SM501 is accessed through seven frame buffers. [#r15c6860]
They contain one video plane, two graphics planes, two alpha planes, and two hardware cursor planes. 
See '''SM501_MMCC_Databook''' pp.(1-12)-(1-13) for details of the video layers. 
Primary devices with display resolutions of VGA, SVGA, XGA, and SXGA (experimental) are considered in this document.

Each node is treated as a character device. 
See '''Documentation/fb/framebuffer.txt''' for details of the frame buffer. 
Just like MEM(4) device, a frame buffer is opened by OPEN(2):
 fd = open("/dev/fb0", O_RDWR);
and mapped into memory by MMAP(2) to access:
 p = (char *) mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
See '''SM501_MMCC_Databook''' pp.(1-26)-(1-28) for details of the memory map and register space.

***SXGA Modemodeline [#n318d732]
|Horizontal Total     |1850|
|Horizontal Sync Width| 130|
|Horizontal Sync start|1280|
|Vertical Total       |1330|
|Vertical Sync Height |   2|
|Vertical Sync start  |1320|

***SM501 frame buffers and their memory address [#s5ba3c7b]
are shown in the following table. The MMIO base address of the WPA is ''0xa7e00000''.
|~Priority|~Name     |~Address  |~Node   |~Descriptions|
|0|Panel Plane       |0xa40c0000|/dev/fb0|Primary Graphics, image display|
|2|Video Plane 0     |0xa4340000|/dev/fb1|Video, videos from a ZV port|
|2|Video Plane 1     |0xa45c0000|~|~|
|3|Video Alpha Plane |0xa4840000|/dev/fb2|Video Alpha, image display|
|4|Alpha Plane       |0xa4ac0000|/dev/fb3|Alpha, image display|
|1|Panel Cursor Plane|0xa4d40000|/dev/fb4|Primary Cursor, not used|
|0|CRT Plane         |0xa4d50000|/dev/fb5|Secondary Graphics, not used|
|1|CRT Cursor Plane  |0xa4fd0000|/dev/fb6|Secondary Cursor, not used|

The Panel/CRT resolution is changed through register settings. It should be noted that Linux frame buffer-related information such as '''vinfo''' and '''finfo''' is no longer reliable except for the default resolution. A Panel/CRT timing signal should be turned off during the resolution change to avoid inappropriate timing signals.

The video alpha plane is disabled when a video plane is disabled.
On the other hand, the alpha plane is independent of the video plane.
Each buffer has a display priority. 
Priority 0 means the bottom layer, while priority 4 means the top layer.

***Sample register settings [#se678fd7]
are shown in the following table.
 
|~Offset|~Value|~Description|
|0x00010|0x2ed547c0||
|0x00014|0x05126734||
|0x00008|0x00ff0000|GPIO 31:0 Control|
|0x0000c|0x00000000|GPIO 63:32 Control|
|0x00038|0x00021877|Current Gate|
|0x00040|0x00021877|Power Mode 0 Gate|
|0x00048|0x00021877|Power Mode 1 Gate|
|0x8001c|0x00000000|Panel Plane TL Location|
|0x80050|0x00000000|Video Plane TL Location|
|0x80090|0x00000000|Video Alpha TL Location|
|0x8010c|0x00000000|Alpha Plane TL Location|
|0x80040|0x00016203|Video Display Control|
|0x80080|0x00010001|Video Alpha Display Control|
|0x80100|0x00010001|Alpha Display Control|
|0x80200|0x00010000|CRT Display Control|
|0x90000|0x000022d1|Capture Control|
|0x90004|0x001000b4|Capture Clipping|
|0x90008|0x01e00280|Chapture Size|
|0x90018|0x00000004|Capture FIFO Control|
|>|>|LEFT:~XGA Kernel|
|0x9000c|0x046c0000|Capture Buffer 0 Address|
|0x90010|0x04840000|Capture Buffer 1 Address|
|>|>|LEFT:~SXGA Kernel (experimental)|
|0x9000c|0x00340000|Capture Buffer 0 Address|
|0x90010|0x005c0000|Capture Buffer 1 Address|
|>|>|LEFT:~VGA|
|0x00044|0x10090101|Power Mode 0 Clock|
|0x0004C|0x10090101|Power Mode 1 Clock|
|0x80000|0x07013101|Panel Display Control|
|0x80014|0x02800000|Panel FB Width|
|0x80018|0x01e00000|Panel FB Height|
|0x80024|0x033f027f|Panel Horizontal Total|
|0x80028|0x004a028b|Panel Horizontal Sync|
|0x8002c|0x020c01df|Panel Vertical Total|
|0x80030|0x000201e9|Panel Vertical Sync|
|0x80058|0x00000000|Video Scale|
|0x80048|0x05000500|Video FB Width|
|0x80010|0x05000500|Panel FB Offset/Window Width|
|0x80088|0x05000500|Video Alpha FB Offset/Window Width|
|0x80108|0x05000500|Alpha FB Offset/Window Width|
|0x90014|0x00000500|Capture Buffer Offset|
|0x80020|0x01df027f|Panel Plane BR Location|
|0x80054|0x01df027f|Video Plane BR Locatoin|
|0x80094|0x01df027f|Video Alpha BR Location|
|0x80110|0x01df027f|Alpha Plane BR Location|
|>|>|LEFT:~Bob|
|0x80058|0x08000000|Video Scale|
|0x90000|0x000022b1|Capture Control|
|>|>|LEFT:~SVGA|
|0x00044|0x08090101|Power Mode 0 Clock|
|0x0004C|0x08090101|Power Mode 1 Clock|
|0x80000|0x07010101|Panel Display Control|
|0x80014|0x03200000|Panel FB Width|
|0x80018|0x02580000|Panel FB Height|
|0x80024|0x040f031f|Panel Horizontal Total|
|0x80028|0x00770357|Panel Horizontal Sync|
|0x8002c|0x02990257|Panel Vertical Total|
|0x80030|0x0005027c|Panel Vertical Sync|
|0x80058|0x0ccc0ccc|Video Scale|
|0x80048|0x06400640|Video FB Width|
|0x80010|0x06400640|Panel FB Offset/Window Width|
|0x80088|0x06400640|Video Alpha FB Offset/Window Width|
|0x80108|0x06400640|Alpha FB Offset/Window Width|
|0x90014|0x00000640|Capture Buffer Offset|
|0x80020|0x0257031f|Panel Plane BR Location|
|0x80054|0x0257031f|Video Plane BR Locatoin|
|0x80094|0x0257031f|Video Alpha BR Location|
|0x80110|0x0257031f|Alpha Plane BR Locatoin|
|>|>|LEFT:~Bob|
|0x80058|0x06670ccc|Video Scale|
|0x90000|0x000022b1|Capture Control|
|>|>|LEFT:~XGA|
|0x00044|0x01090101|Power Mode 0 Clock|
|0x0004C|0x01090101|Power Mode 1 Clock|
|0x80000|0x07013101|Panel Display Control|
|0x80014|0x04000000|Panel FB Width|
|0x80018|0x03000000|Panel FB Height|
|0x80024|0x052f03ff|Panel Horizontal Total|
|0x80028|0x00870417|Panel Horizontal Sync|
|0x8002c|0x032502ff|Panel Vertical Total|
|0x80030|0x00050302|Panel Vertical Sync|
|0x80058|0x0a000a00|Video Scale|
|0x80048|0x08000800|Video FB Width|
|0x80010|0x08000800|Panel FB Offset/Window Width|
|0x80088|0x08000800|Video Alpha FB Offset/Window Width|
|0x80108|0x08000800|Alpha FB Offset/Window Width|
|0x90014|0x00000800|Capture Buffer Offset|
|0x80020|0x02ff03ff|Panel Plane BR Location|
|0x80054|0x02ff03ff|Video Plane BR Locatoin|
|0x80094|0x02ff03ff|Video Alpha BR Location|
|0x80110|0x02ff03ff|Alpha Plane BR Location|
|>|>|LEFT:~Bob|
|0x80058|0x05000a00|Video Scale|
|0x90000|0x000022b1|Capture Control|
|>|>|LEFT:~SXGA (experimental)|
|0x00044|0x00090101|Power Mode 0 Clock|
|0x0004C|0x00090101|Power Mode 1 Clock|
|0x80000|0x07013101|Panel Display Control|
|0x80014|0x05000000|Panel FB Width|
|0x80018|0x04000000|Panel FB Height|
|0x80024|0x06a704ff|Panel Horizontal Total|
|0x80028|0x01600514|Panel Horizontal Sync|
|0x8002c|0x043403ff|Panel Vertical Total|
|0x80030|0x001a0400|Panel Vertical Sync|
|0x80058|0x07800780|Video Scale|
|0x80048|0x0a000a00|Video FB Width|
|0x80010|0x0a000a00|Panel FB Offset/Window Width|
|0x80088|0x0a000a00|Video Alpha FB Offset/Window Width|
|0x80108|0x0a000a00|Alpha FB Offset/Window Width|
|0x90014|0x00000800|Capture Buffer Offset|
|0x80020|0x03ff04ff|Panel Plane BR Location|
|0x80054|0x03ff04ff|Video Plane BR Locatoin|
|0x80094|0x03ff04ff|Video Alpha BR Location|
|0x80110|0x03ff04ff|Alpha Plane BR Location|
|>|>|LEFT:~Bob|
|0x80058|0x03c00800|Video Scale|
|0x90000|0x000022b1|Capture Control|


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS