Commit Graph

3043 Commits

Author SHA1 Message Date
ad fba11cbab8 Handle aincent firmware as found on EISA/MCA boards. Untested. 2002-08-26 15:27:12 +00:00
itojun 9287c3fbb9 need to set wantinit variable 2002-08-26 07:38:34 +00:00
itojun 3931bcf3a3 suppress some of debugging output (IFF_DEBUG will re-enable it). PR 18069 2002-08-26 07:37:26 +00:00
bouyer 9ca1f94f72 Support Ultra/133 on promise controllers that can do it. 2002-08-25 17:26:58 +00:00
bouyer a9d165fd6a Correct setup for Ultra133 capable VIA chipsets, From Matthias Drochner
on current-users, with cross-check and some improvement from linux-2.4.19
and FreeBSD-current.
Also don't set the APO_UDMA_CLK66 bit for Ultra/100 capable chipset, and
support Ultra/133 for the VT8233A.
2002-08-25 17:25:33 +00:00
itojun a8b4aa9a72 #if 0 out call to rnd_add_uint32() in interrupt logic until thorpej
measures performance differences.
2002-08-23 16:30:10 +00:00
bouyer 0d17a940f8 Add support for HPT372. From sdegler@kashmir.degler.net in kern/17908,
with some improvement from me, and from FreeBSD.
2002-08-23 16:24:54 +00:00
bouyer 1a7bae9619 Add support for Promise Ultra133TX2 and Ultra133TX2v2, from FreeBSD and
stephen@degler.net in kern/17509.
2002-08-23 16:02:32 +00:00
bouyer ea9862cb62 Regen: Add Promise Ultra133TX2 and Ultra133TX2v2 PCI ID 2002-08-23 15:57:04 +00:00
bouyer f49156d31c Add Promise Ultra133TX2 and Ultra133TX2v2 PCI ID. 2002-08-23 15:56:30 +00:00
itojun e68a39d27b attach random number source. 2002-08-23 07:45:39 +00:00
augustss 7ad63025e4 Fix an error message. 2002-08-22 02:54:18 +00:00
itojun 7b0ecaee62 use RND_ENABLED() to avoid unneeded function call. should help if_gsip case. 2002-08-21 03:59:31 +00:00
itojun 76f65d83e3 attach random number source. 2002-08-20 00:35:46 +00:00
thorpej 3e3fdc01e9 * After testing for DD on a descriptor, and finding it clear,
sync that descriptor with PREREAD to make sure that it is evicted
  from the data cache.  From Allen Briggs.
* With the above bug fixed, stop using BUS_DMA_COHERENT, resulting in
  a fairly decent performance improvement on systems where BUS_DMA_COHERENT
  causes descriptors to be accessed uncached (most painful in wm_start()).
2002-08-17 20:58:04 +00:00
heinz 306c75457d regen 2002-08-16 15:08:08 +00:00
heinz fb31736257 Add Lucent/Agere FW322/323 IEEE 1394 controller 2002-08-16 15:03:02 +00:00
kent 4cb030f3b9 Fix division-by-zero when auich_set_params() is called before auich_calibrate(). 2002-08-16 11:22:13 +00:00
thorpej b9d86783bf * Hard-code EXTSR_1000XFDX|EXTSR_1000XHDX for reads of the MII_EXTSR
in the TBI case.
* Force BMSR_ANEG | BMSR_EXTCAP to be returned for reads of the MII_BMSR
  in the TBI case.
2002-08-16 07:10:56 +00:00
thorpej 00a0212e10 Update a comment; TCP/IP checksum offloading is fixed! 2002-08-15 18:35:25 +00:00
briggs 8d5eb3e93d On transmit, zero the upper 32 bits of the address in the tx descriptor.
The descriptor may have been used as as context descriptor in the past,
in which case this field will be non-zero.  h/w checksum offload works now.
2002-08-15 18:29:02 +00:00
mjacob 93ad4971f1 Various changes to allow for overriding just loopid and/or iid.
Fix a random 23XX ISR reading bug. Be chattier about HBA_BOTCH
errors. More f/w cashdump layering.
2002-08-12 21:33:39 +00:00
drochner 29c16c72fb -avoid lock leak in error case
-Free AGP memory on close, to avoid a memory leak in case
 the X server doesn't free it explicitely.
 (It appears that the X server never calls AGPIOC_DEALLOCATE.)
 Fixes PR kern/17869 by Emmanuel Dreyfus.
2002-08-11 12:40:47 +00:00
drochner ce5452e87b update the is_bound flag for local memory too 2002-08-11 12:36:21 +00:00
thorpej 1fa46f89f9 Preliminary support for the ten-bit interface on the DP83820. This
code needs more testing, and more bug fixing.
2002-08-10 22:57:15 +00:00
thorpej 5689818798 Don't treat the "reset complete" interrupts as errors. Doing so
causes us to go into a reset/interrupt/reset/... loop.
2002-08-10 22:54:54 +00:00
toshii 16a190bb23 Use UDMA/100 on SiS745 chipset. 2002-08-10 16:33:23 +00:00
toshii 7576c71257 Regen; added SiS745 host bridge. 2002-08-10 16:30:45 +00:00
toshii a4e64b08d4 Add SiS745 host bridge. 2002-08-10 16:26:14 +00:00
itojun 514ea24105 audit bitmask test mistake (s/&&/&/). from openbsd 2002-08-08 15:08:55 +00:00
drochner 681c8f675a regen 2002-08-08 09:57:21 +00:00
drochner fa4f52ebfd addanother ppb 2002-08-08 09:56:38 +00:00
thorpej 2b615e62c4 Add support for the new i82540, i82545, and i82546 Gig-E chips. The
i82546 chip has 2 Gig-E interfaces in a single chip.

