[Uclinux-h8-devel] Re: AE-3069 USB ボード (Re: uclinuxの最新状況を知りたいのですが)

アーカイブの一覧に戻る

Yoshinori Sato ysato****@users*****
2006年 8月 4日 (金) 12:27:15 JST


At Mon, 24 Jul 2006 23:02:08 -0700,
Yoichi Koyanagi wrote:
> 
> 小柳です。こんにちは。
> 
> しつこく3069USBボードです。
> 
> On 2006/05/27, at 18:37, Yoichi Koyanagi wrote:
> > これで Networkもusbメモリも使えてめでたしめでたし、
> > それじゃあhubをつないで同時に使おう!
> > …と試したらまたダメで、hubは認識されるものの、10秒
> > ほどでdisconnectして
> > しまい、どうもinterrupt packetがtimeoutしているよう
> > です。
> > hubで分けられないと、usbが使えるメリットが激減…。
> > 一難去ってまた一難、といったところです。
> 
> 結局2.4.xカーネルをあきらめて、2.6.xをベースにドライ 
> バを調整したら、
> ようやくhub込みで動作するようになりました。
> 
> DRAMを4MBに拡張してあるボードが前提ですが、
> uClinux-dist-20051110 へのパッチと作業手順、実験結果を
> 
> http://www.tinywillow.com/workshop/Lab/AE3069USB/
> 
> に置きました。
> もしこんなパッチで良ければ、適当にプロジェクトのCVSに取り 
> 込んで
> いただいて構いません。お役に立てば幸いです。
> 

パッチ見ました。
で、ちょっと気になった所を。

・linux-2.6.x/drivers/scsi/sd.c
__GFP_DMA使えない方がおかしいので調べます。
いまどきこんなフラグはいらないような気もしますが…

・linux-2.6.x/drivers/usb/core/hub.c
なんとなくgccの問題のような気がします。gccのバージョンはいくつですか?

・linux-2.6.x/drivers/usb/net/pegasus.c
こんなんでどうでしょうか。

diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c
index 7683926..3c824e3 100644
--- a/drivers/usb/net/pegasus.c
+++ b/drivers/usb/net/pegasus.c
@@ -40,6 +40,7 @@
 #include <linux/module.h>
 #include <asm/byteorder.h>
 #include <asm/uaccess.h>
+#include <asm/unaligned.h>
 #include "pegasus.h"
 
 /*
@@ -651,7 +652,7 @@ static void read_bulk_callback(struct ur
 		goto goon;
 	}
 	if (pegasus->chip == 0x8513) {
-		pkt_len = le32_to_cpu(*(__le32 *)urb->transfer_buffer);
+		pkt_len = le32_to_cpu(get_unaligned((__le32 *)urb->transfer_buffer));
 		pkt_len &= 0x0fff;
 		pegasus->rx_skb->data += 2;
 	} else {

他はよさそうなので取り込んでいきます。

kernelの修正は2.6.18のリリースには多分間に合わないので、2.6.19に入れることに
なると思います。
で、勝手に"Signed-off-by: Yoichi Koyanagi <yk****@tinyw*****>"とか付けて送っても
いいですか?

-- 
Yoshinori Sato
<ysato****@users*****>



Uclinux-h8-devel メーリングリストの案内
アーカイブの一覧に戻る