2 * Split out from 3c509.c to make build process more sane
10 #include <gpxe/isa.h> /* for ISA_ROM */
15 * Several other pieces of the MCA support code were shamelessly
16 * borrowed from the Linux kernel source.
18 * MCA support added by Adam Fritzler (mid@auk.cx)
20 * Generalised out of the 3c529 driver and into a bus type by Michael
21 * Brown <mbrown@fensystems.co.uk>
25 static int t529_probe ( struct nic
*nic
, struct mca_device
*mca
) {
27 /* Retrieve NIC parameters from MCA device parameters */
28 nic
->ioaddr
= ( ( mca
->pos
[4] & 0xfc ) | 0x02 ) << 8;
29 nic
->irqno
= mca
->pos
[5] & 0x0f;
30 printf ( "3c529 board found on MCA at %#hx IRQ %d -",
31 nic
->ioaddr
, nic
->irqno
);
33 /* Hand off to generic t5x9 probe routine */
34 return t5x9_probe ( nic
, MCA_ID ( mca
), 0xffff );
37 static void t529_disable ( struct nic
*nic
, struct mca_device
*mca __unused
) {
41 static struct mca_device_id el3_mca_adapters
[] = {
42 { "3Com 3c529 EtherLink III (10base2)", 0x627c },
43 { "3Com 3c529 EtherLink III (10baseT)", 0x627d },
44 { "3Com 3c529 EtherLink III (test mode)", 0x62db },
45 { "3Com 3c529 EtherLink III (TP or coax)", 0x62f6 },
46 { "3Com 3c529 EtherLink III (TP)", 0x62f7 },
49 MCA_DRIVER ( t529_driver
, el3_mca_adapters
);
51 DRIVER ( "3c529", nic_driver
, mca_driver
, t529_driver
,
52 t529_probe
, t529_disable
);
54 ISA_ROM( "3c529", "3c529 == MCA 3c509" );