Commit Graph

140 Commits

Author SHA1 Message Date
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
Matt Jacob
b6ca8f5a13 add wx0 driver 2000-01-04 11:17:35 +00:00
Bill Paul
ed63a7aaef This commit adds device driver support for the ADMtek AN986 Pegasus
USB ethernet chip. Adapters that use this chip include the LinkSys
USB100TX. There are a few others, but I'm not certain of their
availability in the U.S. I used an ADMtek eval board for development.
Note that while the ADMtek chip is a 100Mbps device, you can't really
get 100Mbps speeds over USB. Regardless, this driver uses miibus to
allow speed and duplex mode selection as well as autonegotiation.
Building and kldloading the driver as a module is also supported.

Note that in order to make this driver work, I had to make what some
may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer()
function will use tsleep() for synchronous transfers that don't complete
right away. This is a problem since there are times when we need to
do sync transfers from an interrupt context (i.e. when reading registers
from the MAC via the control endpoint), where tsleep() us a no-no.
My hack allows the driver to have the code poll for transfer completion
subject to the xfer->timeout timeout rather that calling tsleep().
This hack is controlled by a quirk entry and is only enabled for the
ADMtek device.

Now, I'm sure there are a few of you out there ready to jump on me
and suggest some other approach that doesn't involve a busy wait. The
only solution that might work is to handle the interrupts in a kernel
thread, where you may have something resembling a process context that
makes it okay to tsleep(). This is lovely, except we don't have any
mechanism like that now, and I'm not about to implement such a thing
myself since it's beyond the scope of driver development. (Translation:
I'll be damned if I know how to do it.) If FreeBSD ever aquires such
a mechanism, I'll be glad to revisit the driver to take advantage of
it. In the meantime, I settled for what I perceived to be the solution
that involved the least amount of code changes. In general, the hit
is pretty light.

Also note that my only USB test box has a UHCI controller: I haven't
I don't have a machine with an OHCI controller available.

Highlights:

- Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part.
- Updated usbdevs and regenerated generated files
- Updated HARDWARE.TXT and RELNOTES.TXT files
- Updated sysinstall/device.c and userconfig.c
- Updated kernel configs -- device aue0 is commented out by default
- Updated /sys/conf/files
- Added new kld module directory
1999-12-28 02:01:18 +00:00
Bruce Evans
f11c215715 Synced with Makefile.i386. The following cleanups in Makefile.i386
rev.1.168 should have been committed concurrently:

Fixed some style bugs (always use precisely 1 space after `:' in
dependency specifications).
Removed bogus dependency of ${FULLKERNEL} on ${BEFORE_DEPEND}.

Reminded by:	peter
1999-12-27 12:06:11 +00:00
Peter Wemm
07ed92fb01 Zap the kvm_kernel.db juggling at 'make install' time, it isn't needed
any more.
1999-12-27 07:19:45 +00:00
David E. O'Brien
19b132d78b Turn on the sym' driver by default. It lives well beside the ncr' driver
now.  On one machine with <825a> and <875> controllers, `sym' correctly
attached.  On another one with only a <ncr 53c810 fast10 scsi>, the `ncr'
driver correctly attached.
1999-12-22 05:52:04 +00:00
Peter Wemm
5a81d0a50b Only compile gusc for isa (the #if NISA inside gusc effectively covers
the whole file)
1999-12-21 13:53:49 +00:00
Steve Price
0138b1134c MFS_ROOT is deprecated so use MD_ROOT instead. Also add the md
pseudo-device to make it easier to build releases.
1999-12-20 05:11:51 +00:00
Peter Wemm
574b36f9b7 Be more consistant in using perl vs. perl5. We were using perl5 in the
kernel builds so as not to confuse with perl4 when bootstrapping from old
systems.  I don't know if this is still applicable but it shouldn't hurt
to be consistant at least.

Also copy vnode_if.sh to vnode_if.pl.  Doing a 'sh vnode_if.sh' when it
was a perl script was kinda silly.
1999-12-17 22:07:43 +00:00
Kazutaka YOKOTA
273157da59 - Add the device resume method. It supercedes the existing resume
routine which hooks the apm driver.
- Rename the PSM_HOOKAPM option to PSM_HOOKRESUME.
- Delete unnecessary #include.
1999-12-15 10:04:05 +00:00
Kazutaka YOKOTA
83c5d22d61 - Pull in kbd.c when sc or vt is included in the kernel, even if
no keyboard driver is defined in the kernel config file.
1999-12-13 13:01:00 +00:00
Peter Wemm
00943c9151 Argh, fix a stupid typo. :-( 1999-12-12 21:36:19 +00:00
Peter Wemm
6f77b2defc Use a seperate -c and -h mode. The vnode_if.c file is compiled only into
the kernel while the vnode_if.h header is a bunch of inlines to call the
code that is in the kernel. Generating the .h file on the fly is kinda
bogus because it has to match the one compiled into the kernel.

IMHO we should have kern/vnode_if.c and sys/vnode_if.h committed in the
tree but that's another battle.
1999-12-12 16:43:05 +00:00
Archie Cobbs
f2cbe161be Move source files common to all platforms from <arch>/conf/files.<arch>
to conf/files.  If/when these files are optimized for each platform,
they can be moved back.
1999-12-09 19:38:20 +00:00
Dan Moschuk
9578442e8d Move libkern/arc4random.c into conf/files. I was planning on doing an
optimized alpha version, but I'll leave that alone for the time being.
1999-12-09 18:47:54 +00:00
Bill Paul
96f2e892a7 Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers
which it replaces. The new driver supports all of the chips supported
by the ones it replaces, as well as many DEC/Intel 21143 10/100 cards.

This also completes my quest to convert things to miibus and add
Alpha support.
1999-12-04 17:41:31 +00:00
Andrew Gallatin
dbc58a480c A port of NetBSD's AlphaServer 1000 and 1000A support. Thanks to Cristian
Angelini for allowing me to use his AS1000 to do the port.

Note that this is untested on AlphaServer 1000A hardware.

Reviewed by:	dfr
Tested by:   	Cristian Angelini <chr.ang@biella.alpcom.it>
Obtained From: 	NetBSD
1999-12-01 15:25:04 +00:00
Dima Ruban
97cab30be6 Add arc4random.c.
Please note that kernel is still broken on alpha.
1999-11-30 20:18:20 +00:00
David E. O'Brien
521c57eb69 Sort PCI SCSI controlers. 1999-11-28 00:59:03 +00:00
David E. O'Brien
658743b5e2 /sys adjustments to add the `sym' controler driver.
This is commented out in GENERIC as you cannot mix `sym' with `ncr' right now.
Note that LINT is no more broken by this commit.
1999-11-28 00:48:15 +00:00
Peter Wemm
3ac8285030 Add pcm entries for the alpha too, since they were taken out of
conf/files and moved to i386/conf/files.i386

Forgotten by: tanimura
1999-11-22 16:10:26 +00:00
Peter Wemm
9565e721cb Update the Alpha makefile to be more in line with the x86 version. It
was getting quite dated.  Attempt to minimize diffs between the two so
it's not as painful to do this next time.
1999-11-22 15:39:13 +00:00
Nick Hibma
7c74d2682c Typo 1999-11-16 22:02:16 +00:00
Doug Rabson
7cbc47c7bc Add the ata devices to the GENERIC kernel. Hopefully, this should allow
it to install from ATA cds and to ATA disks. I'll check after my next
release builds.
1999-11-15 09:09:00 +00:00
Kazutaka YOKOTA
d7ccb880d1 - Added the following options; they have existed in syscons
for sometime, but haven't been registered here.

  SC_NORM_ATTR
  SC_NORM_REV_ATTR
  SC_KERNEL_CONS_ATTR
  SC_KERNEL_CONS_REV_ATTR

PR: kern/13176
1999-11-08 10:59:48 +00:00
Kazutaka YOKOTA
51ebcb230e - Added a new kernel configuration option: SC_TWOBUTTON_MOUSE.
The new option will make the right mouse button the `paste' button.
  Useful for two button mice.

Submitted by: morganw@engr.sc.edu (Wes Morgan)
1999-11-08 10:04:29 +00:00
Kazutaka YOKOTA
73027df75c - Removed SC_VIDEO_DEBUG. It is broken and useless now. 1999-11-08 09:57:16 +00:00
Eivind Eklund
909232c4ef Options cleanup.
* GC unused options
* Move options that exist on all architectures to conf/options
* Add missing options to LINT
* Sort undocumented options list in LINT

Reviewed by:	green
1999-11-06 23:41:10 +00:00
Peter Wemm
b4e9f0b6e6 Merge the alpha and x86 majors files together. There appear to be
only two conflicts, cdev #98 and cdev #99.  These should be fixed.
MAKEDEV should probably be merged as well.
Static majors are (hopefully) going away one day soon.
This file is informational and not machine parsed by anything any more.
1999-11-01 04:12:42 +00:00
Peter Wemm
51124de792 Update examples using 'disk' and 'tape' - they used to have magic meaning
to config(8) for static device tables that have not existed for quite
some time.  They have been aliases for 'device' for a while, and "tape"
went away entirely as it wasn't used anywhere (except in an example
in LINT.. "fixed").
1999-11-01 04:02:58 +00:00
Marcel Moolenaar
7621bfff0f Allow the source root `S' to be overridden by defining it only when
it isn't already defined. It enables config(8) to create the kernel
build directory where it wants.
1999-10-30 09:28:27 +00:00
Bill Paul
ed8c6514c4 Convert the mx driver to miibus.
In order to make this work, I created a pseudo-PHY driver to deal with
Macronix chips that use the built-in NWAY support and symbol mode port.
This is actually all of them, with the exception of the original MX98713
which presents its NWAY support via the MII serial interface.

The mxphy driver actually manipulates the controller registers directly
rather than using the miibus_readreg()/miibus_writereg() bus interface
since there are no MII registers to read. The mx driver itself pretends
that the NWAY interface is a PHY locayed at MII address 31 for the sole
purpose of allowing the mxphy_probe() routine to know when it needs to
attach to a host controller.
1999-10-16 05:24:13 +00:00
David E. O'Brien
b65fdcda6c Acutally our style is "options\x20\x09".
As BDE says:  "options\x09\x09foo" looks quite different from
"options\x20\x09foo" after adding a one or two character prefix.

Notice by:	BDE
1999-10-15 07:07:43 +00:00
David E. O'Brien
5fafa719ad Like it or not, we use ^I's not 0x20 to align things in this file. 1999-10-14 11:34:19 +00:00
David E. O'Brien
6701b9ae60 Make the contents, layout, and comments match sys/i386/conf/GENERIC as
much as possible.  This commit also adds the `bpf' pseudo-device.
1999-10-14 09:52:28 +00:00
Peter Wemm
eec117b5ef Zap these defucnt files before anyone things about trying to merge them. 1999-10-08 06:21:38 +00:00
Mike Smith
f5ff1eca5e Re-synchronise the alpha major numbers list with the i386 list.
Add the Mylex DAC960 and AMI MegaRAID numbers.
1999-10-07 02:15:10 +00:00
Matt Jacob
ad9687aff3 make sure a trivial apm.h is created, as some people have assumed that
all architectures have apm and have just included apm.h blindly.
1999-10-01 02:41:30 +00:00
Andrew Gallatin
25cfcb2218 Add ahc driver. The adaptec driver works just dandy on my xp1000 using
a 2940UW.  The dp264 (and ds20, I think) have an AIC7895 on board so it
is important the ahc driver be in GENERIC so that FreeBSD can install on
these boxes.
1999-09-30 18:51:56 +00:00
Peter Wemm
5518bc0d23 Pull in the core bus drivers based on the machine type rather than
requiring the user to figure it out.  So, if you comment out all but the
machine type you are using, you automatically get the bus code just for
your system.  (eg DEC_EB164 implies cia, etc).  Multiple machine types
still pulls in the appropriate busses.  This means, take things like
'controller cia0' out of your config.

Reviewed by:	dfr  (in principle)
1999-09-13 17:52:06 +00:00
Poul-Henning Kamp
b24d30561d Make unused tape bmajors in past tense. 1999-09-08 18:46:22 +00:00
Poul-Henning Kamp
6523748af1 Make sa/bdev, gd/bdev and gd/cdev as past-tense. 1999-09-08 17:02:40 +00:00
Peter Wemm
b720111ca3 Restore old sio driver for Bruce. We'll fix the bus problems in nsio
instead.
1999-09-08 11:08:50 +00:00
Peter Wemm
e5174d14c5 Repo copy isa/sio* to dev/sio/sio* in preperation for extra bus methods
including pci.
Also, eliminate NSIOTOT and do it dynamically where it matters.
1999-09-06 14:06:23 +00:00
Bill Paul
e5a9fd5435 This commit adds driver support for PCI fast ethernet NICs based on
the Davicom DM9100 and DM9102 chipsets, including the Jaton Corporation
XPressNet. Datasheet is available from www.davicom8.com.

The DM910x chips are still more tulip clones. The API is reproduced
pretty faithfully, unfortunately the performance is pretty bad. The
transmitter seems to have a lot of problems DMAing multi-fragment
packets. The only way to make it work reliably is to coalesce transmitted
packets into a single contiguous buffer. The Linux driver (written by
Davicom) actually does something similar to this. I can't recomment this
NIC as anything more than a "connectivity solution."

This driver uses newbus and miibus and is supported on both i386
and alpha platforms.
1999-09-06 06:14:30 +00:00
Bill Paul
9555e59a1e This commit adds driver support for the Silicon Integrated Systems
SiS 900 and SiS 7016 PCI fast ethernet chipsets. Full manuals for the
SiS chips can be found at www.sis.com.tw.

This is a fairly simple chipset. The receiver uses a 128-bit multicast
hash table and single perfect entry for the station address. Transmit and
receive DMA and FIFO thresholds are easily tuneable. Documentation is
pretty decent and performance is not bad, even on my crufty 486. This
driver uses newbus and miibus and is supported on both the i386 and
alpha architectures.
1999-09-05 21:01:03 +00:00
Poul-Henning Kamp
f054c29093 Merge alpha and pc98 changes into i386 MBR handling code and replace all
three copies with one copy in MI land.
1999-08-29 09:12:54 +00:00
Poul-Henning Kamp
0bd2b984ce Sort the easy part of this file. It should be all sorted. 1999-08-29 08:44:18 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Matt Jacob
2d712f3d8d what is a devuce? 1999-08-25 18:05:52 +00:00