だめだ、わからん。
わからないときは、現場に戻るべし。
カーネルのログを見てみよう。
<7>musb_interrupt 1536: ** IRQ peripheral usb0001 tx0000 rx0000
<7>musb_stage2_irq 816: SUSPEND (b_idle) devctl 99 power e0
<7>musb_stage2_irq 820: state (1) active (0)
<7>musb_interrupt 1536: ** IRQ peripheral usb0004 tx0000 rx0000
<7>musb_stage0_irq 385: <== Power=f0, DevCtl=99, int_usb=0x4
<7>musb_stage0_irq 647: BUS RESET as b_idle
<7>musb_g_reset 1995: <== B-Device addr=0 driver 'android_usb'
ここは、まだアイドル状態。
USBをPCに挿した直後というところか。
まずここでRESETしている。
<7>musb_interrupt 1536: ** IRQ peripheral usb0008 tx0001 rx0000
<7>musb_g_ep0_irq 628: csr 0001, count 8, myaddr 0, ep0stage setup
<7>musb_read_fifo 202: RX ep0 fifo fa0ab020 count 8 buf c0473ecc
<7>musb_read_setup 562: SETUP req80.06 v0100 i0000 l64
<7>musb_g_ep0_irq 810: handled 0, csr 0001, ep0stage in
<7>musb_g_ep0_queue 916: queue to ep0 (OUT/RX), length=18
<7>musb_write_fifo 164: TX ep0 fifo fa0ab020 count 18 buf cf904c00
<7>musb_g_giveback 144: ep0 done request cf8fd680, 18/18
ここがSETUPステージ。
countが8ってのは、デバイスリクエストのみでデータサイズ0のことだろう。
<7>musb_interrupt 1536: ** IRQ peripheral usb0008 tx0001 rx0000
<7>musb_g_ep0_irq 628: csr 0000, count 0, myaddr 0, ep0stage out/status
OUTステージか、STATUSステージか。
Interface誌の特集では、データステージかステータスステージになる、とある。
OUTってのは、データステージのことか?
SETUPステージで、80.06という要求が来ている。
これは、GET_DESCRIPTOR要求で、deviceが返さなくてはならない。
返すときは、ログが出ないのか?
と思ったが、SETUPステージの最後でqueueして、FIFOに積めて、done、とまでいっている。
さすがに送っているだろう。
問題は何を送っているかだ。
細かく言えば、SETUPでディスクリプタ要求されても、まずはハンドシェイクパケットを送ることになっている。
ディスクリプタを返すのは、次にHostからINトークンパケットが来た後だ。
18byteって大きいから、ハンドシェークパケットではなさそうだ。
<7>musb_interrupt 1536: ** IRQ peripheral usb0000 tx0001 rx0000
<7>musb_g_ep0_irq 628: csr 0000, count 0, myaddr 0, ep0stage idle
アイドルになった。
<7>musb_interrupt 1536: ** IRQ peripheral usb000c tx0000 rx0000
<7>musb_stage0_irq 385: <== Power=f0, DevCtl=99, int_usb=0xc
<7>musb_stage0_irq 647: BUS RESET as b_peripheral
<7>musb_g_reset 1995: <== B-Device addr=0 driver 'android_usb'
リセットがかかった。
うーん、ハンドシェークパケットを送っていないのが問題なのか?
DMA転送がうまくいってないかも、とPIO設定にしてみたが、特に変化なし。
うーむ。。。。。。。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。