Or because he didn't change the macros accessing EDs and TDs to also
work big endian...
At first, I didn't modify those because in the code we found : /* first fields are hardware-specified, le32 */
So I guessed that the OHCI specs wanted these to be le32. Which is not the case. So I adapted every call to functions like le32_to_cpu, ...to work bigendian (i.e. do nothing). I only replace calls concerning TD & ED, which means every call in ohci-hcd.c ohci.h ohci-dbg.c ohci-q.c but NOT the call of ohci-hub.c.
Then I have different errors :
ohci_hcd: 2004 Feb 02 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci_hcd: block sizes: ed 64 td 64
ohci_hcd: Motorola MPC5xxx integrated OHCI glue
ohci_hcd (MPC5xxx) at 0xf0001000, irq 44
mpc5xxx_ohci 03: new USB bus registered, assigned bus number 1
mpc5xxx_ohci 03: reset, control = 0x0
mpc5xxx_ohci 03: root hub device address 1
usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1
drivers/usb/core/message.c: USB device number 1 default language ID 0x409
usb usb1: Product: MPC5xxx OHCI
usb usb1: Manufacturer: Linux 2.6.5-mpc5xxx ohci_hcd
usb usb1: SerialNumber: mpc5xxx
usb usb1: registering 1-0:1.0 (config #1, interface 0)
hub 1-0:1.0: usb_probe_interface
hub 1-0:1.0: usb_probe_interface - got id
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
hub 1-0:1.0: standalone hub
hub 1-0:1.0: unknown reserved power switching mode
hub 1-0:1.0: no over-current protection
hub 1-0:1.0: Port indicators are not supported
hub 1-0:1.0: power on to power good time: 4ms
hub 1-0:1.0: hub controller current requirement: 0mA
hub 1-0:1.0: local power source is good
hub 1-0:1.0: no over-current condition exists
hub 1-0:1.0: enabling power on all ports
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
i2c-bus MPC5xxx OnChip I2C Bus driver
RAMDISK: Compressed image found at block 0
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00010301 CSC LSDA PPS CCS
hub 1-0:1.0: port 1, status 301, change 1, 1.5 Mb/s
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00000301 LSDA PPS CCS
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00000301 LSDA PPS CCS
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00000301 LSDA PPS CCS
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00000301 LSDA PPS CCS
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00000301 LSDA PPS CCS
hub 1-0:1.0: debounce: port 1: delay 100ms stable 4 status 0x301
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 68k init
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS PESstatus wait_urb: 0
usb 1-1: new low speed USB device using address 2
drivers/usb/host/ohci-dbg.c: SUB c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s5drivers/usb/host/ohci-dbg.c: setup(8): 00 05 02 00 00 00 00 00
mpc5xxx_ohci 03: urb c03c8720 td c5004040 (2) cc 4, len=0/0
drivers/usb/host/ohci-dbg.c: RET c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s2tick: 0323
drivers/usb/host/ohci-dbg.c: SUB c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s5drivers/usb/host/ohci-dbg.c: setup(8): 00 05 02 00 00 00 00 00
mpc5xxx_ohci 03: urb c03c8720 td c5004000 (2) cc 4, len=0/0
drivers/usb/host/ohci-dbg.c: RET c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s2tick: 03f2
usb 1-1: device not accepting address 2, error -32
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00100303 PRSC LSDA PPS PESstatus wait_urb: 0
usb 1-1: new low speed USB device using address 3
drivers/usb/host/ohci-dbg.c: SUB c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s5drivers/usb/host/ohci-dbg.c: setup(8): 00 05 03 00 00 00 00 00
mpc5xxx_ohci 03: urb c03c8720 td c5004080 (2) cc 4, len=0/0
drivers/usb/host/ohci-dbg.c: RET c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s2tick: 0599
drivers/usb/host/ohci-dbg.c: SUB c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s5drivers/usb/host/ohci-dbg.c: setup(8): 00 05 03 00 00 00 00 00
mpc5xxx_ohci 03: urb c03c8720 td c5004000 (2) cc 4, len=0/0
drivers/usb/host/ohci-dbg.c: RET c03c8720 dev=0 ep=0out-ctrl flags=10 len=0/0 s2tick: 0668
usb 1-1: device not accepting address 3, error -32
mpc5xxx_ohci 03: GetStatus roothub.portstatus [2] = 0x00000100 PPS
mpc5xxx_ohci 03: GetStatus roothub.portstatus [1] = 0x00000301 LSDA PPS CCS
mpc5xxx_ohci 03: GetStatus roothub.portstatus [2] = 0x00000100 PPS
Some remark:
Port 2 is detected but in fact no hardware is present. The -32 error (-EPIPE) when usb 1-1 is not accepting address seems to come from cc_to_error conversion. It's for a STALE PID.
And now interrupts are OK I just for 8 or 16, something like that.
Note: When working with that chip, in a former life, I also has casesSo cool ...
that appeared to show a bug in TD completion queue management, typically,
in some error cases, the faulty TD would be linked to the done queue, but
still point to the rest of the ED queue, thus actually linking the done
queue to the ED queue. Explosive result guaranteed.
I suppose there is no way it can easly be detected to at least printk something ?
Sylvain Munaut
------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel