Commit Graph

3071 Commits

Author SHA1 Message Date
mycroft 06c9e05c76 Oof, this driver needs a lot more work to support 16 targets. 2002-09-24 13:29:44 +00:00
ad d5a6fc237b Deal with the strange SCC wiring on TC IOASIC machines. Thanks to Bill
Studenmund and Jonathan Stone for useful comments.
2002-09-24 13:23:31 +00:00
bsh 63422177a6 make this compile again on ports that don't have bus space stream methods. 2002-09-24 02:30:15 +00:00
thorpej 4f4dc45bbb Jumbo patch, from David Young <dyoung@ojctech.com>, with small tweaks
by me:
* Speed up reading/writing buffers from the hardware by avoiding
  slow forward seeks.  In preparation to use the optimization, do
  not read overlapping bytes.  This is currently disabled, but can
  be enabled with OPTIMIZE_RW_DATA.
* Hand 802.11 and Prism-specific frames to BPF.  User can watch these
  frames by specifying an alternate DLT to e.g. tcpdump(8).
* Add support for SIOC[SG]80211BSSID and SIOC[SG]80211CHANNEL.
* Issue join requests and track join/create state through link-status
  notifications.
* Split wi_rxeof into separate routines for receiving Ethernet II,
  802.11 data, and 802.11 management frames.
* Bug fix: Account for aligning m_data to a word boundary in the Rx
  buffer size check.
* Bug fix: Check for LLC/SNAP even if the firmware tells us the frame
  is Ethernet II, as the firmware sometimes gets this wrong.
* Process as many events as possible when we get an interrupt, using
  a simple heuristic to avoid reprocessing an event (which can have
  bad side-effects).  Clamp the time spent in the interrupt handler
  to 4ms.
* Redo the timeout loops to be consistent and less prone to error.
* Add delays to timeout loops which were missing them, so that a
  fast CPU won't win the race.
* Borrow some timeout loop values from the linux-wlan-ng driver,
  which seems to reflect a high level of clue (due to direct support
  from Intersil).
* Get rid of silly wi_read_data(..., len + 2) idiom; simply round up
  in wi_read_data() and wi_write_data().  Also, protect against a
  length of 0.
* Name some frequently-used constants.  Correct spelling.  Other style nits.
* Bug fix: On Prism, set Create IBSS register to 0 *always*.  The meaning
  of Create IBSS == 1 is join an IBSS or *ESS*, and we do not want to
  join an ESS, because that would put us in an inconsistent state.  0
  is the right value for Prism.
* Bug fix: Clean up state at the top of wi_init(), in the event that
  we don't reach the bottom.
* Simplify wi_start() by always providing an RFC1042-encoded 802.11
  frame to the firmware.
* Larval powersave support for HostAP mode, enabled by WI_HOSTAP_POWERSAVE.
* Bug fix: Call wi_stop() from wi_shutdown().
* Bug fix: sync media options with HostAP mode in wi_sync_media().
* In wi_media_status(), inquire firmware for current media state if
  media == auto.  From FreeBSD.
* Clean up the way buffer lengths are computed by using pointer
  arithmetic rather than magic constants.
* Swap the order of comparisons in addr_cmp() for speed.
* Bug fix: Send ReAssoc Response instead of Assoc Response to a
  ReAssoc Request.
* Bug fix: Copy SSID using the correct size.
* Give more meaningful names to offsets in a wi_frame.
* Bug fix: Assign the right values to the named constants for
  Rx frame encoding.
* Get rid of useless SNAP constants.
2002-09-23 14:31:27 +00:00
chs cc28b18bbb don't print anything when attaching as part of a FAS.
it doesn't add any information and it messes up the autoconf output.
2002-09-23 04:57:59 +00:00
itojun 8e89eeb639 missing include - sys/conf.h 2002-09-23 03:20:51 +00:00
mycroft b200651116 Tell the scsibus layer we have 16 targets on the FAS366. 2002-09-22 19:05:11 +00:00
ad 25441c6b4a - Fix a command accounting bug.
- Don't use ID 0, since 1.x firmware may not like it.
2002-09-22 18:59:00 +00:00
thorpej 620a647b60 For the 21142/21143 internal Nway, only advertise/resolve media for
which we have SROM blocks.
2002-09-18 19:12:17 +00:00
petrov dc81a805ea Use driver reset in case 'internal state mismatch'. 2002-09-16 21:49:15 +00:00
isaki 4ff27b57fb Correct xfer->busy_free status in DIAGNOSTIC. 2002-09-08 07:58:14 +00:00
gehenna 77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
scw 0dbf19c561 Add a flag, SMC_FLAGS_32BIT_READ, which is settable by the bus-specific
back-end to indicate that the device always sees reads as 32-bit
transactions, even if the host does 8 or 16-bit reads.

This is necessary for the SH-5 "Cayman" on-board ethernet. The SMsC part
is behind an FPGA which maps all cpu reads to 32-bits transactions.
2002-09-04 14:54:37 +00:00
augustss 2f5aeb92d3 Use a different way to recognize tea5759 chips. From OpenBSD. 2002-09-03 18:53:40 +00:00
thorpej 0007acff8b Fix the PARTID for the original 79c970, from Dave Barnes, kern/18029. 2002-09-03 17:57:49 +00:00
onoe 26ebf5f371 Several fixes hostap for awi driver:
- aging ang clear inactivity stations
- DTIM field in beacon/probe response.
- ignore IFF_PROMISC for hostap mode, since 802.11 has 3 address fields,
  so that promisc mode is not required for AP function.
2002-09-03 14:54:00 +00:00
itojun c0a8cbae7c drop garbage packet (due to chip bug) before injecting it to bpf.
make sure to behave as IFF_SIMPLEX, some lance chips does not behave as
IFF_SIMPLEX (e.g. vmware in outgoing multicast case).
http://mail-index.netbsd.org/tech-net/2001/05/16/0001.html
2002-09-03 14:48:16 +00:00
onoe efcfc3e1c8 Add experimental support of Host-AP mode for awi driver.
It works also with WEP enabled.
But aging the associated clients is not implemented yet, so that the number
of clients may increase unlimitedly..
2002-09-02 13:37:35 +00:00
mjacob e2f3e02af9 Do not enable interrupt driven mailbox commands for non-FC scsi. 2002-09-01 22:30:09 +00:00
ad e7ab6ca550 Nuke incorrect mailbox length defines and just use 13 everywhere. May help
with PR/14266.
2002-08-31 05:18:03 +00:00
abs f951ddc019 Fix AHC_NO_TAGS to actually disable tagged queuing, and document. 2002-08-30 21:54:10 +00:00
bouyer 3d187bd055 The 1010 will generate a scsi gross error if a RAM entry is read before being
written (i.e. is used uninitialised). The esiop SCRIPT may do this in some
circonstances (and it is safe) so bus_space_set_region_4() the RAM in
reset routine.
Problem reported and fix tested by Allen Briggs.
2002-08-29 18:23:52 +00:00
bouyer f86eed6ce2 Add definitions for the AIP control registers (1010 only). 2002-08-29 16:43:23 +00:00
martin 95617c00d7 Experimentation shows the hme chip is SIMPLEX if used in full-duplex
mode, but not otherwise.

