summaryrefslogtreecommitdiff
path: root/sys/dev/microcode/siop
AgeCommit message (Collapse)Author
2022-05-23s/beggining/beginning/ in comments.andvar
2022-04-21s/substract/subtract/ in comments and error message.andvar
s/obtainted/obtained/ in one comment.
2016-12-12acknowleg -> acknowledg, proceedure -> procedure.maya
only comments were changed. from miod
2009-10-21Drop 3rd and 4th clauses (except on files where copyright is sharedsnj
with UC, in which case only the ad clause has been removed). Approved by mhitch@ (copyright holder).
2009-10-19Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsenbouyer
for the booring work !
2005-12-11merge ktrace-lwp.christos
2005-11-18Regen: save offset at disconnect after a data phase without save data pointer.bouyer
2005-11-18Some drives disconnect after the last data phase without a save data pointerbouyer
message. In such case we would not update resid with the proper value (eventually resid would not be updated at all if there was only one data phase). To fix this, have the script save the offset in the data tables at disconnect time if there was a transfer, and use this to compute the resid if the current offset is 0. Problem reported and patch tested by edwin, Roy Bixler and YAMAMOTO Takashi. Fix kern/31990 by YAMAMOTO Takashi.
2005-02-27nuke trailing whitespaceperry
2005-02-11White space nit- don't put a space before/after increment/decrementsimonb
operators.
2004-05-17Regen from esiop.ss 1.18bouyer
2004-05-17Regen from siop.ss 1.18bouyer
2004-05-17when an unexpected disconnect occurs only compute the resid; do thebouyer
real save data pointers when we get the message (or rather, at disconnect time following the message). Factor out code to do this, and to deal with xs->resid, in siop_common.c.
2004-05-17Regen from esiop.ss 1.17.bouyer
2004-05-17Properly compute xs->resid, instead of assuming it'll always be 0 whenbouyer
a command is done.
2004-05-16Make it compile with recent compilers.bouyer
2003-10-05Remove references to University of California from my copyright notices.bouyer
2003-08-06Regen from esiop.ss 1.15.bouyer
2003-08-06Properly handle messages that we get at reconnect time (other thanbouyer
SIMPLE_Q_TAG). Some drives start sync/wide negotiation at reconnect time. Problem reported and fix tested by Andreas Wrede.
2003-07-14add missing __RCSID()lukem
2003-04-06Regen scripts for new oosiop.tsutsui
2003-04-06Tweak siop scripts assembler for new oosiop.tsutsui
2003-04-06Add MI NCR/Symbios 53c700 SCSI driver.tsutsui
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.
2002-08-29Fix typo in comment.bouyer
2002-07-26Spell '[Rr]ight' correctly. From Jim Bernard.wiz
2002-07-26enouth -> enough.wiz
2002-07-07Regen.fredette
2002-05-02Regen: move a few things around to save a few JUMP.bouyer
2002-05-02Move a few things around, to save some JUMP.bouyer
2002-04-27Regen: use a u_int32_t in script RAM to pass flags between script and driver.bouyer
2002-04-27Use a u_int32_t in script RAM instead of the SEM bit in ISTAT to pass flagsbouyer
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-27Regen: implement done command ring.bouyer
2002-04-27Implement a ring for the completed commands. This avoid a (problematic onlybouyer
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-25Regen: 2 DSA entry per lun, load SCRATCHC before select, avoid race conditionbouyer
when setting f_cmd_free.
2002-04-25- We can't share the per-lun DSA entry for untagged and tag table DSA;bouyer
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-24Regen: get rid or ID in scheduler slot, to save RAM.bouyer
2002-04-24For a new command, use the id in the command table and get rid of the ID in thebouyer
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-24Regen: bump the number of slots in the cmd ring to 256.bouyer
2002-04-24Bump the number of slots in the command ring to 256.bouyer
2002-04-23More copyright fixes, pointed out by Thomas. Thanks !bouyer
2002-04-23Fix copyrigth.bouyer
2002-04-23Regen: bump message size to 16 octets.bouyer
2002-04-23Bump the space for SCSI messages from 8 to 16 octets, as 8 may not bebouyer
enouth for IDENTIFY + TAG + PPR. Get rid of constants in C code by use of a offsetof macro.
2002-04-22Regen: block on wait MSG_OUT after a SELECT.bouyer
2002-04-22It seems that the script processor continue to exec a few intructionsbouyer
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-22Regen: tagged queuing support, and led on/off fragments.bouyer
2002-04-22Add the led_on/led_off script fragments.bouyer
2002-04-22Add support for tagged queuing to esiop (256 tags per device).bouyer
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-21Generated from esiop.ss, for the new esiop driver.bouyer
2002-04-21First cut at a esiop driver (enhanced siop). Doesn't implement tagged queuingbouyer
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.