You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3c529.c 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Split out from 3c509.c to make build process more sane
  3. *
  4. */
  5. FILE_LICENCE ( BSD2 );
  6. #include "etherboot.h"
  7. #include <ipxe/mca.h>
  8. #include <ipxe/isa.h> /* for ISA_ROM */
  9. #include "nic.h"
  10. #include "3c509.h"
  11. /*
  12. * Several other pieces of the MCA support code were shamelessly
  13. * borrowed from the Linux kernel source.
  14. *
  15. * MCA support added by Adam Fritzler (mid@auk.cx)
  16. *
  17. * Generalised out of the 3c529 driver and into a bus type by Michael
  18. * Brown <mbrown@fensystems.co.uk>
  19. *
  20. */
  21. static int t529_probe ( struct nic *nic, struct mca_device *mca ) {
  22. /* Retrieve NIC parameters from MCA device parameters */
  23. nic->ioaddr = ( ( mca->pos[4] & 0xfc ) | 0x02 ) << 8;
  24. nic->irqno = mca->pos[5] & 0x0f;
  25. printf ( "3c529 board found on MCA at %#hx IRQ %d -",
  26. nic->ioaddr, nic->irqno );
  27. /* Hand off to generic t5x9 probe routine */
  28. return t5x9_probe ( nic, MCA_ID ( mca ), 0xffff );
  29. }
  30. static void t529_disable ( struct nic *nic, struct mca_device *mca __unused ) {
  31. t5x9_disable ( nic );
  32. }
  33. static struct mca_device_id el3_mca_adapters[] = {
  34. { "3Com 3c529 EtherLink III (10base2)", 0x627c },
  35. { "3Com 3c529 EtherLink III (10baseT)", 0x627d },
  36. { "3Com 3c529 EtherLink III (test mode)", 0x62db },
  37. { "3Com 3c529 EtherLink III (TP or coax)", 0x62f6 },
  38. { "3Com 3c529 EtherLink III (TP)", 0x62f7 },
  39. };
  40. MCA_DRIVER ( t529_driver, el3_mca_adapters );
  41. DRIVER ( "3c529", nic_driver, mca_driver, t529_driver,
  42. t529_probe, t529_disable );
  43. ISA_ROM( "3c529", "3c529 == MCA 3c509" );
  44. /*
  45. * Local variables:
  46. * c-basic-offset: 8
  47. * c-indent-level: 8
  48. * tab-width: 8
  49. * End:
  50. */