[coreboot] [LinuxBIOS] FILO with the USB

joe at smittys.pointclark.net joe at smittys.pointclark.net
Sun Mar 30 01:24:29 CET 2008

Quoting Fridel Fainshtein <fainshf at gmail.com>:

> Observing the UHCI code I can see the following issue (see usb.c and uhci.c):
> 1) uhc_init(dev);
> ...
> 2) uhci_init();
> 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:
>>  > 1. detect that a device is connected to the port
>>  > 2. enable the port
>>  > 3. Assign a USB ID with a setup packet
>>  > 4. query for device type and strings
>>  > 5. 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

More information about the coreboot mailing list