Thanks for the reply. I was able to get it working under virtualbox as well.
It seems qemu is also functional, but inconsistent. I enabled debugging in e1000.c and have been able to get it to work once out of every 3-8 times I launch it.
e1000: set_ics 0, ICR 0, IMR 0
e1000: ICR read: 0
e1000: MMIO unknown write addr=0x00000178,val=0x80008060
e1000: RCTL: 1, mac_reg[RCTL] = 0x4008006
e1000: tx disabled
e1000: set_ics 2, ICR 0, IMR 0
e1000: MMIO unknown write addr=0x00000410,val=0x0060200a
e1000: MMIO unknown write addr=0x00002c00,val=0x00000000
e1000: set_ics 0, ICR 2, IMR 1ffff
e1000: receiving packet 90e1000: set_ics 90, ICR 2, IMR 1ffff
e1000: ICR read: 92
I don't completely understand these commands, but it looks like it's attempting to read more than what's available
This is another trace that looks different though (still not working)
e1000: set_ics 0, ICR 0, IMR 0
e1000: ICR read: 0
e1000: MMIO unknown write addr=0x00000178,val=0x80008060
e1000: RCTL: 1, mac_reg[RCTL] = 0x4008006
e1000: tx disabled
e1000: set_ics 2, ICR 0, IMR 0
e1000: MMIO unknown write addr=0x00000410,val=0x0060200a
e1000: MMIO unknown write addr=0x00002c00,val=0x00000000
e1000: set_ics 0, ICR 2, IMR 1ffff
e1000: ICR read: 2
e1000: receiving packet 90e1000: set_ics 90, ICR 0, IMR 1ffff
[stuck here]
When it IS working
e1000: set_ics 0, ICR 0, IMR 0
e1000: ICR read: 0
e1000: MMIO unknown write addr=0x00000178,val=0x80008060
e1000: RCTL: 1, mac_reg[RCTL] = 0x4008006
e1000: tx disabled
e1000: set_ics 2, ICR 0, IMR 0
e1000: MMIO unknown write addr=0x00000410,val=0x0060200a
e1000: MMIO unknown write addr=0x00002c00,val=0x00000000
e1000: set_ics 0, ICR 2, IMR 1ffff
e1000: ICR read: 2
e1000: receiving packet 90e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 90e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 78e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 90e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 70e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 90e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 70e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90
e1000: receiving packet 70e1000: set_ics 90, ICR 0, IMR 1ffff
e1000: ICR read: 90