iPXE
3c509-eisa.c
Go to the documentation of this file.
00001 /*
00002  * Split out from 3c509.c, since EISA cards are relatively rare, and
00003  * ROM space in 3c509s is very limited.
00004  *
00005  */
00006 
00007 #include <ipxe/eisa.h>
00008 #include <ipxe/isa.h>
00009 #include "3c509.h"
00010 
00011 /*
00012  * The EISA probe function
00013  *
00014  */
00015 static int el3_eisa_probe ( struct nic *nic, struct eisa_device *eisa ) {
00016         
00017 
00018         nic->ioaddr = eisa->ioaddr;
00019         nic->irqno = 0;
00020         enable_eisa_device ( eisa );
00021         
00022         /* Hand off to generic t5x9 probe routine */
00023         return t5x9_probe ( nic, ISA_PROD_ID ( PROD_ID ), ISA_PROD_ID_MASK );
00024 }
00025 
00026 static void el3_eisa_disable ( struct nic *nic, struct eisa_device *eisa ) {
00027         t5x9_disable ( nic );
00028         disable_eisa_device ( eisa );
00029 }
00030 
00031 static struct eisa_device_id el3_eisa_adapters[] = {
00032         { "3Com 3c509 EtherLink III (EISA)", MFG_ID, PROD_ID },
00033 };
00034 
00035 EISA_DRIVER ( el3_eisa_driver, el3_eisa_adapters );
00036 
00037 DRIVER ( "3c509 (EISA)", nic_driver, eisa_driver, el3_eisa_driver,
00038          el3_eisa_probe, el3_eisa_disable );
00039 
00040 ISA_ROM ( "3c509-eisa","3c509 (EISA)" );
00041 
00042 /*
00043  * Local variables:
00044  *  c-basic-offset: 8
00045  *  c-indent-level: 8
00046  *  tab-width: 8
00047  * End:
00048  */