freebsd-skq/sys/dev/aic7xxx/aicasm
gibbs b9404180a2 Add support to aicasm for "downloaded constants". These are immediate
operands that are set during seqeuncer program download instead of at
assembly time.

Convert the sequencer code to use" downloaded constants" for four run time
constants that vary depending on the board type.  This frees up 4 bytes
of sequencer scratch ram space where these constants used to be stored and
also removes the additional instructions required to load their values
into the accumulator prior to using them.

Remove the REJBYTE sram variable.  The host driver can just as easly
read the accumulator to get this value.

The scratch ram savings is important as the old code used to clober the
SCSICONF register on 274X cards which sits near the top of scratch ram
space.  The SCSICONF register controls bus termination, and clobbering
it is not a good thing.  Now we have 4 bytes to spare.

This should fix the reported problems with cards that don't have devices
attached to them failing with a stream of "Somone reset bus X" messages.

Doug Ledford determined the cause of the problem, fixes by me.
1997-09-27 19:37:31 +00:00
..
aicasm_gram.y Add support to aicasm for "downloaded constants". These are immediate 1997-09-27 19:37:31 +00:00
aicasm_scan.l Add support to aicasm for "downloaded constants". These are immediate 1997-09-27 19:37:31 +00:00
aicasm_symbol.c Add support to aicasm for "downloaded constants". These are immediate 1997-09-27 19:37:31 +00:00
aicasm_symbol.h Add support to aicasm for "downloaded constants". These are immediate 1997-09-27 19:37:31 +00:00
aicasm.c Make the aic7xxx sequencer assembler compile in the kernel's object 1997-09-03 03:44:58 +00:00
aicasm.h Modify my copyright notice to allow the sequencer to be used with GPLed 1997-06-27 19:38:56 +00:00
Makefile Add support to aicasm for "downloaded constants". These are immediate 1997-09-27 19:37:31 +00:00