Quoting Fridel Fainshtein fainshf@gmail.com:
Observing the UHCI code I can see the following issue (see usb.c and uhci.c):
- uhc_init(dev);
... 2) uhci_init();
Hmm....
The first function uses " frame_list[num_controllers] ". The second function initializes the frame_list by init_framelist(i);
Depend on the value of (i), correct?
May be if the order will be different it will works. I am not sure, though. It is 3 o'clock, may be I just dreaming.
Thanks for the insite Fridel, I will look into this deeper.
Fridel's code, in patch form and with the non-USB bits removed.
Well, I tested this patch and it does nothing for UHCI :-( It might work great for OHCI but someone else will need to test it.
It should fall back, but not everything does that properly. Just for checking the basic functioning, any old USB 1.1 device (keyboard, mouse, hub) will do to at least see that it was recognized and configured.
IIRC, the sequence is:
- detect that a device is connected to the port
- enable the port
- Assign a USB ID with a setup packet
- query for device type and strings
- If a suitable block device, load the payload.
5 used to be a stream object (like in the old LinuxBIOS code) handed to a copy of the the ELF loader. the read method set up the request and called into the USB polling loop. I'm guessing that's
One potential issue there is that control of the physical port between UHCI or OHCI (for 1.1) and EHCI (for 2.0) is determined by a bit in a register. I'm not sure what happens if it's set wrong, but I suspect it could look like your debug output.
was this exact setup working before r54? One possability is that the USB code always had a bug that wasn't visible when allocations were quietly double the requested size.
So I tried a low speed device (old usb mouse) and it did something different, it still errored out of course (because it is not a drive) but I think it was working the way it is supposed to??? Anyways I also tried a USB 2.0 flash drive with no success. I think what is happening here is, it is not falling back to low speed UHCI......see attachment....I don't know where to go from here....
Thanks - Joe