Commit Graph

2314 Commits

Author SHA1 Message Date
itojun 6229248ec0 minor style 2001-05-24 08:12:28 +00:00
itojun 85efd7edb1 correct multicast filter handling. without this, we cannot run IPv6 on an*. 2001-05-24 08:06:04 +00:00
petrov 9d59ae231c adjust fas register fields names 2001-05-23 18:32:26 +00:00
bouyer a98b728b88 Call scsipi_channel_thaw() after scsipi_done() so that command ordering
is preserved.
2001-05-23 15:51:32 +00:00
fvdl 24b32e8f08 Add missing definitions for hw checksumming. 2001-05-23 00:56:58 +00:00
mjacob d298a26243 Add back in (again) ISPASYNC_LIP and ISPASYNC_LOOP_RESET async
notifications. Let each platform set policy as to what to do
with these.
2001-05-22 19:32:41 +00:00
thorpej 188e0d6625 Some changes from the new FreeBSD `fxp' driver:
- Add some additional config block bits for the i82558/i82559.
- Change the config block template to only fill in the must-be-one
  reserved bits, leave fxp_init() to fill in all the important things.
- On the i82558/i82559, we can use "Receive Long Frames" rather than
  "Save Bad Frames" to support the VLAN MTU.
- Use 802.3x flow control on the i82558/i82559.  This is all handled
  transparently by the hardware.  When in promiscuous mode, allow
  wire-watchers to see the flow control frames.
- Use the Extended TxCB format on the i82558/i82559.  This places two
  Transmit Buffer Descriptors directly in the TxCB, which should cover
  the vast majority of packets transmitted.  This saves PCI transactions
  that would otherwise be required to fetch the TBD list.

With the tansmit queue length changes from yesterday, this gets us up to
11.5MB/s TCP transmit speed, out of an absolute maximum of 12MB/s possible
on a 100Mb/s link.
2001-05-22 15:29:30 +00:00
thorpej a5a03e13dd Report 82558, 82559, etc. based on chip revision. Also, remember which
revsion we have for feature enables later.
2001-05-22 01:23:25 +00:00
thorpej 611e112566 A little slight cleanup. 2001-05-22 00:27:01 +00:00
thorpej fb4607ec45 Add some additional register definitions, from FreeBSD. 2001-05-22 00:07:32 +00:00
thorpej 0064d69faf Re-arrange the transmit control data somewhat so that we can
use the extended TxCB format (that change will happen later).
2001-05-21 23:58:44 +00:00
thorpej 65ac078927 Sigh, typo in last. 2001-05-21 23:21:27 +00:00
thorpej 00f922fa70 Change NTXSEGS from 16 to 8, and the TXQUEUE len from 128 to 256. Also
increase the number of Rx buffers from 64 to 128.

These mirror some performance tweaks made to the sip(4) driver.
2001-05-21 22:20:31 +00:00
thorpej d84e2452ea Fix non-fatal typo -- CB_NOP -> CU_NOP in the ICH work-around (they
have the same value).
2001-05-21 21:49:51 +00:00
thorpej b4538a0165 The 82801BA built-in Ethernet has a bug which requires us to
issue a NOP before a CU_RESUME when in 10baseT mode.  Handle
this.
2001-05-21 21:47:52 +00:00
thorpej e7a0ef6145 ANSI'ify. 2001-05-21 20:59:38 +00:00
ichiro cb675810e0 add more comment about firmware of EVAL-CARD. 2001-05-20 13:14:54 +00:00
ichiro c13971f816 chenge chip and card identity,
print RF-chipset, Medium Access Controller(MAC) and CARD-identity
2001-05-20 12:57:57 +00:00
bouyer 8aa2f73d43 Enable tagged queuing again; should work now with scsipi_base rev 1.42 2001-05-18 12:57:42 +00:00
fredette d76bcda838 Fixed some typos, removed unused asm() labels. Removed
the DMA map creation, now the bus glue does this.
2001-05-18 12:51:58 +00:00
drochner bc8eda57c9 increase the delay after PHY reset - it seems that mii register accesses
can fail if attempted too soon after reset
2001-05-17 19:00:18 +00:00
drochner 323adb5a41 support BNC interfaces (serial mode) as on the SMC9432BTX and 100FX
on the SMC9432FTX
2001-05-17 17:32:47 +00:00
drochner 5e1115908d Revert previous change; this breaks for the old controllers which 1.6
should help for. Instead, weaken the "echo" test: don't insist in
getting the same value back which was written.
2001-05-17 10:48:39 +00:00
scw d1bc67e029 In osiop_scsidone(), call scsipi_done() even for polled operations.
This fixes a `hang' on shutdown when the `Synchronise Cache' command
is sent to a disk. (It uses polled mode because it is called from inside
a shutdown hook).
2001-05-17 10:35:30 +00:00
mjacob 90cabee3fb Per helpful suggestion from LukeM- make INLINE usage consistent (and
use correct __inline format).
2001-05-16 21:41:52 +00:00
jdolecek 8e532c1ad1 Make sure to allocate big enough mbuf data area before elevating
interrupt priority, to avoid allocating additional mbufs on
splsched(). Move some other misc bits out of splched()-guarded
section. This should make the code a bit more friendly wrt e.g.
clock interrupts. Sligh performance improvement was observed with
this change (like 1-2% on slow machine), even.

