Linux PCI-HOWTO

by Michael Will, Michael.Will@student.uni-tuebingen.de

v0.6h, 24 June 2001
Information on what works with Linux and PCI-boards and what does not. Please get the latest version of this document at The Linux Documentation Project

1. Introduction

Many people, including me, would like to run Linux on a PCI-based machine. Since it is not obvious which PCI motherboards and PCI cards will work with Linux and which do not, I conducted a survey and spent some hours to compile the information contained herein. Most of this was done before 1997 and more uptodate technology might be covered in the device specific howtos such as the XFree86, Xinerama, Networking and Hardware-HOWTO.

If you have information to add, please mail me. If you have questions, feel free to ask.

Help with my style/grammar/language is welcome as well. I am not a native- speaker of English and expect to make occasional mistakes.

Note: "on-board chip" refers to a SCSI chip integrated onto the motherboard rather than on a PCI expansion card.

Also, "quotes" herein may have slight context editing.

2. Why PCI?

2.1 General overview

The PC-architecture has several BUS-Systems to choose from:

ISA

16 or 8bit, cheap, slow (usually 8Mhz), standard, many cards available>

EISA

32bit, expensive, fast, few cards available, fading>

MCA

32 or 16bit ex-IBM-proprietary, fast, becoming rare>

VESA-Local-Bus

32bit, based on 486 architecture, cheap, fast, many cards available>

PCI-Local-Bus

32bit (64 bit coming), cheap, fast, many cards available, nowadays standard>

MCA worked fine, but never achieved much market, being used on only some early IBM PS/2 machines. There were very few cards.

EISA was reliable, but rather expensive, and intended more for servers, than for the average user. It has the next fewest cards available.

VESA-Local-Bus (VLB) had some problems with high bus-speeds, and was not very reliable, but mainly due to its low price and better-than-ISA performance, sold very well. Technically, it's almost a direct map of the 486 processor bus. Most VESA boards should be stable by now. At the beginning of 1996, many 486 motherboards still support VESA, but PCI is growing. VESA busses are tied directly to the speed of the memory bus for 486's, or half the speed for Pentiums.

PCI now has the advantage. Like EISA it is not proprietary. It is as faster than EISA or MCA, and cheaper. Most current Pentium motherboards use the PCI bus; VESA is fading. Virtualy all PCI motherboards and cards sold at the beginning of 1996 are 32 bit, and run at 0-33 MHz.

Currently, most Pentium motherboards run the PCI bus at 1/2 the memory speed (ie: 33 MHz for the 66 MHz memory bus on the P66,P100,P133,P166; 30 MHz for the 60 MHz memory bus on the P60,P90,P120,P150; and 25 Mhz on the 50 MHz memory bus of the P75). This is probably true of Cyrix 6x86 motherboards too. NexGen 5x86 implemention isn't known. The PCI spec does allow the PCI bus to be run asynchronously from the processor, (eg: 33 Mhz bus on P75), but this is not common yet.

PCI 2.1 has been defined, allowing 64 bit PCI, and/or 0-66 MHz operations, but no x86 chipsets yet support these options. 64 bit PCI will probably appear first, in 32/64 bit dual compatible versions. That is, you will be able to mix 32 and 64 bit cards. 66 MHz PCI will take longer, as it's technically demanding, can only support one or maybe two slots per bridge, and may not work well with 33 MHz cards.

PCI is not processor dependent like the VESA Local-Bus. This means you can use the winner-1000-PCI in an Alpha-driven-PCI computer as well as in a i486/Pentium-driven PCI computer, with the appropriate BIOS and software. Beside Intel and DEC Alpha platforms, PCI is used on some PowerPC's.

Some PCI variations to be aware of: some implementations support "Bus Master" cards in all PCI slots, some in only one slot, and some not at all; some implementations support "bridging" on cards and some do not.

2.2 Performance

taken from Craig Sutphin's early Pro-PCI-Propaganda

Unlike some local buses, which are aimed at speeding up graphics alone, the PCI Local Bus is a total system solution, providing increased performance for networks, disk drives, full-motion video, graphics and the full range of high-speed peripherals. At 33 MHz, the synchronous PCI Local Bus transfers 32 bits of data at up to 132 Mbytes/sec. A transparent 64-bit extension of the 32-bit data and address buses can double the bus bandwidth (264 Mbytes/sec) and offer forward and backwards compatibility for 32 and 64-bit PCI Local Bus peripherals. Because it is processor-independent, the PCI Local Bus is optimized for I/O functions, enabling the local bus to operate concurrent with the processor/memory subsystem. For users of high-end desktop PC's, PCI makes high reliability, high performance and ease of use more affordable than ever before; no trivial task at 33 MHz bus-clock rates. Variable length linear or toggle mode bursting for both reads and writes improves write dependent graphics performance. By comprehending the loading and frequency requirements of the local bus at the component level, buffers and glue logic are eliminated.

See the chapter about Benchmarks for some crude (and perhaps meaningless) benchmarks on ASUS PCI Boards with 486 and 586.

2.3 The onboard-SCSI-II-chip NCR53c810

One very nice feature of some PCI mother boards is the NCR onboard-SCSI-II-chip, which is said to be as fast as the EISA-Adaptec-1742, but much cheaper. Drivers for DOS/OS2 are available. Drew Eckard has released his version of his NCR53c810-driver, which is in the standard kernel since v1.2.

This works so well I sold my adaptec-1542B-ISA soon after I bought the ASUS SP3-saturn-chipset II PCI board, and found the onboard NCR-SCSI controller to be much faster.

The NCR53c810-chip is onboard on some PCI-motherboards. There are add-on-boards available too, for about US$ 70.00.

There is only one thing I noticed did not work with the NCR-drivers when I tried them. Disconnect/Reconnect did not work, so using a SCSI-tape could be a pain, especially when using "mt erase" or the like blocks the whole SCSI-bus until it has finished. Since this was very unsatisfying for me, I bought one of these nice but expensive DPT PCI SCSI controller and had no such problems anymore.

People have reported this problem has been solved by Drew by now.

FreeBSD does support the NCR53c810 for quite a long time already, including Tagged Command Queues, FAST, WIDE and Disconnect for NCR 53c810, 815, 825. Drew said, it would be possible to adapt the FreeBSD driver to Linux. I somewhere saw some patches to do exactly this, any pointer to the location?

I personaly have the impression there are some important wheels invented more than once because of the differently evolving of FreeBSD and Linux. Some more cooperation could do both systems very well...

2.4 Drew Eckhardt on PCI-SCSI:

Drew said on end of March 95 about the SCSI on PCI: (slightly edited for clarity in context)

The Adaptec 2940, Buslogic BT946, BT946W, DPT PCI boards, Future Domain 3260, NCR53c810, NCR53c815, NCR53c820, and NCR53c825 all work for some definition of the word works.

2.5 New Alpha Version of the NCR driver

Well, this is not exactly *that* new anymore, please try to he versions which are in the kernel by version 2.0.x before going for this entry.

Alpha versions of the NCR driver which do neat things like disconnect/reconnect and synchronous transfers are now publically available. Any one interested in playing with them should

2.6 The EATA-DMA driver and the PCI SCSI controllers from DPT

The EATA-DMA scsi driver has undergone extensive changes and now also supports PCI SCSI controllers, multiple controllers and all SCSI channels on the multichannel SmartCache/Raid boards in all combinations of WIDE, FAST-20 (ULTRA) and DIFFERENTIAL.

The driver supports all EATA-DMA Protocol (CAM document CAM/89-004 rev. 2.0c) compliant SCSI controllers and has been tested with many of those controllers in mixed combinations.

Those are:             (ISA)   (EISA) (PCI)
      DPT Smartcache: PM2011  PM2012B 
      Smartcache III: PM2021  PM2022  PM2024 
                              PM2122  PM2124
                              PM2322 
      Smartcache IV:  PM2041  PM2042  PM2044
                              PM2142  PM2144
                              PM2322
      SmartRAID     : PM3021  PM3122  
                              PM3222  PM3224
                                      PM3334
      and some controllers from NEC, AT&T, SNI, AST, Olivetti and Alphatronix.

