On Thu, Jun 05, 2014 at 10:55:39PM -0400, Matthew Gamble wrote: > Gabriel, > > I tried your suggestion and while the OS doesn't detect a link, it does > send the following right after toggling the link: > > e1000: set_ics 4, ICR 4, IMR 0 > > e1000: set_ics 4, ICR 4, IMR 0 > > Without diving into the intel programming guide myself does that help in > any way? Perhaps it's expecting an interrupt to fire that isn't?
Not right away :) I'm currently debugging a similar issue where OS X guests do not see link with e1000, but bouncing the link from the host side (via the qemu monitor) causes the link to come up and work fine. I think currently qemu's e1000 link negotiation is a bit flaky, but since windows and linux can work around it, we're the first ones to notice... There's still a good likelihood that whatever fixes your issue might also help with mine (and vice versa), but I won't get a chance to dig deeper until next week (and I'm also not all that familiar with the deep voodoo of link negotiation, so it might take a while if it's down to me... :) Cheers, --Gabriel > On Thu, Jun 5, 2014 at 10:44 PM, Gabriel L. Somlo <gso...@gmail.com> wrote: > > > Matthew Gamble <mgam...@mgamble.ca> wrote: > > > I'm trying to get a VXWorks image running inside a qemu guest. I have > > > the machine running, however, the vxworks image only has support for the > > > 82544EI device so I had to change the device ID in e1000.c to get the > > > device even recognized so I'm not sure if this is a bug or an issue for > > > the development list. > > > > > > After changing e1000.c, the device is now seen by the guest OS, however, > > it never gets a link. I've attached the e1000 debug logs in the hopes that > > someone can help me understand where to start looking into why this guest > > won't get a link. > > > > > > I tested the updated e1000 driver with a debian live CD and the card > > > works under it, so it doesn't appear that the issue is with the driver > > > string change but rather something in the e1000 driver itself. > > > > > > Here is the command I'm using to start QEMU: > > > > > > /opt/qemu/bin/qemu-system-i386 -cpu coreduo -hda /root/vxworks_test -m > > > 2048 -netdev tap,ifname=tap0,id=net0 -netdev tap,ifname=tap1,id=net1 > > > -device e1000,netdev=net0,mac=00:00:e8:01:02:03 -device > > > e1000,netdev=net1,mac=00:00:e8:01:02:04 -boot c -curses -no-kvm -D > > > /tmp/qemu.log 2>/tmp/e1000.log > > > > Can you try this: > > > > Add "-monitor stdio" to your qemu command line, and give an id to at > > least one of your e1000 devices, like so: > > > > "-device e1000,netdev=net0,mac=00:00:e8:01:02:03,id=eth0" > > > > Then after the guest is finished booting (with no link on the e1000 > > interfaces), from the qemu monitor prompt issue these two commands: > > > > set_link eth0 off > > set_link eth0 on > > > > I'd be curious to find out if this causes the guest to see a link > > become available... > > > > Thanks, > > --Gabriel > > -- ------------------------------------ Gabriel L. Somlo Director of Computing Services Information Networking Institute Carnegie Mellon University 4616 Henry St., Pittsburgh, PA 15213 +1.412.268.9310 www.ini.cmu.edu