Commit Graph

2390 Commits

Author SHA1 Message Date
Stefan Eßer
85cf6e3f7e Make the NCR driver on the boot floppy kernel not negotiate synch. SCSI
transfers for CDROM drives.
1996-01-15 00:10:15 +00:00
Stefan Eßer
ad6ca346f2 Add back initialization of "ncrp[unit]" since ncrcontrol relies on it. 1996-01-10 21:20:57 +00:00
Andreas Schulz
f1686c1ebc Add the pci-numbers for the 3c595 10/100Mb card to the driver. 1996-01-09 23:07:32 +00:00
Stefan Eßer
020bfdcff6 Add back nncr and ncrp for now. ncrcontrol relies on them.
(To be replaced by sysctl accesses some time ...)

Remove a backward jump from the NCR script, which allowed a SCSI target
to receive any number of NOP messages it desired. If a target indeed
does such a silly thing, make it fail at the next instruction, instead
of causing a timeout a few seconds later.
1996-01-09 19:57:49 +00:00
Justin T. Gibbs
e3cf0fb323 Don't bother setting the DSCommand register. Adaptec's own BIOS doesn't. 1996-01-09 16:14:53 +00:00
Justin T. Gibbs
2f53429551 Write the cahesize and latency timer values back into configuration
space (whoops!).

Add a missing argument to the cachesize/lattime printf.

Set the CACHETHEN bit in DSCommand.
1996-01-07 19:26:12 +00:00
Justin T. Gibbs
c5753242cf The long awaited stability patch set for the aic7xxx driver:
Simplify the initialization of adapters by pulling all card specific
initialization to the card specific modules.

Set the Latency timer and Burst len to good values if thery are not
initialized during post or are reset during chip reset.

Properly identify and handle external SCB SRAM.  The code was false
id'ing 255 SCBs on aic7880 chips.

Reviewed by:   David Greenman <davidg@FreeBSd.org>
1996-01-03 06:34:10 +00:00
David Greenman
3ba657329e Reworked the stop/reset code to properly run-down allocated buffers and
made the code detect and handle wedged cards.
1996-01-03 05:22:32 +00:00
Stefan Eßer
7217e99c8f Preserve SIGP bit when clearing INTF condition.
Submitted by:	Gerard Roudier <groudier@htlm.fr>
1995-12-28 13:04:03 +00:00
David Greenman
10521e6da6 Added prototype for fxp_scb_wait() and fixed a bug where the wrong pointer
was passed in one case.
1995-12-18 02:47:43 +00:00
Bruce Evans
6ea3e9d839 Completed function declarations and/or added prototypes and/or added
#includes to get prototypes.

pci now uses a different interrupt handler type for interrupts that it
dispatches and the isa interrupt handler type for the interrupts that
it handles.
1995-12-16 00:27:59 +00:00
Stefan Eßer
6549c8c929 Fix the off-by-one error in the calculation of the valid port range.
Reduce default value of pcicb_membase to 0x2000000 (from 0x4000000)
since this seems to be the lower bound used by many systems.

Submitted by:	Mihoko Tanaka <m_tanaka@pa.yokogawa.co.jp>
1995-12-15 13:40:20 +00:00
Peter Wemm
60f17fcd9f Change the generic "btintr" function's name to "bt_intr" - the same as
all the other bt_XXX() functions in i386/scsi/bt*.

This the important effect of forcing a link error if the user is
still using the old "vector btintr" which is dangerously wrong
after Justin's updates to the driver.

The correct isa vector line for the bt driver is "vector bt_isa_intr".
Justin mentioned this in the commit message and updated LINT and
GENERIC.  This change is to enforce that.. :-)
1995-12-14 14:19:19 +00:00
Poul-Henning Kamp
f708ef1b9e Another mega commit to staticize things. 1995-12-14 09:55:16 +00:00
Justin T. Gibbs
1fbfe4ca34 PCI portion of the Buslogic SCSI driver. Needs to be tested and more
PCI ids for Buslogic products added.
1995-12-12 08:58:04 +00:00
Poul-Henning Kamp
d2f265fab8 Julian forgot to make the *devsw structures static. 1995-12-08 23:23:00 +00:00
Julian Elischer
87f6c6625d Pass 3 of the great devsw changes
most devsw referenced functions are now static, as they are
in the same file as their devsw structure. I've also added DEVFS
support for nearly every device in the system, however
many of the devices have 'incorrect' names under DEVFS
because I couldn't quickly work out the correct naming conventions.
(but devfs won't be coming on line for a month or so anyhow so that doesn't
matter)

If you "OWN" a device which would normally have an entry in /dev
then search for the devfs_add_devsw() entries and munge to make them right..
check out similar devices to see what I might have done in them in you
can't see what's going on..
for a laugh compare conf.c conf.h defore and after... :)
I have not doen DEVFS entries for any DISKSLICE devices yet as that will be
a much more complicated job.. (pass 5 :)

pass 4 will be to make the devsw tables of type (cdevsw * )
rather than (cdevsw)
seems to work here..
complaints to the usual places.. :)
1995-12-08 11:19:42 +00:00
David Greenman
efeaf95a41 Untangled the vm.h include file spaghetti. 1995-12-07 12:48:31 +00:00
Stefan Eßer
94fed3c149 Set default burst length limit to 32 bytes, since this seems to be
an acceptable value for all current chip sets (just a hint to PCI
device drivers, used in the NCR driver, for example).
Add PCI Vendor ID of ACER.
1995-12-06 15:52:23 +00:00
Bruce Evans
d74abd4029 Renamed TRUE (which has value 2) to M_TR to avoid a clash with the
the boolean TRUE.
1995-12-05 20:40:10 +00:00
David Greenman
23a0ed7c08 Increased the number of Tx segments from 13 to 29 to reduce the need to
recopy to near zero. Wrote the necessary code to recopy the mbuf chain
into another buffer if there are too many mbufs in the chain.
1995-12-05 11:49:55 +00:00
David Greenman
4a5f1499b0 all:
Removed ifnet.if_init and ifnet.if_reset as they are generally unused.
Change the parameter passed to if_watchdog to be a ifnet * rather than
a unit number. All of this is an attempt to move toward not needing an
array of softc pointers (which is usually static in size) to point to
the driver softc.