On a "base" DPT card (no caching or RAID module), a MC680x0 controls the bus-mastering DMA chip(s) and the SCSI controller chip. The DPT SCSI card almost works like a SCSI coprocessor.

The DPT card also will emulate an IDE controller/drive (ST506 interface), which enables you to use it with all operating systems even if they don't have an EATA driver.

On a card with the caching module, the 680x0 maintains and manages the on-board cacheing. The DPT card supports up to 64 MB RAM for disk-cacheing.

On a card with the RAID module, the 680x0 also performs the management of the RAID, doing the mirroring on RAID-1, doing the striping and ECC info generation on RAID-5, etc.

The entry level boards utilize a Motorola 68000, the high-end, more raid specific DPT cards use a 68020, 68030 or 68040/40MHz processor.

Official list prices range from $ 265 to $1.645 (January 18, 1996)

Since I've been asked numerous times where you can buy those boards in Europe, I asked DPT to send me a list of their official European distributors. Here is a small excerpt:

 
Austria: Macrotron GmbH            Tel:+43 1 408 15430   Fax:+43 1 408 1545 
Denmark: Tallgrass Technologies A/S Tel:+45 86 14 7000   Fax:+45 86 14 7333
Finland: Computer 2000 Finnland OY Tel:+35 80 887 331    Fax:+35 80 887 333 43
France : Chip Technologies         Tel:+33 1 49 60 1011  Fax:+33 1 49 599350
Germany: Akro Datensysteme GmbH    Tel:+49 (0)89 3178701 Fax:+49 (0)89 31787299
Russia : Soft-tronik               Tel:+7 812 315 92 76  Fax:+7 812 311 01 08
U.K.   : Ambar Systems Ltd.        Tel:+44 1296 311 300  Fax:+44 296 479 461 

"IMHO, the DPT cards are the best-designed SCSI cards available for a PC. And I've written code for just about every type of SCSI card for the PC. (Although, in retrospect, I don't know why!) ;-)" Jon R. Taylor (jtaylor@magicnet.net) President, Visionix, Inc.

The latest version of the EATA-DMA driver and a Slackware bootdisk is available on: ftp.i-Connect.Net:/pub/Local/EATA

Since patchlevel 1.1.81 the driver is included in the standard kernel distribution.

The author can be reached under these addresses: neuffer@mail.uni-mainz.de or mike@i-Connect.Net

2.7 BT-946C fully supported with kernel 1.3.x and newer

There is a driver in the 1.3.x kernels (available as a patch for the 1.2.13 kernel) written by someone associated with buslogic that fully supports the 946C and ALL of it's features including strict round robin, tagged queueing, multiple scatter/gather, multiple mailboxes, IRQ sharing, and yes, 15 devices on Fast/Wide. It is no longer necessary to use any ISA emulation with the driver (no DMA channel, no ISA address), and the driver is /fast/ and /stable/ (it's out of BETA and into full release).

The driver is available on ftp.dandelion.com (the newest version can always be got by doing "get BusLogic*"). It supports ALL BusLogic controllers with the exception of the FlashPoint LT, which uses a different interface. The driver is included in the 1.3.x kernels as standard for BusLogic devices.

2.8 Future Domain TMC-3260 PCI SCSI

Rik Faith (faith@cs.unc.edu) informed me on Wed, 1 Feb 1995 about the Future Domain TMC-3260 PCI SCSI card being supported by the Future Domain 16x0 SCSI driver. Newer information might be contained in the SCSI-HOWTO.

2.9 other thoughts on scsi

James Soutter (J.K.Soutter1@lut.ac.uk) asked me to add the following information on Fast-Wide-SCSI-2:

Fast Wide SCSI-2 is sometimes incorrectly called SCSI-3. It differs from the normal Fast SCSI-2 (like the Adapted 1542B?) because it uses a 16 bit data bus rather than the more usual 8 bit bus. This improves the maximum transfer rate from 10 MB/s to 20 MB/s but requires the use of special Fast Wide SCSI-2 drives.

The added performance of Fast Wide SCSI-2 will not necessarily improve the speed of your system. Most hard disk drives have a maximum internal transfer rate of less than 10 MB/s and so one drive alone can not flood a FAST SCSI-2 bus.

In Seagate's Oct 1993 product overview, only one Fast Wide SCSI-2 drive has an internal transfer rate of more than 10 MB/s (the ST12450W). Most of the drives have a maximum internal transfer rate of 6 MB/s or less, although the ST12450W is not the only exception to the rule. In conclusion, Fast Wide SCSI is designed for the file server market and will not necessarily benefit a single user workstation style system.

Rather than buying a PCI system with a SCSI interface on the motherboard, or rather than waiting for the NCR driver, you could purchase a separate PCI based SCSI card. According to Drew, the only PCI SCSI option that stands a chance of working is the Buslogic 946. It purports to be Adaptec 1540 compatible, like the EISA/VESA/ISA boards in the series.

Drew commented that other PCI based SCSI controllers are unlikely to be supported under Linux or the BSD's because the NCR based controllers are cheaper and more prevalent.

I definitly recommend reading the SCSI HOWTO in regards to newer information about PCI SCSI drivers.

Ernst Kloecker (ernst@cs.tu-berlin.de) wrote: (edited)

Talus Corporation has finished a NS/FIP driver for PCI boards with NCR SCSI. It will be shipping very soon, might even be free because a third party might pay for the work and donate the driver to NeXT.

Not every PCI-Board has got the chip. The old ASUS do, and one of the J-Bond boards does, too. (Most of the boards nowadays (6/95) do expect you to buy the NCR53c810 seperately.) Some vendors provide an alternative as you can read in Drew's text...

The NCR-Chip is clever enough to work with drives formatted by other controllers, and should be no problem.

3. ASUS-Boards

3.1 ASUS and the NMI (Parity) -- impact on Gravis-Ultrasound

The newer trition PCI-Mainboards in 1995 did not seem to support parity-SIMMS anymore. Since I usualy took the cheaper nonparity-SIMMS anyway, I did not consider this a problem until I put the Gravis-Ultrasound into my machine. Under DOS the SBOS-Driver and Setup/Test utility does complain about "nmi procedure disabled on this p.c.". The manual says I'd better get a better mainboard in that case, not very helpful.

The gravis-ultrasound did work nice in the ASUS-SP3 and ASUS-SP4, inspite of this, but the gravis-ultrasound-max I have here got gmod to kernel panic on both boards, and sometimes when playing au-files via /dev/audio did strange things, like playing the rest of an older, previously played sound after the new one. The sounddriver does recommend a buffer of 65536 with the GUS Max instead of the small one like the GUS - why I do not know. I do not have such a problem with the newer ASUS TP4 XE boards, though. Both are equipped with 1M DRAM onboard. These problems are probably not related to the NMI-problem, but because of the sounddriver?

I heard not only ASUS but most of the newer PCI-Mainboards are lacking in parity/NMI-support.

Strange enough - the ASUS-TP4 (Trition Chipset) does work with the GUS Max - it does load the SBOS-Driver. I have to admit, I am confused.

3.2 Various types of ASUS Boards

ASUS SP3 with saturn chipset I (rev. 2) for 486,

ASUS SP3G with saturn chipset II (rev. 4) for 486,

like SP3, but less buggy saturn chipset

ASUS SP3-SiS chipset, for 486

like AP4, but newer, SiS chipset, green functions and all the EIDE, rs232 with 2 16550 and centronics. Only 2 SIMM Slots, Does seem to work with AMD486DX4/120, but was not very reliably on NCR53c810 and various operating systems (Windows-NT, Windows95, OS2), after upgrading to a PentiumBoard ASUS SP4, all the problems vanished, so it must have been the board. Still does seem to work nice for Linux, though.

ASUS AP4, for 486, with PCI/ISA/VesaLocalbus

green functions, 1VL, 3 ISA, 4 PCI slots, only EIDE onboard, no fd-controller, no rs232/centronics. Very small size.

does recognice AMD486DX2/66 as DX4/100 only. This can be corrected with soldering one pin (which?) to ground, but I would not recommend a board like this anyway.

