Commit Graph

3736 Commits

Author SHA1 Message Date
Peter Wemm
2d77b66efb Add ADS7182 as a known Joystick. 2000-01-18 08:38:35 +00:00
Bill Paul
b822a5eae9 Add the vendor/device ID for the Farallon PN9000SX gigabit ethernet
card, which is apparently also a Tigon 2 device.
2000-01-18 00:26:29 +00:00
Bill Paul
7b7b87d7ef Change the mechanism by which we detect that the firmware is already
running. It turns out that trying to read the MAC address when there's
no firmware creates a zero length transfer. This apparently doesn't
hurt anything on a UHCI controller, but OHCI controllers generate an
IOERROR, and the device doesn't initialize.

Instead, check the bcdDevice revision code. We know this will be
different when the firmware is running, so if we detect the firmware's
code instead of the bare hardware's code, we skip the firmware load.
2000-01-17 23:14:40 +00:00
Mike Spengler
96cdb64ea9 Remove un-needed #include's.
Pointed out by: phk
2000-01-17 20:49:59 +00:00
Bill Paul
4c10dd65ca The correct part number for the CATC ASIC is USB-EL1210A, not
USB-EL1201A or even USB-EL1202A. Wonder what drugs I was on when
I made this mistake, and then propagated it to 6 different files.

*sigh*
2000-01-17 18:49:20 +00:00
Yoshihiro Takahashi
690951a252 Remove unnecessary includes. 2000-01-17 12:49:54 +00:00
Yoshihiro Takahashi
41d8671572 Use rman_get_bustag and rman_get_bushandle to initialize bus tag and
bus handle.
2000-01-17 12:38:51 +00:00
Yoshihiro Takahashi
521c75a254 Use rman_get_start instead of bus handle directly. 2000-01-17 12:38:00 +00:00
Peter Wemm
615407b5a0 Some SB128's (ES1371) have a different PCI vendor id. Vendor == 0x3274
instead of the normal 0x1274.

Tested by:	des
2000-01-17 07:54:00 +00:00
Søren Schmidt
46a37dbac0 Add support for the Intel 810 chipset (ICH type of chips)
Prober support for the VIA 82C686, I finally got the right datasheet.

Get rid of atapi_wait, merge it into ata_wait.

Avoid a couple of races by using asleep instead of tsleep.

Always use 16bit transfers on ISA systems.