if_ed.c:
Changed some of the argument passing to some functions to make a little
more sense.

if_ep.c, if_vx.c:
Killed completely bogus use of if_timer. It was being set in such a way
that the interface was being reset once per second (blech!).
1995-12-05 02:01:59 +00:00
David Greenman
dfe61cf102 Fix minor bug that would cause the packet statistics updates to stop
working under extremely rare circumstances. Also added some additional
comments..
1995-12-01 22:41:56 +00:00
Julian Elischer
b0d30084c0 missed one..
thanks jim..
(actually I was already aware I'd missed it, but hadn't started
searching for it :)
1995-11-29 15:31:22 +00:00
Bruce Evans
20c6c6ed1d Restored my old changes which were clobbered by the previous commit.
Added prototypes.  The previous version wouldn't have compiled if
prototypes were in scope.
1995-11-29 15:07:59 +00:00
Satoshi Asami
1d2e4e9cdf 'see" -> "see" (in the comment).
Noticed by:	hilit19.el (stop laughing! ;)
1995-11-29 11:19:02 +00:00
Jordan K. Hubbard
d01b66804a A batch of Jim Lowe's patches:
o Add signed/unsigned functionality to the matrox meteor device driver.
	o Apply a few fixes to the sound driver.
	o Add a ``SPIGOT_UNSECURE'' compile time definition so, if one defines
	  SPIGOT_UNSECURE in their conf file, then they can use the spigot w/o
	  root.  There is a warning that this allows users access to the IO
	  page which is probably not secure.
Submitted by:	james
1995-11-29 01:07:59 +00:00
David Greenman
a17c678ed2 Device driver for Intel Pro/100 PCI Fast Ethernet controller. 1995-11-28 23:55:26 +00:00
Bruce Evans
8be8b2a157 Made pci.c compile again. It unfortunately depends on the isa interrupt
interface.  Adding prototypes just made the dependency explicit.
1995-11-21 13:59:56 +00:00
Bruce Evans
512fef80a9 Completed function declarations and/or added prototypes. 1995-11-21 12:55:26 +00:00
Poul-Henning Kamp
4b2af45f4b Mega commit for sysctl.
Convert the remaining sysctl stuff to the new way of doing things.
the devconf stuff is the reason for the large number of files.
Cleaned up some compiler warnings while I were there.
1995-11-20 12:42:39 +00:00
David Greenman
38428efc63 Set flag to stop backoff counter from counting when carrier activity is
detected. This dramatically reduces the collision rate (about 1/10th of
what is was previously).

Submitted by:	Matt Thomas <matt@lkg.dec.com>
1995-11-17 12:11:22 +00:00
Poul-Henning Kamp
12eedfdc3a statizice some internal magic. 1995-11-14 10:03:56 +00:00
Justin T. Gibbs
62f51df3c9 Remove uneccessary increment of the unit number. 1995-11-07 05:33:27 +00:00
Justin T. Gibbs
deb0ea4125 Conform to new probe/attach interface exported by aic7xxx.c.
Use ahcintr directly as interrupt handler.
1995-11-05 04:51:58 +00:00
Bruce Evans
8289505ce7 Fixed the type of feaintr(). The type of an EISA interrupt handler is
incompatible with the type of a PCI interrupt handler.

Fixed the type of pdc_pci_ifintr().  The type of a PCI interrupt handler
is too generic to pass arbitrary struct pointers.
1995-11-04 15:05:52 +00:00
Bruce Evans
2e8300f1f6 Fixed the type of ahcintr(). The type of an ISA interrupt handler is
incompatible with the type of a PCI interrupt handler.  A new entry
point `ahc_pci_intr()' is used for PCI.  ISA and PCI interrupts are
penalized equally (:-) by calling a common handler `ahc_intr()'.  This
should be reorganized.  Some strings now name the wrong function...
1995-11-04 14:43:30 +00:00
Julian Elischer
e9500cdb8a Submitted by: bde
IFF_NOTRAILERS doesn't exist any more in current
(driver came from 2.0.5)
now compiles again.
1995-11-04 07:57:14 +00:00
Julian Elischer
f4567b9c1c Reviewed by: not yet
Submitted by:	fgray@rice.edu
this driver hasn't been checked but as a separate module, bringing it in won't
break anything else and it't the best way of testing it......

julian
1995-10-31 07:42:54 +00:00
Poul-Henning Kamp
a98ca4699e Second batch of cleanup changes.
This time mostly making a lot of things static and some unused
variables here and there.
1995-10-29 15:33:36 +00:00
Justin T. Gibbs
5bc51a33d8 Recognize the aic7880 and 3940 Ultra.
If RAMENB is set in devconfig, walk the external SCBs.  Some Intel Xpress
motherboards set this bit.

For external SCBs for the 3940.  It doesn't set RAMPS or RAMENB, but does
have the ram.
1995-10-26 23:58:59 +00:00
David Greenman
0d9a79f8a6 From Matt Thomas:
"I screwed the initialization of the burstsize.  Right now it will default
to 0 (which can cause corruption problems on high latency PCI buses).  It
should be set to 8 longwords to avoid problems with certain PCI chipsets."

Submitted by:	Matt Thomas <matt@lkg.dec.com>
1995-10-26 07:40:11 +00:00
Garrett Wollman
233b60cec4 Say goodbye to IFF_NOTRAILERS. Support for trailers was officially
dropped for 4.4, but for some reason this flag lived on.  (Until
today, that is.)
1995-10-13 19:48:06 +00:00
Justin T. Gibbs
eec7e07a40 Identify the 2940 *Ultra* SCSI adapter. We treat it as a normal 2940
for now since I don't have any documentation on this card yet and it
is software compatible with the earlier cards.

