Pedigree early USB test request
Pedigree early USB test request
After lots of months of code and trial&error, I managed to get my UHCI driver to work on realHW.
I've prepared an ISO image with the modified pedigree and uploaded it at http://thesalesgenerator.com/playground ... digree.iso .
It contains drivers for: EHCI(not tested on realHW), UHCI, USB Mass Storage(read only and may not work on realHW), USB HID, USB Hub and FT8U232AM.
If you want to test only UHCI, see http://forum.osdev.org/viewtopic.php?f= ... 95#p177622 .
The log is both on screen and on serial. Some modules are disabled, so it should enter debugger(press any key at the blue-on-black screen) soon after usb has finished initializing devices. In the debugger, "log<enter>" will let you browse the log.
To put it simple: if it works, there should be at least one "(NN) USB: Device: VENDOR_STRING PRODUCT_STRING, class x:y:z" line in the log.
Each transaction has debugging output, so if anything went wrong, there should be the "STOP" lines will end with a negative value.
Full logs would be nice .
Thank you,
eddyb.
I've prepared an ISO image with the modified pedigree and uploaded it at http://thesalesgenerator.com/playground ... digree.iso .
It contains drivers for: EHCI(not tested on realHW), UHCI, USB Mass Storage(read only and may not work on realHW), USB HID, USB Hub and FT8U232AM.
If you want to test only UHCI, see http://forum.osdev.org/viewtopic.php?f= ... 95#p177622 .
The log is both on screen and on serial. Some modules are disabled, so it should enter debugger(press any key at the blue-on-black screen) soon after usb has finished initializing devices. In the debugger, "log<enter>" will let you browse the log.
To put it simple: if it works, there should be at least one "(NN) USB: Device: VENDOR_STRING PRODUCT_STRING, class x:y:z" line in the log.
Each transaction has debugging output, so if anything went wrong, there should be the "STOP" lines will end with a negative value.
Full logs would be nice .
Thank you,
eddyb.
Last edited by eddyb on Sun Jul 04, 2010 2:56 am, edited 2 times in total.
Re: Pedigree early USB test request
Update: I've made another ISO image with EHCI driver disabled and full-screen log. Here you can download it: http://thesalesgenerator.com/playground ... digree.iso .
Re: Pedigree early USB test request
Update: just wrote an OHCI driver, the new ISO image it at http://thesalesgenerator.com/playground ... digree.iso .
Re: Pedigree early USB test request
Hi,
I've tested the latest CD image you posted here on my workstation. The motherboard is a Gigabyte GA-790FXTA-UD5, using the 790FX/SB750 chipset. There was a Logitech webcam and a Microsoft wireless keyboard/mouse receiver connected at the time of testing. Let me know if you want any other information.
Regards, Jack.
I've tested the latest CD image you posted here on my workstation. The motherboard is a Gigabyte GA-790FXTA-UD5, using the 790FX/SB750 chipset. There was a Logitech webcam and a Microsoft wireless keyboard/mouse receiver connected at the time of testing. Let me know if you want any other information.
Code: Select all
(NN) KERNELELF: Executing module usb
(NN) KERNELELF: Executing module usb-hcd
(WW) USB: xHCI found, not implemented yet!
(NN) USB: OHCI found
(NN) address=0xc0281e08, m_Io=0xc0932e88
(NN) USB: OHCI: Reseted
(NN) USB: OHCI found
(NN) address=0xc0281e88, m_Io=0xc0932b48
(NN) USB: OHCI: Reseted
(NN) USB: OHCI found
(NN) address=0xc0281fc8, m_Io=0xc0932cc8
(NN) USB: OHCI: Reseted
(NN) USB: OHCI: Port 0 is connected
(NN) START 0:0 SETUP 0
Re: Pedigree early USB test request
Thanks, it seems it fails to get an IRQ from the OHCI.JackScott wrote:Hi,
I've tested the latest CD image you posted here on my workstation. The motherboard is a Gigabyte GA-790FXTA-UD5, using the 790FX/SB750 chipset. There was a Logitech webcam and a Microsoft wireless keyboard/mouse receiver connected at the time of testing. Let me know if you want any other information.
Regards, Jack.Code: Select all
(NN) KERNELELF: Executing module usb (NN) KERNELELF: Executing module usb-hcd (WW) USB: xHCI found, not implemented yet! (NN) USB: OHCI found (NN) address=0xc0281e08, m_Io=0xc0932e88 (NN) USB: OHCI: Reseted (NN) USB: OHCI found (NN) address=0xc0281e88, m_Io=0xc0932b48 (NN) USB: OHCI: Reseted (NN) USB: OHCI found (NN) address=0xc0281fc8, m_Io=0xc0932cc8 (NN) USB: OHCI: Reseted (NN) USB: OHCI: Port 0 is connected (NN) START 0:0 SETUP 0
Well, I don't suppose anyone else wants to give it a try, so I won't post updates on the images anymore.
Re: Pedigree early USB test request
On my Acer Aspire 7530 (sorry, couldn't find motherboard model), it prints this and sits there without any response to anything. Don't know what blue-on-black screen you're talking about.
Code: Select all
(NN) KERNELELF: Executing module usb
(NN) KERNELELF: Executing module usb-hcd
(NN) USB: OHCI found
(NN) address=0xc0281c48, m_Io=0xc0940748
(NN) USB: OHCI: Reseted
(NN) USB: OHCI found
(NN) address=0xc0281d48, m_Io=0xc0940408
(NN) USB: OHCI: Reseted
(NN) USB: OHCI: Port 0 is connected
(NN) START 0:0 SETUP 8
Re: Pedigree early USB test request
Same problem: no IRQ. Also, the blue-on-black screen is the debugger screen and it's disabled in the latest images.fronty wrote:On my Acer Aspire 7530 (sorry, couldn't find motherboard model), it prints this and sits there without any response to anything. Don't know what blue-on-black screen you're talking about.
Code: Select all
(NN) KERNELELF: Executing module usb (NN) KERNELELF: Executing module usb-hcd (NN) USB: OHCI found (NN) address=0xc0281c48, m_Io=0xc0940748 (NN) USB: OHCI: Reseted (NN) USB: OHCI found (NN) address=0xc0281d48, m_Io=0xc0940408 (NN) USB: OHCI: Reseted (NN) USB: OHCI: Port 0 is connected (NN) START 0:0 SETUP 8
Anyway, if you or anyone else wants to try again, I fixed some of the problems and made a new image ( http://thesalesgenerator.com/playground ... digree.iso ). I've also updated the first post with the latest link.
Re: Pedigree early USB test request
New output.
On both times I've had Speedlink mouse and Casio FX-9860G connected.
Code: Select all
(NN) KERNELELF: Executing module usb
(NN) KERNELELF: Executing module usb-hcd
(NN) USB: EHCI found
(NN) address=0xc0281d88, m_Io=0xc05d0608
(NN) USB: EHCI: Reseted
(NN) USB: EHCI: Port 0 got 0x1000
(NN) USB: EHCI: Port 1 got 0x1000
(NN) USB: EHCI: Port 2 got 0x1005
(NN) USB: EHCI: Port 2 is connected
(NN) START 0:0 SETUP 8
(NN) IRQ 0x1010
Re: Pedigree early USB test request
Just want to say something that could be related to the unhanded interrupt. When I run my own code(an OS) I get some unknown interrupt when enabling them in protected mode on this particular machine. I get #GP because PIC masked and device related IDT entries are not set. I get GP only once.
Regarding second image, it lists 2 ohci (or 2ports on 1 ohci). I was not able to reproduce that again but I did have 1 low speed & 1 high speed devices connected to same controller - 2 ports.
All other times I had only 1 low speed device.
That's latest ISO #4.
Interesting thing about firing interrupts is that they start happening in about 3-8 seconds after SETUP 8 displayed and about 1s apart. Ohci can't deliver interrupts or you can't accept it so spurious int firing?
Regarding second image, it lists 2 ohci (or 2ports on 1 ohci). I was not able to reproduce that again but I did have 1 low speed & 1 high speed devices connected to same controller - 2 ports.
All other times I had only 1 low speed device.
That's latest ISO #4.
Interesting thing about firing interrupts is that they start happening in about 3-8 seconds after SETUP 8 displayed and about 1s apart. Ohci can't deliver interrupts or you can't accept it so spurious int firing?
Re: Pedigree early USB test request
@fronty: it seems it gives a Host System Error IRQ instead of an IRQ signaling completion. It may be PCI-related, but as of right now I have no idea.
@geppyfx: seeing the error IRQ from EHCI in fronty's log I realized OHCI could as well encounter an error (maybe even the same error) and not report it (because the driver doesn't enable all the IRQ firing conditions). As for the unhandled IRQs, I doubt they are related to OHCI.
Thank you again for your help, I hope I'll manage to fix these new bugs your tests pointed out .
@geppyfx: seeing the error IRQ from EHCI in fronty's log I realized OHCI could as well encounter an error (maybe even the same error) and not report it (because the driver doesn't enable all the IRQ firing conditions). As for the unhandled IRQs, I doubt they are related to OHCI.
Thank you again for your help, I hope I'll manage to fix these new bugs your tests pointed out .
Re: Pedigree early USB test request
Oh, I forgot to add, on one boot with latest image when I forgot my calculator or it wasn't in data transfer mode, don't remember which, I think it said IRQ 0x8010. I'm not sure, I just quickly read through the output and realized this wasn't same test case as last time and rebooted, so I can't say anything for sure.
Re: Pedigree early USB test request
Doesn't mean too much.fronty wrote:Oh, I forgot to add, on one boot with latest image when I forgot my calculator or it wasn't in data transfer mode, don't remember which, I think it said IRQ 0x8010. I'm not sure, I just quickly read through the output and realized this wasn't same test case as last time and rebooted, so I can't say anything for sure.
Right, I have an idea about what the problem could be, a new ISO is at http://thesalesgenerator.com/playground ... digree.iso . Also updated the first post.
If this doesn't work, I'm left with no options .
Re: Pedigree early USB test request
You are left with testing your code on your own real hardware before handing your soft to others. You can start right now with this option.eddyb wrote:If this doesn't work, I'm left with no options :| .
Another thing is actually to have some timeouts after which you display debugging info: content of TDs, EDs, relevant USB registers (for OHCI - HcPortStatus,HcStatus,HcDoneHead,HcControl,HcCommandStatus) before & after you started transaction.
Re: Pedigree early USB test request
With latest cd output is 1:1 to previous except it prints "(NN) USB: EHCI: Pci command+status: 0xb00006" before reset.
-
- Member
- Posts: 2566
- Joined: Sun Jan 14, 2007 9:15 pm
- Libera.chat IRC: miselin
- Location: Sydney, Australia (I come from a land down under!)
- Contact:
Re: Pedigree early USB test request
Thanks to everyone who participated in this early test - your help is greatly appreciated!
We've used the outcomes of this test to work towards fixes for the problems brought up here, and seem to have USB working quite well now.
We've used the outcomes of this test to work towards fixes for the problems brought up here, and seem to have USB working quite well now.