This also fixes ancient kern/2478 by Bill Sommerfeld.
2001-05-16 20:30:52 +00:00
ichiro 8a78799bf4 support BUFFALO AirStation WLI-PCM-S11
this card are PRISM2.5 card.
2001-05-16 14:33:21 +00:00
tsubai eef5fa50d3 Big-endian support. 2001-05-16 10:45:36 +00:00
ichiro 15833cae3b add prism chip identity, Prism2 with SST flush. 2001-05-16 07:53:28 +00:00
lukem 927097774a delint: remove volatile from fxp_mdi_read() decl 2001-05-16 04:20:55 +00:00
mjacob b81e69fa8e beginning basic 2300 infrstructure support 2001-05-16 03:58:34 +00:00
mjacob 9f2c2c7a8c Keep up with the Joneses.... further synchronization for the eventual
implementation in NetBSD for target mode.
2001-05-16 03:58:03 +00:00
mjacob 73eba1a839 Long overdue- put locks on the usage of the mailbox command stuff. This
keeps us from stomping on ourselves.

Say we're in the middle of re-evaluating a loop (and sleeping) when a
command completes, or a timer refires, and this *other* thread decides
*it* wants to start re-evaluating the loop. Bad news.

We have to be a bit careful- if we can't acquire the MBOX semaphore at
interrupt level, we will simulate a host interface error. This is a bit
of a temp workaround. There's some work underway driven by a NetBSD
commercial user that will try and force most mailbox stuff into a
part A/part B interrupt driven model.
2001-05-16 03:55:15 +00:00
mjacob a1dd9d78ee It's 'role None', not 'role No'.
Also, pay attention to the difference in the ISPASYNC_CHANGE_NOTIFY
between loop and fabric changes.
2001-05-16 03:52:10 +00:00
ichiro 9a3074ffce cosmetic change.
change version format: <major>.<minor> variant <num>
2001-05-16 02:36:37 +00:00
christos 6ae38c2f7a Try the kbc_auxtest if the random write/read to the aux port fails (it returns
0xfe on my gateway 2000 circa 1993). That should not affect broken controllers
that choke on the kbc_auxtest, because for those the write/read test succeeds.
2001-05-15 22:01:07 +00:00
lukem d62b92e0f7 delint: () protect some macro args 2001-05-15 15:41:27 +00:00
ad ae0203ee27 Correct arguments to bus_dmamap_create(), and add a reset routine for the v3
interface.
2001-05-15 12:49:37 +00:00
ichiro 0071e88a8c fixed mistake.
major version and minor version were made reverse.
2001-05-15 11:45:50 +00:00
ichiro 08d33f4cc0 Fix indentation in recent commit. 2001-05-15 09:06:15 +00:00
ichiro 4afb07bd12 getting prism2 firm ver routine to wi_get_id().
if firm ver is more than 0.8c3, promiscuous mode is off.

typo WI_RID_STA_IDENEITY -> WI_RID_STA_IDENTITY
2001-05-15 09:01:27 +00:00
ichiro caa399b739 WEP cannot be used when Prism2 Firm version is lower than 0.8.3.
Although WEP is used in Windows also in an old firm,
because WEP is processed by the windows driver side.
If Prism2 Firm version is more than 0.8.3, WEP does work without 'Promiscuous ON'.
2001-05-15 04:27:22 +00:00
ichiro 2970b99ac9 It enabled it to control roaming mode and authentication mode.
Roaming mode can change value into 'firm mode' and disable.
Authentication mode can change into 'Open System authentication'
and 'Shared Key Authentication' with Prism2 chip.