The 2940 *Ultra* is Adaptec's push to take SCSI to 20MHz bus rates.  Its
based on the aic7880 chip which is the successor to the aic7870.
1995-10-08 17:46:11 +00:00
David Greenman
aacd778ef0 Add SIOCGIFADDR support. 1995-10-07 20:34:30 +00:00
David Greenman
ee709c2f32 Check for failure to map the interrupt. Not doing so will guarantee that
the machine will wedge later.
1995-10-02 14:04:33 +00:00
David Greenman
df31aac551 Fixed bug where wrong thing was being checked for NULL before calling
free(), resulting in a panic. This happend whenever an irq had already
been allocated by another device (like something on the ISA bus).
1995-10-02 13:43:11 +00:00
David Greenman
86d61837c8 Latest version from Matt Thomas. This version works with the newer
DC21041 NICs and with ZNYX cards.

Submitted by:	Matt Thomas
1995-09-29 19:52:10 +00:00
Stefan Eßer
d4a471bda0 Add preliminary support for the 53c860 and 53c875 ULTRA SCSI chips,
and for the 53c810ap, the improved version of the 53c810.
The driver should work with all those controllers, but doesn't know
about any of their advanced features.
1995-09-21 17:27:28 +00:00
Stefan Eßer
da42a6e8f3 Add vendor ID of Compaq, now that I found what it is ... 1995-09-14 23:24:29 +00:00
Stefan Eßer
0d1d9baee5 Remove '#ifdef undef' that was only supposed to be in my local test version. 1995-09-14 17:26:24 +00:00
Stefan Eßer
def1b9aa9a Do not include the verbose boot messages, if PCI_QUIET is defined. 1995-09-14 13:13:33 +00:00
Stefan Eßer
7324a7b336 Minor changes to the PCI probe messages. 1995-09-14 13:09:40 +00:00
Stefan Eßer
f7fe07b585 Introduce NCB_SCRIPT_PHYS and CCB_PHYS macros to find physical addresses
of NCR script labels and of command control block structure components.
This allows for easy modification of the actual virtual to physical
mapping operator used ...
Make all applicable references to physical address values use the above
macros instead of calls to vtophys().
1995-09-11 19:34:30 +00:00
Stefan Eßer
1be758653e Put back p_script component into NCR control block.
The driver currently doesn't use it, but ncrcontrol needs it
to print some script addresses relative to the script start.
1995-09-11 12:10:19 +00:00
Stefan Eßer
5e5da2da5d Perl script to convert NCR script address into label+offset.
Useful to find the failed NCR instruction ...
1995-09-08 19:37:11 +00:00
Stefan Eßer
b564b3e73e Don't use vtophys() for constant addresses, cache the translations in
the NCR control block (ncb) and command control block (ccb) instead.
1995-09-08 19:30:11 +00:00
Stefan Eßer
ab14793833 Applied patches that make the driver compile on NetBSD again.
They shouldn't affect FreeBSD, since they are within #ifdef NETBSD
directives.
Changed the HAD_ERROR return code into COMPLETE according to a comment
in "/sys/scsi/scsiconf.h"

Submitted by:	Andreas Wrede <andreas@planix.com>
1995-09-08 14:29:48 +00:00
Bruce Evans
6003967057 Fix benign type mismatches in devsw functions. 82 out of 299 devsw
functions were wrong.
1995-09-08 11:09:15 +00:00
Stefan Eßer
3a5a6263e3 Add support for 16 targets on WIDE SCSI bus.
This seems to work fine on my 53c810, but really should be tested on
a 53c825 with at least one target set to an ID >= 8.
The script is now copied to memory mapped using vm_page_alloc_contig(),
since it has to be physically contigous. This must be changed, if the
driver is converted into a loadable module !
Two of the probe messages are suppressed, unless "bootverbose" is set.
1995-09-07 20:53:40 +00:00
Stefan Eßer
defdcfcfb3 Remove support for PCI bridge classes, since this
dealt with by code in pci.c now.
1995-09-07 15:40:51 +00:00
Stefan Eßer
ab2e900f6b Make mapping messages depend on bootverbose flag.
Add PCI subclass to unknown device message.
1995-09-07 15:20:53 +00:00
Stefan Eßer
d1aff57c8f Add description of Intel 82425EX PCI system controller chip (Aries ?).
Submitted by:	Danny J. Zerkel <dzerkel@feephi.phofarm.com>
1995-09-07 14:17:46 +00:00
Justin T. Gibbs
cad8dd8860 Detect external SRAM.
Count the number of detected 3940 controllers.  Tag all even controllers
as being the "B Channel".
1995-09-05 23:53:48 +00:00
Stefan Eßer
8befc21fbd The NCR script has grown beyond one page (4KB). Since malloc() returns
contiguous memory in virtual space, but doesn't guarantee any particular
physical layout of pages, the script may be not contguous in physical
memory. This made the first write command fail in very rare cases.
This has been fixed by checking the region returned by malloc() for
being contiguous, but there should be a physical memory allocate
and later mapping to virtual memory instead.

A few assertions and error messages are improved.
1995-09-05 22:37:59 +00:00
Jordan K. Hubbard
93fe9cf4a4 Fixes for issues raised by Bruce Evans.
Submitted by:	Jim Lowe <james>
1995-08-29 13:55:24 +00:00
Jordan K. Hubbard
1d86961e14 Kernel components of Matrox Meteor driver.
Submitted by:	Mark Tinguely <tinguely@plains.nodak.edu> and Jim Lowe <james>
1995-08-28 17:03:18 +00:00
Justin T. Gibbs
07b1c6b3c9 Remove hard coded assumption that SCSI busses have 7 targets.
This change forces the controller drivers to allocate a scsibus_data struct
via a call to scsi_alloc_bus(), fill in the adapter_link field, and optionally
modify any other fields of the struct.  Scsi_alloc_bus() initializes all fields
to the default, so the changes in most drivers are very minimal.  For drivers
that support Wide controllers, the maxtarg field will have to be updated to
allow probing of all targets (for an example, look at the aic7xxx driver).