Clear up the atapi_read/write functions.
2000-01-17 02:04:19 +00:00
Bill Paul
20a08a85e4 Remove device name strings from vendor/product lists since we don't use
them (they're read from the device directly). Also do a set_config
command for the ADMtek and CATC drivers.
2000-01-16 22:45:07 +00:00
Cameron Grant
9bc502089a fix missing \n in sndstat output 2000-01-16 12:52:22 +00:00
Cameron Grant
0a12fe07e7 oops, best play format was set to unsigned 16 bit instead of signed 16 bit
stereo.  remenant from testing.
2000-01-16 12:05:07 +00:00
Poul-Henning Kamp
af8862e4e6 Cleanup some remaining bdev fluff. 2000-01-16 09:25:10 +00:00
Bill Paul
58361cb1b9 Fix an instance of rman_get_start() than should be rman_get_bushandle(). 2000-01-16 06:41:49 +00:00
Matthew N. Dodd
358fbd755e Set ifq_maxlen to default (IFQ_MAXLEN). 2000-01-16 00:48:33 +00:00
Mike Spengler
3ee23c43ff Ensure that DMA mappings are freed in error situations. 2000-01-15 21:01:04 +00:00
Bill Paul
4640135aaf Minor enhancement: set the 'dual link LED' bit in the auxmode register
of the Broadcom BCM5201 PHY on the LinkSys USB100TX adapter so that the
link LED correctly (lights up amber for 10mbps link, green for 100mbps
link).

Note that the sticker on the bottom of the adapter says amber for 10
and green for 100, but the appendix in the manual that comes with
the adapter says green for 10 and amber for 100. Given that there doesn't
seem to be any way to make the hardware produce the latter combination,
I think it's safe to say the sticker is right and the manual is wrong.
I'm just shocked, shocked I tell you.
2000-01-15 18:43:07 +00:00
Bill Paul
cf91f8282c Actually read the PCI device ID when testing the device ID value against
the supported devices list.
2000-01-15 18:04:28 +00:00
Kazutaka YOKOTA
2b944ee2b9 This is the 3rd stage of syscons code reorganization.
- Split terminal emulation code from the main part of the driver so
that we can have alternative terminal emulator modules if we like in
the future.  (We are not quite there yet, though.)

- Put sysmouse related code in a separate file, thus, simplifying the
main part of the driver.

As some files are added to the source tree, you need to run config(8)
before you compile a new kernel next time.

You shouldn't see any functional change by this commit; this is only
internal code reorganization.
2000-01-15 15:25:43 +00:00
Matt Jacob
003a310f5f Remove compile warning not seen when compiling with target mode enabled. 2000-01-15 07:06:44 +00:00
Matthew N. Dodd
f0b421372f Fix driver to restore function on 3c574 adapters. The panic on
ifconfig and bogus ethernet address (4b:57:4b:57:4b:57) has been
hacked around.  I'll revisit this when I have a clue whats going on.

Reviewed by:	obrien
2000-01-15 05:21:43 +00:00
Matt Jacob
65b024e1bf Redo FC target mode dma routine to try and generate an extra CTIO
in the not so odd case of Moving Data *AND* Sending Status in last CTIO *AND*
status is a CHECK CONDITION *AND* we have Sense Data to send.
2000-01-15 01:54:36 +00:00
Matt Jacob
0719e3345c clean up for SBus Ultra (yes, we do not do that here yet) 2000-01-15 01:52:01 +00:00
Matt Jacob
00a8e1748b a whale of a lot of target mode cleanup 2000-01-15 01:50:48 +00:00
Matt Jacob
0c02c31bc0 cleanup- it was not MI code as it should have been 2000-01-15 01:49:09 +00:00
Matt Jacob
427469a4a8 cleanup 2000-01-15 01:48:24 +00:00
Matt Jacob
6b016bfd75 include public target mode functions 2000-01-15 01:47:10 +00:00
Matt Jacob
b5a11b0bc5 public target mode stuff 2000-01-15 01:46:37 +00:00
Matt Jacob
abde225be8 tighten up printout 2000-01-15 01:43:19 +00:00
Warner Losh
2a457ef118 Add support to aic for pccard attachments. Reports from testers have
been so positive that I'm going to go ahead and commit this now rather
than do another round of patches.

My Adaptec 1460D works great with these changes.
2000-01-14 23:42:36 +00:00
Bill Paul
261b9b3066 Add driver support for the Aironet 4500/4800 series wireless 802.11
NICs. (Finally!) The PCMCIA, ISA and PCI varieties are all supported,
though only the ISA and PCI ones will work on the alpha for now.
PCCARD, ISA and PCI attachments are all provided. Also provided an
ancontrol(8) utility for configuring the NIC, man pages, and updated
pccard.conf.sample. ISA cards are supported in both ISA PnP and hard-wired
mode, although you must configure the kernel explicitly to support the
hardwired mode since you have to know the I/O address and port ahead
of time.

Special thanks to Doug Ambrisko for doing the initial newbus hackery
and getting it to work in infrastructure mode.
2000-01-14 20:41:03 +00:00
Bill Paul
e4f25e405c Fix multicast filter programming. 2000-01-14 17:03:00 +00:00
Peter Wemm
99904c75f7 Make this compile - missing ")"; 2000-01-14 15:54:45 +00:00
Nicolas Souchu
bdcee5cff6 ppi needs to use a bus method to get this rather than peering inside the
1284 stuff.

Submitted by: Peter Wemm <peter@netplex.com.au>
2000-01-14 08:03:15 +00:00
Peter Wemm
c5191a983c Pre 4.0 tidy up.
Collect together the components of several drivers and export eisa from
the i386-only area (It's not, it's on some alphas too).  The code hasn't
been updated to work on the Alpha yet, but that can come later.

Repository copies were done a while ago.
Moving these now keeps them in consistant place across the 4.x series
as the newbusification progresses.

Submitted by:   mdodd
2000-01-14 07:14:17 +00:00
Bill Paul
cfc5d9f44e Do a few minor cleanups. 2000-01-14 07:08:33 +00:00
Peter Wemm
a9d565fcd2 Don't do device_set_desc() until after checking for PnP probes. Otherwise
things like sound cards can get called "Parallel port".  A note to the
unwary; the isa-pnp devices in the system are probed like PCI - each
device ID is passed to *all* isa probe routines to find the best match.
If the driver is not prepared to deal with this, it must abort in this
scenario or it will try and claim all PnP devices.
2000-01-14 05:03:23 +00:00
Justin T. Gibbs
9bfb3cb2c7 The error status for a scsi status error is "CAM_SCSI_STATUS_ERROR", not 0. 2000-01-14 03:39:30 +00:00
Justin T. Gibbs
9c0b8410b8 adv_pci.c:
Update list of supported products.
	Adjust probe message to include the ASC3030.

advansys.c:
	Fix a long standing bug in the error recovery strategy.  In order
	to keep recovery simple, we freeze the SIMQ, stopping the XPT from
	submitting new requests.  Unfortunately, we also will freeze the
	SIMQ if bus_dmamap_load blocks or we run out of controller resources.
	On cards with limited resources it was possible to freeze the
	SIM a second time and never unfreeze it.  Now we more carefully
	track our exception state so we never freeze the SIMQ more than
	once.

	Don't rely on pointers fitting in a 32bit field stored in the
	per-transaction data structures on the card.  Use an index to
	an array of transaction mapping structures instead.  This should
	allow this driver to work on the Alpha.

	Deal with the ASC3030 which is almost idistinguishable from the
	ASC3050.  Unfortunately the ASC3030 does not work at Ultra speeds,
	so if we can't find an eeprom, we must assume that ultra is disabled.
	The SIIG cards using the 3030 do not have eeproms.  As a side effect,
	we now honor the ultra disable bit in the eeprom if it is present.

	Don't bother attempting to write corrected eeprom data back to the
	eeprom.  We can function just fine if the data is corrupted and
	I'd rather not risk messing up the user's eeprom.

	Modify the interrupt handler to catch latched external bus rests.

	Dynamically determine the maximum number of S/G elements we can
	map at a single time.  The nature of the firmware interface for
	these cards makes this value dependent on the number of "queues"
	the card can support.

advlib.c:
advlib.h:
advmcode.c:
advmcode.h:
	Synchronize with the latest firmware image released in the
	Linux Advansys driver.
2000-01-14 03:33:38 +00:00
Bill Paul
0177987224 Add device driver support for USB ethernet adapters based on the CATC
USB-EL1202A chipset. Between this and the other two drivers, we should
have support for pretty much every USB ethernet adapter on the market.
The only other USB chip that I know of is the SMC USB97C196, and right
now I don't know of any adapters that use it (including the ones made
by SMC :/ ).

Note that the CATC chip supports a nifty feature: read and write combining.
This allows multiple ethernet packets to be transfered in a single USB
bulk in/out transaction. However I'm again having trouble with large
bulk in transfers like I did with the ADMtek chip, which leads me to
believe that our USB stack needs some work before we can really make
use of this feature. When/if things improve, I intend to revisit the
aue and cue drivers. For now, I've lost enough sanity points.
2000-01-14 03:14:49 +00:00
Bill Paul
4c645f4852 Pull my head out of my ass and actually make the tx netisr stuff work right.
Do not not not call m_freem() in the txeof routines. Let the netisr routine
do it. This also makes the tx netisr queuing much simpler (I can just use
another ifqueue instead of the mess I had before.)