wi_get_id() was introduced in order that chip might judge automatically
whether it is Prism2 chip. Therefore, a pp_prism2 entry in
"struct wi_pcmcia_product" became unnecessary.
2001-05-15 04:14:06 +00:00
jdolecek 85c02ac331 epintr(): eliminate write-only variable 'addrandom' 2001-05-14 09:28:49 +00:00
jdolecek 6ff7de5716 remove unneeded #includes, fix typo 2001-05-14 08:01:23 +00:00
jdolecek 497bb809df do not use the synchronous read mode for MCA 3c529 2001-05-14 07:03:50 +00:00
thorpej 240de9a426 Definitions for the Dallas Semiconductor DS1286/DS1386 Real Time Clock.
From Rafal K. Boni.
2001-05-11 02:07:09 +00:00
thorpej 18e25d5feb Add a flag to suppress SCC reset at attach time.
From Rafal K. Boni.
2001-05-11 01:40:48 +00:00
fvdl ba2882488a Despite what the hardware docs say, the global reset command is not
done when the command-in-progress bit has been cleared. The 1ms
time that is mentioned also seems wrong; 20,000us is not enough
on at least one machine. So, do a delay(100000) in ex_reset.
Fortunately, this function is only called when the card is
attached or when hardware failure is suspected.