Scsi_attachdevs() now takes a scsibus_data* as its argument instead of an
sc_link*.  This allows us to expand the role of the scsibus_data struct for
other bus level configuration setings (max number of transactions, current
transaction opennings, etc for better tagged queuing support).

Reviewed by: Rodney Grimes <rgrimes>, Peter Dufault <dufault>, Julian Elischer <julian>
1995-08-23 23:03:34 +00:00
Justin T. Gibbs
54aec2bee6 Correct the PCI ID for the Adaptec 7850 chips. 1995-08-20 03:18:09 +00:00
Stefan Eßer
d36d3f0e18 Print more information in case of unspecific error condition.
Do not print "in getcc reselect by" message unless DEBUG_RESTART is set.
1995-08-15 20:19:14 +00:00
Stefan Eßer
9625df5f24 Add more chip set register decodings:
ISA GAT mode and hidden refresh seem to cause reliability problems
on Saturn based systems and are now reported when booting with '-v'.

Submitted by:	Danny J. Zerkel <dzerkel@feephi.phofarm.com>
1995-08-15 09:43:42 +00:00
Stefan Eßer
d54b39155a Return an extended status of XS_TIMEOUT (instead of XS_DRIVER_STUFFUP)
in case of an unspecific error (most likely software timeout after
SCSI bus reset).
This will make the generic SCSI code retry the failed command.
1995-08-13 14:59:38 +00:00
David Greenman
fa8d3a82f4 Initialize "name" to quiet compiler. 1995-07-29 18:21:48 +00:00
Stefan Eßer
0ce0753299 Add a few chip set IDs. 1995-07-27 22:14:25 +00:00
Stefan Eßer
58b86eaf30 Add config messages for the Intel 82378 chip.
Submitted by:   Danny J. Zerkel <dzerkel@feephi.phofarm.com>
1995-07-27 22:04:57 +00:00
Stefan Eßer
bd919217cf Add a few vendor IDs. 1995-07-27 21:56:51 +00:00
Stefan Eßer
54a2163437 Get rid of references to the linker supplied set length field.
Use the terminating NULL pointer as the end of list marker instead.
1995-07-27 21:38:45 +00:00
Bruce Evans
1be9be9647 Fix compiler warnings (systm.h wasn't included). 1995-07-16 10:07:40 +00:00
Stefan Eßer
e9a9607fbb Put back second case of CC handler in NCR script. 1995-07-07 12:30:39 +00:00
Justin T. Gibbs
cbc6d18d9f Add PCI Id for the 3940 controller. 1995-07-04 21:21:33 +00:00
Stefan Eßer
57da02d3f3 Changes to support some CDROM drives and the Quantum Grand-Prix
series of hard disk drives, which don't accept any SCSI message
within an REQUEST SENSE command (i.e. even not an IDENTIFY to set
the LUN).
This patch obviates the need for QUIRK_NOMSG and thus all of the
device_tab[] entries in the NCR driver.
1995-06-28 16:40:58 +00:00
Stefan Eßer
c411726b79 Change message "not supported" to "no driver assigned", because
people tend to assume their devices won't work if they see this
message, though it may indicate that those devices just don't
need any PCI driver (e.g. devices that emulate an ISA card, or
that have been initialised by the BIOS and need no further care).
1995-06-28 16:32:54 +00:00
Stefan Eßer
1f8ca7ddc4 Give more detailed information about the type of bridge devices
found when probing the PCI bus.
1995-06-28 16:02:05 +00:00
Stefan Eßer
78e444665c Failure of the consistency checks for BIOS assigned mappings of busses
connected via PCI to PCI bridges is considered non fatal for now.
1995-06-28 15:59:04 +00:00
Stefan Eßer
1d3c4bfc72 Corrections and additions to the PCI chip set configurations log.
Submitted by:	"Danny J. Zerkel" <dzerkel@feephi.phofarm.com>
1995-06-28 11:28:43 +00:00
David Greenman
c5f944ee5a Fixed bug that was fixed in 1.28.2.1/1.29 a little differently; the
difference is more or less cosmetic.

Submitted by:	Matt Thomas
1995-06-28 05:46:19 +00:00
Rodney W. Grimes
d3628763db Merge RELENG_2_0_5 into HEAD 1995-06-11 19:33:05 +00:00
Rodney W. Grimes
9b2e535452 Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
David Greenman
0063696232 Fixed bugs in multicast address handling (flag was set in wrong register,
etc.). The tulip_start routine was rewritten to use less stack space (I've
been having problems with wcarchive overflowing the stack and this should
help a little). This version also has preliminary NetBSD support.

Rod Grimes helped in testing this version of the driver. Thanks Rod. It's
additionally been extensively tested here and on wcarchive.

Submitted by:	Matt Thomas
1995-05-26 02:02:44 +00:00
David Greenman
87c15d9649 There are two serious bugs in if_de.c. The first should not matter
to most users (the wrong length is passed to ether_input).  The
second is more serious.  The multicast hash algorithm uses the wrong
(low) bits instead of the right (high) bits.  This is only an issue
if you use >12 multicast addresses but if you are using IP multicast
then it might affect you...

Submitted by:	Matt Thomas
1995-05-22 13:32:24 +00:00
David Greenman
f8141f6f97 Fixed bug in bpf/multicast support that caused multicast packets to get
thrown out if bpfilter support and no BPF listener. (submitted by Bill
Fenner)
Removed unused variable and changed another from a stack variable to a
static - the variable was a rather large array of structs that consumed
a lot of stack space. (me)
1995-05-22 05:51:41 +00:00
David Greenman
9b3fdc5a9f Fixed mbuf leak and panic that occurred when packets got too memory
fragmented.
Added support for Cogent em100 boards.
Fixed bug that caused BPF to toggle the card to UTP.
Various other improvements.

Submitted by:	Matt Thomas and David Greenman
1995-05-05 20:09:51 +00:00
David Greenman
cbb15d7c97 bzero the malloced pci_devconf structure. This should fix the problem with
several of freefall's recent crashes.
1995-05-04 06:57:11 +00:00
Jordan K. Hubbard
fe16ad72f3 Matt says that no pre-2.3 pass boards were supposed to ship, but I certainly
got a 2.2 version DC21040 chip in my SMC ethernet card!  He suggests bumping
the check all the way down to 2.0 since it's pre-2.0 we're actually guarding
against.
Submitted by:   Matt Thomas <matt@lkg.dec.com>
1995-04-18 12:54:30 +00:00
David Greenman
4ed452a631 Changed minimum supported rev of DC21040 to pass 2.2. 1995-04-17 08:16:14 +00:00
Justin T. Gibbs
241606bc72 kernel.h -> sys/kernel.h 1995-04-15 21:38:34 +00:00
David Greenman
9b798f72a1 Various changes from Matt Thomas to improve media selection and fix
support for the DC21140.
1995-04-13 04:46:40 +00:00
David Greenman
29b4e57966 From Matt Thomas: Added support for 100Mb cards (such as the DEC DE-500-XA
and SMC 9332).
1995-04-09 04:46:15 +00:00
David Greenman
7172ec19fd From Matt Thomas: Finished EISA support. 1995-04-05 08:19:23 +00:00
David Greenman
1fca221ae2 Patch from Matt Thomas to fix mbuf leak in FDDI driver. 1995-04-01 01:43:56 +00:00
Justin T. Gibbs
bbf437ee54 Mask the call to ahc_attach with an splbio/splx pair. This allows us
to poll succesfully even if we are sharing the interrupt.

Register the interrupt handler before the attach.

This commit makes the 294x PCI shared interrupt compliant.  This has
been tested with an aic7870 motherboard controller and a 294x in the
same machine shareing an irq.
1995-03-31 14:08:33 +00:00
Stefan Eßer
244c89d543 Include <stddef.h> for standard definition of offsetof() instead of
defining it explicitly in the driver.
1995-03-31 00:05:08 +00:00
Bruce Evans
208ce078ed Remove wrong redeclarations of printf() and bzero(). Include the correct
header to declare DELAY().
1995-03-25 22:40:49 +00:00
Bruce Evans
e9f80c0133 Make untested NS code at least compile so that it doesn't break LINT. A
struct member had an old name.
1995-03-25 22:06:27 +00:00
Bruce Evans
f0d47944e2 Forward-declare kern_devconf for use in a prototype. Some drivers
include <pci/pcivar.h> without including <sys/devconf.h> and other
drivers include <pci/pcivar.h> before including <sys/devconf.h> if
certain identifiers are defined.

The devconf headers have convoluted interdependencies.  <sys/devconf.h>
includes <machine/devconf.h> which includes <pci/pcivar.h>.  Most
drivers include <sys/devconf.h> so even isa drivers depend on
<pci/pcivar.h>.  For similar reasons, most drivers depend on another
pci header, on an isa header and on two scsi headers.
1995-03-25 21:10:38 +00:00
David Greenman
a54907a1a7 Restore my changes to initialize the kdc_shutdown routine pointer. Stefan
clobbered it in his previous commit and not having it causes the machine
to panic during reboot (as well as not doing the important shutdown callout).
1995-03-23 06:14:44 +00:00
Stefan Eßer
41226e9d0a Set request sense data size from xp->req_sense_length if != 0.
Submitted by:	Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-22 19:45:22 +00:00
Stefan Eßer
6bf3dde846 Remove use of unitialised variable xp->req_sense_length.
Submitted by:	Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-22 11:00:23 +00:00
Stefan Eßer
8673e05a9a Completely new PCI code:
1) Supports PCI to PCI bridge devices (and tries to initialise them,
   even if the BIOS is brain dead).
