On Mon, 2007-10-08 at 10:33 +0800, Zhang, Xing Z wrote:
> Hi Alex:
> I also work on this task. Base on the primary emulator in QEMU, I
> refine it to fix where I think it doesn't
> follow intel's eepr100 spec. Current status are:
> 1. it works for linux guest both in XEN/IPF and QEMU. But seems
> speed is slow.
> 2. From microsoft's WDK I get a rough eepro100 driver of win2k3.
> With this driver, the emulator can work in win2k3/X86 in QEMU.
> 3. The windows device manager can recognize the card both in QEMU and
> XEN/IPF. But it reports there is a resource conflict that
> makes card can't work.
>
> All my works base on a native i82557b card.
>
> Now I try to use windbg to investigate into it. I am enabling windbg
> for IPF guest now, hope it helpful. Attachment is my version of
> eepro100.
Hi Wing,
What is your eepro100 code based on? It looks like perhaps a very
early revision of what's currently in QEMU CVS. I haven't tested
performance at all with my port, but it does work with Linux guests. A
slow virtual NIC that works under Windows/IPF is better than not having
a virtual NIC at all. Perhaps you're resource issue is the same thing
I'm seeing with Windows moving the BARs on the card to and invalid
address. If I turn on debug in the driver, I see this:
The BARs get mapped by some level of firmware/qemu:
EE100 pci_mmio_map region 0, addr=0xc4000000, size=0x00001000,
type=8
EE100 pci_map region 1, addr=0x0000c200, size=0x00000040,
type=1
EE100 pci_mmio_map region 2, addr=0xc4020000, size=0x00020000,
type=0
When Win2k3 boots, I see this:
EE100 pci_mmio_map region 0, addr=0xf4fdf000, size=0x00001000,
type=8
EE100 pci_map region 1, addr=0x0000c200, size=0x00000040,
type=1
EE100 pci_mmio_map region 2, addr=0xf4fe0000, size=0x00020000,
type=0
Xen prints out some bad mfn messages with these addresses, which is
presumably the driver trying to access the card and not finding the data
it expects. A Linux HVM guest doesn't remap the BARs, and the
0xc4000000 addresses are what I see both from the EFI pci command and
from lspci in Linux. There don't appear to be any resource conflicts
between the virtual PCI devices that would cause the OS driver to
attempt to remap them.
I don't know much about debugging Windows, but perhaps if you can let
me know what your code is based on I can extract the spec updates you've
made into my driver and we can work together on it. Thanks,
Alex
--
Alex Williamson HP Open Source & Linux Org.
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|