Hi,
is OHCI / USB storage support supposed to be working or is this still very early experimental stuff?
If it's known to work only on few supported chipsets yet, then never mind, just ignore me, we don't actually need this, I just fancied giving it a try.
But if it's supposed to be mostly working now, you might be interested to hear that this is all I'm getting:
FILO version 0.6.0 (root@jensrv) Fri Sep 3 16:49:08 CEST 2010 00:0f.5 2095:1022.5 EHCI controller Not supported. 00:0f.4 2094:1022.4 OHCI controller OHCI Version 1.0 fullspeed device doing control transfer with 0. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8c0, condition: f doing control transfer with 1. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8d0, condition: f doing control transfer with 1. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8d0, condition: f device 0x0951:0x160b is USB 2.0 doing control transfer with 1. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8d0, condition: f doing control transfer with 1. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8d0, condition: f doing control transfer with 1. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8c0, condition: f (MSC) it uses SCSI transparent command set it uses Bulk-Only Transport protocol using endpoint 81 as in, 2 as out doing control transfer with 1. first_td at f6bf8a0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8d0, condition: f has 1 luns Waiting for device to become ready... bulk: 1f bytes from 233035, finalize: 0, maxpacketsize: 40 doing bulk transfer with 1(2). first_td at f6bf8a0, last f6bf8b0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f bulk: d bytes from 233028, finalize: 1, maxpacketsize: 40 doing bulk transfer with 1(1). first_td at f6bf8a0, last f6bf8b0 intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 0; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f intst: 44; ctrl: b4; cmdst: 4; head: f6bf8a0 -> f6bf8b0, tail: f6bf8b0, condition: f [ ... continues infinitely ... ]
I added a counter forcing the loop @ libpayload/drivers/usb/ohci.c:206 to break after 50 repetitions, but this didn't get me anywhere: in the end USB storage would report a complete bogus nr of sectors for my thumb drive.
I'd like to be more helpful, but I don't have a clue what this loop is for, or what wait_for_ed() does or who this Ed person is anyway. ;-)
Cheers, Jens