Netboot Mailing List (by thread)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SiS900 Etherboot driver available




I have written and released an SiS900 driver for Etherboot.  

It is available as a patch to Etherboot version 4.7.20 on

   http://www.thinguin.org/ 

and (for those who require more instant gratification :-) on demand at

   http://rom-o-matic.net/

I have tested this driver with an SiS900 based Asante 10/100 card, and 
have also booted a ThinkNIC (http://www.thinknic.com) computer with it.

"One... Two... You know what to do..." ;-)

Enjoy,

Marty

P.S.

The Etherboot Project is always looking for new developers and users and 
technical writers and fans and... (you get the idea :-)

So, here's a little something to help get you going if you want to become 
involved. I wrote this driver also to help people to get started writing 
Etherboot drivers. Writing drivers is a little like poetry.  

You have to be economical with your code, much like a poet is with words; 
It has been said that poetry is more work per word than other kinds of 
writing;  I think drivers are somewhat like that, but when you get it 
right, you are having an intimate conversation with the hardware, and the 
satisfaction of knowing that somewhere someone is using your code, 
possibly burned into a ROM, and loading an OS, and you helped them.

The rom-o-matic is doing over 800 roms a week now. I haven't looked too 
closely at exactly what people are generating, but I'm only counting 
ROMs, not hits to the site. It's nice to know that people are using this 
resource.  When I get a moment I'd like to release the PHP code for the 
rom-o-matic so others can make sites that provide free services via the 
web.  "It's nice to share".

And so another hack goes in the books.  I'm still more than a little high 
from doing the Etherboot booth at LinuxWorld Expo (there's stuff on 
http://thinguin.org/ about it if you're interested), and we're hoping to 
do a couple more shows before the end of the year.  It should be fun.

That's about it.  Just wanted to let you know that there are real people 
behind this project, and we do it because we believe in the technology, 
and because it's neat, and of course because we enjoy the community.

Come hack with us.

Here's a file I included with this latest driver:

-----------

How I added the SIS900 card to Etherboot

Author: Marty Connor (mdc@thinguin.org)

Date:   25 February 2001

Description:

This file is intended to help people who want to write an Etherboot
driver or port another driver to Etherboot.  It is a starting point.
Perhaps someday I may write a more detailed description of writing an
Etherboot driver. This text should help get people started, and
studying sis900.[ch] should help show the basic structure and
techniques involved in writing and Etherboot driver.

***********************************************************************

0. Back up all the files I need to modify:

cd etherboot-4.7.20/src
cp Makefile Makefile.orig
cp config.c config.c.orig
cp pci.h pci.h.orig
cp NIC NIC.orig
cp cards.h cards.h.orig

1. Edit src/Makefile to add SIS900FLAGS to defines

SIS900FLAGS=            -DINCLUDE_SIS900

2. edit src/pci.h to add PCI signatures for card

#define PCI_VENDOR_ID_SIS               0x1039
#define PCI_DEVICE_ID_SIS900            0x0900   
#define PCI_DEVICE_ID_SIS7016           0x7016  

3. Edit src/config.c to add the card to the card probe list

#if defined(INCLUDE_NS8390)  || defined(INCLUDE_EEPRO100)  || 
    defined(INCLUDE_LANCE)   || defined(INCLUDE_EPIC100)   || 
    defined(INCLUDE_TULIP)   || defined(INCLUDE_OTULIP)    ||
    defined(INCLUDE_3C90X)   || defined(INCLUDE_3C595)     ||
    defined(INCLUDE_RTL8139) || defined(INCLUDE_VIA_RHINE) || 
    defined(INCLUDE_SIS900)  || defined(INCLUDE_W89C840)

... and ...

#ifdef INCLUDE_SIS900
       { PCI_VENDOR_ID_SIS,             PCI_DEVICE_ID_SIS900,
         "SIS900", 0, 0, 0, 0},
       { PCI_VENDOR_ID_SIS,             PCI_DEVICE_ID_SIS7016,
         "SIS7016", 0, 0, 0, 0},
#endif

... and ...

#ifdef INCLUDE_SIS900
        { "SIS900", sis900_probe, pci_ioaddrs },        
#endif

4. Edit NIC to add sis900 and sis7016 to NIC list

# SIS 900 and SIS 7016
sis900          sis900          0x1039,0x0900
sis7016         sis900          0x1039,0x7016

5. Edit cards.h to add sis900 probe routine declaration

#ifdef  INCLUDE_SIS900
extern struct nic       *sis900_probe(struct nic *, unsigned short *
                        PCI_ARG(struct pci_device *));
#endif

***********************************************************************

At this point, you can begin creating your driver source file.  See
the "Writing an Etherboot Driver" section of the Etherboot
documentation for some hints.  See the skel.c file for a starting
point.  If there is a Linux driver for the card, you may be able to
use that.  Copy and learn from existing Etherboot drivers (this is GPL
/ Open Source software!).

Join the etherboot-developers and etherboot-users mailing lists
(information is on etherboot.sourceforge.net) for information and
assistance. We invite more developers to help improve Etherboot.

Visit the http://etherboot.sourceforge.net, http://thinguin.org, 
http://rom-o-matic.net, and http://ltsp.org sites for information and
assistance.

Enjoy.


---
    Try: http://rom-o-matic.net/ to make Etherboot images instantly.

   Name: Martin D. Connor
US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA
  Voice: (617) 491-6935, Fax: (617) 491-7046 
  Email: mdc@thinguin.org
    Web: http://www.thinguin.org/


===========================================================================
This Mail was sent to netboot mailing list by:
Marty Connor <mdc@thinguin.org>
To get help about this list, send a mail with 'help' as the only string in
it's body to majordomo@baghira.han.de. If you have problems with this list,
send a mail to netboot-owner@baghira.han.de.



For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.