YES, I have modified that with phy_to_virt for mem range for OHCI. I can not debug UHCI, because I can not find such adapter. Amd 8111 is OHCI.
Please let me know if you can debug the code.
Regards
YH
-----邮件原件----- 发件人: Takeshi Sone [mailto:ts1@tsn.or.jp] 发送时间: 2004年5月11日 21:28 收件人: YhLu 抄送: Steven James; Linuxbios 主题: Re: New problems with building Baremetal
YH, I have tried porting Steven's USB driver into FILO some months ago (without success, though). FILO is running on virtual address, but hardware that does DMA needs to know physical address, so some translation is needed when you pass some memory address to hardware registers. I believe this situation is same in Etherboot. (In fact, I stealed the idea of relocation/virtual addressing from Etherboot.)
Steven,
I made some progress, and it met failed transaction.
Regards
YH
[FILO]FILO version 0.4.1 (root@tst2723-rh9) Tue May 11 20:39:11 PDT 2004 Press <Enter> for default boot, or <Esc> for boot prompt... timed out boot: uda1:/ram0_2.5_2.6.5_k8.2_mydisk7.elf LinuxLabs USB bootloader raw frame_list is at 000795c0 frame_list is at 0007a000 frame_list_link: addr: 000785d0 frame_list_link: raw addr: efef5f40 frame_list_link: terminate: 00000000 frame_list_link: queue: 00000001 frame_list_link: depth: 00000000 dummy_td = 00070560 raw frame_list is at 0007b5c0 frame_list is at 0007c000 frame_list_link: addr: 000785f0 frame_list_link: raw addr: efef5f60 frame_list_link: terminate: 00000000 frame_list_link: queue: 00000001 frame_list_link: depth: 00000000 dummy_td = 000705a0 raw frame_list is at 0007d5c0 frame_list is at 0007e000 frame_list_link: addr: 00078610 frame_list_link: raw addr: efef5f80 frame_list_link: terminate: 00000000 frame_list_link: queue: 00000001 frame_list_link: depth: 00000000 dummy_td = 000705e0 raw frame_list is at 0007f5c0 frame_list is at 00080000 frame_list_link: addr: 00078630 frame_list_link: raw addr: efef5fa0 frame_list_link: terminate: 00000000 frame_list_link: queue: 00000001 frame_list_link: depth: 00000000 dummy_td = 00070620 Found OHCI at 0d1a2690 Resetting OHCI USB HC reset_hc usb-0d1a2690: ctrl = 0x00000600 ;ohc_init setting framelist to: efef7970 Starting OHCI Found OHCI at 0d1a3690 Resetting OHCI USB HC reset_hc usb-0d1a3690: ctrl = 0x00000600 ;ohc_init setting framelist to: efef9970 Starting OHCI poll_usb1 i=0 poll_o_root_hub1 v=00000100 poll_o_root_hub1 v=00000100 poll_o_root_hub1 v=00000100poll_usb1 i=1 poll_o_root_hub1 v=00000100 poll_o_root_hub1 v=00010101 poll_o_root_hub2 v=00010101poll_o_root_hub21 v=00010101 Connection on port 0d1a36e8 poll_o_root_hub211 v=00000101 poll_o_root_hub212 v=00000101 poll_o_root_hub213 v=00000101 poll_o_root_hub214 v=00000101 New USB device, setting address 00000003 UHCI at 0d1a3690 failed_transaction: TD(00070660): failed_transaction: type: SETUP failed_transaction: retries: 00000003 failed_transaction: IOC failed_transaction: active: 00000001 failed_transaction: device_addr: 00000000 failed_transaction: endpoint: 00000000 failed_transaction: data_toggle: 00000000 failed_transaction: max_transfer: 00000007 failed_transaction: actual: 00000000 failed_transaction: link: failed_transaction: addr: 00070680 failed_transaction: raw addr: efeedff0 failed_transaction: terminate: 00000000 failed_transaction: queue: 00000000 failed_transaction: depth: 00000000 failed_transaction: TD(00070680): failed_transaction: type: IN failed_transaction: retries: 00000000 failed_transaction: active: 00000001 failed_transaction: device_addr: 00000000 failed_transaction: endpoint: 00000000 failed_transaction: data_toggle: 00000001 failed_transaction: max_transfer: 000007ff failed_transaction: actual: 00000000 failed_transaction: link: failed_transaction:ddr: 10182690 failed_transaction:aw addr: 00000000 failed_transaction:erminate: 00000001 failed_transaction:ueue: 00000000 failed_transaction:epth: 00000000 configure_device: set_address failed! configure_device: can't set address! bailing!
-- Takeshi