The main difference is these chips have a special handshaking protocol
for accessing the EEPROM (due to the shared nature on the i82546).
2002-08-08 00:12:08 +00:00
kent 3898bab95a - Port clock calibration code (auich_calibrate) from ich.c of FreeBSD to solve
kern/16373.
- SiS 7012 support from kern/17716 submitted by Quentin Garnier.
- ICH4 support
- Experimental support for nForce MCP, AMD768 and AMD8111.
- Rename the short name for ICH3: "i830M" -> "ICH3"
2002-08-07 10:31:09 +00:00
simonb d436dc19f3 Fix a typo in a comment. 2002-08-07 04:53:18 +00:00
simonb fdfab8da56 Fix a typo in a comment. 2002-08-06 23:51:43 +00:00
augustss 61a3b5e422 Pull in tea5757.c for the mr driver. Fixes kern/17864. 2002-08-06 23:09:10 +00:00
kim 462f87e7fd Missing comma in aenfmt array initialization. 2002-08-06 20:47:44 +00:00
thorpej 82421f1fdb Regen; added ADI BECC product ID. 2002-08-04 21:47:58 +00:00
thorpej 4da9d49d31 Add product ID for the ADI i80200 Big Endian Companion Chip. 2002-08-04 21:47:25 +00:00
kent 78f533176c regen 2002-08-03 17:12:42 +00:00
kent dc268b4f91 Add the following:
- SiS 7012 AC-97 (kern/17716)
 - NVIDIA nForce MCP AC-97
 - AMD 8111 AC-97
