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