The one I tested was broken for OS2 and Linux, but people are said to use it for both.

The VesaLocalbus-Slot is expected to be slower than the normal vesa-localbus boards because of the PCI2VL bridge, but without penalty to the PCI section.

ASUS SP4-SiS, for Pentium90, PCI/ISA

like SP3-SiS, but for Pentium90/100.

ASUS TP4 with Triton chipset and EDO-Support

has the Triton-Chipset for better performance and supports normal PS2-Simms as well as Fast-Page-Mode and EDO modules.

ASUS TP4XE with Triton chipset and additional SRAM/EDORAM support

supports the new EDORAM and upcoming SRAM standards. At least SRAM is said to considerabely increase performance. Did for some reason not accept the 8M PS2-SIMMS working ok in ASUS SP4, after changing them against others, bigger looking ones, (16 chips instead of 8 if I remember right) it worked ok. Has been tested with P90 and P100.

...and many others now.

if you have new information on problems with them, please report.

3.3 Benchmarks on ASUS Mainboards

I tried to compare the speed of CPUs in two ASUS Mainboards: for 486 I tested the SP3 SiS (the one with one vesa-local-bus slot) and for 586 I tested the ASUS TP4/XE, each with 16M RAM, always the same unloaded system with another CPU, with whetstone and dhrystone.

I must admit, I have not read the benchmarks-faq yet, and will probably edit the section a loot soon. If you have any comments, please mail me.

I am especially confused about the amd486DX4/100 being faster on dhrystones than the DX4/120 version? I did not see that kind of inconsistency on comparing the P90 and P100.

Perhaps this was at fault: when I plugged in the amdDX4-100, I had the board jumpered for DX2-66. While the BIOS did report it as an DX4-100, the board might have used the wrong clockspeeds... but since DX2-66 uses 33Mhz * 2 and DX4 uses 33Mhz * 3, this would have been correct?

The board running with DX4-120 is jumpered to 40Mhz * 3 = 120 Mhz.

Another thing I wonder about is why the whetstones-result does yield so even numbers on some machines?

ASUS SP3 with amd486DX4-100

ASUS SP3 with amd486DX4-120

ASUS SP3 with intel486DX2-66

ASUS TP4/XE with intel586-90

ASUS TP4/XE with intel586-100

3.4 Detailed information on the old ASUS PCI-I-SP3 with saturn chipset from heinrich@zsv.gmd.de:

The board does like most in that price class -- write-through cache, no write-back. This should not be significant, maybe 3% of performance.

The BIOS supports scsi-drives under DOS/Windows without additional drivers, but with the board come additional drivers which are said to give better performance, for DOS/Windows(ASPI), OS2, Windows-NT, SCO-Unix, Netware (3.11 and 4, if interpreted correctly)

Gert Doering (gert@greenie.muc.de) was saying the SCO-Unix-driver for the onboard-SCSI-Chip was not working properly. After two or three times doing: "time dd if=/dev/rhd20 of=/dev/null bs=100k count=500" it kernel-paniced...

The trouble some people experienced with this board might be due to them using an outboard Adaptec-SCSI-Controller with "sync negotiation" turned on. (This predates the NCR driver release; hence the use of the Adaptec.) Please check that in the BIOS-Setup of the Adaptec-1542C if you use one and have problems with occasional hangups!

There is a new version of the ASUS-Board which should have definitely less problems. It is called ASUS-PCI-I/SP3G, the G is important. It has the new Saturn-chipset rev. 4 and the bugs should be gone. They use the Saturn-ZX-variant and the new SP3G has fully PCI conforming level-triggered (thus shareable), BIOS-configurable interrupts. It has an on-board PS/2-mouseport, EPA-power-saving-modes and DX4-support, too. It performs excellently. If you can get the German computer magazine C't from July (?), you will find a test report where the ASUS-Board is the best around.

Latest information about ASUS-SP3-G: You might experience crashes when using PCI-to-Memory-Posting. If you disable this, all works perfect. jw@peanuts.informatik.uni-tuebingen.de said he believed it to be a problem of the current Linux-kernel rather than the hardware, because part of the system still works when crashing, looking like a deadlock in the swapper, and OS2/DOS/WINDOZE don't crash at all.

Someone else with a very old ASUS-SP3 (saturn-I chipset) reported crashes with using XFree86, which went away when he installed the very latest betaversion which seems to work around a bit of the problems.

3.5 Pat Dowler (dowler@pt1B1106.FSH.UVic.CA) with ASUS SP3G

Unlike some other reports, I find the mouse pointer moves very smoothy under X (just like the ol' 386) - it is jumpy under some, but not all, DOS games though...

Performance is great!! I ran some large floating point tests and found the performance in 3x33 (100MHz) mode to be almost 1.5x that in 2x (66MHz) mode (large being 500x500 doubles - 4meg or so)... I was a little dubious about clock-tripling but I seem to be getting full benefit :-)

The heavily configurable energy star stuff doesn't work with the current AMD DX4 chips - you need an SL chip

I really need a SCSI disk and a PCI video card :-)

(I had a phonecall by a person who had this problem with the buggy SMC FIFO chipset, after using X-window they hung.)

4. confusion about saturn chipsets

Pat Duffy (duffy@theory.chem.ubc.ca) said:

Saturn I:  these are revisions 1 and 2 of the Saturn chipsets.
Saturn II:  This is also called rev. 4 of the Saturn chipsets.
 
As far as I know, rev. 3 never actually shipped, and (from a few people who
have it) the SP3G now has rev. 4 (or Saturn II) in it. 
 
Confused?  Well, the only real definitive answer is to get ahold of the board
and run the debug script in the PCI chipset list on it.  As far as I know, 
though, the SP3G board is indeed shipping with rev. 4 (Saturn II).

5. Video-Cards

Linux people have successfully used # 9 XGE Level 12, ELSA Winner 1000, and S3-928 video cards. The XFree86(tm)-3.1.1 does support boards with the tseng et4000/w32 in accelerated mode, as well as S3 Vision 864 and 964 chipsets including boards like the ELSA Winner 1000Pro and 2000Pro, Number Nine GXE64 and GXE64Pro, Miro Crystal 20SV). Support in the S3 Server for the Chrontel8391 clock chip has been added.

Trio32 and Trio64 S3 Boards like the SPEA V7 Mirage P64 PCI and MIRO Crystal 40SV, are also supported, the Mach32 and Mach64 are supported in accelerated mode, too.

The SVGA Driver

16bpp mode (65K colors instead of the usual 256) support for Mach32 boards as well as 32bpp for some S3 boards and the P9000 boards has been added.

tldraben@teleport.com reported:

Genoa Phantom 8900PCI card seems to work well. Genoa Phantom/W32 2MB does not work in an ASUS-Board. Tseng 3000/W32i chipset seems to work well. Spea-v7 mercury-lite works perfectly since XFree86(tm)-2.1.

Spea V7 Mirage P64 PCI 2M with Trio64 works nice since XFree86(tm)-3.1.1

ATI Graphics Ultra Pro for PCI with 2MB VRAM and an ATI68875C DAC run well as dem@skyline.dayton.oh.us tells us: "It's humming right along at 1280x1024 w/256 colors @74Hz non-interlaced. Looks great."

Paradise WD90C33 PCI did lock up on screensaver/X - this has been solved in the newer versions of the kernel. jbauer@badlands.NoDak.edu (John Edward Bauer)

miroChrystal 8S/PCI (1MB) S3 - no problem.

Stephen Tweedie reported his Cirrus Logics 5434 PCI card works well. It is a 64bit with 2M and runs perfectly with the SVGA driver in 8, 16 and 32 bit per pixel.

6. Ethernet Cards

Of course the ISA-ethernet-cards still work, but people are asking for PCI-based ones. The author of many (if not most) ethernet- drivers said the following some time ago (unfortunately I have not managed to contact him about new information):

From: Donald Becker (becker@cesdis.gsfc.nasa.gov) Subject: PCI ethernet cards supported?

The LANCE code has been extended to handle the PCI version. I hope to get the PCI probe code (about a dozen extra lines in the LANCE driver) into the next kernel version. I'm working on the 32 bit mode code. I haven't yet started the 21040 code.