This fixes PR 17523.
2002-08-29 14:33:03 +00:00
matt e25f13dfbe From OpenBSD:
- Fix one typo (instead of two disable_rx, one disable_rx and one disable_tx)
[The other bug fix isn't appropriate since the was OACTIVE is dealt with
has been changed in NetBSD.]
2002-08-28 17:46:58 +00:00
onoe fd9daca7ea Attach another DLTs for bpf: DLT_IEEE802_11 to capture raw 802.11 frame. 2002-08-28 09:38:08 +00:00
ad 35c2b89513 Add an ioctl to retrieve basic controller information. 2002-08-26 17:02:15 +00:00
martin d797b29d85 Give arrays in the softc indexed by channel number the right size
and define a symbolic name for the number of channels.
2002-08-26 17:00:42 +00:00
ad fba11cbab8 Handle aincent firmware as found on EISA/MCA boards. Untested. 2002-08-26 15:27:12 +00:00
petrov a413e88543 Accept WDTR from device(based on John Heasley patch for SCSI3 drive).
Do not define NCR53C9X_DEBUG.
2002-08-26 06:23:32 +00:00
petrov 3a67429963 Start SYNC/WIDE renegotiating in controller reset, rearrange debug output. 2002-08-26 05:17:48 +00:00
petrov 584ece2d73 Dispose unused tinfo flags. 2002-08-26 05:14:47 +00:00
thorpej f066e17960 Fix some signed/unsigned comparison warnings from GCC 3.3. 2002-08-25 19:11:16 +00:00
bouyer 7e6804d723 Add support for Ultra/133 (ultra-DMA6) in wdc_probe_caps(). 2002-08-25 17:22:38 +00:00
martin be6275d6fc Add a mixerctl to mute the internal (mono) speaker via
"mixerctl -w monitor.mono=off".

From Sung-Won Chung, slightly modified. All errors by me.
2002-08-22 20:42:22 +00:00
martin f2889deae7 Argh! Remove accidently commited debug changes. 2002-08-22 10:06:22 +00:00
martin 0d833862da Fix output volume handling, port-sparc64/18033 from Sung-Won Chung. 2002-08-22 10:02:21 +00:00
onoe 19a6d3dfb3 Make the meaning of media options consistent with other wireless drivers.
mediaopt adhoc  802.11 adhoc (IBSS) mode.  IBSS creation is enabled
			for cards which can create IBSS.
	mediaopt adhoc,flag0    old lucent adhoc demo mode.
Note that [adhoc] media options for wi driver was used for adhoc demo mode,
which is NOW CHANGED.
2002-08-21 03:26:29 +00:00
mjacob 672c41205f If we're using ancient (pre 1.17.0) 2100 f/w (for the cards that cannot
load f/w images > 0x7fff words), set ISP_FW_ATTR_SCCLUN. We explicitly
don't believe we can find attributes if f/w is < 1.17.0, so we have to
set SCCLUN for the 1.15.37 f/w we're using manually- otherwise every
target will replicate itself across all 16 supported luns for non-SCCLUN
f/w.
2002-08-17 17:31:53 +00:00
mjacob bb6cb67b54 Further fix problems with 23XX ISR handling and correctly initialize the
23XX to use ZIO in preference to fast posting.
2002-08-16 21:43:14 +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
thorpej 1336889c8a wi_keylen is kept in little-endian order, so le16toh() it before
using it in e.g. a memcpy() call.
2002-08-12 16:56:39 +00:00
thorpej 1cb29bde17 Pass all 3 parameters to wi_cmd(). 2002-08-11 22:03:43 +00:00
thorpej b336ee00cd * Fix a Lucent <-> Prism2 WEP interop bug. We only want to set the
EXCLUDE_UNENCRYPTED bit in the WI_RID_P2_ENCRYPTION value if we are
  in shared key mode.  Symbol cards, just to be different, supposedly
  always want the EXCLUDE_UNENCRYPTED bit set (confirmed with the
  Linux orinoco and spectrum24 drivers).

* Flesh out the Host-AP WEP transmit side.  Note this does not yet
  work properly; the frame as seen by the receiver FCS's incorrectly.

Both changes from OpenBSD.  Not confirmed whether or not Host-AP WEP
works with OpenBSD (mail sent to millert).
2002-08-11 21:54:19 +00:00
thorpej 3ebfddbcca Remove an unused member from the softc. 2002-08-11 21:50:06 +00:00
thorpej c4ec970f17 Remove a redundant defn. 2002-08-11 21:49:40 +00:00
isaki dd0e0396bc Add driver for ScanLogic SL811HS/T USB Host Controller.
XXX It's experimental code yet.

For x68k: USB part of Nereid USB/Ethernet/memory board
For ISA:  ISA USB Host board from Morphy planning
2002-08-11 13:17:52 +00:00
thorpej 22c90da7f0 Snapshot of work-in-progress: Add AP support for Prism2-based boards.
WEP for APs is not yet implemented, but without WEP, this works well
enough for my laptop to associate with an AP running this code.

Adapted from OpenBSD.
2002-08-11 06:13:53 +00:00
thorpej 918a335551 Use WI_RID_DATA_RATES to fetch the supported rates. From OpenBSD. 2002-08-11 01:35:10 +00:00
thorpej bb718bd6e3 * Add "wi_flags" to the softc to indicate capabilities of the card. Fill
in this info based on firmware type and version.  Replace "wi_has_wep"
  with a flag.
* For cards which support IBSS, add "ibss" has a media option.
* For cards which support CREATE_IBSS, add "ibss-master" as a media
  option.
* Use the "ibss" and "ibss-master" media options to determine if
  we should go into IBSS mode and/or create the IBSS.
* Internally convert between the generic WI_PORTTYPE_IBSS and the
  value the firmware wants to use for IBSS.
* When setting the IBSS name, if a desired-SSID is set, and we're
  an ibss-master, write the desired-SSID into the own-SSID slot.
  This ensures that "ifconfig wi0 nwid FOO" will do the expected
  thing.
* Only set the roaming mode if the card supports roaming.

From OpenBSD.
2002-08-11 01:30:28 +00:00
thorpej d1737f8f98 Only read supported rates on Prism2 boards. 2002-08-11 00:11:52 +00:00
thorpej 375eb183ff Read supported rates from the card and report them. Only add
media types if that rate is supported.

