Different output from 3 different VMs plus real hardware?
Posted: Thu Sep 29, 2011 7:26 pm
I had PCI bus enumeration working (so I thought), and so I went to try it on real hardware (just wanted to see the full list of real PCI devices), and it triple faults! I thought, well that's odd, because I saw the blue lines (I'm printing the PCI devices that I found in blue) fly by right before it triple faulted, and the only thing after that is my one and only task sleeps (indefinitely) and the PC just keeps running the Idle thread forever (I know not good, but it's just temporary).
Now, I had no idea why it was triple faulting, so I thought I'd try it in Bochs 1. to see if it triple faults, and bochs gives me some useful info, and 2. see if there are any warnings printed by bochs. Well Yes, and No. Bochs didn't say anything was wrong (no triple fault), but I only got one device, and it wasn't valid. (I was manually setting up the Host Bridge at Bus:0,Device:0,Function:0 without checking validity since it's supposed to always be there). So while I didn't triple fault, something is either wrong with my bochs config, or still the same (really odd) error.
After that, I tried to run it in VirtualBox just to see what it did (since I had speratic behavior up to this point). I got a good list of devices (actually more devices then Qemu gave me!) granted some said "Unknown PCI device" but that's probably because I haven't finished my pci_classcode.h file (there's A LOT of classes to manually type ).
So lets go back over that.
Machine 1: Qemu, works
Machine 2: Physical, triple faults
Machine 3: Bochs, works with bad PCI list
Machine 4: VirtualBox, works
Any ideas? I have no idea even where to start looking! Lol I attached two screenshots. One of qemu, and one of bochs output (couldn't get one of physical, and virtualbox is basically the same as qemu).
Now, I had no idea why it was triple faulting, so I thought I'd try it in Bochs 1. to see if it triple faults, and bochs gives me some useful info, and 2. see if there are any warnings printed by bochs. Well Yes, and No. Bochs didn't say anything was wrong (no triple fault), but I only got one device, and it wasn't valid. (I was manually setting up the Host Bridge at Bus:0,Device:0,Function:0 without checking validity since it's supposed to always be there). So while I didn't triple fault, something is either wrong with my bochs config, or still the same (really odd) error.
After that, I tried to run it in VirtualBox just to see what it did (since I had speratic behavior up to this point). I got a good list of devices (actually more devices then Qemu gave me!) granted some said "Unknown PCI device" but that's probably because I haven't finished my pci_classcode.h file (there's A LOT of classes to manually type ).
So lets go back over that.
Machine 1: Qemu, works
Machine 2: Physical, triple faults
Machine 3: Bochs, works with bad PCI list
Machine 4: VirtualBox, works
Any ideas? I have no idea even where to start looking! Lol I attached two screenshots. One of qemu, and one of bochs output (couldn't get one of physical, and virtualbox is basically the same as qemu).