1608 Commits

Author SHA1 Message Date
sanpei
cdd996ee9c Add the ESS Solo-1 to generic chip match.
Solo-1 Datasheet(vendor/device info at P.33)
http://www.alsa-project.org/alsa/ftp/manuals/ess/DsSolo1.pdf
2000-08-03 13:46:52 +00:00
wpaul
02e133ec1a Add support for the Netgear GA620T copper gigabit card. 2000-08-02 18:49:17 +00:00
wpaul
9544090f6a Add call to bus_generic_attach() at the end of sk_attach(). It turns out that
if you kldload this driver, all the subordinate devices are probed/attached
as expected. But this is not the case when the driver is statically compiled
into the kernel. Since I do most of my testing with modules, I failed to
notice this. I'm not sure if it's intended behavior or not. I think it may
be, but it seems a little counter-intuitive.
2000-08-02 18:19:00 +00:00
wpaul
3f1946ec38 Grrrr. Add definition for DC_WDOG_CTLWREN. I made this change yesterday
but stupidly only commited to if_dc.c.
2000-08-02 16:31:11 +00:00
wpaul
6077857dc7 Apply patch supplied by John Hood <jhood@sitaranetworks.com> to fix problems
with LEDs on some cards being stomped on when clearing the "jabber disable"
bit. Using DC_SETBIT() has an unwanted side effect of setting a write enable
bit in the watchdog timer register which we really want to be cleared when
we do a write.
2000-08-01 19:34:13 +00:00
mjacob
4c7c897ac9 Part of major rewrite for core version 2.0- clarification of
mdvec structure, removal of printf/CFGPRINTF in place of isp_prt
calls. Parameterization of RQUEST_QUEUE_LEN/RESULT_QUEUE_LEN.
2000-08-01 05:16:49 +00:00
peter
36f0fd9c3e "Fix" cast qualifier warnings using the uintptr_t intermediate trick. 2000-07-28 23:30:30 +00:00
asmodai
df096faeda Document the 0x12258086 PCI id.
This is in fact an Intel Orion chipset (82454KX/GX) which has been used
in HP NetServer's LS4 range.
HP Probably relabeled the DID.  That's the only explanation I can find
plausible to this `mystery'.
2000-07-27 09:54:50 +00:00
wpaul
f41b3cf942 Use a custom Tigon 2 firmware image, hopefully temporarily. This is
the 12.4.11 firmware with a few changes to the link handling code merged
in from the 12.4.13 release. I'm doing this because the 12.4.13 firmware
doesn't seem to handle 10/100 link settings properly on 1000baseT cards.
Note that the revision codes still identify the firmware as 12.4.13
because both ti_fw2.h and ti_fw.h have to have the same revision values,
and I wanted to keep the 12.4.13 firmware for Tigon 1 cards.

It's nice to have firmware source.
2000-07-26 23:55:34 +00:00
wpaul
10590d85f3 Tweak probe message so that 1000baseSX and 1000baseT cards are
explicitly identified.
2000-07-20 23:43:45 +00:00
wpaul
b371b56ee9 Update the Tigon driver to support 1000baseTX gigE over copper AceNIC
cards. This basically involves switching to the 12.4.13 firmware, plus
a couple of minor tweaks to the driver.

Also changed the jumbo buffer allocation scheme just a little to avoid
'failed to allocate jumbo buffer' conditions in certain cases.
2000-07-20 22:24:43 +00:00
gallatin
b0e74737e9 Fix an alpha-only race which causes the transmit side of the chip to
lock up under moderate to heavy load.

The status & command fields share a 32-bit longword.  The programming
API of the eepro apparently requires that you update the command field
of a transmit slot that you've already given to the card.  This means
the card could be updating the status field of the same longword at
the same time. Since alphas can only operate on 32-bit chunks of
memory, both the status & command fields are loaded from memory &
operated on in registers when the following line of C is executed:

                sc->cbl_last->cb_command &= ~FXP_CB_COMMAND_S;

The race is caused by the card DMA'ing up the status at just the wrong
time -- after it has been loaded into a register & before it has been
written back.  The old value of the status is written back, clobbering
the status the card just DMA'ed up. The fact that the card has sent
this frame is missed & the transmit engine appears to hang.

Luckily, as numerous people on the freebsd-alpha list pointed out, the
load-locked/store-conditional instructions used by the atomic
functions work with respect changes in memory due to I/O devices.  We
now use them to safely update the command field.

Tested by: Bernd Walter <ticso@mail.cicely.de>
2000-07-19 14:33:52 +00:00
mjacob
e93f62fa29 Keep interrupts blocked for all of isp_pci_attach. Redo DMA routines
for target mode for cleanliness and accuracy.
2000-07-18 06:40:22 +00:00
wpaul
d6d5b813b3 Add the PCI IDs for the Macronix 98727 and 98732 parts. These are
3.3volt PCI/cardbus chipsets similar to the 98715 (and they have
512-bit hash tables). Also update the man page to mention the 98727/98732
and the SOHOware SFA110A Rev B4 card with the 98715AEC-C chip.
2000-07-17 19:27:41 +00:00
wpaul
a6eab22761 Apply patch to the dc driver to handle Macronix MX98715AEC-C/D/E chips,
which differ slightly from the Macronix MX98715AEC chip on the sample
adapter that I have in that the multicast hash table is only 128 bits
wide instead of 512. New adapters are popping up with this chip, and
due to improper handling of the smaller hash table, broadcast packets
were not being received correctly.
2000-07-15 17:54:30 +00:00
wpaul
4d1ab12c45 Close PR# 19904: remember to call sf_setmulti() when initializing the
interface so the multicast filter will be programmed correctly.
2000-07-14 19:11:02 +00:00
wpaul
2aba3f4e60 sis_miibus_writereg() was checking for SIS_TYPE_900 and phy != 0 twice
due to a small cut & paste-o on my part. It happens this didn't hurt
anything, but it's still wrong.
2000-07-14 05:30:48 +00:00
archie
7357df6b48 Make all Ethernet drivers attach using ether_ifattach() and detach using
ether_ifdetach().

The former consolidates the operations of if_attach(), ng_ether_attach(),
and bpfattach(). The latter consolidates the corresponding detach operations.

Reviewed by:	julian, freebsd-net
2000-07-13 22:54:34 +00:00
dfr
6ab55f9709 Add support for Intel's i810 chipset with integrated graphics. An
associated patch to XFree86 allows the X server to work with this chipset
on FreeBSD. Additional work will include porting the Linux 3D driver.

Submitted by: Ruslan Ermilov <ru@FreeBSD.org>
2000-07-12 10:13:07 +00:00
phk
7e67bebec5 Newbusify this driver at an expense of 40 extra lines of code. 2000-07-10 19:33:41 +00:00
mjacob
712e1316bf Thanks for Andrew Gallatin pointing out that freeing contigmalloc'd
items via free is bad.
2000-07-09 00:18:21 +00:00
gallatin
27334af100 use contigfree() rather than free() to free memory allocated with
contigmalloc().

reviewed by: wpaul
2000-07-08 00:14:12 +00:00
wpaul
2a3a137963 Fix a minor bug in the MAC address unscrambling code.
(Some shift rights should have been shift lefts.)
2000-07-06 19:21:07 +00:00
wpaul
966a32cd5b Add support for the National Semiconductor DP83815 fast ethernet
controller chip. This chip is currently being used on the NetGear
FA312-TX adapter, which I guess is a replacement for the FA310-TX
(PNIC-based).

I added support for this chip by modifying the sis driver since
the SiS 900 and the NS DP83815 have almost the same programming
interface (the RX filter programming and PHY access methods are
different, but the general configuration, DMA scheme and register
layout are identical).

I would have had this done a lot sooner, but getting the damn MAC
address out of the EEPROM proved to be more complicated than expected.
2000-07-06 06:02:04 +00:00
wpaul
8a5ba0ae5f Close PR# 19617: add support for VIA VT6102 NICs to VIA Rhine driver. 2000-07-05 21:37:21 +00:00
mjacob
9d667c3b82 Change startup locking. Use new isp_handle_index function
for indexing off of handles to get dma maps.
2000-07-04 01:01:15 +00:00
phk
04f50515a9 Account for packets we clean out when we disconnect. 2000-07-03 13:08:56 +00:00
alfred
ea961c73cb use warnings
use strict
add 'usage'
2000-06-27 22:41:12 +00:00
mjacob
acfd9366b4 If swdpio1 doesn't clear, we have a reversed (or disconnected) cable. Change
the message to indicate that it could also be a disconnected cable, and
return okay from wx_hw_intialize *anyway*. This allows us to contineu to
set the station address and when we do get link up, we're ready to roll.
2000-06-25 02:04:27 +00:00
semenu
efbb3f90a5 Added support for SMC9432BTX cards. 2000-06-21 19:19:49 +00:00
dg
497d79a5ee Implemented some optimizations which result in 14 fewer instructions in the
receive path.
2000-06-19 00:58:34 +00:00
dg
205d1fefd0 Added support for the i82559ER (10/100Mbps NIC for embedded applications).
Product device ID provided by:	Les Biffle <les@ns3.safety.net>
2000-06-18 10:26:09 +00:00
mjacob
a66fa325f8 Clean up firmware load issues and remove darn near all config options.
Force alphas to prefer mem mapping as the default.

Basically, we have a pointer to a function which we can call which will
return us a pointer to firmware for the card we have. We call this function
(if it's non-NULL) with the address of our mdvec f/w pointer.

The way this works is that if ispfw (as a module or a static) is loaded,
it initializes the pointer in isp_pci, so we can call into to it to fetch
a pointer to a f/w set.

If ispfw is MOD_UNLOADed, it's retained a pointer to our mdvec f/w pointers,
which then get zeroed out so we don't have any references to data that's
now gone from kernel memory. Removing the f/w saves ~360KBytes.

Alas, there is no autounload mechanism that works for is here.
2000-06-18 05:18:55 +00:00
mjacob
a7ab185a17 Fix this driver to (finally) work with switches. Some more black
magic from the linux driver.
2000-06-16 06:28:31 +00:00
asmodai
e6fce1adbb Add support for the Accton EN1217.
PR:		18735
Submitted by:	Adoal Xu <adoal@iname.com>
2000-06-11 11:54:52 +00:00
dfr
ad9c556957 Release resources properly in detach. 2000-06-10 17:53:20 +00:00
dfr
52b31c00bb Fix the AMD 751 AGP minidriver so that it works with my test code. 2000-06-10 17:44:53 +00:00
dfr
ab33dfac01 A driver for programming the AGP hardware. This is only very lightly
tested on Intel BX chipsets only. The other agp minidrivers are totally
untested.

The programming api is a subset of the Linux api and is only intended to
be enough for the X server to use. There is also an in-kernel api for the
use of other kernel modules such as the 3D DRI.
2000-06-09 16:04:30 +00:00
dfr
fe0cef0780 Nuke the useless chip driver. It gets in the way when you want to load
a functional driver for the device.
2000-06-09 16:00:29 +00:00
wpaul
1a139479c4 When I tweaked if_dc.c to alter the polling interval for non-MII
21143 chips, I accidentally removed the DC_MII_REDUCED_POLL flag
for all 21143 cards. This caused problems with timer-instigated
TCP retransmits, which happened to occur at the same time as an
MII poll tick on MII-based cards (e.g. D-Link DFE-570TX). Fixed this,
plus made some other cleanups. The autoneg fixes for the non-MII
cards still work. Also tested the PNIC II now that I have one again.
2000-06-07 17:07:44 +00:00
wpaul
0b1df3a8a2 - Call mii_pollstat() after we bring up the link on a 1000baseTX card
after autoneg so we make sure to set the link state and duplex mode
  correctly.
- Make sure to set the 'ignore pause frames' bit on the XMAC.
- Small linewrap fix.
2000-06-06 02:56:37 +00:00
wpaul
fbbc0a48e3 Rework the support for the internal autonegotiation on the 21143 and
workalike chips (Macronix 98713A/98715 and PNIC II). Timing is somewhat
critical: you need to bring the link as soon as possible after NWAY
is done, and the old one second polling interval was too long. Now
we poll every 10th of a second until NWAY completes (at which point
we return to the 1 second interval again to keep an eye on the link
state).

I tested all the other cards I had on hand to make sure I didn't bust
any of them and they seem to work (including the MII-based 21143 card).
This should fix some autoneg problems with DE500-BA cards and the
built-in 10/100 ethernet on some alpha systems.

(Now before anyone asks why I never noticed this before, the old code
worked just find with the Intel swich I used for testing back in NY.
Apparently not all switches are as picky about the timing.)
2000-05-31 05:40:53 +00:00
peter
eda3ab6536 Encapsulate the old PCI compatability support and APIs completely under
"options COMPAT_OLDPCI".  This option already existed, but now also tidies
up the declarations in #include <pci/pci*.h>.  It is amazing how much stuff
was using the old pre-FreeBSD 3.x names and going silently undetected.
2000-05-28 16:35:57 +00:00
peter
deeb13a8db Make this compile without depending on the FreeBSD 2.2 compatability
defines.
2000-05-28 16:31:35 +00:00
peter
488ea1ee27 Do not depend on FreeBSD 2.2 compatability defines.
s/PCI_MAP_REG_START/PCIR_MAPS/
2000-05-28 16:18:58 +00:00
peter
e86de1e77c Fix some leakage from inside #ifdef PCI_COMPAT (the FreeBSD 2.2 compat
stuff).
2000-05-28 16:17:18 +00:00
peter
be1e54079f Use the correct register name. s/PCI_COMMAND_STATUS_REG/PCIR_COMMAND/ 2000-05-28 16:13:43 +00:00
peter
41e3b1716f Use the correct name for the PCI command register (PCIR_COMMAND). Don't
use constant that used to be a variable in our (very) old pci code.
2000-05-28 16:06:56 +00:00
peter
f19e7c1acc Use the correct register names. s/PCI_COMMAND_STATUS_REG/PCIR_COMMAND/ 2000-05-28 16:02:05 +00:00
peter
ac0a007a38 ncr.c is no longer a COMPAT_OLDPCI device - remove the warning. 2000-05-28 10:45:06 +00:00