Thanks to Bosko Milekic for making me actually think about what I was
doing for a minute.
2000-01-14 01:36:16 +00:00
Bill Paul
f1a80ccf63 Clean up rxeof routines a little. 2000-01-14 00:49:28 +00:00
Nicolas Souchu
0f210c922b Port of ppbus standalone framework to the newbus system.
Note1: the correct interrupt level is invoked correctly for each driver.
       For this purpose, drivers request the bus before being able to
       call BUS_SETUP_INTR and BUS_TEARDOWN_INTR call is forced by the ppbus
       core when drivers release it. Thus, when BUS_SETUP_INTR is called
       at ppbus driver level, ppbus checks that the caller owns the
       bus and stores the interrupt handler cookie (in order to unregister
       it later).

       Printing is impossible while plip link is up is still TRUE.
       vpo (ZIP driver) and lpt are make in such a way that
       using the ZIP and printing concurrently is permitted is also TRUE.

Note2: specific chipset detection is not done by default. PPC_PROBE_CHIPSET
       is now needed to force chipset detection. If set, the flags 0x40
       still avoid detection at boot.

Port of the pcf(4) driver to the newbus system (was previously directly
connected to the rootbus and attached by a bogus pcf_isa_probe function).
2000-01-14 00:18:06 +00:00
Bill Paul
e562c84330 Fix instance of AUE_BUFSZ that should have been AUE_CUTOFF. 2000-01-13 23:40:00 +00:00
Bill Paul
c76ce56239 Remove debug printf I left in by mistake. 2000-01-13 20:53:49 +00:00
Bill Paul
278b83e09b Regenerate. 2000-01-13 20:17:11 +00:00
Bill Paul
4f0a6f0403 Bunch of updates:
- Add vendor/device ID for Corega USB-T ethernet adapter to necessary
  places so that it will work with the kue driver.

- Add vendor/device ID for CATC Netmate devices for driver to be added
  soon.

- Get really crazy about netisr stuff: avoid doing any mbuf allocations
  or deallocations at splbio/splusb.

- Fix if_aue driver so that it works with LinkSys USB100TX: you need
  to flip the GPIO bits just the right way to put the PHY in the right
  mode.
2000-01-13 20:13:58 +00:00
Matt Jacob
ec9509a376 add MAINTAINER file for clarity 2000-01-13 18:45:14 +00:00
Matthew N. Dodd
39fb813864 Set ifq_maxlen. (to default IFQ_MAXLEN) 2000-01-13 09:13:22 +00:00
Matthew N. Dodd
47a70d921b Implement BUS_{GET,SET,DELETE}_RESOURCE methods. 2000-01-13 09:01:46 +00:00
Matthew N. Dodd
6b84907d69 Cosmetic cleanups. 2000-01-13 06:55:35 +00:00
Matthew N. Dodd
a0f5c15f22 Implement a DEVICE_IDENTIFY method. I want to revisit some of this later
but this is enough to get us going.
2000-01-13 06:52:51 +00:00
Matthew N. Dodd
b5e3bc2086 When I converted this driver to newbus I also cleaned up the code
layout.  It seems that I cleaned it up a bit too much and confused a few

if () {
	if () {
	} else {
	}
}

statements in the obvious manner.

This allows the driver to transmit packets again.  *sigh*
2000-01-13 06:46:02 +00:00
Cameron Grant
724efc44ec attach to non-ac97 neomagic chips and hope that ac97 ones do not have the
same pnpbios id
2000-01-13 06:11:32 +00:00
Cameron Grant
5b4c3f3ca0 be less verbose 2000-01-13 06:00:57 +00:00
Andrew Gallatin
91dab55369 Make this compile on alpha 2000-01-13 02:09:44 +00:00
Bill Paul
fda39fd069 Reintroduce the dc_coal() workaround routine for coalescing outbound
packets into a single buffer, and set the DC_TX_COALESCE flag for the
Davicom DM9102 chip. I thought I had escaped this problem, but... This
chip appears to silently corrupt or discard transmitted frames when
using scatter/gather DMA (i.e. DMAing each packet fragment in place
with a separate descriptor). The only way to insure reliable transmission
is to coalesce transmitted packets into a single cluster buffer. (There
may also be an alignment constraint here, but mbuf cluster buffers are
naturally aligned on 2K boundaries, which seems to be good enough.)

The DM9102 driver for Linux written by Davicom also uses this workaround.
Unfortunately, the Davicom datasheet has no errata section describing
this or any other apparently known defect.

Problem noted by: allan_chou@davicom.com.tw
2000-01-12 22:24:05 +00:00
Matthew N. Dodd
2b00168c1f Remove a stray splx(s) call. This fixes the compiler warning.
Submitted by:	gibbs
2000-01-12 17:51:01 +00:00
Bill Paul
502c509ce0 Apply the same netisr mechanism to transmissions as well. In order to
drive the transmitter, we have to check the interface's send queue in the
TX end of frame handler (i.e. the usb bulk out callback) and push out new
transmissions if the queue has packets in it and the transmitter is
ready. But the txeof handler is also called from a USB callback running
at splusb() too.

Grrr.
2000-01-12 17:46:40 +00:00
Kazutaka YOKOTA
e2f29c6e43 Make the mouse cursor char code configurable via the CONS_MOUSECTL
ioctl.

By popular demand.
2000-01-12 12:30:33 +00:00
Daniel Eischen
d404cb51ee Add support for detection of the ESS 1878 chip. 2000-01-12 11:16:23 +00:00
Matthew N. Dodd
c7c26de958 Speedup if_start routine a little. TX threshold logic needs some more
kicking but these changes get me around 1000 KB/sec.
2000-01-12 06:42:49 +00:00
Matthew N. Dodd
2ff4e76374 Fix the performance problems I caused by setting ifq_maxlen to 8.
Use IFQ_MAXLEN instead.  This seemed like a good idea at the time since
most 3c509s have all of 2k for their TX fifo.  My intention was to revisit
ifq_maxlen and auto-scale it or something.

ttcp-t: 16777216 bytes in 21.53 real seconds = 761.07 KB/sec +++
ttcp-t: 2771 I/O calls, msec/call = 7.96, calls/sec = 128.72
ttcp-t: 0.0user 2.9sys 0:21real 13% 20i+280d 222maxrss 0+2pf 717+0csw

ttcp-r: 16777216 bytes in 14.11 real seconds = 1161.48 KB/sec +++
ttcp-r: 2050 I/O calls, msec/call = 7.05, calls/sec = 145.33
ttcp-r: 0.0user 1.4sys 0:14real 10% 87i+1198d 196maxrss 0+1pf 1949+186csw

I've got some tweaks that move the TX speed up to the RX speed but I've
got to groom them from the mess I've made of my source tree.

