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.

sis900.txt 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. How I added the SIS900 card to Etherboot
  2. Author: Marty Connor (mdc@thinguin.org)
  3. Date: 25 Febrary 2001
  4. Description:
  5. This file is intended to help people who want to write an Etherboot
  6. driver or port another driver to Etherboot. It is a starting point.
  7. Perhaps someday I may write a more detailed description of writing an
  8. Etherboot driver. This text should help get people started, and
  9. studying sis900.[ch] should help show the basic structure and
  10. techniques involved in writing and Etherboot driver.
  11. ***********************************************************************
  12. 0. Back up all the files I need to modify:
  13. cd etherboot-4.7.20/src
  14. cp Makefile Makefile.orig
  15. cp config.c config.c.orig
  16. cp pci.h pci.h.orig
  17. cp NIC NIC.orig
  18. cp cards.h cards.h.orig
  19. 1. Edit src/Makefile to add SIS900FLAGS to defines
  20. SIS900FLAGS= -DINCLUDE_SIS900
  21. 2. edit src/pci.h to add PCI signatures for card
  22. #define PCI_VENDOR_ID_SIS 0x1039
  23. #define PCI_DEVICE_ID_SIS900 0x0900
  24. #define PCI_DEVICE_ID_SIS7016 0x7016
  25. 3. Edit src/config.c to add the card to the card probe list
  26. #if defined(INCLUDE_NS8390) || defined(INCLUDE_EEPRO100) ||
  27. defined(INCLUDE_LANCE) || defined(INCLUDE_EPIC100) ||
  28. defined(INCLUDE_TULIP) || defined(INCLUDE_OTULIP) ||
  29. defined(INCLUDE_3C90X) || defined(INCLUDE_3C595) ||
  30. defined(INCLUDE_RTL8139) || defined(INCLUDE_VIA_RHINE) ||
  31. defined(INCLUDE_SIS900) || defined(INCLUDE_W89C840)
  32. ... and ...
  33. #ifdef INCLUDE_SIS900
  34. { PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS900,
  35. "SIS900", 0, 0, 0, 0},
  36. { PCI_VENDOR_ID_SIS, PCI_DEVICE_ID_SIS7016,
  37. "SIS7016", 0, 0, 0, 0},
  38. #endif
  39. ... and ...
  40. #ifdef INCLUDE_SIS900
  41. { "SIS900", sis900_probe, pci_ioaddrs },
  42. #endif
  43. 4. Edit NIC to add sis900 and sis7016 to NIC list
  44. # SIS 900 and SIS 7016
  45. sis900 sis900 0x1039,0x0900
  46. sis7016 sis900 0x1039,0x7016
  47. 5. Edit cards.h to add sis900 probe routine declaration
  48. #ifdef INCLUDE_SIS900
  49. extern struct nic *sis900_probe(struct nic *, unsigned short *
  50. PCI_ARG(struct pci_device *));
  51. #endif
  52. ***********************************************************************
  53. At this point, you can begin creating your driver source file. See
  54. the "Writing an Etherboot Driver" section of the Etherboot
  55. documentation for some hints. See the skel.c file for a starting
  56. point. If there is a Linux driver for the card, you may be able to
  57. use that. Copy and learn from existing Etherboot drivers (this is GPL
  58. / Open Source software!).
  59. Join the etherboot-developers and etherboot-users mailing lists
  60. (information is on http://etherboot.sourceforge.net) for information and
  61. assistance. We invite more developers to help improve Etherboot.
  62. Visit the http://etherboot.sourceforge.net, http://thinguin.org,
  63. http://rom-o-matic.net, and http://ltsp.org sites for information and
  64. assistance.
  65. Enjoy.