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