Commit Graph

164 Commits

Author SHA1 Message Date
wiz 74da88f77a Correct spelling of coalesce. (Will forward to Justin Gibbs.) 2003-05-14 12:57:45 +00:00
wiz 1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
fvdl 7ae27ded66 Regen. 2003-04-20 11:20:51 +00:00
fvdl 21e3127716 Sync with FreeBSD rev. 1.10: correct default precompensation value for RevA
hardware.
2003-04-20 11:19:33 +00:00
fvdl 6fcbec2b8d Generated register/sequencer code include files for the ahc and ahd
drivers.
2003-04-19 19:27:50 +00:00
fvdl 7e92a81099 Newer aic sequencer assembler. From FreeBSD, written by Justin Gibbs.
Ported to NetBSD by Pascal Renauld at Network Storage Solutions, Inc.
Some Makefile changes by me.

The 79xx code isn't yet used, driver for that to follow shortly.
2003-04-19 19:26:10 +00:00
tsutsui afa38ad0e6 Regen scripts for new oosiop. 2003-04-06 09:52:21 +00:00
tsutsui bcf0b777ce Tweak siop scripts assembler for new oosiop. 2003-04-06 09:50:29 +00:00
tsutsui 7b4697bdbe Add MI NCR/Symbios 53c700 SCSI driver.
This "oosiop" driver was originally written by Shuichiro URATA
for arc port, and then it was modified by me to make it work
also on hp700.

This driver has been tested on my NEC Express5800/240 with 53c700-66
for several months, and also tested on HP9000 735/125 with 53c700
(though current hp700 port has been broken since SA merge).
Both sync transfer and disconnect/reselect work fine,
but tagged queuing is not implemented yet.
2003-04-06 09:48:41 +00:00
mjacob 84d62d1796 Roll to latest f/w. Supposed to correct some nasty f/w bugs. 2003-02-09 20:39:13 +00:00
mjacob 0d0c2f5911 Update to the latest Fibre Channel f/w from the QLogic intranet site.
Fixes beaucoup bugs.
2002-10-18 23:19:20 +00:00
bouyer b13c46b64c Fix typo in comment. 2002-08-29 15:42:49 +00:00
wiz 645df36eff Spell '[Rr]ight' correctly. From Jim Bernard. 2002-07-26 14:11:34 +00:00
wiz 5db23d2c5d enouth -> enough. 2002-07-26 01:00:39 +00:00
fredette c9bdddaac5 Regen. 2002-07-07 23:01:51 +00:00
lukem 7026bf4ede Use SLIST_*() instead of accessing slh_first,sle_next directly.
XXX: this program currently doesn't parse macros that cross the EOL with \
(there are a couple in sys/dev/scsipi/scsi_message.h).
with that issue temporarily worked around, this change generates the
same output as the version of aicasm without this change.
2002-06-02 01:20:36 +00:00
bouyer 7de8483ff0 Regen: move a few things around to save a few JUMP. 2002-05-02 12:37:50 +00:00
bouyer 41af47376f Move a few things around, to save some JUMP. 2002-05-02 12:37:19 +00:00
bouyer 027861788c Regen: use a u_int32_t in script RAM to pass flags between script and driver. 2002-04-27 18:47:31 +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 b66175fa2b Regen: implement done command ring. 2002-04-27 17:40:19 +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
bouyer 916ef37c06 Regen: 2 DSA entry per lun, load SCRATCHC before select, avoid race condition
when setting f_cmd_free.
2002-04-25 19:35:07 +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
bouyer d59eabe0a9 Regen: get rid or ID in scheduler slot, to save RAM. 2002-04-24 09:44:12 +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 c0cb853db0 Regen: bump the number of slots in the cmd ring to 256. 2002-04-24 08:00:55 +00:00
bouyer e73a1efbd9 Bump the number of slots in the command ring to 256. 2002-04-24 08:00:08 +00:00
bouyer cd3578d7ef More copyright fixes, pointed out by Thomas. Thanks ! 2002-04-23 20:41:13 +00:00
bouyer 4c8f4b94f8 Fix copyrigth. 2002-04-23 20:12:39 +00:00
bouyer 25d4f402ce Regen: bump message size to 16 octets. 2002-04-23 12:56:01 +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
bouyer dbe8f22921 Regen: block on wait MSG_OUT after a SELECT. 2002-04-22 20:45:59 +00:00
bouyer 5242b16c65 It seems that the script processor continue to exec a few intructions
after the selection timeout is posted but the number executed isn't
reliable. So wait for MSG_OUT rigth after the select so that the state of
the script when the interruption is handled is known.
2002-04-22 20:45:27 +00:00
bouyer b5c850f201 Regen: tagged queuing support, and led on/off fragments. 2002-04-22 15:55:37 +00:00
bouyer 9080ea0aa3 Add the led_on/led_off script fragments. 2002-04-22 15:55:09 +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 2f72a4fcc7 Generated from esiop.ss, for the new esiop driver. 2002-04-21 22:53:37 +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 4b8e2f7002 - handle INTFLY (interrupt on the fly) command
- hanlde set/clear carry
- handle shl, shr (shift left and rigth) and xor operators
2002-04-21 22:40:10 +00:00
bouyer a8ac9f8638 Fix scratchd2 address. 2002-04-20 20:56:25 +00:00
bouyer 7341a66098 Regen: add hooks to drive LED via GPIO. 2002-04-18 11:59:41 +00:00
bouyer 172d73c2d5 Add hooks to drive the activity led via the GPIO pin 1, as required by some
tekram and symbios adapters.
2002-04-18 11:56:11 +00:00
bouyer 6b14001ff6 Really use a JUMP for NOP, not a block move. 2002-04-17 21:39:14 +00:00
onoe 410544177a Generated from the firmware binaries for T3 series CF adapter.
Obtained from Tim Gardner <timg@tpi.com> who developoed the Linux driver.
And approved by Brad Lefore <blefore@sj.symbol.com> to redistribute it
with BSD license.
2002-04-15 14:58:51 +00:00
martin e4998611e9 Fix copyright notice. 2002-04-14 12:24:26 +00:00
thorpej b0e1d51672 Microcode for Intel i8255x 10/100 Ethernet interfaces. This optional
microcode implements an interrupt mitigation function for several
specific revisions of the i8255x family.

From FreeBSD.
2002-04-05 05:35:46 +00:00
mjacob 2c3c2f2ca0 Cast for now non-const in ispdv structure. 2002-03-22 02:31:09 +00:00
mjacob d76634e057 Update 2300 firmware to latest release level. 2002-02-19 01:38:04 +00:00
mjacob acbfdd822a Roll f/w to latest level, correcting several, ah, interesting bugs. 2001-12-14 00:07:55 +00:00