diff options
author | fishsoupisgood <github@madingley.org> | 2019-04-29 01:17:54 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2019-05-27 03:43:43 +0100 |
commit | 3f2546b2ef55b661fd8dd69682b38992225e86f6 (patch) | |
tree | 65ca85f13617aee1dce474596800950f266a456c /roms/ipxe/src/drivers/net/3c509-eisa.c | |
download | qemu-master.tar.gz qemu-master.tar.bz2 qemu-master.zip |
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: + */ |