Hello,
It seems that the linuxBIOS mailing list also manages FILO, so I post this here, please let me know if I'm wrong.
I'm trying to boot on an USB key using Filo and an OHCI host, but without success for now. I don't know if this is supposed to work (apparently yes). If not, is there a means to achieve USB key boot without the BIOS?
Here is the description of the problem: USB key used: 0ea0:6828 Ours Technology, Inc. OTI-6828 Flash Disk Please not that this key boots right using the BIOS (but I would like to avoid using the BIOS), and is correctly recognized by linux (I noticed some similarities between the linux USB driver and the filo USB driver) PCI USB controllers (from lspci): 00:0b.0 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3) 00:0b.1 USB Controller: nVidia Corporation MCP51 USB Controller (rev a3)
Apparently, the host doesn't manage to give an address to the key (it tries 2, 3, 4, and so on, and reboots after a while). Here is what I get by setting USB debugging in filo: FILO version 0.5 (remy@localhost) Tue Jul 24 18:48:58 CEST 2007 LinuxLabs USB bootloader ohc_init: ohc_init num_controllers=0 ohci=121ec0 ohc_init: Found OHCI at fc165a30 ohc_reset: Resetting OHCI ohc_reset: USB HC reset_hc usb-fc165a30: ctrl = 0x600 ;Starting OHCI OHCI controller usb-fc165a30 state control: 0x00000683 RWE RWC HCFS=operational CBSR=3 cmdstatus: 0x00000000 SOC=0 intrstatus: 0x00000044 RHSC SF intrenable: 0x80000003 MIE WDH SO hcca frame #0000 roothub.a: 01000208 POTPGT=1 NPS NDP=8 roothub.b: 00000000 PPCM=0000 DR=0000 roothub.status: 00000000 roothub.portstatus [0] = 0x00000100 PPS roothub.portstatus [1] = 0x00000100 PPS roothub.portstatus [2] = 0x00000100 PPS roothub.portstatus [3] = 0x00010101 CSC PPS CCS roothub.portstatus [4] = 0x00000100 PPS roothub.portstatus [5] = 0x00000100 PPS roothub.portstatus [6] = 0x00000100 PPS roothub.portstatus [7] = 0x00000100 PPS poll_usb: poll_usb1 i=0 poll_o_root_hub1 v=00000100 port = fc165a84, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a88, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a8c, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00010101 port = fc165a90, controller = 0 poll_o_root_hub: poll_o_root_hub2 v=00010101 poll_o_root_hub21 v=00010101 Connection on port fc165a90 New USB device, setting address 2 dma_to_td: can not find td RET URB:[ 0] dev: 0,ep: 0-O,type:CTRL,flags: 0,len:0/0,stat:-115(ffffff8d) ohci.c: cmd(8): 00 05 02 00 00 00 00 00 configure_device: Fetching device descriptor length dma_to_td: can not find td RET URB:[ 0] dev: 2,ep: 0-I,type:CTRL,flags: 0,len:0/8,stat:-115(ffffff8d) ohci.c: cmd(8): 80 06 00 01 00 00 08 00 ohci.c: data(0/8): stat:-115 configure_device: Fetching device descriptor dma_to_td: can not find td RET URB:[ 0] dev: 2,ep: 0-I,type:CTRL,flags: 0,len:0/18,stat:-115(ffffff8d) ohci.c: cmd(8): 80 06 00 01 00 00 12 00 ohci.c: data(0/18): stat:-115 OHCI controller usb-fc165a30 state control: 0x00000693 RWE RWC HCFS=operational CLE CBSR=3 cmdstatus: 0x00000000 SOC=0 intrstatus: 0x00000044 RHSC SF intrenable: 0x80000003 MIE WDH SO ed_controlhead 01ff84f0 hcca frame #0000 roothub.a: 01000208 POTPGT=1 NPS NDP=8 roothub.b: 00000000 PPCM=0000 DR=0000 roothub.status: 00000000 roothub.portstatus [0] = 0x00000100 PPS roothub.portstatus [1] = 0x00000100 PPS roothub.portstatus [2] = 0x00000100 PPS roothub.portstatus [3] = 0x00100103 PRSC PPS PES CCS roothub.portstatus [4] = 0x00000100 PPS roothub.portstatus [5] = 0x00000100 PPS roothub.portstatus [6] = 0x00000100 PPS roothub.portstatus [7] = 0x00000100 PPS dma_to_td: can not find td RET URB:[ 0] dev:127,ep: 1-I,type:CTRL,flags: 0,len:0/1,stat:-115(ffffff8d) ohci.c: cmd(8): a1 fe 00 00 00 00 01 00 ohci.c: data(0/1): stat:-115 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a94, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a98, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a9c, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165aa0, controller = 0 poll_usb: poll_usb1 i=0 poll_o_root_hub1 v=00000100 port = fc165a84, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a88, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00000100 port = fc165a8c, controller = 0 poll_o_root_hub: poll_o_root_hub1 v=00100103 port = fc165a90, controller = 0 poll_o_root_hub: poll_o_root_hub2 v=00100103 poll_o_root_hub21 v=00100103 Connection on port fc165a90 New USB device, setting address 3 dma_to_td: can not find td RET URB:[ 0] dev: 0,ep: 0-O,type:CTRL,flags: 0,len:0/0,stat:-115(ffffff8d) ohci.c: cmd(8): 00 05 03 00 00 00 00 00 configure_device: Fetching device descriptor length ... and so on (same logs for address 3, 4, etc.)
The USB key seems to be alternatively powered on and off during this process (so I guess the "New USB device" detected is the right one -- and the only one connected anyway).
I'm not familiar at all with USB, so I don't know how to debug this, nor what's wrong here. Note also that I'm using the regular BIOS of the MB (modified by adding an ISA ROM to the BIOS image, which contains FILO), and that I successfully boot using the IDE device.
Any help would be much appreciated.
Thanks in advance,
Remy