2) Supports shared PCI interrupts. Interrupt handlers now MUST return
   '0' if they found nothing to do, '1' otherwise.

New features tested with i486 systems based on the Intel Saturn and
a DEC 4channel Ethernet card only, but expected to work on most systems.

The option PCI_REMAP has been removed !

Submitted by:	Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-21 23:01:06 +00:00
Stefan Eßer
1a4077c4c2 Stylistic changes. Update Wolfgang's e-mail address.
Submitted by:	Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-21 22:48:36 +00:00
Stefan Eßer
b4b37e9058 Silence "gcc -Wall".
Submitted by:	Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-21 22:43:04 +00:00
Stefan Eßer
067968d4d7 Cosmetic changes.
Submitted by:	Wolfgang Stnglmeier <wolf@kintaro.cologne.de>
1995-03-21 22:41:19 +00:00
Stefan Eßer
82c5c9a9f0 Major cleanup: Stylistic changes, 386BSD specific code removed.
Adaptec to new PCI code.

Submitted by:	Wolfgang Stnglmeier <wolf@kintaro.cologne.de>
1995-03-21 22:14:27 +00:00
David Greenman
cb09d35cb0 Added a new field to the pci_device struct called pd_shutdown to specify
a device specific shutdown routine for devconf. Assign the value of this
to the kern_devconf struct. Implement a device shutdown routine for if_de
that disables the device. This will stop the device from corrupting memory
after a reboot.
1995-03-17 04:27:21 +00:00
Stefan Eßer
11098d3bad Prepare for shared interrupts (required by the new PCI code that adds
support for PCI PCI bridges, e.g. found on 4ch. Ethernet cards).

Submitted by:   Wolfgang Stanglmeier <wolf@kintaro.cologne.de>
1995-03-16 17:41:20 +00:00
Stefan Eßer
f37ec55185 Make ncr.c compile again (PRINT_ADDR() had been patched
into the middle of a printf() by a buggy diff ...).

