343 lines
16 KiB
HTML
343 lines
16 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>Linux PCI-HOWTO: Why PCI?</TITLE>
|
|
<LINK HREF="PCI-HOWTO-3.html" REL=next>
|
|
<LINK HREF="PCI-HOWTO-1.html" REL=previous>
|
|
<LINK HREF="PCI-HOWTO.html#toc2" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="PCI-HOWTO-3.html">Next</A>
|
|
<A HREF="PCI-HOWTO-1.html">Previous</A>
|
|
<A HREF="PCI-HOWTO.html#toc2">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s2">2. Why PCI?</A></H2>
|
|
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss2.1">2.1 General overview</A>
|
|
</H2>
|
|
|
|
<P>The PC-architecture has several BUS-Systems to choose from:
|
|
<DL>
|
|
<DT><B>ISA</B><DD><P>16 or 8bit, cheap, slow (usually 8Mhz), standard, many cards available>
|
|
<DT><B>EISA</B><DD><P>32bit, expensive, fast, few cards available, fading>
|
|
<DT><B>MCA</B><DD><P>32 or 16bit ex-IBM-proprietary, fast, becoming rare>
|
|
<DT><B>VESA-Local-Bus</B><DD><P>32bit, based on 486 architecture, cheap, fast, many cards available>
|
|
<DT><B>PCI-Local-Bus</B><DD><P>32bit (64 bit coming), cheap, fast, many cards available, nowadays standard>
|
|
</DL>
|
|
<P>
|
|
<P>MCA worked fine, but never achieved much market, being used on only
|
|
some early IBM PS/2 machines. There were very few cards.
|
|
<P>EISA was reliable, but rather expensive, and intended more for
|
|
servers, than for the average user. It has the next fewest cards
|
|
available.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>
|
|
<H2><A NAME="ss2.2">2.2 Performance</A>
|
|
</H2>
|
|
|
|
<P>taken from Craig Sutphin's early Pro-PCI-Propaganda
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
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.
|
|
</BLOCKQUOTE>
|
|
<P>See the chapter about Benchmarks for some crude (and perhaps meaningless)
|
|
benchmarks on ASUS PCI Boards with 486 and 586.
|
|
<P>
|
|
<H2><A NAME="ss2.3">2.3 The onboard-SCSI-II-chip NCR53c810</A>
|
|
</H2>
|
|
|
|
<P>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.
|
|
<P>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.
|
|
<P>The NCR53c810-chip is onboard on some PCI-motherboards.
|
|
There are add-on-boards available too, for about US$ 70.00.
|
|
<P>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.
|
|
<P>People have reported this problem has been solved by Drew by now.
|
|
<P>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?
|
|
<P>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...
|
|
<P>
|
|
<H2><A NAME="ss2.4">2.4 Drew Eckhardt on PCI-SCSI:</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>Drew said on end of March 95 about the SCSI on PCI:
|
|
(slightly edited for clarity in context)
|
|
<P>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.
|
|
<P>
|
|
<UL>
|
|
<LI> The Adaptec 2940 suffers from the same cabling sensitivity
|
|
that plagues all recent boards, but otherwise works fine.</LI>
|
|
<LI> The Future Domain boards are not busmasters, and the driver doesn't
|
|
support multiple simultaenous commands. If you don't (currently)
|
|
need multiple simultaneous commands, get a NCR board, which will
|
|
be cheaper and is busmastering. If you need multiple simultaneous
|
|
commands, get a Buslogic.</LI>
|
|
<LI> The Buslogic BT956W will do WIDE SCSI with the Linux drivers (although
|
|
you can't use targets 8-15), the Adaptec 2940W (with one line patch
|
|
to the 2940 driver) won't, nor will the NCR53c820 and NCR53c825.</LI>
|
|
<LI> The NCR boards are dirt cheap (< $ 70 US), are generally quite fast,
|
|
but the driver currently doesn't support multiple simultaenous
|
|
commands. Alpha which do neat things like disconnect/reconnect and
|
|
synchronous transfer are now publicly available, see below.</LI>
|
|
<LI> Emulux, Forex, and other unmentioned PCI SCSI controllers will
|
|
not work. </LI>
|
|
</UL>
|
|
<P>
|
|
<H2><A NAME="ss2.5">2.5 New Alpha Version of the NCR driver</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>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.
|
|
<P>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
|
|
<UL>
|
|
<LI> Join the NCR mailing list, by sending mail to majordomo@colorado.edu
|
|
with subscribe ncr53c810 in the text.</LI>
|
|
<LI> Get all of the readmes, and latest diffs file from
|
|
ftp://tsx-11.mit.edu/pub/ALPHA/linux/SCSI/ncr53c810</LI>
|
|
</UL>
|
|
<P>
|
|
<H2><A NAME="ss2.6">2.6 The EATA-DMA driver and the PCI SCSI controllers from DPT</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>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.
|
|
<P>
|
|
<P>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.
|
|
<P>
|
|
<PRE>
|
|
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.
|
|
</PRE>
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>The entry level boards utilize a Motorola 68000, the high-end, more raid
|
|
specific DPT cards use a 68020, 68030 or 68040/40MHz processor.
|
|
<P>Official list prices range from $ 265 to $1.645 (January 18, 1996)
|
|
<P>
|
|
<P>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:
|
|
<P>
|
|
<PRE>
|
|
|
|
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
|
|
</PRE>
|
|
<P>"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.
|
|
<P>The latest version of the EATA-DMA driver and a Slackware bootdisk is
|
|
available on:
|
|
ftp.i-Connect.Net:/pub/Local/EATA
|
|
<P>
|
|
<P>Since patchlevel 1.1.81 the driver is included in the standard kernel
|
|
distribution.
|
|
<P>The author can be reached under these addresses:
|
|
neuffer@mail.uni-mainz.de or mike@i-Connect.Net
|
|
<P>
|
|
<H2><A NAME="ss2.7">2.7 BT-946C fully supported with kernel 1.3.x and newer</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>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).
|
|
<P>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.
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss2.8">2.8 Future Domain TMC-3260 PCI SCSI</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>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.
|
|
<P>
|
|
<UL>
|
|
<LI> Detection is not done well, and does not use standard PCI BIOS
|
|
detection methods (someone who has a PCI board needs to send me
|
|
patches to fix this problem). So, you might have to fiddle with the
|
|
detection routine in the kernel to get it detected.</LI>
|
|
<LI> The driver still does not support multiple outstanding commands, so
|
|
your system will hang while your tape rewinds.</LI>
|
|
<LI> The driver does not support the enhanced pseudo-32bit transfer mode
|
|
supported by recent Future Domain chips, so you will not get
|
|
transfer rates as high as under DOS.</LI>
|
|
<LI> The driver only supports the SCSI-I protocol, so your really fast
|
|
hard disks will not get used at the highest possible
|
|
throughput. (Again, fixes for all these problems are solicited -- no
|
|
one is working on them at this time.)</LI>
|
|
</UL>
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss2.9">2.9 other thoughts on scsi</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>James Soutter (J.K.Soutter1@lut.ac.uk) asked me to add the
|
|
following information on Fast-Wide-SCSI-2:
|
|
<P>
|
|
<BLOCKQUOTE>
|
|
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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
<P>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.
|
|
</BLOCKQUOTE>
|
|
<P>I definitly recommend reading the SCSI HOWTO in regards to newer
|
|
information about PCI SCSI drivers.
|
|
<P>Ernst Kloecker (ernst@cs.tu-berlin.de) wrote:
|
|
(edited)
|
|
<BLOCKQUOTE>
|
|
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.
|
|
</BLOCKQUOTE>
|
|
<P>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...
|
|
<P>The NCR-Chip is clever enough to work with drives formatted by other
|
|
controllers, and should be no problem.
|
|
<P>
|
|
<HR>
|
|
<A HREF="PCI-HOWTO-3.html">Next</A>
|
|
<A HREF="PCI-HOWTO-1.html">Previous</A>
|
|
<A HREF="PCI-HOWTO.html#toc2">Contents</A>
|
|
</BODY>
|
|
</HTML>
|