diff options
Diffstat (limited to 'roms/ipxe/src/drivers/net/3c509-eisa.c')
-rw-r--r-- | roms/ipxe/src/drivers/net/3c509-eisa.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/roms/ipxe/src/drivers/net/3c509-eisa.c b/roms/ipxe/src/drivers/net/3c509-eisa.c new file mode 100644 index 00000000..81c60ee9 --- /dev/null +++ b/roms/ipxe/src/drivers/net/3c509-eisa.c @@ -0,0 +1,48 @@ +/* + * Split out from 3c509.c, since EISA cards are relatively rare, and + * ROM space in 3c509s is very limited. + * + */ + +#include <ipxe/eisa.h> +#include <ipxe/isa.h> +#include "3c509.h" + +/* + * The EISA probe function + * + */ +static int el3_eisa_probe ( struct nic *nic, struct eisa_device *eisa ) { + + + nic->ioaddr = eisa->ioaddr; + nic->irqno = 0; + enable_eisa_device ( eisa ); + + /* Hand off to generic t5x9 probe routine */ + return t5x9_probe ( nic, ISA_PROD_ID ( PROD_ID ), ISA_PROD_ID_MASK ); +} + +static void el3_eisa_disable ( struct nic *nic, struct eisa_device *eisa ) { + t5x9_disable ( nic ); + disable_eisa_device ( eisa ); +} + +static struct eisa_device_id el3_eisa_adapters[] = { + { "3Com 3c509 EtherLink III (EISA)", MFG_ID, PROD_ID }, +}; + +EISA_DRIVER ( el3_eisa_driver, el3_eisa_adapters ); + +DRIVER ( "3c509 (EISA)", nic_driver, eisa_driver, el3_eisa_driver, + el3_eisa_probe, el3_eisa_disable ); + +ISA_ROM ( "3c509-eisa","3c509 (EISA)" ); + +/* + * Local variables: + * c-basic-offset: 8 + * c-indent-level: 8 + * tab-width: 8 + * End: + */ |