Adapted from OpenBSD.
2002-08-11 00:00:41 +00:00
thorpej dbae3bd18f Define PORTTYPE constants for IBSS and HOSTAP (already in the
comments!).
2002-08-10 23:29:53 +00:00
thorpej 742ad68157 Fix some whitespace. 2002-08-10 23:16:14 +00:00
soren 9e129fde67 Add ATA SMART reporting support from Ben Collver in kern/12787. 2002-08-05 23:29:27 +00:00
onoe 248c861292 Fix IBSS for awi driver. 2002-08-05 06:55:05 +00:00
itojun 8dd04cdcd7 correct range check, have overflow check, fix type mismatches,
for cmap args and some other calls.  from openbsd
2002-08-03 00:12:48 +00:00
augustss 0e796224d0 Remove warning about PCI bus configuration being broken since it
works now.
2002-07-30 15:01:15 +00:00
simonb 21ffe19c1b Don't name parameters in a function declaration. 2002-07-29 05:57:16 +00:00
simonb b8f11b739f ANSIfy, KNF. 2002-07-29 05:54:09 +00:00
wiz b02ee1f0b7 Two typos in comments. 2002-07-26 14:10:22 +00:00
wiz 5db23d2c5d enouth -> enough. 2002-07-26 01:00:39 +00:00
onoe fdcde8230d Set desired ESSID for probe request. 2002-07-25 07:15:50 +00:00
hannken f8908aa291 Convert to new device buffer queue interface. 2002-07-24 19:34:57 +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
wiz e00173a7f2 Spell 'should' correctly. 2002-07-18 11:59:06 +00:00
chs bfb698717d use the SROM info to set the media in 2114[23] autonegotiation
rather than just fiddling the opmode CSR, since we might
need to change the SIA CSRs as well (eg. for some ZNYX cards).
from PR 17510.
2002-07-14 21:02:41 +00:00
chuck 9b667cf839 only powerdown on a suspend. do not powerdown on a standby (PR#17537). 2002-07-09 20:19:57 +00:00
drochner 2693ad5a05 save quirks in softc, obey VGA_QUIRK_NOFASTSCROLL 2002-07-08 19:45:28 +00:00
drochner d10ae84f7b save the "quirks" in the softc 2002-07-08 19:43:23 +00:00
mycroft 8a3f8605fb Add a missing DELAY() in the initial GPIO setup for the 21140. 2002-07-08 18:43:54 +00:00
tron 7db7acdde8 Fix a typo in last commit which caused build failures if
"PCDISPLAY_SOFTCURSOR" is not defined.
2002-07-07 10:52:18 +00:00
junyoung f73c9efaab No need to include opt_vga.h here, since it is included in vgavar.h. 2002-07-07 07:37:50 +00:00
junyoung da843e013f There's no function like vga_common_setup. 2002-07-07 07:34:54 +00:00
junyoung 798d30c8d5 - ANSI & KNF, notably remove __P.
- Some cosmetic changes.
2002-07-07 06:49:22 +00:00
junyoung 472e54071a Rename vc_ccol and vc_crow in struct pcdisplayscreen to cursorcol
and cursorrow, respectively, to be consistent with other members
in the structure.
2002-07-07 06:36:32 +00:00
joda d1acc508df add a couple of Analog device names 2002-07-05 13:50:47 +00:00
junyoung 3d826105dc alloc_attr -> allocattr
Approved by Matthias Drochner.
2002-07-04 14:37:10 +00:00
drochner 3680345a91 simplify console initialization a bit, avoid wasting
memory in attach(), and add some commemts
2002-07-01 16:56:09 +00:00
thorpej f3ae1a786e In ex_shutdown(), call ex_enable() to make sure the interface is
powered up and the PCI configuration registers restored.  If we
don't do this, the firmware on some machines gets REALLY confused.
2002-07-01 16:16:37 +00:00
christos 63a19c881d more cleanups from Julio Merino. 2002-07-01 13:17:48 +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
junyoung a52db40372 Do the necessaries when the builtin font gets saved in slot 1. 2002-06-28 03:38:13 +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
christos 71dcc987cd PR/17402: Add wsmoused support by providing get/set char and events. 2002-06-26 23:05:33 +00:00
drochner 6aa49848cf 2 fixes:
-Don't assume fonts to start with character 0, load at the
 right offset. Now we can use eg wsfont/bold8x16.h which
 starts with chr(1).
-Don't touch the hardware if a font is set for a screen which is
 not active.
2002-06-26 16:33:18 +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
lukem 21ebff3b67 implement SCBUSIORESET by calling ncr53c9x_scsi_reset() 2002-06-21 13:27:49 +00:00
itojun 92cb1aaac7 more proper fix to ex_disable. 2002-06-20 23:47:25 +00:00
mjacob fc73c60a36 Add support for ISP_FC_GETHINFO which can tell you connection topology,
current speed, loopid, etc.
2002-06-15 00:20:18 +00:00
mjacob aaa250cade Roll version minor.
Add DEFAULT_FRAMESIZE/DEFAULT_EXEC_THROTTLE/ISPASYNC_FW_RESTARTED
defines.
2002-06-15 00:18:02 +00:00
mjacob 168ee5d9a6 keep target mode up to date. 2002-06-15 00:17:28 +00:00
mjacob e02259aa26 Add support for ISP_FC_GETHINFO which can tell you connection topology,
current speed, loopid, etc.
2002-06-15 00:17:07 +00:00
mjacob 942d8435f7 Make sure we set maxluns even if isp_touched is already set.
Do a fallback on reading stuff from the fabric. Some devices/initiators
don't correctly register their type with the fabric nameserver.  This
seems to be due to a misinterpretation of what TYPE should mean for a
CT_HDR. In any case, do a fallback to try and catch these misentered
entities.

Add some stuff for default framesize and throttle. Fix some buglets.
2002-06-15 00:16:26 +00:00
thorpej 5b5608e8b2 Use M_IFMADDR instead of M_IPMADDR. From John Franklin, kern/16251. 2002-06-14 15:21:45 +00:00
augustss 74cfa48c7d Use consistent naming. 2002-06-13 15:27:23 +00:00
bouyer 6280502d5f Bump delay() between reset and IDENTIFY from 100 to 5000. Some ATAPI devices
wedge when talking to them too soon, and incorrectly react to WDC_RESET.
Close PR kern/17208 by Paul Goyette.
2002-06-12 09:55:47 +00:00
yamt 7d0fd357f6 make auto const variables static. 2002-06-08 16:51:38 +00:00
bjh21 00eaefef06 When copying a block with an odd size to or from the card, be very careful
not to overrun the end of it on the host side, since that might just slip over
a page boundary and cause an embarrassing kernel panic.
2002-06-07 00:01:19 +00:00
he 33afd46155 Add newlines to the WARNING messages printed for the dynamic standby bug. 2002-06-06 17:20:50 +00:00
martin 9ae19204d9 #if some tables and a helper function for debug output to make it
possible to compile this without ISDN debugging support.

Fixes PR kern/17161.
2002-06-04 19:51:18 +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
thorpej 96e504cc78 Fix a pasto in printf arguments which resulted in the aac kernel
version being mis-reported.
2002-05-31 17:36:29 +00:00
thorpej 12af01e337 Remove an unnecessary printf argument. 2002-05-31 17:34:08 +00:00
thorpej 7173dc3334 Remove shadow decl of num_errors which exactly duplicated the file-scope
decl.
2002-05-31 17:31:15 +00:00
thorpej eb00d53595 Remove duplicate TULIP_SET/TULIP_CLR. 2002-05-31 17:27:40 +00:00
mycroft 79056950e2 Mask off extraneous bits in the RX frame status when testing it. My cards set
bit 3 in ad hoc mode.
Also, some minor constant folding.
2002-05-31 15:52:55 +00:00
thorpej 34820075d5 Statements must follow labels. 2002-05-30 21:09:54 +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
augustss 54bb400a18 Add a driver for the IBM CPC700 chip. This chip is a host bridge for
PowerPC and provides a PCI-host bridge, interrupt controller, two com ports,
two IIC ports, a timer, and a DRAM controller.
The driver supports PCI, interrupts and com ports.
2002-05-21 02:58:25 +00:00
augustss 1c66d18529 Make it possible to override the way register access is done.
This is needed for some really screwball attachments of the CS8900.
2002-05-21 02:47:04 +00:00
mycroft 44024682c7 The FIX_RESUME_BUG hack does not work, so remove it.
Also, attempt to clarify the message slightly when updating the EEPROM.
2002-05-20 15:23:01 +00:00
bouyer af09484589 Be more verbose when returning XS_DRIVER_STUFFUP 2002-05-18 16:09:43 +00:00
mjacob c2d194880d Fix seveeral issues- but the most important of which is that we have
to check if we get a RQCS_DATA_UNDERRUN - if we're an FC card, we may
not have RQCS_RU set- if it isn't set, we just lost a DATA XFR IU in the
middle of the exchange. In this case, we have to bomb out the whole xfer.
We had been getting silent data corruption before.
2002-05-17 18:49:42 +00:00
thorpej 4daab7072a Don't access a scsipi channel's periph table directly; use
scsipi_lookup_periph().
2002-05-16 02:50:53 +00:00
matt 496a3cb868 Let's put a s = splnet(); to match the splx(s); already in the routine.
(yes, we were doing an splx with an uninitialized variable).
2002-05-15 23:51:49 +00:00
matt a61a41b6b0 Only enable detailed evcnts if GEM_COUNTERS is defined. But always count
interrupts.
2002-05-15 21:05:23 +00:00
matt 486ad92d2a Add evcnt stuff for interrupts.
Fix receiver lockups.  When writing the RX Kick register, we need back up
on descriptor since we advanced one in the for loop.  That will be the
last descriptor we haven't processed which is what we should write.
2002-05-15 02:36:11 +00:00
matt d6f9a400fe Fix initialization of GEM_RX_MAC_INTR. 1 means mask. 2002-05-14 23:33:41 +00:00
augustss 1906cd67ef ANSIfy. 2002-05-14 19:23:45 +00:00
matt 0dc8ee943d Eliminate more commons or redundant declarations. 2002-05-14 02:58:32 +00:00
wiz d30d25dc1a Spelling fixes, from Sergey Svishchev in kern/16650. 2002-05-12 15:48:36 +00:00
matt 3b2e959dfc Supress RX_MAC interrupts regarding the FRAME_COUNT register. 2002-05-11 20:53:52 +00:00
matt c1fc5d35dc Many fixes. Multicast hash filter works now. Autonegotiation with GigE
on Mac G4's now works.  XXX Checksum offload still needs to be done.
2002-05-11 00:36:02 +00:00
matt 2f836188fb If the detected media is gigabit, change the gem to use GMII mode otherwise
switch back to MII mode.  Keep a sliding window for TX segments and when it
gets > 2/3 full, request a TX interrupt (window gets reset when the h/w TX
queue is empty).  Add dv_xname to a few printfs.  With the above changes,
the gem driver will now work on Macintoshes, even in GigE mode.  On a 733
PowerMac G4 it gets ~355Mb/s TX and ~280Mb/s RX to/from an Alpha XP1000.

XXX mii autoselect is still flakey.
2002-05-08 02:12:55 +00:00
uwe 58789acb68 Delint. Add /* CONSTCOND */. Add parens to macro argument to avoid
interesting interaction between cc -C and comma inside a comment after
macro definition.
2002-05-07 05:56:47 +00:00
bouyer 58e5d90faa Don't disable TARF_TAG when the 1010 workaround is active, otherwise
the target won't do tagged queuing again after e.g. a bus reset.
Just report to scsipi that we can't do tagged queuing.
2002-05-05 15:23:22 +00:00
thorpej 9a88d576c1 hme_init(): call mii_mediachg() to make sure the current media is set. 2002-05-05 03:02:38 +00:00
bouyer 8e978787e8 Keep track of the current SCSI mode (SE/HVD/LVD) and don't start PPR
negotiation if it's not a LVD bus.
Remove write to SIOP_STEST0, it's bogus and I don't know why it's there at
the first place.
2002-05-04 18:43:22 +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
bouyer 56aff7332d Add 1010 only SCSI gross error disable bits. 2002-05-04 17:51:52 +00:00
bouyer 50bb653982 More debug printfs. 2002-05-04 17:51:16 +00:00
mycroft 3f47c5b658 Clean up some dead code.
Combine nway_reset() into nway_auto().
2002-05-03 08:48:12 +00:00
mycroft a5f6bd3b57 5) Be more liberal in blasting SIATXRX and SIASTAT in nway_auto(); in
particular, make sure that all the SIASTAT_ANS bits are in the right state
   so we don't do something inane.

