123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * Split out from 3c509.c to make build process more sane
- *
- */
-
- #include "etherboot.h"
- #include <gpxe/mca.h>
- #include <gpxe/isa.h> /* for ISA_ROM */
- #include "nic.h"
- #include "3c509.h"
-
- /*
- * Several other pieces of the MCA support code were shamelessly
- * borrowed from the Linux kernel source.
- *
- * MCA support added by Adam Fritzler (mid@auk.cx)
- *
- * Generalised out of the 3c529 driver and into a bus type by Michael
- * Brown <mbrown@fensystems.co.uk>
- *
- */
-
- static int t529_probe ( struct nic *nic, struct mca_device *mca ) {
-
- /* Retrieve NIC parameters from MCA device parameters */
- nic->ioaddr = ( ( mca->pos[4] & 0xfc ) | 0x02 ) << 8;
- nic->irqno = mca->pos[5] & 0x0f;
- printf ( "3c529 board found on MCA at %#hx IRQ %d -",
- nic->ioaddr, nic->irqno );
-
- /* Hand off to generic t5x9 probe routine */
- return t5x9_probe ( nic, MCA_ID ( mca ), 0xffff );
- }
-
- static void t529_disable ( struct nic *nic, struct mca_device *mca __unused ) {
- t5x9_disable ( nic );
- }
-
- static struct mca_device_id el3_mca_adapters[] = {
- { "3Com 3c529 EtherLink III (10base2)", 0x627c },
- { "3Com 3c529 EtherLink III (10baseT)", 0x627d },
- { "3Com 3c529 EtherLink III (test mode)", 0x62db },
- { "3Com 3c529 EtherLink III (TP or coax)", 0x62f6 },
- { "3Com 3c529 EtherLink III (TP)", 0x62f7 },
- };
-
- MCA_DRIVER ( t529_driver, el3_mca_adapters );
-
- DRIVER ( "3c529", nic_driver, mca_driver, t529_driver,
- t529_probe, t529_disable );
-
- ISA_ROM( "3c529", "3c529 == MCA 3c509" );
-
- /*
- * Local variables:
- * c-basic-offset: 8
- * c-indent-level: 8
- * tab-width: 8
- * End:
- */
|