2002-08-03 17:10:35 +00:00
soren f69878391e Regen. 2002-08-02 19:36:26 +00:00
soren 6d154bbd46 Add O2 Micro Cardbus bridge ID from PR kern/17469 by Nicolas Joly. 2002-08-02 19:35:43 +00:00
ad 22a1da8740 Regen. 2002-08-02 12:45:23 +00:00
ad 7416434a87 PR 17719 from Mark Davies: Additional Adaptec RAID controller types. 2002-08-02 12:44:42 +00:00
bouyer d9c216c219 Add Siig 20x 8 ports and and Oxford x952 cards. From Paul Shupak in kern/17790. 2002-08-02 10:40:30 +00:00
thorpej 0cb8f6797b Fix a typo which caused the wrong register to be updated when
the media is not full-duplex.
2002-08-02 01:12:32 +00:00
bouyer 8d3ed14056 Regen: remove duplicate entry for 82801DB_LPC. 2002-07-31 11:16:49 +00:00
bouyer 176bb1fe72 Ops, remove duplicate entry for 82801DB_LPC, pointed out by geoff wing. 2002-07-31 11:16:17 +00:00
bouyer 2362df5330 Add support for the 82801DB ICH4 IDE controller, from kern/17757 by
Andreas Wrede <andreas@planix.com>
2002-07-30 21:01:57 +00:00
bouyer 27198fbcab Regen: Add Intel 845G PCI IDs 2002-07-30 20:43:57 +00:00
bouyer 551aeaf8b3 Add Intel 845G PCI IDs, from kern/17743 by Andreas Wrede <andreas@planix.com> 2002-07-30 20:43:12 +00:00
augustss 2dce9e8e5e Number PCI busses using a simple pre-order numbering instead of
some strange binary split numbering that doesn't work with multiple
bridges on the same bus, nor with deeply nested bridges.
2002-07-30 15:00:03 +00:00
augustss 056f94ceb3 Regen. 2002-07-29 20:08:50 +00:00
augustss ef76dd6ed4 Add a couple of bridge devices. 2002-07-29 20:08:25 +00:00
christos 08ea4bc534 my card prints transmit aborted and then hangs. Let's try to reset it. 2002-07-28 15:41:00 +00:00
wiz 645df36eff Spell '[Rr]ight' correctly. From Jim Bernard. 2002-07-26 14:11:34 +00:00
onoe 46243dd61d Add support of Silicon Image 0680 Ultra ATA/133 ATA Controller.
It's ugly that all register values are written in numeric, but I can't
find any definition of the registers to be written in literal.
2002-07-26 10:23:30 +00:00
onoe 2354f208d4 regen: Add Silicon Image (CMDTECH) 0680 2002-07-26 10:17:21 +00:00
onoe f0f7c1edb7 Add Silicon Image (CMDTECH) 0680 2002-07-26 10:14:00 +00:00
bouyer 8e745944fe Ops, this had already been commited by cjs.
Still, call the controller ATA133, even though we use it at ATA100 for now ...
2002-07-22 20:56:57 +00:00
bouyer 5f47fb4861 Add VIA VT8233A support (at Ultra/100 until someone can test 133 for me).
From Ryo HAYASAKA, PR kern/17206.
2002-07-22 20:51:02 +00:00
msaitoh 5e26ad6017 add support intel C-ICH's embeded Ether MACs.
Tested on RadiSys Endura CH815C (http://www.radisys.com/)
2002-07-22 08:25:45 +00:00
msaitoh ef0884e4c6 regen 2002-07-22 07:48:48 +00:00
msaitoh b03baa8ea5 Add Intel 82801E Communications I/O Controller Hub (C-ICH) 2002-07-22 07:47:44 +00:00
uwe fee27e724f Add definitions of IGS coprocessor registers (not used yet).
Always init chip via I/O space.
Map only I/O registers we actually need.
Automatically detect if we need to do bswapping
Add (untested) code to use automagic bswap on CyberPro.
Report video memory amount.
Report if/how bswapping is done.
2002-07-21 02:56:35 +00:00
mjl 395027b4be Correct obviously switched args to memset() 2002-07-18 02:07:13 +00:00
bouyer a07c492369 Add missing BUS_DMA_NOWAIT to bus_dmamap_load_mbuf() calls. Should fix
port-alpha/17615.
2002-07-16 20:20:01 +00:00
drochner 8badbffa2f recognize a SMC9432BTX from PCI subsys id and tell the bus independant
backend that it bas a BNC port (just like the SMC9432BTX1)
2002-07-15 17:23:06 +00:00
thorpej 4616eedacf Document exactly what the problem with TCP/UDP checksum offloading is. 2002-07-14 01:34:00 +00:00
thorpej bc09351189 And thus spake the manual...
When initializing a TCP/IP context descriptor, even if a checksum
offload feature is not going to be used, the IPCSS and TUCSS fields
must be initialized.
2002-07-14 01:12:28 +00:00
thorpej 209a807d3d Correct the description of two bits in the TCP context descriptor. 2002-07-14 00:56:22 +00:00
thorpej 7ba40961d6 Add a BGE_QUIRK_CSUM_BROKEN quirk, and give it to BCM5700 B0, rather
than testing for the revision all over the driver.  If the chip has
broken checksums, then don't advertise the capability to the stack.
2002-07-13 22:48:40 +00:00
thorpej 0ff52204b9 Give BCM5700 Ax and Bx revs the BGE_QUIRK_LINK_STATE_BROKEN quirk,
and test for that, rather than checking revision where the quirk is
handled.
2002-07-13 22:31:18 +00:00
thorpej dcebb2bf0d Add a lookup table with ASIC revision, name, and any quirks. Print
ASIC revision at attach time.  Add BCM5703 revisions.
2002-07-13 22:21:20 +00:00
thorpej 7d85789f0a Move the BCM5401 DSP patch out of the bge driver and into
the brgphy driver; all users of the BCM5400 and BCM5401 need
the DSP patch and the sledgehammer-reset-at-media-set-time.

Also add a DSP patch for the BCM5411 gleaned from Apple's
GMAC driver for Darwin.

Tested with a 3Com 3c996-T (BCM5700 + BCM5401).
2002-07-13 01:23:27 +00:00
enami f216ec52a0 Match Altima AC1001. 2002-07-12 22:29:14 +00:00
enami 2bb480867f Regen. 2002-07-12 22:27:55 +00:00
enami d5138d122f Add product id of Altima AC1001. 2002-07-12 22:26:32 +00:00
thorpej 37422dde7e Add 64-bit quirk for the Accton EN1407-T/Planex GN-1000TE. IDs provided
by SAITOH Masanobu <msaitoh@netbsd.org>.
2002-07-11 18:07:56 +00:00
christos bdd3768afd Add missing messages from FreeBSD's driver. Re-organize a bit how the
message is formatted and printed.
2002-07-10 15:37:30 +00:00
matt e8598c806f Match Apple GMAC id #3. 2002-07-09 23:57:59 +00:00
matt f695a73e85 Regen. 2002-07-09 23:50:29 +00:00
matt f3076f3bd7 Add Apple Xserve PCI devices (more UniNorth) stuff. 2002-07-09 23:47:45 +00:00
thorpej baecca774e * Shuffle the TODO list a bit.
* Fix outbound IPv4 header checksums (missing add of an offset).
* When enabling Rx TCP/UDP checksum offload, make sure that IPv4
  header checksum Rx offload is enabled on the chip, as well.
2002-07-09 21:05:03 +00:00
thorpej 77ef1df52c Don't use internal names to identify chips. Add types for the
i82540, i82545, and i82546 (but don't match them yet).
2002-07-09 19:47:46 +00:00
thorpej 511c4a1947 Regen:
Clean up Intel i8254x product names, and add i82540, i82545, and i82546
product IDs.
2002-07-09 19:43:57 +00:00
thorpej e62cf5409d Clean up Intel i8254x product names, and add i82540, i82545, and i82546
product IDs.
2002-07-09 19:43:03 +00:00
thorpej 297ae331d6 Make a few performance tweaks:
* Bump the number of Rx descriptors from 128 to 256.
* Don't use a sliding Tx interrupt window.  Instead, just do reap-behind
  when we have <= 1/8 of our available descriptors in wm_start().
* Don't use Tx Queue Empty interrupts, and always set the Tx Interrupt
  Delay bit in the Tx descriptor.
* In wm_intr(), always call wm_rxintr() and wm_txintr(), regardless of
  their respective ISR bits being set.  We're here, might as well do some
  work.
* Adjust the Tx and Rx interrupt delay timer values.  New values from
  Intel's driver for FreeBSD via Allen Briggs.

With these changes, NetBSD can sustain > 900Mb/s userland to userland
*without* using TCP checksum offload using Intel PRO/1000 XT cards.
2002-07-09 14:52:37 +00:00
drochner 32f7789dd7 there is at least one VGA chip (Silicon Motion Lynx EM+) where fast scrolling
by moving the display offset pointer doesn't work
2002-07-08 19:48:37 +00:00
augustss c1367622d6 Regen. 2002-07-07 19:49:09 +00:00
augustss 5fba395c90 Add some Sandburst products. 2002-07-07 19:48:41 +00:00
enami c7d782764a Add an entry for Avlab Technology, Inc. Low Profile PCI 4 Serial (in Japan,
sold by Kuroutoshikou as SERIAL4P-LPPCI.)
2002-07-05 14:10:32 +00:00
enami 76899eae10 Regen. 2002-07-05 14:03:33 +00:00
enami d2235ed345 Add vendor id of Avlab technology, Inc. and product id of Low Profile PCI
4 Serial (but not used actually).
2002-07-05 13:59:14 +00:00
thorpej 6a5e35f6cc Return 0, not NULL, when we mean 0. 2002-07-05 00:16:26 +00:00
rjs 048edd40f2 Regenerate. 2002-07-04 21:00:32 +00:00
rjs e97486826e Add Peak System Technik CAN Controller. 2002-07-04 20:51:35 +00:00
junyoung 3d826105dc alloc_attr -> allocattr
Approved by Matthias Drochner.
2002-07-04 14:37:10 +00:00
gson 63dd492c1a Mask MCCB interrupts since they are not currently handled
and it is not clear how they should be handled.  Fixes
kern/17071.
2002-07-04 02:20:22 +00:00
msaitoh 37c7dda3e2 regen 2002-07-03 16:51:36 +00:00
msaitoh e8a90d330f add ServerWorks CMIC LE, CMIC SL and CIOB-X2 2002-07-03 16:51:02 +00:00
drochner 8ae04c4b2c consider all ATI cards broken wrt font handling, as suggested by
Bang Jun-Young <junyoung@mogua.com>, but do it in way which allows
single cards to be declared O.K. in case we find one
2002-07-02 18:17:30 +00:00
thorpej 7ff40c446d Fix multicast filter programming. 2002-07-01 22:42:47 +00:00
thorpej 2555837833 Also save/restore the PCI_INTERRUPT_REG. 2002-07-01 16:15:35 +00:00
thorpej 8eb0145183 Add a table of known-64-bit DP83820-based cards. Use this table
to enable 64-bit data transfers on 64-bit cards when plugged into
a 64-bit slot.  Right know the Asante GigaNIX is listed in that
table.

Sigh, there is an EEPROM bit that can be used to detect 64-bit vs
32-bit cards.  Unfortunately, at least 2 vendors of 32-bit cards
fail to clear the "DATA64_EN" bit in the EEPROM, which causes the
card to lose badly, because it still manages to detect that it's
plugged into a 64-bit PCI slot.  Yay, stupid hardware vendors.
2002-06-30 20:36:06 +00:00
thorpej 145fa4de8a Load configuration data from the EEPROM on the DP83820 differently: rather
than grovel the EEPROM directly, initiate an "EEPROM load" in the PCI
test register, and fetch the values from the CFG register.
2002-06-30 20:04:43 +00:00
thorpej b77065a9a2 Update the TODO list: We have some Tx interrupt mitigation now, so
we need to do Rx interrupt mitigation next.
2002-06-30 19:13:46 +00:00
thorpej c9983ba67f Be more aggressive in giving descriptors to the chip in the transmit
path: Instead of waiting for the if_snd queue to be drained before
giving ownership of the frist descriptor to the chip, do it after
sync'ing all the descriptors for a single packet.
2002-06-30 19:11:40 +00:00
thorpej 6caa2f6db1 Implement a sliding interrupt delay window for Tx interrupts. 2002-06-30 18:52:21 +00:00
thorpej 0f2cbd0361 * Give symbolic names to the CFG bits in the EEPROM.
* Get CFG_M64ADDR, CFG_T64ADDR, and CFG_DATA64_EN from the EEPROM.
  Note, we still disable CFG_M64ADDR and CFG_T64ADDR later (XXX need
  PCI bus capability flags for these).
* Print a message if we're in a 64-bit slot and 64-bit data is
  disabled in the EEPROM.  Make sure CFG_DATA64_EN is disabled if
  we're not in a 64-bit slot.
2002-06-30 18:04:12 +00:00
drochner 9b3975fd12 clean up font handling:
-treat the builtin font like any other font at runtime
-for that, copy it to malloc()'d memory during attach()
-in early console initialization, if we have to consider a broken card
 (VGA_CONSOLE_ATI_BROKEN_FONTSEL), copy the builtin font to another
 location in font ram; the attach() code will do the rest
put the "quirk" code into effect again
2002-06-28 22:24:11 +00:00
thorpej 969b2f1817 Fix a comment. 2002-06-28 18:46:46 +00:00
thorpej 9066ce1621 When stopping the various functional blocks of the chip, clear the
bit and then read it back in a loop (with appropriate delays) waiting
for it to read back clear.

This fixes a problem where the bus would hang when bringing down
the interface or changing interface flags on a system with a
sufficiently fast CPU (e.g. 2GHz P4 Xeon).
2002-06-28 18:44:45 +00:00
fvdl 50ade28e9b Rearrange alignment code a bit. 2002-06-28 18:39:45 +00:00
thorpej 6abec8e2a2 Increase previously added delays from 2us to 10us. 2002-06-28 01:10:06 +00:00
thorpej 90bf67b885 * Only set the jumbo frame capability if we are able to allocate
jumbo frame buffers.
* Garbage-collect some stuff we don't need.
* Fix timeout detection in the firmware handshake.
2002-06-28 00:55:20 +00:00
thorpej 7778c16e7c Use a table to match BCM570x products. 2002-06-27 23:56:20 +00:00
thorpej b7af161065 Don't call m_aux_find() in the inner loop when creating the Tx
descriptor list.  Instead, call it once and remember the result,
and only call it looking for VLAN tags if VLANs are configured
on the interface.
2002-06-27 23:21:34 +00:00
thorpej 68be8ecae4 Put some delay in the loops that poll for MII transaction
completion.  Without this, reading the PHY can hang the bus
on a sufficiently fast CPU.
2002-06-27 22:31:30 +00:00
fvdl 8a454b46d0 Disable TCP/UDP checksums on the receive side again. 2002-06-27 22:10:11 +00:00
drochner 3825b247fb Only allow the bus_dmamem_alloc() code to sleep if no physically contigous
pages are insisted in.
Atm, the pglistalloc code does the same automatically, but this might change.
2002-06-27 18:37:10 +00:00
pooka 48e1ffa97b regen 2002-06-27 09:52:53 +00:00
pooka 107e651a5f two AVM isdn interfaces 2002-06-27 09:50:06 +00:00
junyoung 75cfc612c3 Whitespace KNF. 2002-06-27 06:44:17 +00:00
junyoung 754342aeb8 - Work around a hardware bug that loaded fonts don't work, which is
found on many (all?) of PCI-based ATI graphics cards. It is fully optional
  and can be enabled by adding `options VGA_CONSOLE_ATI_BROKEN_FONTSEL'
  to config file.
- Temporarily remove `quirk' mechanism. Similar code already exists
  in pci_quirks.c.
2002-06-27 06:26:51 +00:00
briggs bea68a808c Change a 'continue' to a 'break' in switch configuring 64-bit devices.
Add a little more debugging code.
2002-06-27 00:59:21 +00:00
cjs 6f2291b427 Match newer NetGear GA302T cards. 2002-06-26 10:48:18 +00:00
cjs f4ba5fb7fc Regenerate. 2002-06-26 10:09:16 +00:00
cjs c3d906554c Add Altima AC9100 Gigabit Ethernet ID. This may not be the correct name.
However, it's the chip on the NetGear GA302T card.
2002-06-26 10:03:58 +00:00
cjs 79a06f07ff Regenerate. 2002-06-26 09:42:44 +00:00
cjs 0ef3b7e33b Add a couple more TI IEEE 1394 host controllers. 2002-06-26 09:33:50 +00:00
drochner f9d6718ab9 allow to overwrite the builtin VGA font if necessary,
make the number of available font slots variable,
set up a "quirk" mechanism to tell the generic vga code about crippled
VGA adapters which ignore the "fontsel" TS register,
initiate the quirk table with an ATI chip which happened to be on a board
I tested with.
Afaik quite a number of ATI chips suffers from the "loaded fonts don't
work" problem - these should be added.
Bad side effect of my change: The builtin font will be kicked out
always if a VGA_CONSOLE_SCREENTYPE is specified which needs a loaded
font. In early console initialization, we don't know much about the
graphics card, so we have to assume the worst (ie ATI:-).
2002-06-25 21:07:42 +00:00
bouyer b2533a4c3e Typo fix 2002-06-24 16:55:17 +00:00
fvdl dd96b79d02 According to the Linux driver from Broadcom, only the 5700 B0 revision had
rx checksum problems. So only disable rx checksum for that revision.
2002-06-24 01:23:11 +00:00
fvdl 4f75cebd06 Add a few revision definitions. 2002-06-24 01:21:39 +00:00
fvdl 34e950c569 Add files for bge at pci attachment. 2002-06-23 20:36:26 +00:00
fvdl b04a6fd69c Driver for Broadcom 570x / Altima AC 1000 gigabit ethernet cards.
Written by Bill Paul for FreeBSD. This port started out with the
port done to OpenBSD by nate@openbsd.org, but ended up looking much
more like the port of the ti driver done by drochner@netbsd.org
(they are similar in structure).
2002-06-22 14:42:07 +00:00
fvdl 5ae59ad64f Regenerate. 2002-06-22 14:34:49 +00:00
fvdl 1ebb22d9a9 Add Altima PCI Ids. 2002-06-22 14:33:54 +00:00
cjs 36a14b7037 Regenerate. 2002-06-22 08:09:07 +00:00
cjs f9218e5010 Match PCI IDs of new PRO/100 chips. 2002-06-22 08:09:06 +00:00
cjs 8cf88171bf For new Intel network controllers, update descriptions and fix numbering. 2002-06-22 07:59:09 +00:00
cjs b24b9d00d6 Add new Intel Ethernet cards. 2002-06-22 07:40:59 +00:00
thorpej f7fc307366 Regenerate: Add product ID for Intel 82452KX/GX PCI-Host bridge. 2002-06-21 15:56:44 +00:00
thorpej 794412d052 Add product ID for Intel 82452KX/GX PCI-Host bridge.
PR 17353, from MOCHIDA Shuji.
2002-06-21 15:55:52 +00:00
itojun 92cb1aaac7 more proper fix to ex_disable. 2002-06-20 23:47:25 +00:00
itojun 8b835b91d2 make it compile (ex_disable).
not sure if it is 100% right.
2002-06-20 23:38:47 +00:00
itojun 6dc6d89865 minor KNF 2002-06-20 23:02:06 +00:00
thorpej cba89d9d80 If the chip supports ACPI power management:
* Go to D3 if IFF_UP == 0.
* Go to D0 if IFF_UP == 1.

Saves battery life on my T21, mmm.
2002-06-20 20:17:04 +00:00
tshiozak fe6f56bfb7 add support for the per-device power management capability.
int pci_set_powerstate(pci_chipset_tag_t pc, pcitag_t tag, int newstate)
	set power state of the device to newstate.
int pci_get_powerstate(pci_chipset_tag_t pc, pcitag_t tag)
	get current power state of the device.

In the future, these functions will be used for ACPI support.
2002-06-18 13:18:37 +00:00
jdolecek 1d64dfa199 regen:
add VIA Technologies VT8653 and VT8633 entries
move VT82C686A_MC97 entry to where it numerically belongs
2002-06-17 14:08:25 +00:00
jdolecek 8a8c3e3040 add VIA Technologies VT8653 and VT8633 entries
move VT82C686A_MC97 entry to where it numerically belongs
2002-06-17 14:07:14 +00:00
mjacob f76122c26b Make all 23XX cards 'touched'. We seem to, too often, hang when trying
to run ABOUT FIRMWARE at the first isp_reset call. We *do* check for
the registers being set with values which would tell us if there's
firmware running or not- but this seems to not always work. It's not
essential, so move on.
2002-06-15 00:11:36 +00:00
thorpej 05c37016cb Map the device's memory space with BUS_SPACE_MAP_LINEAR, since we
need to be able to access it as such.

Fixes kern/17114.
2002-06-14 15:15:23 +00:00
someya f4076c7aff Make the yds driver work on big-endian systems. 2002-06-10 16:58:57 +00:00
cjs a8056945a4 Recognise the VT8233A ATA100 controller and use Ultra-DMA mode 5 with it. 2002-06-10 08:41:11 +00:00
cjs d4dfe8676c Regenerate. 2002-06-10 08:38:27 +00:00
cjs 405914fc9b Add Viatech VT8233A PCI-ISA Bridge. 2002-06-10 08:30:29 +00:00
taca 3fff4029d4 Add support for VIA Technologies's VT8231 IDE Controller to ATA/100. 2002-06-09 16:52:26 +00:00
taca 800e08ba3b Regen. 2002-06-09 16:51:32 +00:00
taca 5a33c71fcc Add VIA Technologies's VT8231 IDE Controller. 2002-06-09 16:50:51 +00:00
bouyer 8305da0e8f Ops, use the proper setup_channel() function for promise adapters.
Using pdc202xx_setup_channel() for PDC20268 and newer is wrong, and will
cause trap trying to read from a non-existent register on some arches
(e.g. macppc).
pointed out by Makoto Fujiwara on port-macppc.
2002-06-08 17:54:59 +00:00
yamt 310e66f3c9 make an auto const variable static. 2002-06-08 17:10:02 +00:00
bouyer 10f940facc STE_CarrierSenseErrors is 8bit wide, not 16bit.
Reenable statistics interrupts, reading it as 16bit caused it to not be cleared,and thus the eventual interrupt to not be cleared (and this caused an
infinite loop in interrupt routine).
While I'm there count STE_CarrierSenseErrors as oerror (this is incremented
each time we try to send a packet and the link is down).
2002-06-05 16:27:29 +00:00
bouyer aad58d87e1 Rework transmit underrun logic:
- when a transmit underrun occurs, only reset the transmit logic. This prevents
  the link from going down at the MII level (the same logic can probably
  be used for other transmit errors)
- set the urgent threshold to half the start threshold. From experiments
  this helps a bit decreasing the number of underruns

Now that underruns don't cause the interface to stop for several seconds,
make back out the default transmit threshold to 128.
2002-06-05 15:24:31 +00:00
fvdl 96858fc8b7 AMD 8111 DMA support. 2002-06-04 08:58:20 +00:00
fvdl b76668d455 Regen. 2002-06-04 08:57:48 +00:00
fvdl c094984a55 Add AMD 8111 IDE id. 2002-06-04 08:53:47 +00:00
briggs ea51e618d6 Regen. for MPC8245 host bridge. 2002-06-03 19:53:37 +00:00
briggs 9e338db415 Add Motorola's MPC8245 (Kahlua II) host bridge. 2002-06-03 19:52:18 +00:00
seb 2c69553625 Support Titan PCI-800L, a 8 serial puc card, from PR 17140.
Reviewed/approved by veego@ and martin@.
2002-06-02 18:43:27 +00:00
seb c5ad00acc6 regen for Titan PCI-800L. 2002-06-02 18:37:25 +00:00
jmcneill 419bcc2917 Fix the mixer controls to work a bit better. 2002-06-02 18:33:06 +00:00
seb 491c3ef8b6 Add product Titan PCI-800L aka VSCom PCI-800L, a 8 serial puc card, from PR
17140.
Reviewed/approved by veego@ and martin@.
2002-06-02 18:32:11 +00:00
enami 461e42e9ef Collect random number from AMD 768MPX power management controller. 2002-06-02 02:44:27 +00:00
lukem 06de426449 SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field).  whilst it's O(n),
  this mirrors the functionality of SLIST_REMOVE() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
  this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups
2002-06-01 23:50:52 +00:00
bouyer 10813a14bc Remove the "set south-bridge's enable bit" code. It doens't seems to make
any difference for rev 0xc3 controllers, and hang on 0xc4 controllers.
Fixes kern/16954
2002-06-01 18:07:42 +00:00
bouyer dc66b51bca When the chip gets a transmit underrun, the driver resets the chip, which
cause the link to go down for several seconds on my Dlink DFE580-TX (quad-port
DL1002). This behavior is unacceptable, especially as the driver usually
gets several underrun at once, causing the link to be almost unaviable
for several 10s of seconds.
Bump the default transmit threshold to 1504 bytes to avoid transmit underrun.
2002-06-01 17:24:38 +00:00
bouyer 208589bfca On a Dlink DFE580-TX (DL-1002), attempting to transmit packets while the link
is down cause the chip to create an IE_UpdateStats condition which can't be
cleared, causing the driver to enter an interrupt loop.
Workaround: mask IE_UpdateStats
2002-06-01 17:20:13 +00:00
simonb 42669ab3a4 Add "__attribute__((__unused__))" to hpt374_pio, hpt374_dma and hpt374_udma. 2002-06-01 12:47:20 +00:00
thorpej dd82a277b7 * Add __unused___ to lmc_system_errors, since it is not used by
everything which includes if_lmcvar.h.
* #if 0 lmc_status_bits, since it's not used by anything.
2002-05-31 17:53:03 +00:00
mycroft 5ca56020c7 Patch the CLKRUN enable bit on ToPIC chips. 2002-05-31 13:34:03 +00:00
augustss 22023c8988 Some casts in printf(). 2002-05-31 10:54:34 +00:00
haya a7937db203 Add comment. 2002-05-31 09:54:52 +00:00
someya 153f04daa9 Fix playback problem on SiS7018.
- mute the volume for interrupt channel
 - add some improvements for device initialization