Submitted by:	rgrimes
1995-03-16 13:02:40 +00:00
Stefan Eßer
8e95bee6d4 Conditionalise debug message.
Submitted by:	Peter Dufault <dufault@hda.com>
1995-03-15 18:15:32 +00:00
David Greenman
d41f24e742 Added support for generic FDDI and the DEC DEFEA and DEFPA FDDI adapters.
Submitted by:	Matt Thomas
1995-03-14 09:16:07 +00:00
Stefan Eßer
252e349211 Reduce burst length to 4 DWORDs for now, since there seem to
be 486 chip sets that can't tolerate bursts > cache line size.
This should really made dependent on the particular buggy
chip sets, but for now we'll play safe ...
1995-03-03 16:44:33 +00:00
Stefan Eßer
a2564a2e9c Disable vga_attach() code, as it always should have been. 1995-03-02 23:29:44 +00:00
Stefan Eßer
79a6470e10 Speed up PCI attach code by ommiting test if its result is ignored anyway. 1995-03-02 21:51:53 +00:00
Stefan Eßer
c79b89e28f Add code to deal with PCI-PCI bridge chips, especially the DEC 21050.
Try to deduce maximum number of PCI buses in system (working around
chip set bugs).
Better check for devices at multiple addresses (aliases).

Reviewed by:	se
Submitted by:	<wolf@kintaro.cologne.de> Wolfgang Stanglmeier
1995-02-27 17:22:09 +00:00
Stefan Eßer
04dbb40865 First try to add support for PCI-PCI bridge chips (written for the
DEC 21050 chip in particular, don't have specs of other such chips).

This should add support for Multiple-Ethernet PCI cards (e.g. Znyx 314).

Reviewed by:	se
Submitted by:	<wolf@kintaro.cologne.de> Wolfgang Stanglmeier
1995-02-27 17:17:14 +00:00
Stefan Eßer
dff6de1a8c Delete bogus semicolon in macro definition. 1995-02-27 17:10:20 +00:00
Stefan Eßer
9b7d1decfc Make people happy, who claim to better know how "interupt"
is to be spelled :).

Submitted by:	<wolf@kintaro.cologne.de> Wolfgang Stanglmeier
1995-02-25 17:34:03 +00:00
Stefan Eßer
ef2dee21dc Deal with systems, that lack a fully decoded PCI configuration space.
Submitted by:	<wolf@kintaro.cologne.de> Wolfgang Stanglmeier
1995-02-25 17:26:22 +00:00
Stefan Eßer
fe5278a5cc Cleanup for compatibility with another OS.
Submitted by:	wolf
1995-02-22 18:04:56 +00:00
Stefan Eßer
d9dc2f74ef New PCI attach code:
PCI BIOS mappings are retained, except if option PCI_REMAP
is specified in the kernel config file.
There is now a list of attach addresses, and the first
address that seems to make some device registers appear
is chosen.

Reviewed by:	se
Submitted by:	wolf
1995-02-22 14:17:15 +00:00
Stefan Eßer
3453c5d5db Improve diagnostics:
Test for correct execution of cache test script by NCR,
and give meaningful error description if it fails.
(A cache problem was reported before.)
Don't wait forever for cache test to complete (to protect
against faulty hardware).

Submitted by:	wolf
1995-02-17 16:45:08 +00:00
Stefan Eßer
6977dc165f For the sake of people, who like to move pci_configure()
before isa_configure() in autoconf.c:

ncr_intr() protected by splbio()/splx()

Submitted by:	wolf
1995-02-15 20:06:38 +00:00
Stefan Eßer
9ddf96998e ncr.c:
New config option "NCR_IOMAPPED" makes the driver use port I/O.
Put back in 53c815 defines, submitted by Mikael Hybsch <micke@dynas.se>.
These had got lost between cvs rev. 1.14 and now ...

pci.c:

Really write config space register.
Assign ports starting at 0xbc00.

Submitted by:	wolf
Reviewed by:	se
1995-02-14 23:33:38 +00:00
Stefan Eßer
1bc2211b44 Verify that NCR was mapped to uncached address.
Submitted by:	wolf@kintaro.cologne.de <Wolfgang Stanglmeier>
1995-02-14 22:48:01 +00:00
Poul-Henning Kamp
c70f45100d YFfix. 1995-02-14 06:28:25 +00:00
Poul-Henning Kamp
a14b2c282e YFfix 1995-02-14 06:19:23 +00:00
Garrett Wollman
522bab9535 Make capitalization consistent with other devices registered in
the database.  Also, distinguish between VGA-like display devices
and everything else.
1995-02-14 03:19:27 +00:00
Stefan Eßer
045de8d38f Block interrupts in more places and warn about the NCR exception handler
being called at inappropriate times (should never happen !).

Reviewed by:	se
Submitted by:	wolf@kintaro.cologne.de (Wolfgang Stanglmeier)
1995-02-10 13:24:52 +00:00
David Greenman
95b44faffd Turn on "Capture Effect" avoidence. This modifies the collision algorithm
so that the interface won't have the effect of blocking other senders
during bulk transfers (i.e. hogging the ethernet). It improves performance
in all of my tests by reducing collisions and I believe it to be a Good
Thing.
1995-02-10 06:06:42 +00:00
Stefan Eßer
fd65acba73 Try to detect overlapping PCI memory assignment.
(This can only happen with devices that are mapped
by the BIOS.)

Reviewed by:	se
Submitted by:	wolf (Wolfgang Stanglmeier)
1995-02-09 20:20:33 +00:00
Stefan Eßer
91857942bb Add short delay after NCR reset.
Submitted by:	wolf@kintaro.cologne.de (Wolfgang Stanglmeier)
1995-02-06 22:01:58 +00:00
Stefan Eßer
ee1b86ffbd Disable I/O port accesses in case the BIOS enabled them.
Clear all output lines except ATN and ACK when waiting
for target phase change.

