Print out the length of the compiled sequencer program.
aic7xxx.seq:
More optimizations. Replace generic bcopy routine with bcopy_3
and bcopy_4 (ie unroll the loops) since these are the only two cases used.
Initialize SIMODE1 and SXFRCTL1 from the kernel in ahc_init instead of
at each selection/reselection since this is expensive and only needs to
be done once. Condense function returns into previous instruction if possible.
Reorder some sections to kill superflous jumps. These optimizations kill
the ~150k/s penalty adding support for Twin/Wide cards was costing since
the last place in the commaon path of execution where we had to do ugly,
convoluted testing for the type of card in the sequencer has gone away.
Next stop tagged queuing and target mode.
(SCSI control block) instead of having the host PIO it down. Also
reimplement WDTR and SDTR optimization to remove code in the sequencer
and place the responsibility of knowing when to initiate SDTR or WDTR
on the kernel driver. This vastly shortens the sequencer program yet
yeilds the same performance.
sense retrieval code that messed up CDROM devices. This code will also
responde correctly to SDTR and WDTR messages from devices that start a
negotiation sequence.
You can now sling 14 devices off of a 274xT. In the process of adding
twin channel support, I removed all evident restrictions on supporting
Wide channeled devices, but I do not have a Wide controller to test them
on.
aic7770_seq.h, the pre-compiled header, is no longer needed since config
handles this dependancy.
make the sequencer code fully compatible with the aic7870 (ie 294x adaptors).
I've also added to my local mods putting the sequencer into "FASTMODE" clock.
This gives upwards of 2M/sec write preformance improvement in some scenarios.
There haven't been any reports of this causing problems, and I have been
reaping the benifits of it for more than a week now.
This also includes a new version of the pre-generated file <ugh>
Obtained from: John Aycock (aycock@cpsc.ucalgary.ca) and myself
a discussion going on about removing this code from the burden of the
GPL, but it won't happen before Beta, and this code should be tested
before release.
Supports 27/2842 class adaptec cards and is almost capable of supporting
aic7870 based adapters (294X series cards). It does not support Wide
controllers or the second channel on Twin boards although I have work in
progress on getting both channels and running.
I have also added a few performance improvements to this version that give
us approximately a 25% boost over the original driver. These patches have
been submitted to the author.
Obtained from: Linux aic7770 driver (John Aycock - aycock@cpsc.ucalgary.ca)