revert between 56095 -> 55830 in arch
[AROS.git] / arch / all-pc / boot / grub / netboot / sis900.txt
blob77419fad66937beb3d18bade03b25a0cc709c25c
1 How I added the SIS900 card to Etherboot
3 Author: Marty Connor (mdc@thinguin.org)
5 Date:   25 Febrary 2001
7 Description:
9 This file is intended to help people who want to write an Etherboot
10 driver or port another driver to Etherboot.  It is a starting point.
11 Perhaps someday I may write a more detailed description of writing an
12 Etherboot driver. This text should help get people started, and
13 studying sis900.[ch] should help show the basic structure and
14 techniques involved in writing and Etherboot driver.
16 ***********************************************************************
18 0. Back up all the files I need to modify:
20 cd etherboot-4.7.20/src
21 cp Makefile Makefile.orig
22 cp config.c config.c.orig
23 cp pci.h pci.h.orig
24 cp NIC NIC.orig
25 cp cards.h cards.h.orig
27 1. Edit src/Makefile to add SIS900FLAGS to defines
29 SIS900FLAGS=            -DINCLUDE_SIS900
31 2. edit src/pci.h to add PCI signatures for card
33 #define PCI_VENDOR_ID_SIS               0x1039
34 #define PCI_DEVICE_ID_SIS900            0x0900   
35 #define PCI_DEVICE_ID_SIS7016           0x7016  
37 3. Edit src/config.c to add the card to the card probe list
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)
46 ... and ...
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
55 ... and ...
57 #ifdef INCLUDE_SIS900
58         { "SIS900", sis900_probe, pci_ioaddrs },        
59 #endif
61 4. Edit NIC to add sis900 and sis7016 to NIC list
63 # SIS 900 and SIS 7016
64 sis900          sis900          0x1039,0x0900
65 sis7016         sis900          0x1039,0x7016
67 5. Edit cards.h to add sis900 probe routine declaration
69 #ifdef  INCLUDE_SIS900
70 extern struct nic       *sis900_probe(struct nic *, unsigned short *
71                         PCI_ARG(struct pci_device *));
72 #endif
74 ***********************************************************************
76 At this point, you can begin creating your driver source file.  See
77 the "Writing and Etherboot Driver" section of the Etherboot
78 documentation for some hints.  See the skel.c file for a starting
79 point.  If there is a Linux driver for the card, you may be able to
80 use that.  Copy and learn from existing Etherboot drivers (this is GPL
81 / Open Source software!).
83 Join the etherboot-developers and etherboot-users mailing lists
84 (information is on etherboot.sourceforge.net) for information and
85 assistance. We invite more developers to help improve Etherboot.
87 Visit the http://etherboot.sourceforge.net, http://thinguin.org, 
88 http://rom-o-matic.net, and http://ltsp.org sites for information and
89 assistance.
91 Enjoy.