Submitted by:	wolf (Wolfgang Stanglmeier)
1995-02-04 14:02:44 +00:00
Justin T. Gibbs
4e259174eb #include<kernel.h> to quiet a compiler warning having to do with the
DATA_SET (pcidevice_set, ahc_device) macro.  Maybe this will allow
the aic7870 to be probed again.  I don't have a PCI machine here
to test it.
1995-02-03 17:08:17 +00:00
Stefan Eßer
3f624a0187 Removed misleading copyright note. This file contains just
definitions taken from the PCI specs. Part of them were typed
in by Wolfgang Stanglmeier, the (at that time unneeded) rest
by Charles Hannum (thanks !).
1995-02-02 22:01:40 +00:00
Stefan Eßer
ea6ecb4e52 Disable disconnect after drive timeouts, since these
may be the result of reselect following too fast for
the driver to notice. Not the final solution, but the
problem has been seen only with very few devices.

Reviewed by:	se
Submitted by:	wolf (Wolfgang Stanglmeier)
1995-02-02 15:50:57 +00:00
David Greenman
6398cf3113 Reapplied all of Stefan's changes. What a mess - the files were modified
and moved at the same time. This made it *very* difficult to fix the
revision log lossage that happend when the files were moved. SIGH.
1995-02-02 13:12:18 +00:00
David Greenman
77e50733d8 Fixed up include paths after copying these in the repository. 1995-02-02 12:36:19 +00:00
Stefan Eßer
5e70573817 Reviewed by: se
Submitted by:	wolf (Wolfgang Stanglmeier)
Files moved here from sys/i386/pci, since they are meant to be
architecture independent.
1995-02-01 22:56:55 +00:00
Justin T. Gibbs
d7be8cb6e9 Change the string returned in the aic7870 motherboard probe case. Change
#define to a more appropriate name.
1995-01-22 00:47:50 +00:00
Justin T. Gibbs
344e176820 Add $Id. Recognize motherboard aic7870 based controllers. 1995-01-16 16:31:57 +00:00
Justin T. Gibbs
451ab98ff3 Add in aic7770.c (EISA/VL Adaptors) and aic7870.c (PCI adaptor) dependancies
for the ahc driver.
1995-01-13 02:23:27 +00:00
Stefan Eßer
cde24835d3 Submitted by: Mikael Hybsch <micke@dynas.se>
Add support for NCR 53c815 PCI SCSI chip.
1995-01-12 14:01:13 +00:00
David Greenman
edd5a4af47 Restore my changes in rev 1.11 that Garrett killed in his commit. 1994-12-22 23:42:25 +00:00
Garrett Wollman
dd2e410221 Move ARP interface initialization into if_ether.c:arp_ifinit(). 1994-12-22 21:56:22 +00:00
Stefan Eßer
9a3c07de07 Add support for -v option passed to boot loader (bootverbose).
Reviewed by:
Submitted by:
Obtained from:
1994-12-22 21:20:39 +00:00
David Greenman
2b4e0927f6 Unbogify the size being passed to bzero when clearing struct softc. 1994-12-18 14:40:26 +00:00
David Greenman
d33095d2b2 The physical memory allocated for input DMA must be contiguous. The driver
worked in the past only because of good fortune. Anyway, use the contig alloc
routine I wrote awhile ago (vm_page_alloc_contig) for the sound code to do
this allocation. Also, specify read+write on the permissions to pmap_enter().
Specifying just read can have unexpected consquences.
1994-12-11 01:45:41 +00:00
David Greenman
89384ace85 Fix bug I introduced that broke BPF support. Caused by a byte order problem
in an if () expression. Problem fixed by removing the test for ETHERTYPE_*
before passing packet to higher layers.
1994-11-30 12:08:23 +00:00
Stefan Eßer
99e7cabca3 Really deactivated the code that puts scsi stats into dk0.
This should have been disabled for some time, but I had screwed up ...
This made spurious values appear for fd0 in systat, when there was
NCR SCSI activity.
1994-11-28 23:18:46 +00:00
David Greenman
307d80be7a Moved conversion of ether_type to host byte order out of ethernet drivers
and into ether_input(). It was silly to have bpf want this one way and
ether_input want it another way. Ripped out trailer support from the few
remaining drivers that still had it.
1994-11-24 14:29:38 +00:00
David Greenman
b83f4f55d8 Bunch of fixes from Matt Thomas:
1) make #includes correct
2) fix bugs in address check macros
3) fixed bugs in, and enabled, recopy if heavily fragmented code
4) moved call to bpf tap to be before enqueing packet (probably gratuitous)
5) fixed bug that caused "abnormal interrupt" at boot time/first use
6) added support for reading Zynx address ROM
7) fixed bug that caused broadcasts to not work shortly after booting (only
	manifested if not using multicast - e.g. not in FreeBSD 2.0)
8) fixed spelling errors in comments

