Add support for the 82567LM flavor of e1000
This commit is contained in:
		
							parent
							
								
									ba8af817fc
								
							
						
					
					
						commit
						898cce256f
					
				@ -111,7 +111,7 @@ cards()
 | 
				
			|||||||
    card 6 "NE2000, 3com 503 or WD based card (also emulated by Bochs)"
 | 
					    card 6 "NE2000, 3com 503 or WD based card (also emulated by Bochs)"
 | 
				
			||||||
    card 7 "AMD LANCE (also emulated by VMWare and VirtualBox)" "1022:2000"
 | 
					    card 7 "AMD LANCE (also emulated by VMWare and VirtualBox)" "1022:2000"
 | 
				
			||||||
    card 8 "Intel PRO/1000 Gigabit" 				       \
 | 
					    card 8 "Intel PRO/1000 Gigabit" 				       \
 | 
				
			||||||
           "8086:100E" "8086:107C" "8086:10CD" "8086:10D3"
 | 
					           "8086:100E" "8086:107C" "8086:10CD" "8086:10D3" "8086:10DE"
 | 
				
			||||||
    	
 | 
					    	
 | 
				
			||||||
    card 9 "Attansic/Atheros L2 FastEthernet" "1969:2048"
 | 
					    card 9 "Attansic/Atheros L2 FastEthernet" "1969:2048"
 | 
				
			||||||
    card 10 "DEC Tulip 21140A in VirtualPC" "1011:0009"
 | 
					    card 10 "DEC Tulip 21140A in VirtualPC" "1011:0009"
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,7 @@ PRIVATE u16_t pcitab_e1000[] =
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    E1000_DEV_ID_82540EM,
 | 
					    E1000_DEV_ID_82540EM,
 | 
				
			||||||
    E1000_DEV_ID_82541GI_LF,
 | 
					    E1000_DEV_ID_82541GI_LF,
 | 
				
			||||||
 | 
					    E1000_DEV_ID_ICH10_D_BM_LM,
 | 
				
			||||||
    E1000_DEV_ID_ICH10_R_BM_LF,
 | 
					    E1000_DEV_ID_ICH10_R_BM_LF,
 | 
				
			||||||
    E1000_DEV_ID_82574L,
 | 
					    E1000_DEV_ID_82574L,
 | 
				
			||||||
    0,
 | 
					    0,
 | 
				
			||||||
@ -282,11 +283,12 @@ PRIVATE int e1000_probe(e1000_t *e, int skip)
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    switch (did)
 | 
					    switch (did)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        case E1000_DEV_ID_ICH10_D_BM_LM:
 | 
				
			||||||
        case E1000_DEV_ID_ICH10_R_BM_LF:
 | 
					        case E1000_DEV_ID_ICH10_R_BM_LF:
 | 
				
			||||||
            e->eeprom_read = eeprom_ich;
 | 
					            e->eeprom_read = eeprom_ich;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    	case E1000_DEV_ID_82574L:
 | 
						case E1000_DEV_ID_82574L:
 | 
				
			||||||
	case E1000_DEV_ID_82541GI_LF:
 | 
						case E1000_DEV_ID_82541GI_LF:
 | 
				
			||||||
	    e->eeprom_done_bit = (1 << 1);
 | 
						    e->eeprom_done_bit = (1 << 1);
 | 
				
			||||||
	    e->eeprom_addr_off =  2;
 | 
						    e->eeprom_addr_off =  2;
 | 
				
			||||||
@ -326,14 +328,24 @@ PRIVATE int e1000_probe(e1000_t *e, int skip)
 | 
				
			|||||||
	did != E1000_DEV_ID_82540EP &&
 | 
						did != E1000_DEV_ID_82540EP &&
 | 
				
			||||||
	pci_attr_r32(devind, PCI_BAR_2))
 | 
						pci_attr_r32(devind, PCI_BAR_2))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
       if((e->flash = vm_map_phys(SELF,
 | 
					        size_t flash_size;
 | 
				
			||||||
         (void *) pci_attr_r32(devind, PCI_BAR_2), 0x10000)) == MAP_FAILED) {
 | 
					
 | 
				
			||||||
               if((e->flash = vm_map_phys(SELF,
 | 
					        /* 82566/82567/82562V series support mapping 4kB of flash memory */
 | 
				
			||||||
                       (void *) pci_attr_r32(devind, PCI_BAR_2), 0x1000))
 | 
					        switch(did)
 | 
				
			||||||
                               == MAP_FAILED) {
 | 
					        {
 | 
				
			||||||
                               panic("e1000: couldn't map in flash.");
 | 
					            case E1000_DEV_ID_ICH10_D_BM_LM:
 | 
				
			||||||
               }
 | 
					            case E1000_DEV_ID_ICH10_R_BM_LF:
 | 
				
			||||||
       }
 | 
					                flash_size = 0x1000;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                flash_size = 0x10000;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ((e->flash = vm_map_phys(SELF,
 | 
				
			||||||
 | 
					                                    (void *) pci_attr_r32(devind, PCI_BAR_2),
 | 
				
			||||||
 | 
					                                    flash_size)) == MAP_FAILED) {
 | 
				
			||||||
 | 
					            panic("e1000: couldn't map in flash.");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	gfpreg = E1000_READ_FLASH_REG(e, ICH_FLASH_GFPREG);
 | 
						gfpreg = E1000_READ_FLASH_REG(e, ICH_FLASH_GFPREG);
 | 
				
			||||||
        /*
 | 
					        /*
 | 
				
			||||||
 | 
				
			|||||||
@ -600,6 +600,7 @@ service e1000
 | 
				
			|||||||
	pci device	8086/107c;
 | 
						pci device	8086/107c;
 | 
				
			||||||
	pci device	8086/10cd;
 | 
						pci device	8086/10cd;
 | 
				
			||||||
	pci device	8086/10d3;
 | 
						pci device	8086/10d3;
 | 
				
			||||||
 | 
						pci device	8086/10de;
 | 
				
			||||||
	ipc
 | 
						ipc
 | 
				
			||||||
		SYSTEM pm rs log tty ds vm
 | 
							SYSTEM pm rs log tty ds vm
 | 
				
			||||||
		pci inet ;
 | 
							pci inet ;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user