summaryrefslogtreecommitdiff
path: root/gpxe/src/drivers/net/3c509-eisa.c
blob: d57c05b4c2233f0d86d164a49eebe7f7a39f8e4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
 * Split out from 3c509.c, since EISA cards are relatively rare, and
 * ROM space in 3c509s is very limited.
 *
 */

#include <gpxe/eisa.h>
#include <gpxe/isa.h>
#include "console.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:
 */