but recording does not work properly.

Reported and tested by Jan Wagner <waja@cyconet.org>. Thanks.
2002-05-30 17:04:13 +00:00
drochner 34c0afbf8d implement a check whether a BAR is present at all at a given configuration
space address and use it where the mappings of the VGA card are registered
before descenting too deep into "memory" type specific code
(pci_mem_find() gets noisy if it doesn't like the register)
2002-05-30 12:06:43 +00:00
bouyer ec89a92254 When testing for a void region, use PCI_MAPREG_MEM_SIZE() for 32bit memaddr.
If the 32bit mask read is 0, wmask will be 0xffffffff00000000, and
PCI_MAPREG_MEM64_SIZE() won't make this 0.
2002-05-29 14:57:36 +00:00
tron e10511905f Set initial transmit drain threshold to 1504 to avoid the problem
described in PR kern/16070. Change approved by Jason Thorpe.

XXX We'll should try to find a better adaptive scheme for the next
    NetBSD release.
2002-05-28 20:20:49 +00:00
christos c5e4481063 regen 2002-05-28 17:46:24 +00:00
christos 6ce1fe0564 add action tec 2002-05-28 17:46:10 +00:00
tron 30e983a763 Regen from "pcidevs". 2002-05-28 17:08:57 +00:00
tron e3e9ac1e64 Add entries for Intel i850 and i860 chipsets. 2002-05-28 17:08:19 +00:00
drochner 9936deaa92 regen 2002-05-27 08:52:36 +00:00
drochner 67d163e234 add one more of our own products 2002-05-27 08:52:13 +00:00
ichiro fdb6b41ec7 regen 2002-05-25 07:32:25 +00:00
ichiro 407f8f5b2c add 21555 Non-Transparent PCI-PCI Bridge 2002-05-25 07:28:15 +00:00
christos 7db182d94d NBPG is not constant on the sparc, so don't use CPP tricks. 2002-05-24 18:10:06 +00:00
christos 0c5fed7eec Deal with the NBPG problem in a better way. 2002-05-24 15:58:06 +00:00
lukem 36bbd51aa2 Support NetMos NM9845 Quad UART and 1284 Printer port.
All 4 serial ports and parallel port seem to work.
2002-05-24 12:07:46 +00:00
lukem 863d1b7956 regen for NetMos Quad UART and 1284 Printer port 2002-05-24 11:54:22 +00:00
lukem ed8833bc78 add NetMos Quad UART and 1284 Printer port 2002-05-24 11:50:20 +00:00
wiz f7d76b1062 bcmp -> memcmp. 2002-05-22 16:03:14 +00:00
matt 077fee836c Add code to distinguish between apple and sun gem cores. 2002-05-21 19:58:24 +00:00
martin 2fe85a6623 Uniformly pass a "struct isdn_l3_driver *" through layer 2, so we
do not have to search for that driver later while we already knew it
at layer 1.
2002-05-21 10:31:10 +00:00
bouyer 953ad0720e Add support for HPT374. Submited by Matthew Rezny in kern/16897, with
minor adjustements by me.
2002-05-19 17:40:46 +00:00
bouyer 5cf2b73fb8 Regen: add HPT372 and 74 PCI IDE controllers. 2002-05-19 16:02:44 +00:00
bouyer 503b19427a Add HPT372 and 74 PCI IDE controllers. 2002-05-19 16:00:19 +00:00
sommerfeld 404be58a8d Regen 2002-05-19 00:19:22 +00:00
sommerfeld 889b8b80d2 Some E7500 device ids 2002-05-19 00:17:34 +00:00
sommerfeld d7135de9ea Regen 2002-05-19 00:01:29 +00:00
sommerfeld 11aa3c6a28 Fortunately for us, all interrupt controllers are not 8259's 2002-05-19 00:01:09 +00:00
sommerfeld 60cfb93a0f Some P64H2 device ids 2002-05-18 23:58:00 +00:00
sommerfeld ce6cc5672c Add "pa_rawintrpin" containing unswizzled interrupt pin to pci_attach_args. 2002-05-18 21:40:41 +00:00
ad d7e512df18 - Use write barriers.
- NBPG -> PAGE_SIZE.
2002-05-18 20:59:20 +00:00
sommerfeld 314ef13c23 In pci_probe_device(), correct test for whether the device is behind a
pci-pci bridge (and thus needs its interrupts "swizzled").

Formerly, pci_probe_device() assumed pci busses other than bus zero
were bridged; however, much recent x86 hardware supports multiple
primary pci busses differently -- there is a system-wide bus numbering
scheme.  Now, we instead look at the (newly introduced) sc_bridgetag
value in the parent bus to figure out if there's a ppb or equivalent
in the way.

This fixed at least one case where the i386 MP branch gets interrupt
mapping wrong.
2002-05-18 18:14:11 +00:00
matt 77820698c6 Add lfmiop (LSILogic Fusion-MPT I/O Processor) placeholders for
driver to added latter.
2002-05-18 07:23:04 +00:00
matt cad72c184d Regen. 2002-05-18 07:19:41 +00:00
matt 01b871fa50 Add SYMBIOS FC9[12]9 and 1030R 2002-05-18 07:19:16 +00:00
mjacob c3514c8f6d Slight touchup on last change- make sure HBA_BOTCH is set (just in case
somebody at a different level does the wrong thing) on ENOMEM/EAGAIN returns
from loading DMA.
2002-05-17 19:05:08 +00:00
thorpej 86b4df33e7 Make sure pa.pa_bus is initialized. (Thanks, uwe!) 2002-05-16 01:03:05 +00:00
thorpej 204183c0fa * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses.  For busses behind a bridge, it points to
  a persistent copy of the bridge's pcitag_t.  This can be very useful
  for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
  uses OFW device nodes to enumerate the bus.  When a PCI bus that is
  behind a bridge is attached, pci_attach_hook() allocates a new PCI
  chipset tag for the new bus and sets it's "curnode" to the OFW node
  of the bridge.  This is used as a starting point when enumerating
  that bus.  Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
2002-05-16 01:01:28 +00:00
thorpej dada8613e1 Let machine-dependent code specify how to enumerate the bus.
Currently, everyone uses pci_enumerate_bus_generic().
2002-05-15 19:23:51 +00:00
thorpej 40116f53dd Put back __PCI_BUS_DEVORDER for now. 2002-05-15 18:39:47 +00:00
thorpej 7c86eb62bc Split the code that enumerates the PCI bus and that actually probes
for a device into two functions:

* pci_probe_device() actually probes/attaches the device specified
  by the provide pcitag_t.

* pci_enumerate_bus() enumerates the bus, and calls pci_probe_device()
  for each device on the bus.  A pci_enumerate_bus_generic() is provided
  which implements the old method of doing this: If something found at
  dev0/func0, determine number of functions and probe each one.

  Machine-dependent code will be able to specify the bus enumeration
  routine in the future.
2002-05-15 18:13:00 +00:00
augustss b058cf77d2 Adapt to new bridge name. 2002-05-15 14:15:17 +00:00
augustss 437ddd4f05 Regen. 2002-05-15 14:14:57 +00:00
augustss 5919cbff85 Give a more suitable name to the DEC 21554 bridge. 2002-05-15 14:14:34 +00:00
simonb ee3ab87335 Print some error messages when the codec fails to initialise (some errors
were already reported, others weren't).
Sprinkle some KNF around.
2002-05-15 09:55:45 +00:00
augustss 14389c7b50 Regen. 2002-05-14 12:05:35 +00:00
augustss 72d8d32c1d Add a Heuricon host bridge. 2002-05-14 12:05:13 +00:00
hannken 616dac6232 Add support for NetMos NM9805 1284 Printer port.
Tested by David Kwok <dkwok@iware.com.au>.
2002-05-13 09:19:57 +00:00
matt 403b0fdb73 If a dma map can't be loaded due to resource shortage, make we report that
as a resource shortage instead of a driver stuffup.
2002-05-12 16:51:06 +00:00
matt 48d39d805c Print out interrupt we attached to. 2002-05-09 20:20:18 +00:00
thorpej 3e669d3bca * Increase the number of Tx job queue entries from 32 to 64.
* Garbage-collect some unused stuff.
* Make the Tx window slide along the Tx job queue space, not the
  Tx descriptor space.  We are more likely to run low on DMA maps
  than we are hardware descriptors.
2002-05-09 01:00:12 +00:00
matt 983a0a0749 LMC_CTL_LEN1 and LMC_CTL_LEN2 extracted each other's fields. Stop doing
that.
2002-05-09 00:58:45 +00:00
thorpej 3ce23a4ac6 * Instrument the number of times we force a Tx interrupt.
* When forcing an interrupt, make sure that interrupt-delay-enable is
  cleared (necessary with last change to make sure it's set for all
  descriptors).
* Crank up the Transmit Interrupt Delay Value to 1024 * 1.024 msec.  We
  really want these to be deferred.
2002-05-09 00:41:06 +00:00
thorpej 88f6c3663b Don't set WTX_TCPIP_CMD_TCP or WTX_TCPIP_CMD_IP in the TCP/IP context
descriptor.  Those are apparently only valid if using the Cordova's
"segmentation offload" feature.
2002-05-08 21:43:10 +00:00
thorpej d680cf3220 * Make sure the interrupt-delay bit gets set on ALL descriptors,
except for the one we want to force a Tx interrupt.
* Tweak the Tx descriptor accounting a little.
2002-05-08 21:22:20 +00:00
thorpej 3992641218 Implement a cache for the outbound IP/TCP/UDP checksum offload
context.
2002-05-08 19:00:27 +00:00
thorpej 935179d022 * Account for the descriptor consumed by the Tx checksum offload
context setup.
* Implement Matt Thomas's sliding Tx interrupt window algorithm,
  forcing an interrupt when the Tx desc list is 2/3 consumed.
* Use the Report Packet Sent interrupt, rather than Report Status,
  since we use the Tx descriptor to count Tx errors.
2002-05-08 17:53:28 +00:00
bouyer 3dc7dba078 It seems that the 1010-33 has a bug: it sometimes generate spurious SCSI gross
errors for narrow transfers after a reselect. FreeBSD sym driver has a comment
about this, but their workaround (disable SCSI gross error reports) doesn't
work for me. Instead dissallow disconnect if the target is not wide
(FreeBSD doens't allow disconnect until the target has been fully probed, which
is why they may not have noticed my problem).
2002-05-04 18:11:06 +00:00
nathanw f9de3e788b Make pci_conf_print() dump the device-dependent header in userspace, too. 2002-05-03 16:08:36 +00:00
drochner 3c9ad6abb6 make the LEDs work with both channels active, some cleanup and
simplification
2002-05-03 14:12:59 +00:00
augustss dd51b8be28 Regen. 2002-05-03 12:46:41 +00:00
augustss a7586eb6dc Add Sandburst. 2002-05-03 12:46:11 +00:00
thorpej a487a4b57a Bump the number of Tx DMA segments from 8 to 16 (the zero-copy socket
code sometimes sees more than 8).
2002-05-03 00:18:31 +00:00
thorpej 317ab784d9 Bump the number of Tx DMA segments from 8 to 16 (the zero-copy socket
code sometimes sees more than 8).
2002-05-03 00:07:02 +00:00
thorpej 84fbb01984 Fix a comment. 2002-05-02 16:34:47 +00:00