Yelled at by:	wpaul
2000-01-12 05:27:08 +00:00
Bill Paul
8647d85ac3 Correctly set the data length when transmitting 802.3 frames (we need to
subtract the length of the SNAP header).
2000-01-12 00:57:27 +00:00
Bill Paul
611d6a1573 Straighten out the logic in kue_setmulti() a little (the case where we
have no multicast entries to add is not handled right).
2000-01-11 18:09:19 +00:00
Kazutaka YOKOTA
35e61cbd71 Add a new mechanism, cndbctl(), to tell the console driver that
ddb is entered.  Don't refer to `in_Debugger' to see if we
are in the debugger.  (The variable used to be static in Debugger()
and wasn't updated if ddb is entered via traps and panic anyway.)

- Don't refer to `in_Debugger'.
- Add `db_active' to i386/i386/db_interface.d (as in
  alpha/alpha/db_interface.c).
- Remove cnpollc() stub from ddb/db_input.c.
- Add the dbctl function to syscons, pcvt, and sio. (The function for
  pcvt and sio is noop at the moment.)

Jointly developed by: bde and me

(The final version was tweaked by me and not reviewed by bde.  Thus,
if there is any error in this commit, that is entirely of mine, not
his.)

Some changes were obtained from: NetBSD
2000-01-11 14:54:01 +00:00
Kazutaka YOKOTA
7642cc829e Rework shifta/ctla/alta key handling. It appears that there was
misunderstanding between the PR originator and me.  I hope I got it
right this time.
2000-01-11 13:39:05 +00:00
Cameron Grant
e7fb32964c exclude chips with subdevices specified on a list of non-ac97 chips 2000-01-11 10:37:16 +00:00
Bill Paul
a0067d7b89 Attempt to fix a problem with receiving packets on USB ethernet interfaces.
Packets are received inside USB bulk transfer callbacks, which run at
splusb() (actually splbio()). The packet input queues are meant to be
manipulated at splimp(). However the locking apparently breaks down under
certain circumstances and the input queues can get trampled.

There's a similar problem with if_ppp, which is driven by hardware/tty
interrupts from the serial driver, but which must also manipulate the
packet input queues at splimp(). The fix there is to use a netisr, and
that's the fix I used here. (I can hear you groaning back there. Hush up.)

The usb_ethersubr module maintains a single queue of its own. When a
packet is received in the USB callback routine, it's placed on this
queue with usb_ether_input(). This routine also schedules a soft net
interrupt with schednetisr(). The ISR routine then runs later, at
splnet, outside of the USB callback/interrupt context, and passes the
packet to ether_input(), hopefully in a safe manner.

The reason this is implemented as a separate module is that there are
a limited number of NETISRs that we can use, and snarfing one up for
each driver that needs it is wasteful (there will be three once I get
the CATC driver done). It also reduces code duplication to a certain
small extent. Unfortunately, it also needs to be linked in with the
usb.ko module in order for the USB ethernet drivers to share it.

Also removed some uneeded includes from if_aue.c and if_kue.c

Fix suggested by: peter
Not rejected as a hairbrained idea by: n_hibma
2000-01-10 23:12:54 +00:00
Nick Hibma
3a08f9ce41 Add an extra debugging message. 2000-01-10 22:33:43 +00:00
Nick Hibma
57d56d6643 Add Sun keyboard and NetChip 2000-01-10 22:31:01 +00:00
Kazutaka YOKOTA
689e7081eb Added PCIR_BIOS (0x30). 2000-01-10 12:53:19 +00:00
Poul-Henning Kamp
ba4ad1fcea Give vn_isdisk() a second argument where it can return a suitable errno.
Suggested by:	bde
2000-01-10 12:04:27 +00:00
Alfred Perlstein
a9dd30b96b revision 1.40 backed out the removal of PCATCH in a tsleep allowing
an infinite loop if a signal is delivered here.
remove it again, this still ought to be revisited as the error should
probably be returned.
2000-01-10 10:24:47 +00:00
Kazutaka YOKOTA
56f5e27c4b Obtain the initial key repeat rate setting via BIOS in i386 if
possible.
2000-01-10 08:52:32 +00:00
Kazutaka YOKOTA
934d11e395 Add some keyboard IDs. 2000-01-10 08:50:43 +00:00
Kazutaka YOKOTA
4d00f04203 Rework the algorithm to detect MDA/CGA/EGA/VGA cards, so that
the vga driver won't be fooled to believe it has a CGA card when
in fact it is a VGA card.
2000-01-10 08:49:49 +00:00
Kazutaka YOKOTA
e066609ffd - Fix typo: CGA40 -> CGA80
- Remove erroneous comments.
2000-01-10 08:47:04 +00:00
Warner Losh
90bba6bf72 Move xe driver from dev/pccard to dev/xe. Convert driver to newbus.
Driver is not functional yet, but does compile.  Tests with xe cards
indicates that it doesn't panic the machine when they are present, but
fail to probe.  Interface help in the pcic/pccard layers are needed to
complete this driver.
2000-01-10 08:05:53 +00:00
Cameron Grant
898cb2af53 make dsp_read() assert that it has a read channel, not a write channel
Submitted by:	green
2000-01-10 07:05:15 +00:00
Warner Losh
78ae73b5ea Eliminate pccard_chip_* tonight.
o ifdef out pccardchip.h (almost all of it, there are dangling bits
o Add rid/res members to pccard_function
o remove pct/pch from pccard_softc
o map memory properly in scan_cis (almost, see XXX for more work)
o manage ccr.
o remove bogus comment I added about touching the ccr being a layering
  violation for pccard.  It is properly done at that level.
o More function prototyping
2000-01-10 06:58:17 +00:00
Cameron Grant
10b23f4c02 don't complain about bad intrs unless we get 1000 of them consecutively
whilst we are playing or recording.  since we should irq ~20 times/sec when
active, this should never trigger.  in theory.  if it never does trigger,
the check will be removed.
2000-01-10 06:19:20 +00:00
Warner Losh
82af5353b0 Add some comments about things that have become bad as I've been
working on this code, or things that I think are layering violations.
Plus a minor whitespace cleanup in one place while I'm at it.
2000-01-10 06:17:27 +00:00
Cameron Grant
9090c22ce7 general tidyup 2000-01-10 03:22:28 +00:00
Warner Losh
e9cb811b17 Commit kernel part of patches to get the 3Com OfficeConnect 3CXSH572BT
working on -current.

Submitted by: Eric D. Futch <efutch@nyct.net>
Approved by: mdodd
2000-01-10 02:32:43 +00:00
Cameron Grant
4ee074718b return the sample rate set instead of 0. oops. mpg123 should now work. 2000-01-10 01:59:12 +00:00
Justin T. Gibbs
dbf94fd693 Avoid setting DPARCKEN until I can figure out why it causes
spurious parity errors on some controllers.
2000-01-10 01:47:51 +00:00
Matt Jacob
e85919b9f8 change debug printout lefvels for a couple of places 2000-01-09 21:47:39 +00:00
Cameron Grant
147d35e8b3 fix the premature termination of playback 2000-01-09 08:32:49 +00:00
Cameron Grant
d5fa8408e6 driver for neomagic 256av and 256zx
Obtained from:	anonymous author, heavily derived
2000-01-09 08:14:11 +00:00
Cameron Grant
bf8ca271a3 modify sndstat output 2000-01-09 08:07:46 +00:00
Gerard Roudier
6f9e728a48 - Add year 2000 copyright to driver files.
- Set MAX_OFFS driver compile option to 63 (was 64 which is wrong).
  - Fix a typo in the SYMBIOS NVRAM layout structure and add field and
    bit definition for the support of PIM_NOBUSRESET.
  - Report to XPT PIM_NOBUSRESET and PIM_SCANHILO if set by user in NVRAM.
  - Negotiate SYNC immediately after WIDE response from the target as
    suggested by Justin Gibbs.
  - Remove some misleading comment about CmdQue handling by CAM.
  - Apply correctly the MAX_WIDE and MAX_OFFS driver options.
2000-01-08 19:58:17 +00:00
Peter Wemm
f671bf82e4 Show the port/mem/irq of pci devices too. 2000-01-08 10:12:21 +00:00
Peter Wemm
b6e5f28e51 Futher cleanup.. "device_print_prettyname(); printf()" -> device_printf()
It seems that the IDE system uses 0x3f6 for itself, which conflicts with
fdc's default 0x3f0-3f7 allocation range. Sigh.  Work around this.
Use bus_set_resource() rather than allocating specific areas, it makes
the code a little cleaner.

Based on work by:	dfr
2000-01-08 09:33:09 +00:00
Peter Wemm
4a1e4cb727 Clean up the cfgmech/pci_mechanism debris. The reason for the existance
of this is no longer an issue as we have a replacement driver for the
one that needed it.

Reviewed by:	dfr
2000-01-08 08:31:24 +00:00
Bill Paul
61ebfeecad Add the vendor/device IDs for the LinkSys USB100TX.
Note: the .INF file for LinkSys's driver says the vendor ID is 0x66b,
however this does not agree with the vendor ID listed for LinkSys in
the company list from www.usb.org. In fact, 0x66b doesn't seem to appear
in the company list at all. Furthermore, this same vendor ID crops
up in some of the D-Link .INF files. Frankly I don't know what the heck
is going on here, but I need to add 0x66b to usbdevs and call it
something, so here we are.
2000-01-08 07:32:48 +00:00
Bill Paul
dd3e57dac6 Be a bit more discriminating when trying to decide when to screen out
certain PHY addresses in aue_miibus_readreg(). Not all adapters based
on the Pegasus chip may have their PHYs wired for the same MII bus
addresses: the logic that I used for my ADMtek eval board might not
apply to other adapters, so make sure to only use it if this is really
an ADMtek eval board (check the vendor/device ID).

This will hopefully make the LinkSys USB100TX adapter work correctly.
2000-01-08 06:52:36 +00:00
Justin T. Gibbs
1a24969d60 Turn on parity error reporting before configuring external sram. This
makes it a little easier to notice that parity checking an 8bit sram
isn't working.

Turn on scb and internal data-path parity checking for all pci chips types.
We were only doing this for ultra2 chips.

After clearing the parity interrupt status, clear the BRKADRINT.  This
avoids seeing a bogus BRKADRINT interrupt after external SCB probing
once normal interrupts are enabled.
2000-01-08 05:31:38 +00:00
Bill Paul
5edf2bc0a5 Leave the SOFS value (number of StartOfFrames to wait while filling
an URB before sending ZLP) set to the default. Choosing a bad value
can apparently cause a lockup on some machines/controllers.

Reported by: Doug Ambrisko
2000-01-08 00:40:44 +00:00
Justin T. Gibbs
c971c124a1 Really enable external SCB ram on Ultra2 capable controllers.
Don't even bother to look for SCB ram on controllers < aic7870.

Clear any parity errors generated by looking at external SCB ram.
2000-01-08 00:32:08 +00:00
Justin T. Gibbs
ba09901130 Update copyrights to Y2K.
93cx6.c:
	Make the SRAM dump output a little prettier.

aic7xxx.c:
	Store all SG entries into our SG array in kernel space.
	This makes data-overrun and other error reporting more
	useful as we can dump all SG entries.  In the past,
	we only stored the SG entries that the sequencer might
	need to access, which meant we skipped the first element
	that is embedded into the SCB.

	Add a table of chip strings and replace ugly switch
	statements with table lookups.

	Add a table with bus phase strings and message reponses
	to parity errors in those phases.  Use the table to
	pretty print bus phase messages as well as collapse
	another switch statement.

	Fix a bug in target mode that could cause us to unpause
	the sequencer early in bus reset processing.

	Add the 80MHz/DT mode into our syncrate table.  This
	rate is not yet used or enabled.

	Correct some comments, clean up some code...

aic7xxx.h:
	Add U160 controller feature information.

	Add some more bit fields for various SEEPROM formats.

aic7xxx.reg:
	Add U160 register and register bit definitions.

aic7xxx.seq:
	Make phasemis state tracking more straight forward.  This
	avoids the consumption of SINDEX which is a very useful register.

	For the U160 chips, you must use the 'mov' instruction to
	update DFCNTRL.  Using 'or' to set the PRELOADED bit is
	completely ineffective.

	At the end of the command phase, wair for our ACK signal
	to de-assert before disabling the SCSI dma engine.  For
	slow devices, this avoids clearing the ACK before the
	other end has had a chance to see it and lower REQ.
2000-01-07 23:08:20 +00:00
Justin T. Gibbs
77dd846834 Add detection logic for the U160 family of adaptec controllers. These
controllers will run at U2 speeds until I can complete the U160 support
for this driver.

Correct a termination buglet for the 2940UW-Pro.

Be more paranoid in how we probe and enable external ram, fast external
ram timing and external ram parity checking.  We should now work on
20ns and 8bit SRAM parts.

Perform initial setup for the DT feature on cards that support it.

Factorize and clean up code.  Use tables where it makes sense, etc.

Add some delays in dealing with the board control logic.  I've never
seen this code fail, but with the ever increasing speed of processors,
its better to insert deterministic delays just to be safe.  This stuff
is only touched during probe and attach, so the extra delay is of no
concern.
2000-01-07 22:53:37 +00:00
Bill Paul
d04bb221f3 Add the vendor and device IDs for a whole bunch of additional USB
ethernet adapters that are supported by the aue and kue drivers.
There are actually a couple more out there from Accton, Asante and
EXP Computer, however I was not able to find any Windows device
drivers for these on their servers, and hence could not harvest
their vendor/device ID info. If somebody has one of these things
and can look in the .inf file that comes with the Windows driver,
I'd appreciate knowing what it says for 'VID' and 'PID.'

Additional adapters include: the D-Link DSB-650 and DSB-650TX, the
SMC 2102USB, 2104USB and 2202USB, the ATen UC10T, and the Netgear EA101.
These are all mentioned in the man pages, relnotes and LINT.

Also correct the date in the kue(4) man page. I wrote this thing
on Jan, 4 2000, not 1999.
2000-01-07 22:18:49 +00:00
Søren Schmidt
9687efec89 Grrrr, this time it should be right, I need sleep - badly... 2000-01-07 15:51:45 +00:00
Søren Schmidt
39412a7ece This is not my lucky day :( 2000-01-07 13:15:42 +00:00
Søren Schmidt
af86437301 Guard against transfers of zero length given to *strategy. 2000-01-07 12:01:01 +00:00
Søren Schmidt
e960abaf96 Set PIO mode in all cases. 2000-01-07 08:28:41 +00:00
Søren Schmidt
14c2c6c8b1 New ATAPI burner utility API, replaces the wormio API. 2000-01-06 22:50:02 +00:00
Bill Paul
032eb46fbb Cleanups: remove stale comments left over from when I cloned the ADMtek
driver, remove unused member of kue_chain struct also left over from
ADMtek driver.
2000-01-06 07:39:07 +00:00
Warner Losh
deae2aaf91 Checkpoint of today's changes. We now get to the point where the pccard
layer is trying to access the now unexistant chip functions.
o Added DEVPRINTF which is like DPRINTF only calls device_printf.
o Made it possible to define PCICDEBUG
o Remove ph_parent and use the softc pointer sc instead in pcic_handle.
o Remove all references to dv_xname
o Add some debug messages.
o enable MI attach/detach calling for pccard.
o convert pcic_chip_socket_{en,dis}able to pcic_{dis,en}able_socket
  and connect them to the power_{enable,disbale}_socket.
o Remove pccard pointer from pcic_softc.
o GC some unused pccard functions.
o Convert pccard_chip_socket* to POWER_ENABLE_SOCKET
o kill pccard_attach_args.
o power_if.m updates.  More to come.
2000-01-06 07:30:28 +00:00
Warner Losh
3b1782065f Merge most of FDC_YE into the mainline driver.
o Rename FDC_PCMCIA to FDC_NODMA to allow systems that don't have dma
  for floppies.
o Remove all but two FDC_YE ifdefs.  They aren't needed.
o Move defines for YE_DATAPORT to fdreg.h.

Not fixed:
o The pccard probe/attach.  However, motivated individuals can more
  easily add this now.

This is a merge of changes I've had in my tree for a long time.  These
fixes were tested on my VAIO with its normal floppy.  Please let me
know if I broke anything.

Prodded by: Peter Wemm <peter@freebsd.org>
2000-01-06 07:13:54 +00:00
Cameron Grant
833f702348 allow mixer-only devices - ie, devices with no play/rec channels 2000-01-06 04:11:36 +00:00
Bill Paul
a7fffc4bc2 Update copyright date for Y2K (did the other files but forgot this one).
Also update comments to credit to Rob Furr with donating the adapter
that I used for testing. No code changes.
2000-01-05 23:38:07 +00:00
Greg Lehey
b51b6b8a7b Don't tsleep with PCATCH, it's a wonderful way to hang the system.
Reported-by:	Bernd Walter <ticso@cicely.de>
2000-01-05 22:59:36 +00:00
Greg Lehey
3bd2a0a10c Add missing header file.
Not-reported-by:	peter
2000-01-05 22:58:39 +00:00
Cameron Grant
bbb5bf3d69 don't panic if channel init fails, report and fail gracefully 2000-01-05 20:44:41 +00:00
Bill Paul
a40a664637 Correct the vendor ID for KLSI: it's actually 0x5e9. 0x3e8 is the
vendor ID for Aox Inc, which makes the controller engine and/or
firmware for the KLSI chip.
2000-01-05 18:25:53 +00:00
Peter Wemm
b9da888fcb Make the evil broken pnpbios compensation slightly less evil.
This is the hack that compensates for when bios vendors "forget" to
include the fdc control (0x3f7) port in their io port mappings.  Instead
of accessing ports outside of a range allocated to a handle, simply
allocate the port directly.  It even shows up in the probe..
2000-01-05 17:42:43 +00:00
Bill Paul
78126c2704 Doh. Forgot to add the entry for the 3Com 3c19250 to the supported
devices table.
2000-01-05 17:31:05 +00:00
Bill Paul
6998849dc4 Do not attempt to load the firmware a second time. If you reboot your
machine but leave your KLSI adapter plugged into your USB port, it
may stay powered on and retain its firmware in memory. Trying to load
the firmware again in this case will wedge the chip. Try to detect this
in the kue_load_fw() routine and bail if the firmware is already
loaded and running.

Also, in the probe/match routine, force the revision code to the
hardware default and force a rescan of the quirk database. This is
necessary because the adapter will return a different revision code
if the firmware has been loaded. Without the firmware, the revision
code is 0x002. With the firmware, the revision code is 0x202. This
confuses the quirk mechanism, which won't match a quirk to a device
unless the revision code agrees with the quirk table entry.

This makes probe/attach of these devices somewhat more reliable.

Also add a few comments about the device's operation.
2000-01-05 17:13:50 +00:00
Peter Wemm
bcae942098 Zap pci_map_dense() and pci_map_bwx() - they were for compatability but
are not used.  All the drivers that use memory mapped IO on the Alpha have
been ported already.
2000-01-05 16:40:10 +00:00
Peter Wemm
37286586ff Patch up some of the evilness left over from the early newbus porting.
In particular:
 - Don't leave resources allocated in the probe routine.  Allocate them
   during probe and release them.  Probe's job is to identify devices only.
 - Don't abuse the ivars pointer.. (!).  Create real ivars and use the
   proper access system.  (the bus_read_ivar method)
 - Don't add the children until attach() has successfully grabbed the
   hardware, otherwise there are potential leaks if attach fails.
2000-01-05 16:31:27 +00:00
Greg Lehey
ffa258b0aa Explicitly type large scalar parameters to avoid compilation warnings
on alpha.

Submitted-by:	      Bernd Walter <ticso@cicely.de>

struct sd: Add a field for the pid of the reviver when the subdisk is
reviving.

Replace block device macros with generalized device macros.
2000-01-05 06:13:01 +00:00
Greg Lehey
a7482aa7d5 When attaching a plex to a volume with 'up' subdisks, make the plexes
subdisks 'stale', not 'reviving'.
2000-01-05 06:12:25 +00:00
Greg Lehey
b110a1e60b Correct printf format for pointers to avoid compilation warnings on
alpha.

Explicitly type large scalar parameters to avoid compilation warnings
on alpha.

Submitted-by:	      Bernd Walter <ticso@cicely.de>

Make better checks that the revive block size is valid, silently set
it to the defaults if not.

Replace block device macros with generalized device macros.
2000-01-05 06:11:46 +00:00
Greg Lehey
0ea9d6fbc7 Correct printf format for pointers to avoid compilation warnings on
alpha.

Modify the manner in which we lock RAID-5 plexes.  This appears to
solve some of the elusive panics we have seen with corrupted buffer
headers (specifically the zeroed-out b_iodone field).

Submitted-by:	      Bernd Walter <ticso@cicely.de>
2000-01-05 06:10:52 +00:00
Greg Lehey
984e8b9ada Modify the manner in which we lock RAID-5 plexes. This appears to
solve some of the elusive panics we have seen with corrupted buffer
headers (specifically the zeroed-out b_iodone field).

Submitted-by:	      Bernd Walter <ticso@cicely.de>
2000-01-05 06:09:43 +00:00
Greg Lehey
dbd8153d5e Change the name of the define 'SPACETAB' (originally 'isspace') to
'iswhite'.  The original change was required because of name
conflicts.

Add key pairs for the keywords 'mv' and 'move' (part of the move
command).

Add comments.
2000-01-05 06:08:55 +00:00
Greg Lehey
5b58d7c1a2 Include basename() function even if the system isn't i386.
Correct printf format for pointers to avoid compilation warnings on
alpha.

Submitted-by:	      Bernd Walter <ticso@cicely.de>
2000-01-05 06:08:23 +00:00
Greg Lehey
a86a06a0b5 Add the keywords 'mv' and 'move'. 2000-01-05 06:07:59 +00:00
Greg Lehey
5756902abc Add function moveobject, which currently moves subdisks to different
drives.  This function just does the low-level configuration changes;
the resultant subdisk is stale if it previously had any contents,
otherwise it is empty (i.e. in need of initializing if it's RAID-5).
We still need to handle getting the contents moved over, but the
current version will suffice to migrate subdisks from a disk which has
failed.

Submitted-by:  Marius Bendiksen <marius@marius.scancall.no>
2000-01-05 06:07:26 +00:00
Greg Lehey
233fb3be1e Add VINUM_MOVE ioctl.
Fix transfer lengths for some ioctls.

Rearrange file: put structs first, then ioctl requests.
2000-01-05 06:06:01 +00:00
Greg Lehey
f54047e7f4 Explicitly type large scalar parameters to avoid compilation warnings
on alpha.

Submitted-by:	      Bernd Walter <ticso@cicely.de>

Remove #include of vm/vm_zone.h.

Submitted-by:	Someone, I'm sure, but I seem to have lost the
		attribution.  Sorry.

Get the check for disk devices correct, and return an appropriate
message if the check fails.
2000-01-05 06:05:33 +00:00
Greg Lehey
3999d58378 Add declaration for give_sd_to_drive, needed for the 'move' command. 2000-01-05 06:04:17 +00:00
Greg Lehey
7da7966a73 Set P_SYSTEM in the daemon proc structure to alleviate delays on
shutdown.

Submitted-by:	Alfred Perlstein <bright@wintelcom.net>

Correct printf format for pointers to avoid compilation warnings on
alpha.

Submitted-by:	Bernd Walter <ticso@cicely.de>

Identify daemon as 'vinum', not 'vinumd', in messages.  This
corresponds to the name in ps.
2000-01-05 06:03:56 +00:00
Greg Lehey
140c8af97a Explicitly type large scalar parameters to avoid compilation warnings
on alpha.

Submitted-by:	      Bernd Walter <ticso@cicely.de>

Get parameters right for some error messages returned via
throw_rude_remark().

Fix typo in comment.

Remove the 'static' attribute from give_sd_to_drive.  This is needed
for the implementation of moveobject() in vinumioctl.c.
2000-01-05 06:02:57 +00:00
Bill Paul
dfd1e98eac Add device driver support for USB ethernet adapters based on the
Kawasaki LSI KL5KUSB101B chip, including the LinkSys USB10T, the
Entrega NET-USB-E45, the Peracom USB Ethernet Adapter, the 3Com
3c19250 and the ADS Technologies USB-10BT. This device is 10mbs
half-duplex only, so there's miibus or ifmedia support. This device
also requires firmware to be loaded into it, however KLSI allows
redistribution of the firmware images (I specifically asked about
this; they said it was ok).

Special thanks to Annelise Anderson for getting me in touch with
KLSI (eventually) and thanks to KLSI for providing the necessary
programming info.

Highlights:
- Add driver files to /sys/dev/usb
- update usbdevs and regenerate attendate files
- update usb_quirks.c
- Update HARDWARE.TXT and RELNOTES.TXT for i386 and alpha
- Update LINT, GENERIC and others for i386, alpha and pc98
- Add man page
- Add module
- Update sysinstall and userconfig.c
2000-01-05 04:27:24 +00:00
Cameron Grant
2abc85f0c0 argh, forgot the bus_dma_tag_creates.
also, panic if channel init fails instead of derefing null.
2000-01-05 04:01:34 +00:00
Cameron Grant
ebb0b1f9bb set up the pci regs properly for busmastering. this makes the card work on
my smp box.
2000-01-05 02:03:55 +00:00
Cameron Grant
9d1671b8c2 allocate isa bounce buffers of the right size for ess/mss cards, fixes
panics reported
2000-01-05 00:39:20 +00:00
Matt Jacob
32ecc7a2e7 oop, use PRINTF not printf in MI code 2000-01-04 05:17:48 +00:00
Yoshihiro Takahashi
b3ef0af491 - Fixed warnings.
- Removed unnecessary include files.
2000-01-04 04:46:50 +00:00
Matt Jacob
92a1e54959 Clean up some debug printing. Find the correct lun when SCCLUN is
defined. If we complete with a check condition but no sense data,
say we had an AUTOSENSE failure.
2000-01-04 03:45:49 +00:00
Matt Jacob
3da7ba4d41 Make Fibre Channel cards correctly note the presence/absence
of ARQ data and punt the dealing with its presence/absence
to the platform layers.
2000-01-04 03:44:21 +00:00
Matt Jacob
79e2d3b5b3 set default target mode debug to 0 2000-01-04 03:43:03 +00:00
Matt Jacob
31adfa66a3 add clarifying tag define for FC 2000-01-04 03:42:19 +00:00
Matt Jacob
4242692117 Add in an isp_tdebug environment variable. Clean up some debugging
printouts for clarity.
2000-01-04 03:41:40 +00:00
Matt Jacob
e3bfb27984 Ho, ho, ho... this clock chip is not y2k compliant. Motorola
has it blacklisted. Silly us for not planning ahead. Tsk. Anyway-
a 10 year window patch is probably sufficient to still detect
nonsense in the clock but allow us to roll past the year 2000.
2000-01-04 03:22:04 +00:00
Matt Jacob
ea49c6e4fe These are platform independent functions for target mode support.
This is just a first pass at this and is likely to change a bit
over the next month.
2000-01-04 00:00:08 +00:00