While here, only mask one 1 bit in the 'reset hack' case.
2001-05-10 22:57:44 +00:00
tsutsui 330ab2b636 Print a clock frequency of the chip. 2001-05-09 16:24:43 +00:00
ichiro 09858f6fc8 change promisc mode in case of SIOCSIFFLAGS of wi_ioctl.
Fix indentation.
2001-05-08 16:42:49 +00:00
ichiro 1480c8fae2 delay(10) is too much enough for command waiting routine. 2001-05-08 13:42:04 +00:00
lukem a9bf1b0410 delint 2001-05-07 08:15:41 +00:00
ad 95450fbced Make provision for resetting the board at start-up. 2001-05-06 19:53:04 +00:00
ichiro 8bb5cfe6aa divided into PCMCIA attachment and common code of wi.
since if_wi_ieee.h does not depend for pcmcia,
sys/dev/pcmcia/if_wi_ieee.h was moved to sys/dev/ic/wi_ieee.h .
2001-05-06 03:26:38 +00:00
ross e3f2f91bfb Split pci and eisa/isa attachment calls, plus misc cleanup. 2001-05-03 20:34:54 +00:00
fvdl 487447a9bf Bump values of the number of up- and downlaod descriptors such that
saturating a 100Mbit link will not lead to running out of them.
2001-05-03 17:59:24 +00:00
minoura 58b62ea0cf Correct playing mu-law and linear. 2001-05-03 02:09:11 +00:00
minoura ff3917c60f Oops, it contained some debug code. 2001-05-02 13:34:33 +00:00
minoura 1a9388aa50 Software codec for Oki MSM6258 voice synthesizer.
Recording untested.
2001-05-02 12:53:31 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
bouyer 6baecd7e87 Don't forget to init chan_bustype. 2001-05-02 10:31:41 +00:00
lukem 796f5b43a7 delint 2001-05-01 16:40:03 +00:00
bouyer 19b0c05827 Ops, don't forget to increment li->used for each tagged command. 2001-04-30 13:58:32 +00:00
bouyer 2cc0fbbe14 remplace /*
*/
with
#ifdef notdef
#endif
to avoid:
../../../../dev/ic/hmereg.h:275: warning: `/*' within comment
2001-04-30 12:22:42 +00:00
tsutsui 613923b42e Add a MI driver for the Symbios/NCR 53c710 SCSI controller.
This is based on amiga's siop driver, but converted to use
bus_space(9) functions and modified to fit bus_dma(9) framework.

Currently tested on NetBSD/arc with jazzio 53c710 SCSI,
which really requires bus_dma(9) functions :-)
Sync transfers and disconnect/reconnect are also working.

TODO:
- Test under more heavy load
- Clean up osiop_checkintr() hander
- Reorganize command queue and sync negotiation handling more suitable
  for thorpej-scsipi mid-layer
- Re-think defered interrupt handling for amiga
2001-04-30 04:47:50 +00:00
lukem b3b4a527b3 remove trigraph 2001-04-30 03:53:19 +00:00
lukem 5de219fbef delint 2001-04-30 03:49:12 +00:00
lukem c83fa97ec8 remove trigraph 2001-04-30 03:48:06 +00:00
lukem 52a1d62934 delint 2001-04-30 03:45:35 +00:00
lukem 786063e4da use #if 0 rather than // or /* to comment out blocks of code 2001-04-30 03:43:09 +00:00
lukem f863105161 remove some lint, including ansifying funcs 2001-04-30 02:55:08 +00:00
lukem abf1970c82 delint newline in string 2001-04-30 02:17:55 +00:00
lukem 599ac910c6 this is _C_ not _C++_, and // is NOT valid in _C_ 2001-04-30 01:34:04 +00:00
erh acc17cc823 Set the delta for the particular source so telling mixerctl to decrease the
volume (using --) adjusts it far enough to stick.
2001-04-29 02:47:25 +00:00
bouyer 1346d56311 - don't wait when called from interrupt context (basically this means we
can't sleep in HBA drivers)
- pool_get can fail, so return XS_RESOURCE_SHORTAGE instead of panic()
- don't try to bzero() a NULL pointer
2001-04-28 15:09:42 +00:00
jdolecek 6589e65051 Don't panic if the memory size is "weird", but instead compute
reasonable transmit/receive buffer count.
This is needed for e.g. SKNET adapters, which use top 30 bytes of 16KB
memory to map registers and PROM and hence not all the memory is
available for buffers.
2001-04-27 17:08:02 +00:00
bouyer af5fd4c7d8 Stopgap measure for PR kern/12762: cut the number of openings per device
to 16 or 4 (depending on capabilities of adapter), as it was before
thorpej_scsipi integration
Waiting feedback to known whenever the problem with openings set to AHC_SCB_MAX
existed before.
2001-04-27 14:49:11 +00:00
bouyer 856411129e Disable tagged queuing for now, it causes commands timeouts.
Note that it's not worse since thorpej_scsipi integration: tagged queuing
was not used before, because of a tag message rejected at probe time.
2001-04-26 17:09:39 +00:00
bouyer d032d80637 Redo xfer sync/wide/tag notification again: we need to notify upper layer
that we can do tag.
Start sync/wide nego at first command, but wait ADAPTER_REQ_SET_XFER_MODE
to notify upper level.
2001-04-26 16:56:53 +00:00
kanaoka 0d6646292e - Fix typo in comment.
- Add (missed)powerhook_disestablish() in ex_detach().
 - Sync with below.     Original commit log message:
 Add new powerhook argument values, PWR_SOFTSUSPEND, PWR_SOFTSTANDBY and
 PWR_SOFTRESUME. Apm calls powerhook with the values in normal interrupt
 priority level while others are protected with splhigh().
2001-04-26 08:21:51 +00:00
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
tsutsui f39a68828d Make sure to check SC_ACCEL_TAGS in ncr53c9x_ioctl()
even if sync transfer is disabled or not supported.
2001-04-21 07:28:22 +00:00
tsutsui 64eed5859d Clean up ncr53c9x_select():
- Define NCR_F_SELATN3 for sc_features and use it to check if the chip
  supports SELATN3 command
- Make conditions of sending messages a bit simpler.
2001-04-21 05:35:20 +00:00
tsutsui f2e3f6d5d4 Cosmetics. (tab/space etc.) 2001-04-20 17:32:33 +00:00
fredette 31d512c2e3 Added support for the chipset used on the Sun2 "sc" SCSI adapters.
A little rough around the edges, but definitely a starting point.
2001-04-20 16:35:22 +00:00
ragge 849d818db4 Remove some unused variables. 2001-04-15 15:01:35 +00:00
ross 7e0b361d84 Fix for kernel alignment crash reported on port-alpha. A developer went on
a happy code sweep (in the kernel!) and constified a random selection of
kernel objects. This changed the alignment of the previously-aligned-by-
accident seqprog array, and exposed a lurking bug.  I can't decide if this
is good or bad.
2001-04-14 19:37:17 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
thorpej a3fd502107 Nuke some unneeded splimp. 2001-04-12 03:16:56 +00:00
thorpej d94ce2f426 splimp -> splnet 2001-04-12 03:10:35 +00:00
wiz b7f59127c9 re-add bt8xx.h (needed for fxtv, without which bktr is pretty much useless) 2001-04-11 09:07:21 +00:00
jdolecek 372e5956ef Only install headers which are actually used by our userland. This
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@
recently.

I HOPE to get the list right. The headers I left in are ones
used for MI tools and those whose usage I discovered by grep over tree sources.
Feel free to put needed includes back in if you encounter anything which
should not be removed from lists.
2001-04-11 07:42:31 +00:00
mjacob dfb8f5f43f Include isp_ioctl.h. 2001-04-10 21:52:15 +00:00
mjacob 78a44662f5 Add initial implementation of ISP_SDBLEV, ISP_RESETHBA, ISP_FC_RESCAN,
ISP_FC_LIP and ISP_FC_GETDINFO ioctls.
2001-04-10 21:52:00 +00:00
mjacob 7bcf01a29a Note one other place that bogus interrupts can be measured. 2001-04-10 21:51:21 +00:00
mjacob 81a6d0ec41 Add isp_ioctl.h. 2001-04-10 21:50:53 +00:00
mjacob 5f8aa905e6 Add some HBA ioctl functions (LIP resets, rescan, setting debugging level). 2001-04-10 21:50:40 +00:00
fredette b27eda4ead Added. 2001-04-10 12:46:26 +00:00
fvdl 0ccb3965dd Fix missing splx calls. One of them from OpenBSD. 2001-04-09 23:51:28 +00:00