Submitted by:	Matt Thomas
1994-11-22 09:47:31 +00:00
David Greenman
07d0d0fc9c Added support for SIOCSIFMTU ioctl. Fixed bug that caused panic at boot time
related to interrupts being enabled before the device attach. The interrupt
should be mapped *after* the device attach.
1994-11-13 12:39:38 +00:00
David Greenman
6e876d0d60 Added missing call to bpf on the transmit side. Nuked revision log. 1994-11-10 02:56:48 +00:00
David Greenman
e754e0f30f Fixed bug that somehow made it into here: the ifp must be stored in the
mbuf header for received packets. Minor performance optimizations. Removed
#ifdef MULTICAST's as this isn't optional in our kernel.
1994-11-09 15:12:44 +00:00
Stefan Eßer
66da596420 Submitted by:
Added hooks for "lsdev" ...
PCI devices should need no individual code for lsdev.
1994-11-02 23:47:14 +00:00
Andreas Schulz
339b10f15d Submitted by: Paul F. Werkowski
Add a quirk line for the SONY SDT-5000 like it is done for the WangDAT tapes.
1994-10-30 00:30:27 +00:00
Jordan K. Hubbard
904c1a11ac Make this documentation more sane in the context of 2.0. 1994-10-29 13:13:40 +00:00
Stefan Eßer
c3739b59ec Change some compile time defaults, which may be overridden from the
kernel config file by options lines.
Now the default settings are FAST SCSI, max. 4 TAGS, WIDE transfers,
if supported by the hardware ...
1994-10-27 20:12:46 +00:00
Stefan Eßer
422cdd6132 Modified fifth parameter (imask) to register_intr() according to
new definition of that function.
1994-10-25 23:09:08 +00:00
Stefan Eßer
c6f2eb5edb Added decoding of chipset registers for Pentium 90/100 CPUs. 1994-10-25 18:45:19 +00:00
Poul-Henning Kamp
161e7c8d87 #ifdef'ed the verbose probe messages. Only until I find a good way of
making it run-time selectable, then it will be back (at will).
1994-10-17 21:11:31 +00:00
Stefan Eßer
65005ce25c Fixed typo and message format change to avoid line wrapping. 1994-10-15 23:27:39 +00:00
Stefan Eßer
6055e04518 Submitted by: "Randall W. Dean" <rwd@osf.org>
Fixed typo in initialisation of DMODE:
PCI burst length now really 16 transfers as advertised ...
1994-10-14 23:59:36 +00:00
Stefan Eßer
55f018a694 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
removed PCI mapping call from vga_attach() in pcisupport.c.
1994-10-13 01:12:31 +00:00
Stefan Eßer
152f2ff316 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Debugging option changed, getirr() removed.
1994-10-13 01:11:13 +00:00
Stefan Eßer
140e168d9b Submitted by: Matt Thomas <thomas@lkg.dec.com>
Preliminary FAST Ethernet support added (DEC21140).
1994-10-12 11:19:36 +00:00
Stefan Eßer
5044407419 Submitted by: Bruce Evans <bde@zeta.org.au>
Function getirr() could clobber interrupt controller state.
1994-10-12 04:17:24 +00:00
Stefan Eßer
468010e809 Small corrections:
pci config line now without irq
	boot message changed
1994-10-12 02:41:21 +00:00
Stefan Eßer
65772aee92 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Bug fixed, that caused system hang on first interrupt on some motherboards.

New version of PCI bus configuration code, now supports dynamic interrupt
configuration (using BIOS supplied values).
NCR SCSI and DEC Ethernet driver patched to use this feature.
*** Remove PCI IRQ specifications from your kernel config file ! ***
1994-10-12 02:33:23 +00:00
Stefan Eßer
86e0c19b6c Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Name change: pci_intel.c -> pcisupport.c
1994-10-12 02:27:08 +00:00
Stefan Eßer
8870af7f56 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Files merged and name change: pci_device.h + pcibios.h -> pcireg.h
1994-10-12 02:25:03 +00:00
Stefan Eßer
a7d314a58f Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Name change: ncr_reg.h -> ncrreg.h
1994-10-12 02:21:56 +00:00
Garrett Wollman
24161ef88f Add Matt Thomas's DC21040 PCI Ethernet driver. (This is turning out
to be quite a popular chip, so expect to see a number of products
based on it.)
1994-10-01 20:16:47 +00:00
Garrett Wollman
e902866cf7 Correct DEC -> Digital Equipment Corporation. 1994-10-01 00:18:53 +00:00
Stefan Eßer
799e5f277f Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
New version with improved support for WIDE SCSI using the NCR 53c825.
Test for buggy secondary cache implementations.
PCI Int to IRQ mapping now specified per slot.
1994-09-28 16:34:13 +00:00
Rodney W. Grimes
1ee6b373eb Add missing closing comment. I have taken the non-knf format
of this code up with the authors and they are looking at converting it,
but until then leave the format alone.
1994-09-24 02:42:11 +00:00
David Greenman
df9ab3049d Removed inclusion of pio.h and cpufunc.h (cpufunc.h is included from
systm.h). Merged functionality of pio.h into cpufunc.h. Cleaned up some
related code.
1994-09-16 13:33:56 +00:00
Stefan Eßer
4a078e7d90 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de> + <se>
Improved bus probing, symbolic names for registers..
Chip set parameters get dumped for intel PCI chip sets
(82424+82434 only, for now).
1994-09-16 00:33:29 +00:00
Stefan Eßer
45271d26ef Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
New version with support for the NCR 53c810 and 53c825.
Support for WIDE SCSI devices.
1994-09-16 00:22:32 +00:00
Garrett Wollman
f86233fe54 Added a bit of missing functionality to make this work correctly on a
wider variety of systems.  Include the deivers from pci_intel.c in
pci_config.c (I hope this is what was intended; my system works ok).
Use pmap_mapdev().  Automatically map any large linear frame buffers
or whatnot in VGA-style devices which ordinarily would not have their
own drivers, and don't call not_supported() for them.  (This shuts up
complaints about my Matrox card.)  Include the beginnings of what could
eventually become dynamically-loadable PCI devices.  Allow for the
possibility of PCI devices simply providing a PCI veneer over an existing
ISA device, and shut up about them, too.
Make autoconfiguration text conform more to the style of other supported
buses.
1994-09-14 01:34:51 +00:00
Stefan Eßer
5ec480ad23 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de>
Merged in changes required for NetBSD support (by mycroft@gnu.ai.mit.edu)
and support for multiple NCR chips.
1994-09-01 02:01:45 +00:00
Stefan Eßer
37bd2c9c33 Submitted by: Wolfgang Stanglmeier <wolf@dentaro.GUN.de> + Stefan Esser <se>
Directory for PCI autoconfigure and device driver code.
1994-09-01 01:45:19 +00:00