Still doesn't actually bring the link up properly, but at least it negotiates
most of the time, and does it a little faster.
2002-05-03 06:56:20 +00:00
mycroft b3bd4ab122 More internal Nway issues:
1) Do not call tlp_sia_update_link() in Nway mode, and do not look at SIASTAT
   in any other place that nway_status(), where we first check that it's valid.
   In other places, look at IFM_ACTIVE after having call nway_status().
2) Eliminate stupid MII_MEDIACHG calls, and arrange for nway_service() to
   update status on every call.
3) Nuke the synchronous case of nway_auto() from orbit.
4) Do not call nway_statchg() when using manual configuration; tlp_sia_set()
   does everything we need.
2002-05-03 06:54:37 +00:00
mycroft 1489c15507 Fix multiple problems with 2114x internal Nway:
1) Set OPMODE_TTM in the default tsti_opmode, so that nway_status doesn't
   blow up and report the wrong media type when statically configured.  (This
   code is a hack.)
2) Do not set IFM_ACTIVE (i.e. ignore SIASTAT_LS*) when in auto-negotiation
   mode and negotiation has not completed (per 21143 manual).
3) Do not clear auto-negotiation mode; otherwise the chip will not
   renegotiate on a link failure.

With these changes, 10/100 selection is more stable, and auto-negotiation
comes up with the right status and detects link, but the link does not work
unless it's hardwired.  More work is needed.
2002-05-03 05:41:46 +00:00
thorpej 403f667b5a Handle platforms that don't provide stream methods.
From Hiroyuki Bessho, PR 16617.
2002-05-03 03:30:48 +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 5173cfae8a Bump the number of Tx DMA segments from 7 to 15 (the zero-copy socket
code sometimes sees more than 7).
2002-05-03 00:04:07 +00:00
ad 4137ec18e8 Fix pasto. 2002-05-02 12:44:31 +00:00
martin ea0ec5a299 Do not mask/unmask interrupts on IPAC to clear the interrupt status.
It is unclear if this realy is needed and if, on which type of cards. I
haven't run accross a card that needs it yet.  This may have been just
a copy & pasto from the ISAC interrupt handler carried over to IPAC.
2002-04-30 12:56:51 +00:00
bouyer c85510bdd7 Factor out initialisation of t_msgout.count
clear scntl4 in sdtr/wdtr negotiation
2002-04-29 15:45:05 +00:00
bouyer 1a268e6df1 Add a missing esiop_script_sync(), and debug messages improvements. 2002-04-29 15:44:16 +00:00
martin 8853536066 Patches from Matthias Drochner, slightly modified by me:
Remove the clear-the-irq-after-enabling it dance (which had bad side
effects on some cards). Instead disble the ISAC receiver when we have
interrupts disabled. Adjust the interrupt handler to properly deal with
subtle differences of the ISAC implementation in IPAC chips.
2002-04-29 13:42:42 +00:00
bouyer eea7ef4c53 Use a u_int32_t in script RAM instead of the SEM bit in ISTAT to pass flags
between script and driver. This allows more than one flag, and is easier to
manage (we almost can't read/write istat outside of the irq handler).
2002-04-27 18:46:49 +00:00
bouyer 5387f035d3 Implement a ring for the completed commands. This avoid a (problematic only
if error occurs after status is collected) race condition
when using the status byte to detect completed commands (a command descriptor
could be recycled before the device disconnected), and make the
interrupt routine handling completed commands more efficient (no need to
scan target * lun * tag array any more).
2002-04-27 17:39:51 +00:00
ad 77e08f053a Add a driver for Adaptec FSA RAID controllers, as often found in Dell
servers. Based on the FreeBSD/OpenBSD versions.
2002-04-26 02:05:07 +00:00
bouyer 4b307fe0af It's not safe to access the SCNTL1 register while the SCRIPT is running.
On the 1010 this can wedge the chip. So abort the script instead.
the abort interrupt will trigger a bus reset.
2002-04-25 20:05:10 +00:00
bouyer f66f6c27a6 - We can't share the per-lun DSA entry for untagged and tag table DSA;
there may be tagged commands still running when we queue a request sense
  command.
  Solve this by using 2 DSA entry per LUN
- Now that we have the command DSA before select, we can load T/L/Q in
  SCRATCHC. This makes the selection timeout handler simpler.
- Avoid a race condition when setting the free flag in the cmd ring (see
  comment in the script)
- don't forget to update the ID in the head of LUN table after a sync/wide
  negotiation. This fixes the command timeout at the first data command
  after negotiation (the bus reset handler did update the ID properly,
  so subsequent commands were OK).
- for DMA interrupts, clear fifo if it's not empty. Leaving the fifo dirty
  would prevent subsequent interrupts from coming in.
- Various improvements in debug messages
- misc cleanups.
2002-04-25 19:34:02 +00:00
ad 4a46e19dcf Set xs->error = XS_SENSE in the appropriate spot. 2002-04-25 18:45:35 +00:00
bouyer b46922a07a For a new command, use the id in the command table and get rid of the ID in the
scheduler slot. This costs a few more instructions but divide the size of the
scheduler ring by 2, saving 1k of onboard RAM (a bus with 15 devices would
overflow the on-board RAM by 128 bytes).
2002-04-24 09:43:14 +00:00
bouyer cd3578d7ef More copyright fixes, pointed out by Thomas. Thanks ! 2002-04-23 20:41:13 +00:00
bouyer c7454ad973 - factor out parts of (e)siop_attach() to siop_common_attach()
- Add support for DT transfers (aka Ultra/160) in esiop

Note that DT transfers are not enabled for 53c1010-33 rev 0 yet; if I trust
FreeBSD it has a bug which prevent them to do DT properly.
From the same source there may be issues with some revs of 53c1010-66.
2002-04-23 17:33:27 +00:00
bouyer 6d37782a49 Bump the space for SCSI messages from 8 to 16 octets, as 8 may not be
enouth for IDENTIFY + TAG + PPR.
Get rid of constants in C code by use of a offsetof macro.
2002-04-23 12:55:26 +00:00
ad ea92353d58 MLX_GET_SYSDRIVE expects the unit number returned in *arg. Should fix PR
14116.
2002-04-23 11:57:45 +00:00
bouyer cf06149dac Enable software LED control based on LED0 feature, not #define.
For now, set the LED0 feature if SIOP_SYMLED is defined in siop_pci_common.c.
From Jason R Thorpe.
2002-04-23 10:38:37 +00:00
bouyer b6fee4019d Add some new features:
- SF_BUS_ULTRA3, for Ultra/3 (80Mhz) busses
- SF_CHIP_LEDC,  led on GPIO0 with hardware control
- SF_CHIP_DT, support DT clocking.
2002-04-23 10:06:44 +00:00
ad 9a09578e25 Add a driver for ICP-Vortex GDT and Intel Storage RAID controllers. Parts
taken from OpenBSD. Test hardware kindly provided by Intel. This still needs
management bits, and doesn't support older controllers, but that shouldn't
be hard to fix.
2002-04-22 21:05:19 +00:00
bouyer 84b0f1e37d Adapt for script "wait MSG_OUT after select" change: now, when we get
selection timeout, SCRATCHE points to the slot which triggered the timeout,
not the next one.
2002-04-22 20:47:20 +00:00
bouyer 8ba368a0b6 Really, don't set siop_cmd->tag in setup_table() 2002-04-22 20:31:49 +00:00
bouyer 4cda08fb6e Add support for tagged queuing to esiop (256 tags per device).
For this add another indirecton: the DSA in the LUN table points to
a table of DSA indexed by the tag number when tagged command is in use.
For non tagged command, the LUN DSA still points to the tables describing the
xfer directly.
2002-04-22 15:53:39 +00:00
bouyer e3f96dde51 Fix last change: assign siop_cmd->tag in callers instead of siop_setuptables(),
and use siop_cmd->tag instead of xs->xs_tag_id. This way siop can use
xs->xs_tag_id + 1 without interferences with esiop.
2002-04-22 15:48:55 +00:00
augustss d32b5e84cc Add a driver for the Sony SPIC that handles jog dials etc.
This driver works on my SRX77, but probably little else.
It makes the jog dial appear as a wsmouse.
2002-04-22 12:42:11 +00:00
bouyer 72906f4578 In siop_setuptables(), use the proposed tag_id, not tag_id +1.
In siop.c bump siop_cmd->tag by one as tag id 0 is reserved for untagged cmds.
2002-04-22 09:43:44 +00:00
bouyer 8cfc41f9ed First cut at a esiop driver (enhanced siop). Doesn't implement tagged queuing
yet.
If is restricted to SIOP which implement the load/store instruction, and
has 10 scratch registers (basically, 825 and newer, possibly 770).
It implements a different interface between host and script, using a real
ring for command starts, and improved support for reconnect which will allow
256 tag per device. It uses interrupt on the fly to signal complete command,
which allows several commands to be serviced per interrupt and doesn't require
the script to stop to signal command completion.
2002-04-21 22:52:05 +00:00
bouyer 0852b37f15 Note that if siop_common_xfer is changed, the scripts need to be changed too. 2002-04-20 15:25:53 +00:00
mjacob acfd588eca Number of luns supported for SCC-2 is actually really 16384- top
3 bits are lun address modifiers.

Remove code that (incorrectly) thought it was asking the f/w to only
PLOGI if not already PLOGI'd. The current f/w documentation tells us
that we have this backwards.
2002-04-20 05:05:56 +00:00
bouyer 97fe8b91c5 Move a few things around, so that ic/siop_common.c and pci/siop_pci_common.c
can be compiled without including siopvar.h.
2002-04-20 00:15:54 +00:00
thorpej 46a2773ba8 * Fix the CS_IS_ENABLED() logic so that it actually evaluates to
"true" at the appropriate times for non-PCMCIA interfaces.  This
  means that the ENETRESET path in cs_ioctl() now runs, thus fixing
  multicast (and IPv6) on my Shark.  Yay.

* Simplify cs_hash_index(): Rather than taking the bottom 6 bits of
  a big-endian CRC32 and reversing them, just take the top 6 bits of
  a little-endian CRC32.
2002-04-18 21:58:02 +00:00
thorpej 036066e625 Define the Symbios Logic and Tekram NVRAM contents. 2002-04-18 21:08:43 +00:00
martin ff434a1201 Handle unexpected interrupts better. 2002-04-18 12:19:05 +00:00
bouyer 52cdca5f88 If SIOP_SYMLED is defined, drive the activity LED though GPIO pin 1. 2002-04-18 12:03:15 +00:00
onoe 86920876dd (force commit: no changes in the code)
WI_RID_SCAN_APS in previous commit works for Intel Pro/Wirelss 2011
with firmware 2.51.1.
It seems that the firmware automatically updated after the card runs on
Windows 2000 with 2011_2011B_CD_3.0 in Intel web site.
2002-04-18 05:24:28 +00:00
martin c8b77487a2 When clearing interrupts, clear IPAC interrupts for cards that have
one.
2002-04-17 17:34:48 +00:00
onoe fa97a362d4 Support WI_RID_SCAN_APS (wiconfig -D) for Symbol CF Card.
It apparently requires newer firmware (3.10.4), and doesn't work on
Intel PRO/Wireless 2011 (2.0.11).
2002-04-16 07:24:06 +00:00
onoe a40f47b098 Add support to Symbol Wireless Networker CF card.
The card is Type 1 CF card and it doesn't have firmware in.
So we need to download the firmware image into the card before
touching it.
XXX downloading code should be written in generic (bus independent),
    but I don't have enough information for now.
2002-04-15 15:05:58 +00:00
onoe dd80e6d577 Some fixes for Symbol card.
- The version string doesn't need to start with 'V'.
- Symbol firmware also support CREATE_IBSS.
- But it doesn't support ROAMING_MODE nor MICROWAVE_OVEN.
2002-04-14 19:55:23 +00:00
mycroft f00c3c2e40 tm_gpctl and tm_gpdata must be shifted right 16 bits. DOH.
This makes another CardBus tlp card work...
2002-04-14 19:10:18 +00:00
martin e4998611e9 Fix copyright notice. 2002-04-14 12:24:26 +00:00
christos db29511727 PR/16058: Tero Kivinen: Don't free rbuf or detach tty if rbuf allocation
failed during attach phase.
2002-04-13 17:05:16 +00:00
isaki 9ee0a509cd Fix minor typo in adpcm_estim[]. 2002-04-13 12:40:50 +00:00
martin 8d2451d1be When pruning state at interrupt enable time, also call the clearirq
routine for cards that provide it.
2002-04-13 11:03:54 +00:00
martin 0cdadad2cd Defer initialization of the ISAC chip until we enable interrupts - it gets
into a strange failure mode if we do it with disabled interrupt. When
(re-)enabling interrupts reset transmitter and receiver and clear any
pending state.
2002-04-13 10:28:36 +00:00
thorpej ff7306cf44 * Add a new hwflag, COM_HW_NO_TXPRELOAD, which tells comstart() to
not pre-load the chip's Tx buffer, but instead waits for the Tx Ready
  interrupt to transmit the first chunk of data.
* On the IOP310, set COM_HW_NO_TXPRELOAD, rather than COM_HW_TXFIFO_DISABLE.

This solves the "UART hangs" problem on the Npwr in a nicer way (i.e. we
get to use the FIFO, whee).  The COM_HW_NO_TXPRELOAD happens to match the
Linux 16550 driver's Tx algorithm, and the "UART hang" was never observed
on the Npwr running Linux.

Eventually, we might want to eliminate the COM_HW_NO_TXPRELOAD, and simply
always use its algorithm.  But it should be tested on more 16x50 variants
before we do that.

Kudos to Valeriy Ushakov <uwe@netbsd.org> for pointing out this solution
(which also happens to fix the stray UART interrupt issue on the Krups
Javastation), and to Allen Briggs <briggs@netbsd.org> for experimenting
with various methods of fixing this.
2002-04-12 19:32:30 +00:00
augustss d0c3f994ea Put device name at start of line. 2002-04-11 11:21:26 +00:00
mjacob 31045afa8c Clean up a bit from the last checkin so that the correct result pointers
are used- didn't make a difference, but hey...

Put in commented out GFF_ID code- for use in future attempts to search
the fabric- this probably has to go thru the management server path.

Don't whine about handles we can't find if these are aborted commands
(we know we can't find the handles because we destroy handles after
a successful mailbox abort- we don't wait for the F/W to decide whether
it wants to return a status IOCB after this happens).
2002-04-11 02:32:03 +00:00
martin f12d3f51e7 Remove some redundant tries to disable interupts. We already avoided enabling
them.
Fix a stupid typo when enabling/disabling interrupts: we clear pending
interrupts when enabling, not disbling isac interrupts.
2002-04-10 23:51:06 +00:00
ichiro 9d3869cb7c more description of Chips was added 2002-04-10 04:01:27 +00:00
bouyer 10b49b13b9 In wdc_exec_command(), for data commands, read the status register after
the data transfer. This is mandatory for data out commands (although none are
used for now), and not forbiddend for data in commands. Also record if we
did transfers any data.
May solve kern/16159 by making the probe more robust in face of fake identify.
2002-04-09 21:17:53 +00:00
chs 110d16d5ae add support for built-in NWay autonegotiation on 2114[23], Macronix
98713A, 98715, 98715A, 98725, and Lite-On 82C115.
2002-04-09 05:57:20 +00:00
martin 58502ab93e Combine sc_enabled and sc_dying into one field sc_intr_valid, they are used
for the same purpose (ignoring invalid interrupts).

For cards that are not able to stop all interrupts (or we don't know a way
to do that in software, at least) run the clearirq callback even when
ignoring an interrupt because we are not enabled. Otherwise the card would
stop interrupting.

Reserve a driver specific callout handle and an int value in the generic
isic_softc to allow card drivers to implement fancy blinkenlights.
2002-04-08 12:20:49 +00:00
isaki 485575c0fe Rewrite encode/decode algorithm completely.
It improves playing/recording quality greatly
and it was almost done by Yosuke Sugahara <penta@fuchu.or.jp>.
Thanks a lot!

Add support of slinear8, slinear16_le, slinear16_be.
2002-04-07 14:51:40 +00:00
martin 87b8f8f259 Remove leftover from my first, incomplete attempt to cope with detaching
pcmcia cards. Now that pcmcia attachements properly handle the activate
callback, this is no longer needed (and is suspect to cause completely
unrelated problems.)
2002-04-06 21:46:51 +00:00
mhitch d410426604 Interface byte counts are counted in ether_input() and ether_output(). Don't
count them when reading the NIC counters - it doubles the count.  Read the
NIC counters to prevent counter overflow interrupts, but don't add them to
the interface counters.  Don't bother reading the upper counts because they
are just latched when reading the totals.

Fixes final part of PR#11549.
2002-04-06 19:28:01 +00:00
thorpej 60e2bbd09a Add support for the "CPUSaver" receive interrupt mitigating microcode
on the following PRO/100 chips:

	* i82558 step A4
	* i82558 step B0
	* i82559 step A0
	* i82559S step A
	* i82550
	* i82550 step C

The interrupt delay is configurable on all microcodable chips.  The
maximum "bundle" size (packet count) is configurable on all but the
i82558.

The microcode is enabled by setting IFF_LINK0 on the interface.

Derived from code in FreeBSD.
2002-04-05 19:51:04 +00:00
bouyer e5727031fb Implement mstohz() as discussed on tech-kern, and use it in SCSI drivers
to convert xs->timeout to callout() parameter.
2002-04-05 18:27:45 +00:00
bouyer f6ef011e7e Properly identify LM81. From Sergey Svishchev in PR kern/13420. 2002-04-05 16:11:47 +00:00
thorpej f4f37ed5f5 Define the command block used for loading microcode into the chip. 2002-04-05 05:29:05 +00:00
mycroft cdb5a13a85 With certain 21140 and 21143 SROM formats, OPMODE_FD was never being set when
the interface was wired to full-duplex mode.  Duh.
Also, add OPMODE_TTM to OPMODE_MEDIA_BITS, to insure that it is changed when
we switch between 10 and 100.
2002-04-05 04:48:40 +00:00
uwe 6142b898f3 Clean up includes. 2002-04-05 03:29:05 +00:00
mjacob 83f4603dc7 Correct put of fc4_types to 32 bits, which is what it is. 2002-04-05 02:09:39 +00:00
ichiro 1fb4491ea4 Upps, fix typo 2002-04-05 00:59:38 +00:00
ichiro 7d1236beff fix minor bugs for lucent cards. (point out from Warner Losh) 2002-04-05 00:54:51 +00:00
mjacob c8513a96b0 Redo fabric evaluation to not use GET ALL NEXT (GA_NXT). Switches seem
to be trying to wriggle out of supporting this well. Instead, use
GID_FT to get a list of Port IDs and then use GPN_ID/GNN_ID to find the
port and node wwn. This should make working on fabrics a bit cleaner and
more stable.

This also caused some cleanup of SNS subcommand canonicalization so that
we can actually check for FS_ACC and FS_RJT, and if we get an FS_RJT,
print out the reason and explanation codes.

We'll keep the old GA_NXT method around if people want to uncomment a
controlling definition in ispvar.h.

This also had us clean up ISPASYNC_FABRICDEV to use a local lportdb argument
and to have the caller explicitly say that a device is at the end of the
fabric list.
2002-04-04 23:38:43 +00:00
thorpej 769ca97e2b Address Intel 82801BA/82801BAM Specification Update, Errata #30:
The ICH on-board Ethernet and some i82559 chips have a bug which
will cause a PCI protocol violation if the chip receives a CU_RESUME
command as it is entering the IDLE state by deasserting #CLKRUN.
(This is the so-called "resume bug" that we previously had an incomplete
work-around for on ICH chipsets.)

The work-around is to disable Dynamic Standby Mode, such that the
chip will never deasert #CLKRUN.  Dynamic Standby Mode is disabled
by clearing a bit in the EEPROM and updating the EEPROM (and EEPROM
checksum).

Unfortunately, the chip will only consult the EEPROM setting after
a PCI bus reset, so a system reboot is required once the EEPROM
has been updated (the EEPROM update only needs to happen once,
and the driver usses a warning instructing the user to reboot the
system once the work-around has been applied).

Issue pointed out by David Brownlee, and code more-or-less lifted
from FreeBSD.
2002-04-04 23:15:43 +00:00
thorpej 4a9f5c0fc7 Move the code which shifts bits into the EEPROM into its own function. 2002-04-04 21:11:16 +00:00
jdolecek 46d335a320 move wi_pci_reset() from ic/wi.c to pci/if_wi_pci.c, where is belongs 2002-04-04 17:43:31 +00:00
jdolecek e9ee3f796e fix sligh confusion on whether or not to supply dv_xname to printf() in
error cases of attach
Noticed in kern/16197 by George E Sollish.
2002-04-04 17:30:32 +00:00
hannken 747c45e3e4 Avoid dereferencing null pointer. `data->name == NULL' means default font. 2002-04-04 13:08:35 +00:00
ichiro ed93d4f3b5 space/TAB cosmetics 2002-04-04 07:15:17 +00:00
ichiro 7fadd48a2f using table driven for Prism2 family IDs/Names. 2002-04-04 07:06:16 +00:00
chs e340f273c4 add support for Cogent EM100 (aka Adaptec ANA-6910) TX and FX. 2002-04-04 05:45:54 +00:00
ichiro ff941b5271 s/WI_NIC_3842/WI_NIC_3842_EVA 2002-04-03 15:43:14 +00:00
ichiro a07b331747 add more IDs of PRISM family 2002-04-03 15:33:20 +00:00
isaki 677cd20c7f initialize codec variables every open(). 2002-04-02 15:22:37 +00:00
isaki fec379f5cd Correct ADPCM -> linear8 conversion routine.
Now, we can record on vs0 (but it's very noisy)
2002-04-02 15:19:00 +00:00
petrov 71419e9eb9 Return from interrupt handler after chip init(reset). 2002-04-02 09:48:27 +00:00
martin bf8b82a971 Move isic_intr_enable to a file not depending on the HSCX driver, so
ifpci-only configurations build again.

Remove the now unused controller enable function from the passive drivers
l2<->l1 interface.
2002-04-01 12:14:26 +00:00
martin 71b6502920 Do not bother to enable interrupts at attach time - we are going to disable
them again imediately
2002-04-01 12:12:26 +00:00
ichiro 2288447a2e add more IDs of PRISM family 2002-04-01 02:46:47 +00:00
bouyer bf5fb91f9c Fix typo in a comment. Reported by Alexander Yurchenko in private e-mail. 2002-03-31 19:47:39 +00:00
mjacob 9fff4c6833 Thanks to Jason Wright of OpenBSD- spotted that the offsets were all wrong
for bus_dmamap_sync calls. They'd been blindly ported from Solaris which
had *one* dma map for the entire control space, so offset was incremented
for the Request, Response and FC Scratch spaces. Tsk. There are three maps
in NetBSD. I should probably make them one anyway.
2002-03-31 17:56:54 +00:00
jdolecek 3679b97e61 add some bound checking
patch submitted by IWAMOTO Toshihiro in kern/13112
2002-03-31 10:44:44 +00:00
ichiro cf8b4530ef add more description of "Connection control characteristics" in Prism2 2002-03-31 06:09:37 +00:00
ichiro 42d7147fe3 typo fixed 2002-03-31 05:54:19 +00:00
ichiro 53f97402c6 Dont use magic number.
added parameter of WEP flags
2002-03-31 05:51:47 +00:00
ichiro 17a3f4351a delete incorrect register 2002-03-31 05:22:26 +00:00
ichiro 94e7948a7e add rx/tx status register 2002-03-31 05:12:55 +00:00
ichiro 5cebe8a050 mistake 2002-03-31 04:06:29 +00:00
ichiro d68d2ca3ec add more frame structure register 2002-03-31 03:36:15 +00:00
uwe 782296b588 First cut at framebuffer driver for Integraphics Systems IGA1682.
It's not finished yet, but it can do enough to get wscons working for
Krups JavaStation.
2002-03-30 19:48:55 +00:00
martin e5c92d53f8 Be a nice citizen, enable interrupts only when we are ready to talk
to the ISDN (i.e. when userland has /dev/isdn open).
2002-03-30 19:13:44 +00:00
martin ed4ba39c75 Add a command to layer 1 drivers to update LED state for controllers that
have status LEDs.
2002-03-30 17:54:17 +00:00
ichiro 7cd9648d72 added sc_pri_firmware_ver, and print Primary/Station firmware versions.
cosmetic change.
2002-03-30 16:44:59 +00:00
ichiro c05f3dd312 the kind of "firmware" was clarified.
firmware -> station firmware
2002-03-30 15:58:45 +00:00
ichiro 20417d89e0 add WI_RID_PRI_IDENTITY rid , (0xFD02)
Reflects the primary funcs firmware Identification number
2002-03-30 15:53:26 +00:00
tron 92ca7a2bc8 Apply changes provided by Thilo Manske in PR kern/16118:
1. Fix setting of nominal fan speeds with ENVSYS_STREINFO.
2. Treat Winbond 83781D specially because it has a programmable divisor for
   FAN3 unlike generic devices.
3. Set nominal RPMs.
4. Fix a typo in the code for setting FAN3's divisor for W83782 type
   hardware monitors.
2002-03-30 13:37:41 +00:00
martin e14f4779db Avoid duplicate expensive lookups by passing a pointer to the call
descriptor/a pointer to the layer 3 state directly to driver functions,
instead of their ID/index.
2002-03-30 11:15:41 +00:00
martin f5e2c967fc Split BRI attaching into two phases, so lower layer drivers can get their
BRI identifier and L3 driver state early on, then finish initializing and
announce the controller to userland when it's ready.
2002-03-29 20:29:53 +00:00
matt 8a30192c27 Correct a comment and cleanup slightly how the local ethernet is programmed
into the chip.
2002-03-29 00:00:10 +00:00
bouyer da0cf38ed5 In wdcintr(), it !WDCF_IRQ_WAIT, read the status register anyway to clear a
possible pending interrupt. This should avoid the interrupt loop described
in PR kern/15841.
It is safe to read status here, because if we're not waiting for an interrupt
we have no command pending, so the device should be idle.
2002-03-28 22:51:58 +00:00
onoe 45a8f0749c Fix to work Symbol firmware card, which cannot be initialized more than once.
Tested with 3Com 3CRWE737A and Intel Pro/Wireless 2011.
2002-03-27 08:01:22 +00:00
chs 150665fbb1 91C96 has the same chip ID as 91C94, list both in attach output. PR 11413. 2002-03-27 07:50:54 +00:00
martin ebd73ccd11 After Jason Thorpe explained to me how it is supposed to work, implement
(de)activate for pcmcia cards.
Implement detach/(de)activate for PCI cards.
Clean up internal state (free call-descriptors) if a controller is
detached while it has open connections.
2002-03-27 07:39:35 +00:00
chs 23825982c3 add support for SMC 9332DST. 2002-03-26 07:57:16 +00:00
chs 99b5d17961 move some prototypes from tulip.c to tulipvar.h so they can
be used by bus-specific code.
2002-03-26 07:41:40 +00:00
martin 0db68b667b Now that we have all pieces in place (and enough granularity to specify
B-channel and D-channel drivers separately) split the Fritz!PCI card
driver out of the isic driver.

The new device is called "ifpci" and uses the same D-channel driver as the
isic devices, but has it's own B-channel driver.
2002-03-25 16:39:52 +00:00
martin 909e313a80 Remove a leftover from the BRI registry at layer 2.
Initialize layer 2's idea of it's BRI id after attaching.
2002-03-25 14:44:46 +00:00
martin a994533d0a Make pcmcia cards detach properly.
Notify userland of attaching/detaching cards.
This partly fixes PR 15951.
2002-03-25 12:07:33 +00:00
dbj ea44522489 changes from Warner Losh to read firmware version for non prism2 cards 2002-03-25 09:10:54 +00:00