Commit Graph

28 Commits

Author SHA1 Message Date
tsutsui 0ceded7d3b Generated from osiop.ss rev. 1.1:
Initial compiled script for 53c710.
2001-04-30 04:49:57 +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
tsutsui b83fe1a852 Correct register address map for 53c710. 2001-04-29 11:20:44 +00:00
bouyer 5113af09e3 Regen 2000-10-23 14:54:50 +00:00
bouyer 7ae5c097e5 Rearrange things a bit to have less jumps
Install the core of the scheduler in main script (so it's in RAM when there is
one), and avoid jump in the common case. The command part of the scheduler now
lives in host memory, with tables.
Add template for a tag switch.
2000-10-23 14:53:53 +00:00
bouyer 3b7321e1c0 Allow conditionnal branch like "JUMP foo, IF FALSE"
The branch will never be taken as is, but the driver can patch the script.
2000-10-23 14:51:51 +00:00
bouyer 8561c00a0a Regen 2000-10-19 07:20:33 +00:00
bouyer 67618a69ae Move restore_scntl3 before the lun switch, to ease freeing of unused lun
slots.
2000-10-19 07:20:16 +00:00
bouyer b66120e445 Regen 2000-10-18 17:01:46 +00:00
bouyer 75246b83c0 Redo the target/lun sw in a better way, and handle queue tag messages. 2000-10-18 17:01:13 +00:00
bouyer 8ec46d1679 Fix off by one error when using RETURN, WHEN/IF ... 2000-10-18 16:05:23 +00:00
bouyer 64c818a7e2 Emit a warning when a symbol is undefined. 2000-10-09 15:57:56 +00:00
bouyer c8ad9b6302 Regen 2000-10-06 16:39:22 +00:00
bouyer 171adcf634 Fix recurent typo: shed->sched 2000-10-06 16:39:04 +00:00
bouyer eae96f0267 Regen 2000-10-06 16:31:31 +00:00
bouyer c67eef4e7d Handle reselect entirely in script; for this provide a script area,
modified by the driver, which will load the appropriate DSA for a given
target/lun.
2000-10-06 16:31:17 +00:00
bouyer 22a10be43e sheduler->scheduler, as pointed out by Klaus Klein 2000-06-13 13:59:15 +00:00
bouyer c9347a04a5 Regen. 2000-05-25 10:16:37 +00:00
bouyer b063b2ec36 Separate the sheduler from the main script, allocate another DMA-safe
memory page for the sheduler. Put the main script in the on-chip RAM when
available.
Avoid a null-pointer dereference when DSA is invalid.
2000-05-25 10:10:54 +00:00
bouyer 95d08cb691 Regen 2000-05-15 07:44:05 +00:00
bouyer 06d4aa45eb - use my standart copyrigth notice
- After reselect, don't clear ack after the IDENTIFY message, this breaks
  when the reselecting target has different sync parameters than the previous
  one.
2000-05-15 07:43:45 +00:00
bouyer babd44e7a1 Ops, regen siop.out from the last siop.ss. 2000-05-04 15:44:35 +00:00
bouyer c8ff442f72 Add a flag hold in scratcha0, set when we're doing a data transfer. Used
for save data pointers.
2000-05-04 15:42:42 +00:00
bouyer fe54b787dc Add NetBSD RCS Id and copyrigth notice. 2000-04-27 14:08:09 +00:00
bouyer 88be4752d0 - Change the script to start new commands in an asyncronous way, using
'command slots' in which the host can put command and wait for the script
 to start them
- Change siop.c to do full disconnect/reslelect, allowing as much as one
 command per target/lun to run in parallel.
- Fix bug in registers init where a board without BIOS would end at
  ID 0 (now the driver works on alpha too).
- better handling of messages, sending back a MSG_EXT_SDTR in response to an
  incoming MSG_EXT_SDTR, and MSG_MESSAGE_REJECT for unhandled messages.
- fix use of bus_dmamap_sync() and htole32().
- supports shared interrups
- change some int8 and int16 to int, for alpha and mips benefits ( suggested by
  Toru Nishimura)
2000-04-25 16:27:05 +00:00
bouyer 5ee6872b46 - Add support for NOP instruction
- fix dsp value for second operand of memory move, so that patch list will be
  correct.
2000-04-25 16:01:16 +00:00
bouyer 19ada4a82a Snapshot of work in progress: new driver for the NCR 53c8xx SCSI controller
(the name 'siop' is still being discussed, may change).
Only basic disconnect/reselect for now, no sync/wide negotiation.
Tested with 810A, 875 and 895 on i386 only.
The bus-independant part should also be able to handle the 53c720 and 53c770.
A new driver with enhanced script should appear for the 825/875/895 'soon'.
2000-04-21 17:56:58 +00:00
bouyer cd5411b382 Script assembler for the NCR 53c7xx/8xx scsi controller. Initial work
done by Michael L. Hitch, support for the 8xx and some improvements
by me.
2000-04-21 17:50:07 +00:00