I've been having similar problems on VirtualBox:
Code:
[xHCI] Reset port 0 (USB2) SUCCESS
[xHCI] Attempting to initialize device
[xHCI] Failed when enabling slot: Error code 0x0 (aka timed out)
and (formerly I guess, it's working now
) VMware. Have you tried either of those? They don't offer as much debug as Bochs, but testing on multiple different systems can sometimes help identify problems.
Try looking at the way you initialize ports of different types (USB2/3). Make sure you are sending the correct port ID and routing number to the controller. That's where my problem was when I had similar results to yours.
-----------------------------
In any case, I can't get your OS to run with xHCI keyboard on QEMU SanderR. I've tried this command with both of the GRUB options:
Code:
qemu-system-x86_64 -cdrom cdrom.iso -device qemu-xhci,p2=1,p3=0 -device usb-kbd
It just gets stuck after
Code:
Run!
System up and running wtih USBCMD 5 and USBSTS 0
Event Ring Control: pointing at event 0
Just a tip: Have the debug output go to serial. If you haven't implemented it, it's <
super simple>. It makes it WAY easier to copy and paste text, as well as scroll through the entire debug output.
Unfortunately, I don't have any real devices with xHCI & BIOS to test your or my code on right now
. I may consider getting a USB3 PCIe card soon.
-----------------------
rdos wrote:
A couple of pitfalls are the following:
1. The scratch pad area. Some XHCI require this to work
Huh. I may need to look into figuring them out and implementing them. Am I correct that after they are allocated they don't need to be touched?