I'll write drivers for the PCnet32 mode and the DEC 21040. That will cover most of the PCI ethercard market.

file://cesdis.gsfc.nasa.gov/pub/people/becker/whoiam.html

In the new testkernels of 1.1.50 and above, the AMD-singlechip ethernetadapters are supported. With a pentium, they ought to then see 900K/second ftps +(assuming an NCR PCI scsi controller) at about 20% cpu load. (AMD Lance).

Anything based on the AMD PCnet/PCI chip should work at the time being. In the US the Boca board costs under US$ 70

Geoffry Coram reported in the news that he got his 3com 590 TPO to work. He had to get the alpha driver from http://cesdis.gsfc.nasa.gov/linux/drivers. Other drivers would be there as well. Note http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html

Donald Holmgren said he successfully attached his DEC DE435 (PCI) card to the local network on thin coax (BNC). The DE435 driver checks the twisted pair connection first, then switches to the alternate port (jumper selectable as AUI or BNC) if the 10BaseT port fails.

Jim Cusick uses the Boca BEN 1PI card on a thin coax network. It works just fine. You might want to check out: http://cesdis.gsfc.nasa.gov/linux/misc/boca-failure.html for details on the early failures of this card. My second card, after sending one back for replacement, was marked "PN 4186". The old one that did not work was "PN 4185". Mandate this newer model when you order from you vendor. At $ 70, the card is a good deal.

Dave Platt recommends to stay off the Boca BEN1PI card at all costs. It would be unreliable due to design flaws, and Boca seems unable to really fix the problem. The 3Com 3c590 "Vortex" PCI card is available in a combo version (10BaseT, thin coax, and AUI). The Linux driver for this card is not yet part of the release kernel, but is available from http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html and can be patched into the later 1.2.x kernels (as well as 1.3.x) without much difficulty. The Linux driver does not support the interface autodetect feature of this card - you must use the DOS utility to configure the card for the interface you wish to use (thin coax in this case). Once you've done that, the Linux driver will use the correct interface.

He has been using a 3c590 for several weeks, and it is working fine.

Dave Kennedy said he got two of the above Boca boards and they work fine under light load, but under heavy work like ftping two 16M files into both directions, they failed. He sent the boards back to Boca for a hardwarefix. After they soldered a couple of things (diodes/resistors) onto the card and sent them back, the cards worked fine regardless of load. The two cards have been in 7/24 use in two P90 systems without problems for 6 months now.

Craig does not recommend it since Boca seems not to follow the AMD specs but he has been running them for 2 weeks without problems. He tested his NFS performance and has been moving large files to and from server (16M, 8M). He also tried to do all his workin localy using his data files mounted by NFS and has had no problems. Performance seems to be 100 percent better (wrt to NFS performance) over his NE2000 ISA board. (editors note: but so would probably have been the ISA SMC Elite Ultra?)

6.1 3com-3c590-tpo

Someone on usenet mentioned ht used the 3Com-3C590-TPO (EtherLink III - PCI). He had to get the "3c59x.c" driver and "vortex.patch" to make it work with his 1.2.8 Linux kernel.

6.2 DEC435 PCI NIC

The DEC435 PCI NIC is said to work great with the drivers included in the Slackwaredistribution - I'd say they are in the standard-kernel?

7. Motherboards

The people who answered were using the following boards:

7.1 ASUS

7.2 Micronics P54i-90

root@intellibase.gte.com succesful bill.foster@mccaw.com successful karpens@ncssm-server.ncssm.edu successful

7.3 SA486P AIO-II

ah@doc.ic.ac.uk successful

7.4 Sirius SPACE

hi86@rz.uni-karlsruhe.de - successful

7.5 Gateway-2000

kenf@clark.net - no problems except the soundcard he tries to swap dmarples@comms.eee.strathclyde.ac.uk - successful, but... robert logan (rl@de-montfort.ac.uk) - flawless. James D. Levine (jdl@netcom.com) - flawless.

7.6 Intel-Premiere

grif@cs.ucr.edu - successful jeromem@amiserv.xnet.com - successful demarest@rerf.or.jp - successful (Premier-II)

7.7 DELL Poweredge SP4100 gbelow@pmail.sams.ch - successful

7.8 DELL OptiPlex Gl+ 575 torsten@videonetworks.com - successful when turning off plug and play

7.9 Comtrade Best Buy PCI / PCI48X MB Rev 1.0

tldraben@Teleport.Com - "Works, I believe it has buggy Saturn chipset. I would also like to add: I strongly recommend not buying from Contrade. Their service is horrible. "

7.10 IDeal PCI / PCI48X MB Rev 1.0

tldraben@Teleport.Com - "Did not work with PCI48X motherboard"

7.11 CMD Tech. PCI IDE / CSA-6400C

tldraben@TelePort.com - "Works"

7.12 GA-486iS (Gigabyte)

Stefan.Dalibor@informatik.uni-erlangen.de - success with problems.

7.13 GA-586-ID (Gigabyte) 90 Mhz Pentium PCI/EISA Board

kkeyte@esoc.bitnet - succesful

7.14 ESCOM 486dx2/66 - which board?

Works perfect except the ftape-streamer (archive)

7.15 J-Bond with i486dx2/66

Drew Eckhardt (drew@kinglear.cs.Colorado.EDU) uses Diamond Stealth 64 VRAM with 4M of memory (964 based). It works great, he usualy runs it at 1024x768 72hz in 32bpp; 16 and 8bpp also work. He needed to get the X311u2S3.tgz server from ftp.xfree86.org; people with 968 based Diamond boards will definately need to do this.

7.16 super micro 011895 03:50 SUPER P54CI-PCI rev 1.3 (Opti)

Manuel de Vega Barreiro

I run linux 1.1.57 (now 1.2.1) without problems. dosemu0.53 work fine (com. software like kermit and xtalk) XFree86 3.1 at 1024x768 resolution

8. reports on success

8.1 GigaByte GA486-AM with AMD Am5x86-133-WB @ 160MHz (40MHz PCI)

GigaByte GA486-AM

Hercules Terminator 64/VIDEO (S3 765 or "Trio 64V+")

Sound Blaster 16

Silicon 4Ser/3Par I/O

Mitsumi CD-ROM controller

Longshine 1MBit Floppy controller

No Network card, because the 4 ISA slots are full, and I don't have a PCI card. I (now) use kernel 2.0.22 with APM enabled, and the hard drives power down and up properly without panics. The system is 24hrs up a day and still running. Kernel compilation takes between 5 and 7 minutes, depending on options.

8.2 California Graphics - Sunray II Pro

Guido Trentalancia (guido@gulliver.unian.it) reported the California Graphics - Sunray II Pro with Triton chipset to work well with Pentium100, Hd: Conner cfs420a, Conner cfs210a, crunching numbers at 147492 dhrystones/second.

8.3 Micronics P54i-90 (root@intellibase.gte.com)

Pentium with 90Mhz, 32M RAM and 512K L2-cache. Works extremely well (a kernel recompile takes 10 minutes :-).

The board includes:

Pros: Currently, I'm using it with an Adaptec 1542CF and a 1G Seagate drive, No problems. Graphics is ATI Graphics Pro Turbo (PCI). Very fast. The serial ports can keep up with a TeleBit T3000 modem (38400) without overruns. Caching above 16M does occur. There are 3 banks of SIMM slots (2 SIMM's per bank), with each bank capable of 64M each (2 32M 72-pin SIMM's). Each bank must be filled completely to be used (I'm only using bank 0 with 2 16Mx72-pin SIMM's). The CPU socket is a ZIF type socket. The BIOS is Phoenix, FLASH type.

Drawbacks: RAM is expandable to 192M, but the L2 cache is maxed at 512K. While the graphics are very fast, there is currently no XF86 server for the Mach64 (well, actually there is, but it doesn't use any of the accelerator features; it's just an SVGA server). I don't know if the onboard IDE hard drive controller works; I'm prejudiced against a standard that won't allow my peripherals to operate across platforms, so I didn't buy an IDE disk; instead, I got a Seagate 31200N and a NEC 3Xi.

Mitch

8.4 Angelo Haritsis (ah@doc.ic.ac.uk) about SA486P AIO-II:

The motherboard I eventually bought (in the UK) is one supporting 486 SX/DX/DX2/DX4 chips. It is called SA486P AIO-II. Features include:

I bought it from a company (UK) called ICS, (note I have no connections whatsoever with the company, just a happy customer). I use a 486/DX2-66 CPU.

Before I had a VLB 486 m/board with a buslogic BT-445S controller that I was borrowing. I have 2 scsi devices: 1 barracuda 2.1GB ST12550N disk and a Wangtek 5525ES tape drive. I was expecting a lot of adventures by switching to the new motherboard, esp after hearing all these non-success stories on the net. To my surprise everything worked flawlessly on the 1st boot! (1.1.50). And it has been doing so for about a month now. I did not even have to repartition the disk: apparently the disk geometry bios translation of the 2 controllers is the same. Linux has had no problems at all. SCSI is visibly much faster as well (sorry, I have no actual performance measurements).

The only problems (related to Drew's linux ncr53c7,810 scsi driver - thanks for the good work Drew!) are:

If you get Windows complainingg about 32-bit disk driver problems, just disable 32-bit disk access via Control Panel. This should not hurt performance. (What I did is remove the WDCTRL driver from my SYSTEM.INI).

All else is fine. I tried the serial ports with some dos/windows s/w and worked ok. The IDE/floppy work ok as well. I have not tried the parallel yet. The motherboard is quite fast and so far I am very pleased with the upgrade. I have not yet tried a PCI graphics board. I will later on. I am using an old ISA S3 which is fine at the moment.

PS: the NCR drivers in the 2.0.x kernels should have no problems of that kind anymore. please consult the SCSI-HOWTO for further and hopefully more uptodate information.

8.5 bill.foster@mccaw.com about his Micronics M5Pi

Micronics M5Pi motherboard with 60 MHz Pentium, PCI bus having the following components:

16Mb RAM/512k cache
onboard IDE, parallel, 16550A UARTS
2 X 340MB Maxtor IDE Hard Drives
Soundblaster 16 SCSI-II
Toshiba 3401B SCSI CD-ROM
Archive Viper 525MB SCSI Tape Drive
Viewsonic 17 monitor
Cardex Challenger PCI video card (ET4000/W32P)
A4-Tech Serial Mouse

Everything works great, Slackware installation was very easy, I can run Quicken 7 for DOS under DOSEMU. I run X at 1152x900 resolution at 67Hz.

8.6 Simon Karpen (karpens@ncssm-server.ncssm.edu) with Micronics M54pi

I have had no problems with the above board, the on-board PCI IDE (hopefully soon will also have SCSI), and an ATI Mach32 (GUP) with 2MB of VRAM.

8.7 Goerg von Below (gbelow@pmail.sams.ch) about DELL Poweredge

- Intel 486DX4/100
- 16 MB RAM
- DELL SCSI array (DSA) with Firmware A07, DSA-Manager 1.7
- 1 GB SCSI HD DIGITAL
- NEC SCSI CD-ROM
- 2 GB internal SCSI streamer
- 3-Com C579 EISA Ethernet card
- ATI 6800AX PCI VGA subsystem, 1024 MB RAM

CAVE! DELL SCSI Array controller (DSA) runs only with firmware Rev. A07 !
A06 is buggy, impossible to reboot !
To get it: ftp dell.com , file is /dellbbs/dsa/dsaman17.zip

Apart from this firmware-problem there where no problems for the last 2 months, running with linux 1.1.42 as primary nameserver, newsserver and www-server on internet.

8.8 zenon@resonex.com about Gateway2000 P-66

Gateway2000's P5-66 system with Intel's PCI motherboard, with 5 ISA slots and 3 PCI slots. The only PCI card I am using is the # 9 GXe level 12 PCI card (2 MB VRAM and 1 MB DRAM). This card was bought from Dell. Under Linux I am using the graphics in the 80x25 mode only (I am waiting for some XFree86 refinements before using it in 1280x1024 resolution), but under DOS/Windows I have used the card in 1280x1024x256 mode without problems. Etherlink 3C509 Ethernet card, Mitsumi bus-interface card, Adaptec 1542C SCSI interface card and additional serial/parallel ports card (which makes the total of serial ports 3).

I have total of 32 MB RAM (recognized and used by both Linux and DOS). There is also a bus mouse (Microsoft in the PS2 mode).

No problems so far.

8.9 James D. Levine (jdl@netcom.com) with Gateway2000

Gateway 2000 P5-60 with an Intel Mercury motherboard, AMI-Flash-BIOS, (1.00.03.AF1, (c)'92) 16M RAM, on-board IDE controller and an ATI AX0 (Mach32 Ultra XLR) PCI display adapter. He had absolutely no problems with the hardware so far but has not tried anything fancy, such as accelerated IDE drivers or SCSI support.

8.10 hi86@rz.uni-karlsruhe.de with SPACE

SPACE-board, 8MB RAM, S3 805 1MB DRAM PCI 260MB Seagate IDE-hard disk because of lack of NCR53c810-Driver, 0.99pl15d, does seem to work well.

8.11 grif@cs.ucr.edu with INTEL

17 machines running a 60Mhz-i586 on Intel-Premier-PCI-Board

8.12 Jermoe Meyers (jeromem@amiserv.xnet.com) with Intel Premiere

Motherboard - Intel Premiere Plato-babyAT 90mhz with Buslogic bt946c w/4.86 mcode w/4.22 autoSCSI firmware, (note, mine came with 4.80 mcode and 4.17 autoSCSI firmware. (interrupt pins A,B,C conform to respective PCI slots!) ATI Xpression (Mach64) - using driver from sunsite, (running AcerView 56L monitor).

The motherboard has 4 IDE drives, Linux (Slackware 2.0) sees the first two and everything on the Buslogic as it emulates an adaptec 1542. Uh, yes, Dos sees them all. Buslogic is VERY accomodating in regards to shipping upgraded chips (you will have to know how to change PLCC (plastic leaded chip carrier) chips, 3 of them. Though, don't let that scare you :-) it's not that tough. Get a low end PLCC removal tool, and your in business. You also might want to "flash upgrade your system bios from Intel's IPAN BBS, a trivial process. Whats even more interesting is I also have a Sound Blaster SCSI-2 running a scsi CDROM drive off it's adaptech 1522 onboard controller. So thats 4 IDE drives (2 under Linux) and 2 SCSI-2 controllers.

I hope this helps others who are struggling with PCI technology use Linux! Jerry (jeromem@xnet.com)

8.13 Timothy Demarest (demarest@rerf.or.jp) Intel Plato Premiere II

My system is configured as follows: 16Mb 60ns RAM, 3Com Etherlink-III 53C809 ethernet card (using 10base2), ATI Mach 64 2Mb VRAM, Toshiba 2x SCSI CDROM, NCR 53c810 PCI SCSI, Syquest 3270 270Mb Cartridge Drive, Viewsonic 17 monitor, Pentium-90 (FDIV Bug Free). Running Slackware 2.1.0, Kernel 1.2.0, with other misc patches/upgrades.

Everything is functioning flawlessly. I dont recommend the Syquest drives. I have used the 3105 and the 3270 and both a very, very fragile. Also, the cartridges are easily damaged and I have had frequent problems with them. I am in the process of looking for alternative removable storage (MO, Zip, Minidisc, etc).

Some information you might need:

Flash Bios upgrades

Flash Bios updates can be ftp'd from wuarchive.wustl.edu:/pub/MSDOS_UPLOADS/plato. The current version is 1.00.12.AX1. The BIOS upgrades *must* be done in order. 1.00.03.AZ1 to 1.00.06.AX1 to 1.00.08.AX1 to 1.00.10.AX1 to 1.00.12.AX1. The Flash BIOS updates can also be downloaded from the Intel BBS. I do not have that number right now.

NCR 53c810 BIOSless PCI SCSI

If you are using an NCR 53c810 BIOSless PCI SCSI card in the Plato, you may have trouble getting the card to be recognized. I had to change one of the jumpers on the NCR card: the jumper that controls whether there is 1 or 2 NCR SCSI cards in your system must be set to "2". I dont know why, but this is how I got it to work. The other jumper controls the INT setting (A,B,C,D). I left mine at A (the default).

apart from that - plug and play!

There are no settings in the motherboard BIOS for setting the NCR 53c810. Dont worry - once the card is jumpered correctly, it will be recognized! So much for PCI Plug-n-Play!

8.14 heinrich@zsv.gmd.de with ASUS

ASUS-PCI-Board (SP3) having:

He just exchanged the boards, plugged his cards in, connected the cables, and it worked perfect. He does not use any PCI-Cards yet, though.

8.15 CARSTEN@AWORLD.aworld.de with ASUS

ASUS-PCI-Board with 486DX66/2, miro-crystal 8s PCI driven by the S3-drivers of XFree86-2.0, using the onboard SCSI-Chip. No problems with compatibility at all.

8.16 Lars Heinemann (lars@uni-paderborn.de) with ASUS

ASUS PCI/I-486SP3 Motherboard w/ 486DX2/66 and 16M RAM (2x8), miroChrystal 8S/PCI (1MB) S3, Soundblaster PRO, Adaptec 1542b (3.20 ROM) SCSI host adapter with two hard disks (Fujitsu M2694ESA u. Quantum LPS52) and a QIC-150 Streamer attached. No problems at all!

8.17 Ruediger.Funck@Physik.TU-Muenchen.DE with ASUS

ASUS PCI/I-486SP3 / i486DX2-66 / 8 MB PS/2 70 ns BIOS: Award v 4.50 CPU TO DRAM write buffer: enabled CPU TO PCI write buffer: enabled PCI TO DRAM write buffer: disabled, unchangeable CPU TO PCI burst write: enabled Miro Crystal 8s PCI - S3 P86C805 - 1MB DRAM

Quantum LPS 540S SCSI-Harddisk on NCR53c810-controller.

8.18 robert logan (rl@de-montfort.ac.uk with GW/2000)

Gateway 2000 4DX2-66P 16 Megs RAM, PCI ATI AX0 2MB DRAM (ATI GUP). WD 2540 Hard Disk (528 Megs) CrystalScan 1776LE 17inch. (Runs up to 1280x1024) Slackware 1.1.2 (0.99pl15f)

It is giving no problems. He uses SLIP for networking and an Orchid-Soundwave-32 for niceties, awaiting the NCR-Driver. The only problem he has is that the IDE-Drive could be much faster on the PCI-IDE. It is one of the new Western Digital fast drives and in DOS/WfW it absolutely screams - on Linux it is just as slow as a good IDE-Drive.

8.19 archie@CS.Berkeley.EDU and his friend use ASUS

Archie and his friend have rather similar configurations:

The onboard-SCSI is disabled. First there were problems with the IDE-drive: ``on the board there's a jumper which selects whether IRQ14 comes from the ISA bus or the PCI bus. The manual has an example where they show connecting it to PCI INT-A. Well, we did that just like the example... but then later our IDE drive would not work (the IDE controller is on board). Had to take it back. The guys at NCA were puzzled, then traced it back to this jumper. I guess the IDE controller uses IRQ14 or something? That's not documented anywhere in the manual. Other than that, seems to be kicking ass nicely now. Running X, modeming, etc. (for the Supra you have to explicitly tell the kernel that the COM port has a 16550A using setserial (in Slackware /etc/rc.d/rc.serial))''.

8.20 Michael Will with ASUS-SP3 486 (the old one)

used the following:

It runs perfectly and I am content with the speed, the ATI-GUP-PCI (Mach32) does not give as good benchmarks as expected, though. Since I got the money by now, I got me an ASUS-SP4 with P90 which gives me better throughput on Mach32-PCI... If I had even more money I'd get me another 16M of RAM and a Mach64-PCI with 4M RAM, though... I still keep on dreaming :-)

8.21 Mike Frisch (mfrisch@saturn.tlug.org) Giga-Byte 486IM

I have been running this board 24 hours a day for the past 5-6 months. It has worked flawlessly for me under DOS/Windows, OS/2 Warp, and Linux (with Linux being run usually 24 hours a day).

8.22 Karl Keyte (kkeyte@esoc.bitnet) Gigabyte GA586 Pentium

Everything under DOS AND Linux works perfectly. No problem whatsoever. A VERY fast machine! BYTE Unix benchmarks place it about the same as a Sun SuperSPARC-20 running Solaris 2.3. The PC is faster for integer arithmetic and process stuff (including context switching). The SPARC is faster for floating point and one of the disk benchmarks.

8.23 kenf@clark.net with G/W 2000

He uses a Gateway 2000 with no problems, except the soundcard (which one?). He is trading it in for a genuine soundblaster in hopes that will help.

8.24 Joerg Wedeck (jw@peanuts.informatik.uni-tuebingen.de) / ESCOM

originaly buyed a 486 DX2/66 from ESCOM (which board?) with onboard IDE and without (!) onboard NCR-SCSI-chip. ISA-adaptec 1542cf scsi-controller instead spea v7 mercury lite (s3, PCI, 1MB), ISA-Soundblaster-16, mitsumi-cdrom (the slower one). Everything except the archive-streamer works with no problems. The spea-v7 works perfectly since XFree86-2.1

He abandoned the Intel-board in favour of an ASUS-SP3-g and has some problems with PCI-to-Memory burstmode which is crashing only on Linux, "looking like a deadlock in the swapper". If you have any information on this, please eMail the maintainer of the PCI-HOWTO.

After turning off the PCI-to-Memory posting feature it just works perfect.

Rather than sending him mail please read his http-homepage at "http://wsiserv.informatik.uni-tuebingen.de/ jw" where he keeps information about his PCI-system, too.

8.25 Ulrich Teichert / ASUS

ASUS-PCI board with AMD486dx40 (but actually running at 33Mhz?!) His ISA-ET3000 Optima 1024A ISA works nice. No problems with Quantum540S SCSI Harddisk attached to the onboard NCR53c810.

9. Reports of problems

9.1 Compaq PCI systems, especially Presarios

Patrick Yaner (p_yaner@eos.ncsu.edu) reported a Compaq-speciality to me. It seems they are mapping the PCI BIOS data area to an obscure area of memory, one that Linux (or OS2) cannot access. It can usually find it, but it can't get in, and gives a message on startup (something like "pcibios_init: entry in high memory area, unable to access"). Although this is alright with the display (which is on the PCI bus) and the IDE controller (also PCI), it means any other PCI devices -- such as an Ethernet card -- cannot be detected by Linux.

Compaq offers a driver for DOS at ftp://ftp.compaq.com/pub/softpaq/Drivers/SP1116.ZIP

but using this with linux would mean using the program that boots linux from DOS, instead of LILO. Note that Compaq occasionally updates the software in this archive, so the file ftp://ftp.compaq.com/pub/softpaq/allfiles.html (also available as allfiles.txt) might be handy in checking to see that they haven't upgraded.

Oddly, this information can also be found in the SCSI HOWTO, although the Pressarios come with IDE built in.

9.2 VLSI Wildcat PCI chipset like in Zeos P120 box

Paul Bame (bame@sde.hp.com) reported:

The Wildcat PCI chipset works fine in late 1.3 and all 2.0 kernels.

9.3 dmarples@comms.eee.strathclyde.ac.uk G/W 2000

Gateway 2000 G/W 2000 4DX2/66 PCI ATI-Graphics-Ultra-Pro IDE of indeterminate make

It works well - only the IDE-Card runs in ISA-compatibility-mode, and works a lot faster when switched into PCI-Mode by a DOS-program... thus it's not that fast in Linux, and a patch would be nice.

9.4 cip574@wpax01.physik.uni-wuerzburg.de (Frank Hofmann) / ASUS

He uses the ASUS-board with 16MB-RAM, ISA-based S3/928, and the onboard-IDE-controller with a Seagate ST4550A harddisk. He's had no trouble with the newer Linux-kernels.

His problem:

using X, my mouse is not responding the way I was used to before. It's sometimes behind movement and makes jumps if moved quickly. I think this was discussed In a Linux newsgroup before (I don't know which one) and is due to the use of 16550 serial chips for the onboard serial interfaces. After two weeks, I got used to it :-)

Reducing the threshold of the 16550 should help. There should be a patch to setserial available somewhere, but I do not know where.

9.5 axel@avalanche.cs.tu-berlin.de (Axel Mahler) / ASUS

ASUS PCI/I-486SP3 Motherboard (Award BIOS 4.50), 16 MB RAM the on-Board NCR Chip is disabled, he had the Genoa Phantom/W32 2MB for PCI and a Adaptec AHA-1542CF (BIOS v2.01) connected to:

when creating the filesystems, 'mke2fs' (0.4, v. 1.11.93) hung and installation was impossible. After replacing the Genoa Phantom/W32 2MB PCI with an ELSA Winner 1000 2MB PCI it worked perfectly. He tested it with an old Eizo VGA-ISA and it worked as well, so the problem was in the Genoa-PCI-card.

9.6 Frank Strauss (strauss@dagoba.escape.de) / ASUS

ASUS SP3 Board i486DX2/66 NCR53c810 disabled Adaptec 1542B in ISA Slot with 2 hard drives (200MB Maxtor, 420MB Fijutsu), SyQuest 88MB and Tandberg Streamer ELSA Winner 1000 PCI, 1MB-VRAM Soundblaster Pro in ISA Slot at IRQ 5 Onboard IDE disabled Onboard serial, parallel, FD enabled

After a reset, the machine sometimes 'hangs' (soft and hard-reset the same) - this is probably not related to the Adaptec and the Soundcard, because even without these the system sometimes fails to come up. But if it runs, (and the ELSA-WINNER-1000-PCI-message appears) it runs ok.

The two serial ports are detected as 16550 as they should, but at some mailbox-sessions there was heavy data-loss at V42bis... The problem seems to be in the hardware...

CPU>-PCI-Burst seems to work well with DOS/MS-Windows

CPU->PCI-Burst does not work properly with linux0.99p15, Messing up when switching the virtual-consoles, crashing completely when calling big apps like ghostview, or xdvi, leaving the SCSI-LED on (!).

(I suspect these apps would be using a lot of CPU->PCI-burst because of the big heap of data to transmit to the PCI-Winner-1000)

After disabling CPU->PCI-Burst, it works well, the Winner-1000 at 1152x846 (not much font cache with 1MB) does 93k xstones. OpaqueMove with twm is more than just endureable :-)

He has got a SATURN.EXE which he loads under DOS before starting Linux, helping to turn on burst without hangs...

Someone stated that these problems might go away when turning off "sync negotiation" on the Adaptec - I do not know if this is possible with the adaptec1542B too? But I guess so.

With CPU->PCI-Burst it yielded 95k xstones, so he considers it as not too grave to do without. His only problem is that he would like to run his Winner-1000 at 1152x900 which fails because it seems to take any x-resolution higher than 1024pixels as a 1280pixel-resolution, thus wasting a lot end resulting in a y-resolution of 816pixels... but this is probably no PCI-related problem. It should have gone away with XFree86-2.1

9.7 egooch@mc.com / ASUS

He has nothing in the PCI-Slots yet, but wants to buy a PCI-Video-Card, currently uses WD7000 SCSI controller but will switch to the NCR-Chip onboard as soon as the driver is out.

Everything works perfectly - the first serial port which has a 14.4K-Modem attached does hang occasionally when reconnecting with the modem after having used it previously. He says that would not be unique to ASUS but rather a bug in the SMC-LSI device with its 16550UART. The logitech-serial-mouse on the second port works fine. Setting down the threshold of the 16550 for the mouseport would definitely help, one does seem to need a special patched setserial for that? I have not got the information yet, please contact me if you know more!

9.8 Stefan.Dalibor@informatik.uni-erlangen.de / GigaByte

All seems to go well, but he has not tried neither networking, printing or a streamer yet. Before applying the clustering- patches he had some problems with hangs triggered by "find", but this no longer is the case - perhaps it was an older kernel-bug.

The ELSA-Winner-1000 sometimes hangs, with very strange patterns on the screen resolved only by rebooting... The dealer has told him it was a bug in the ELSA-Card, but the manufacturer claims it had solved the problem. The bug is not reproducible so he does not plan to take any action at the moment.

All in all the machine seems to work very well under heavy text processing (emacs, LaTeX, xfig, ghostview) usage. Interaction is surprisingly responsive, little difference between it and the 3-4X as expensive Sun he works on...

CPU->PCI-Burst is still disabled because the bios does not support the PCI-things well?

A problem with his new modem (v32 terbo) arose: it looses characters. Especially when using SLIP it complains a lot about RX and TX errors. As soon as he runs X it gets unusable. He said he activated FIFO and RTS/CTS with stty, but to no avail...

9.9 Steve Durst (sdurst@burns.rl.af.mil) with UMC 8500 mainboard

Running Linux 1.2.12 on the UMC8500-100Mhz motherboard with the dreaded CMD PCIO640B (E)IDE controller, when booting the screen wiggles a few seconds, as if the Diamond Stealth64-DRAM (S3 864) has to warm up first, but he can live with that.

9.10 Tom Drabenstott (tldraben@Teleport.Com) with Comtrade / PCI48IX

PCI48IX Motherboard Rev. 1.0. Made by ??? documentation copyrighted by "exrc". The BIOS says not very much about PCI.

His E-315E Super IDE UMC (863+865) ISA-Controller-card does have problems. (It is a multifunction controller-card). It seems to work well under DOS/OS2 but not under Linux.

10. General tips for PCI-Motherboard + Linux NCR PCI SCSI

This was compiled by Angelo Haritsis (ah@doc.ic.ac.uk) from various people's postings:

10.1 DON'Ts:

Do *NOT* go for combination VLB/PCI motherboards. They usually have a lot of problems. Get a plain PCI version (with ISA slots as well of course). A lot of bad things have been heard about OPTI chipset PCI motherboards. Someone hints: "Avoid the OPTi (82C596/82C597/82C822) chipset based motherboards like the TMC PCI54PV".

(I know of at least one person having no problems with his TMC PCI54PV motherboard. He just had to put the NCR53c810 addonboard into slot-A which is the only slot capable of busmastering as it seems.)

Rumours say that Intel chipset PCI motherboards will have problems with more than one bus-mastering PCI board. I have not tried this one yet on mine and have nothing to suggest. I also heard that the Saturn II chipset is problematic, but this is the one I use and it is perfectly ok! Advice: Try to negotiate a 1-2 week money back agreement with your supplier, in case the motherboard you get has problems with the use you plan for it.

10.2 SIMM slots

Go for 72-pin only SIMMs for speed: Some (all?) of the mainboards which take 30 pin SIMMs use a 32 bit main memory interface, and will be significantly slower than the Intel based boards which all use a 64 bit or permantly interleaved memory interface. You might want to keep that in mind.

10.3 Praised PCI Pentium motherboard

The P90 Intel motherboard with the Intel Premiere II chipset (aka Plato). Get the latest BIOS which has concatenated NCR scsi BIOS 3.04.00. Otherwise DOS won't see your scsi disk(s) if you use a BIOS-less 53c810 based controller. NCR SCSI BIOS exists in the AMI BIOS of the plato after version 1.00.08 (or maybe verion 1.00.06). This BIOS is FLASH upgradeable so you should be able to get the upgrade on a floppy from your supplier. The current version is 1.00.10 and has all early problems fixed.

(Bios files should be available at ftp.demon.co.uk:/pub/ibmpc/intel, but I did not check that myself. the Autor.)

10.4 irq-lines

The value in the interrupt line PCI configuration register is usually set manually (for compatability with legacy ISA boards) in the extended CMOS setup screens on a per-slot or per-device basis. Older PCI mainboards also force you to set jumpers for each PCI slot/device which select how PCI INTA and perhaps INTB, INTC, and INTD are mapped to an 8259 IRQ line, Obviously, if these jumpers exist on your board, they must match the settings in the extended CMOS setup. Also note that some boards (notably Viglens) have silkscreens and instruction manuals which disagree with the wiring, and some experimentation may be in order.

10.5 Info about the different NCR 8xx family scsi chips:

All NCR 8XX Chips are dircet connect PCI bus mastering devices, that have no preformance difference wether on motherboard or add in option card. All devices comply with PCI 2.0 Specification, and can burst 32 bit data at the full 33 MHz (133Mbytes/Sec)

53C810

53C810 = 8 bit Fast SCSI-2 (10 MB/Sec) Single ended only Requires Integrated Mother board BIOS 100 pin Quad Flat Pack (PQFP) Worlds first PCI SCSI Chip, Volumes make it the most inexpensive.

53C815

53C815 = 8 bit Fast SCSI-2 (10 MB/Sec) Single Ended only Support ROM BIOS interface, which makes it ideal for add-in card Designs. 128 Pin QFP

53C825

53C825 = 8 bit Fast SCSI-2, Single ended or Differential 16 bit Fast SCSI-2 (20 MB/Sec), Single ended or Differetial Also has support for external Rom, making it a good candidate for add in cards. 160 pin QFP Not supported by linux yet. (See section below on news about the 825). Must have devices with wide or differential scsi to use these features.

10.6 future of 53c8xx

There are 4 new devices planned for announcement late this year and into early next year. Footprint compitible with 810 and 825 with some new features.

All the Chips require a BIOS in DOS/Intel applications. The 810 is the only chip that needs it resident on the motherboard. Latest NCR SCSI BIOS version: 3.04.00 The bios supports disks >1GB, indeed up to 8G under MS-LOSS.

10.7 Performance of the 53c810

C't magazine's DOS benchmarks showed that it was significantly faster than the Buslogic BT-946, one user noted a 10-15% performance increase versus an Adaptec 2940, and with a very fast disk it may be 2.5X as fast as an Adaptec 1540.

10.8 News about NCR53c825 support

works. period.

10.9 Frederic POTTER (Frederic.Potter@masi.ibp.fr) about Pentium+NCR+Strap_bug

On some Intel Plato board, the NCR bios doesn't recognize the board, because it needs to see the board as a "secondary SCSI controller", and because on most SCSI board the jumper to select between primary/secondary has been ironed to primary (to spare 1 cent, presumably).

Solution:

near the NCR chip, they are 3 via ( kind of holes ) with a strap like 
that
                O--O  O

        this mean primary is selected as default setting. For the Plato Intel 
        Mainboard, it should be like that

                O  O--O

        The best solution is to get rid of the strap and to put a 2 position 
        jumper instead.

10.10 PCIprobe in the latest Linux Kernels by Frederic Potter

Frederic Potter has added a PCI-Probe into the latest kernels. If you do a "cat /proc/pci" it should list all your cards. If you own cards which are not properly recogniced, please contact him via mail as "Frederic.Potter@masi.ibp.fr".

See arch/i386/kernel/bios32.c and include/linux/pci.h in the kernel source for more information on PCI-Probe-Stuff.

10.11 Other PCI Devices

What other PCI-cards are supported? Apart from various graphicscards, I would like to know about other cards like ethernet, framegrabber, or the TSET boards Cyclades is about to beta-test at the moment:

Cyclades: a 16-port PCI RISC-based multiport card.

The product is called Cyclom-Ye, and has the following characteristics:

The product is being in the beta-test phase at July the 26th, 1995, and should be available by Octobre or something. eMail them at sales@cyclades.com.

11. Conclusion

If you have some moneny to put into your machine, you'd be well off with a Pentium90, ASUS-SP4, which is what I use at the moment. If you can afford 32M RAM that would be much better than 16M RAM.

Real soon now the upcoming standard will be the Triton Chipset with support for special SIMMS called EDODRAM, and SRAM. Both will be more expensive than PS2-RAM, and at the time of writing (28-June-1995) SRAM is not available. While EDO-DRAM is more expensive, this is not because of the production costs, they are said to be the same.

For a highperformance system I would still choose an ASUS-TP4/XE with EDO-DRAM, but if you do not need to use it at the moment, I d rather wait some more.

For Graphic-boards I'd say the best cheap board fitting perfectly on a good Multisync-15 like the Samsung SyncMaster 15Gli, is the SPEA V7 Mirage P64 with Trio64 Chipset and 2M DRAM. For more sophisticated Display like the Iiyama-IDEK 8617A-T I think the PCI Mach64 ATI-GUP-Turbo (not the cheaper GUP-Turbo-Windows) would be a good choice, with 4M RAM you can have truecolor in higher resolutions. It is well supported in the XFree86(tm)-3.1.1, and there are commercial X-Servers available of which I'd recommend Accelerated/X by Roell, which supports the Mach64 very well and fast.

For SCSI I'd take the DPT rather than the (much cheaper and very fast) NCR53c810 in case you plan to use SCSI-Tapes a lot. The NCR53c810 driver on Linux does lack disconnect/reconnect support, thus blocking the SCSIbus on operations like "mt rewind", "mt fsf" etc. It bears a performance penalty on tar-operations - but check out Drews new alpha drivers before making a decision, perhaps it does solve all the problems.

For building servers, the DPT would be the controller of choice anyway because of all the nifty hardware cache (with elevator sorting on accesses, so cache it is not a silly thing even in a Linux enviroment where the OS does the caching) and RAID-Support up to raid level 5.

If you do not want to spend that much money on computer equipment (e.g.: you are having a life) you might go for an ASUS-SP3-SiS with AMD-DX2/66 or DX4/100. The SPEA V7 Mirage P64 PCI with 2M DRAM would be a good choice, since it uses the Trio64 S3 Chip, which is well supported by XFree86(tm)-3.1.1, quite cheap to buy and fast, too.

Another fine card since XFree86(tm)-3.1 is the fast and cheap et4000/w32-PCI-card.

12. Thanks

I want to thank the following people for supporting this document:

and many more peole adding information mostly by mail and by posts, some of them will be named here:

CARSTEN@AWORLD.aworld.de, 
dmarples@comms.eee.strathclyde.ac.uk,
drew@kinglear.cs.Colorado.EDU (Working at the PCI-NCR53c810-Driver), 
duncan@spd.eee.strathclyde.ac.uk, 
fm3@irz.inf.tu-dresden.de, 
grif@ucrengr.ucr.edu, 
heinrich@zsv.gmd.de, 
hm@ix.de (iX-Magazine), 
hm@seneca.ix.de, 
kebsch.pad@sni.de, 
kenf@clark.net, 
matthias@penthouse.boerde.de, 
ortloff@omega.informatik.uni-dortmund.de, 
preberle@cip.informatik.uni-erlangen.de, 
rob@me62.lbl.gov, 
rsi@netcom.com, 
sk001sp@unidui.uni-duisburg.de, 
strauss@dagoba.escape.de, 
strauss@dagoba.priconet.de, 
hi86@rz.uni-karlsruhe.de, 
Ulrich Teichert, krypton@netzservice.de,
Stefan.Dalibor@informatik.uni-erlangen.de, 
tldraben@teleport.com
mundkur@eagle.ece.uci.edu, 
ooch@jericho.mc.com, 
Gert Doering (gert@greenie.muc.de), 
James D. Levine (jdl@netcom.com),
Georg von Below (gbelow@pmail.sams.ch),
Jerome Meyers (jeromem@quake.xnet.com),
Angelo Haritsis (ah@doc.ic.ac.uk),
archie@CS.Berkeley.EDU and his friend kenf@clark.net.

13. copyright/legalese

(c)opyright 1993,94,97,2001 by Michael Will - the GPL (Gnu Public License) applies. See last section about this.

If you sell this HOWTO on a CD or in a book I would be happy to have a copy for reference.

(Michael.Will@student.uni-tuebingen.de)

Contact me, either via eMail or call +49-7071-889710.

Trademarks are owned by their owners. There is no warranty on the information in this document.

For german users I am offering tested, preinstalled / preconfigured and supported Linux-PCI-machines. Call me at 07071-889710

14. GPL - Gnu Public License

                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                          675 Mass Ave, Cambridge, MA 02139, USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS

        Appendix: How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) 19yy  (name of author)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) 19yy name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  (signature of Ty Coon), 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.