Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
d98d10eb
Commit
d98d10eb
authored
May 26, 2003
by
James Bottomley
Browse files
Options
Browse Files
Download
Plain Diff
Merge raven.il.steeleye.com:/mnt1/jejb/BK/scsi-aic-2.5
into raven.il.steeleye.com:/home/jejb/BK/scsi-for-linus-2.5
parents
5cfbffd1
1d81bb15
Changes
25
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
1282 additions
and
1288 deletions
+1282
-1288
Documentation/scsi/aic7xxx.txt
Documentation/scsi/aic7xxx.txt
+5
-0
drivers/scsi/aic7xxx/aic79xx.h
drivers/scsi/aic7xxx/aic79xx.h
+17
-17
drivers/scsi/aic7xxx/aic79xx.reg
drivers/scsi/aic7xxx/aic79xx.reg
+16
-11
drivers/scsi/aic7xxx/aic79xx.seq
drivers/scsi/aic7xxx/aic79xx.seq
+26
-26
drivers/scsi/aic7xxx/aic79xx_core.c
drivers/scsi/aic7xxx/aic79xx_core.c
+61
-70
drivers/scsi/aic7xxx/aic79xx_inline.h
drivers/scsi/aic7xxx/aic79xx_inline.h
+7
-6
drivers/scsi/aic7xxx/aic79xx_osm.c
drivers/scsi/aic7xxx/aic79xx_osm.c
+18
-39
drivers/scsi/aic7xxx/aic79xx_osm.h
drivers/scsi/aic7xxx/aic79xx_osm.h
+3
-3
drivers/scsi/aic7xxx/aic79xx_osm_pci.c
drivers/scsi/aic7xxx/aic79xx_osm_pci.c
+11
-9
drivers/scsi/aic7xxx/aic79xx_pci.c
drivers/scsi/aic7xxx/aic79xx_pci.c
+60
-15
drivers/scsi/aic7xxx/aic79xx_reg.h_shipped
drivers/scsi/aic7xxx/aic79xx_reg.h_shipped
+22
-21
drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped
drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped
+11
-11
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
+442
-438
drivers/scsi/aic7xxx/aic7xxx.h
drivers/scsi/aic7xxx/aic7xxx.h
+7
-2
drivers/scsi/aic7xxx/aic7xxx.reg
drivers/scsi/aic7xxx/aic7xxx.reg
+3
-12
drivers/scsi/aic7xxx/aic7xxx.seq
drivers/scsi/aic7xxx/aic7xxx.seq
+20
-24
drivers/scsi/aic7xxx/aic7xxx_core.c
drivers/scsi/aic7xxx/aic7xxx_core.c
+45
-39
drivers/scsi/aic7xxx/aic7xxx_inline.h
drivers/scsi/aic7xxx/aic7xxx_inline.h
+8
-1
drivers/scsi/aic7xxx/aic7xxx_osm.c
drivers/scsi/aic7xxx/aic7xxx_osm.c
+26
-47
drivers/scsi/aic7xxx/aic7xxx_osm.h
drivers/scsi/aic7xxx/aic7xxx_osm.h
+3
-3
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
+5
-4
drivers/scsi/aic7xxx/aic7xxx_pci.c
drivers/scsi/aic7xxx/aic7xxx_pci.c
+7
-9
drivers/scsi/aic7xxx/aic7xxx_reg.h_shipped
drivers/scsi/aic7xxx/aic7xxx_reg.h_shipped
+4
-13
drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped
drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped
+452
-462
drivers/scsi/aic7xxx/aiclib.h
drivers/scsi/aic7xxx/aiclib.h
+3
-6
No files found.
Documentation/scsi/aic7xxx.txt
View file @
d98d10eb
...
...
@@ -132,6 +132,11 @@ The following information is available in this file:
2. Version History
6.2.34 - Fix locking regression instroduced in 6.2.29 that
could cuase a lock order reversal between the io_request_lock
and our per-softc lock. This was only possible on RH9,
SuSE, and kernel.org 2.4.X kernels.
6.2.33 - Dynamically disable PCI parity error reporting after
10 errors are reported to the user. These errors are
the result of some other device issuing PCI transactions
...
...
drivers/scsi/aic7xxx/aic79xx.h
View file @
d98d10eb
...
...
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#
89
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#
90
$
*
* $FreeBSD$
*/
...
...
@@ -1225,20 +1225,20 @@ struct ahd_softc {
int
seltime
;
/*
* Interrupt coales
s
ing settings.
*/
#define AHD_INT_COALES
S
ING_TIMER_DEFAULT 250
/*us*/
#define AHD_INT_COALES
S
ING_MAXCMDS_DEFAULT 10
#define AHD_INT_COALES
S
ING_MAXCMDS_MAX 127
#define AHD_INT_COALES
S
ING_MINCMDS_DEFAULT 5
#define AHD_INT_COALES
S
ING_MINCMDS_MAX 127
#define AHD_INT_COALES
S
ING_THRESHOLD_DEFAULT 2000
#define AHD_INT_COALES
S
ING_STOP_THRESHOLD_DEFAULT 1000
u_int
int_coales
s
ing_timer
;
u_int
int_coales
s
ing_maxcmds
;
u_int
int_coales
s
ing_mincmds
;
u_int
int_coales
s
ing_threshold
;
u_int
int_coales
s
ing_stop_threshold
;
* Interrupt coales
c
ing settings.
*/
#define AHD_INT_COALES
C
ING_TIMER_DEFAULT 250
/*us*/
#define AHD_INT_COALES
C
ING_MAXCMDS_DEFAULT 10
#define AHD_INT_COALES
C
ING_MAXCMDS_MAX 127
#define AHD_INT_COALES
C
ING_MINCMDS_DEFAULT 5
#define AHD_INT_COALES
C
ING_MINCMDS_MAX 127
#define AHD_INT_COALES
C
ING_THRESHOLD_DEFAULT 2000
#define AHD_INT_COALES
C
ING_STOP_THRESHOLD_DEFAULT 1000
u_int
int_coales
c
ing_timer
;
u_int
int_coales
c
ing_maxcmds
;
u_int
int_coales
c
ing_mincmds
;
u_int
int_coales
c
ing_threshold
;
u_int
int_coales
c
ing_stop_threshold
;
uint16_t
user_discenable
;
/* Disconnection allowed */
uint16_t
user_tagenable
;
/* Tagged Queuing allowed */
...
...
@@ -1362,11 +1362,11 @@ int ahd_parse_vpddata(struct ahd_softc *ahd,
int
ahd_parse_cfgdata
(
struct
ahd_softc
*
ahd
,
struct
seeprom_config
*
sc
);
void
ahd_intr_enable
(
struct
ahd_softc
*
ahd
,
int
enable
);
void
ahd_update_coales
s
ing_values
(
struct
ahd_softc
*
ahd
,
void
ahd_update_coales
c
ing_values
(
struct
ahd_softc
*
ahd
,
u_int
timer
,
u_int
maxcmds
,
u_int
mincmds
);
void
ahd_enable_coales
s
ing
(
struct
ahd_softc
*
ahd
,
void
ahd_enable_coales
c
ing
(
struct
ahd_softc
*
ahd
,
int
enable
);
void
ahd_pause_and_flushwork
(
struct
ahd_softc
*
ahd
);
int
ahd_suspend
(
struct
ahd_softc
*
ahd
);
...
...
@@ -1514,7 +1514,7 @@ extern uint32_t ahd_debug;
#define AHD_SHOW_QUEUE 0x02000
#define AHD_SHOW_TQIN 0x04000
#define AHD_SHOW_SG 0x08000
#define AHD_SHOW_INT_COALES
S
ING 0x10000
#define AHD_SHOW_INT_COALES
C
ING 0x10000
#define AHD_DEBUG_SEQUENCER 0x20000
#endif
void
ahd_print_scb
(
struct
scb
*
scb
);
...
...
drivers/scsi/aic7xxx/aic79xx.reg
View file @
d98d10eb
...
...
@@ -39,7 +39,7 @@
*
* $FreeBSD$
*/
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$"
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
9
$"
/*
* This file is processed by the aic7xxx_asm utility for use in assembling
...
...
@@ -286,7 +286,7 @@ register HS_MAILBOX {
address 0x00B
access_mode RW
mask HOST_TQINPOS 0x80 /* Boundary at either 0 or 128 */
mask ENINT_COALES
S 0x40 /* Perform interrupt coaless
ing */
mask ENINT_COALES
CE 0x40 /* Perform interrupt coalesc
ing */
}
/*
...
...
@@ -3704,28 +3704,28 @@ scratch_ram {
}
/*
* The maximum amount of time to wait, when interrupt coales
s
ing
* The maximum amount of time to wait, when interrupt coales
c
ing
* is enabled, before issueing a CMDCMPLT interrupt for a completed
* command.
*/
INT_COALES
S
ING_TIMER {
INT_COALES
C
ING_TIMER {
size 2
}
/*
* The maximum number of commands to coales
s
into a single interrupt.
* The maximum number of commands to coales
ce
into a single interrupt.
* Actually the 2's complement of that value to simplify sequencer
* code.
*/
INT_COALES
S
ING_MAXCMDS {
INT_COALES
C
ING_MAXCMDS {
size 1
}
/*
* The minimum number of commands still outstanding required
* to continue coales
s
ing (2's complement of value).
* to continue coales
c
ing (2's complement of value).
*/
INT_COALES
S
ING_MINCMDS {
INT_COALES
C
ING_MINCMDS {
size 1
}
...
...
@@ -3737,9 +3737,9 @@ scratch_ram {
}
/*
* The count of commands that have been coales
s
ed.
* The count of commands that have been coales
c
ed.
*/
INT_COALES
S
ING_CMDCOUNT {
INT_COALES
C
ING_CMDCOUNT {
size 1
}
...
...
@@ -3846,6 +3846,11 @@ scb {
}
SCB_TASK_ATTRIBUTE {
size 1
/*
* Overloaded field for non-packetized
* ignore wide residue message handling.
*/
field SCB_XFERLEN_ODD 0x01
}
SCB_CDB_LEN {
size 1
...
...
drivers/scsi/aic7xxx/aic79xx.seq
View file @
d98d10eb
...
...
@@ -40,7 +40,7 @@
* $FreeBSD$
*/
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$"
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
4
$"
PATCH_ARG_LIST = "struct ahd_softc *ahd"
PREFIX = "ahd_"
...
...
@@ -212,44 +212,44 @@ fill_qoutfifo_dmadone:
qoutfifo_updated:
/*
* If there are more commands waiting to be dma'ed
* to the host, always coales
s
. Otherwise honor the
* to the host, always coales
ce
. Otherwise honor the
* host's wishes.
*/
cmp COMPLETE_DMA_SCB_HEAD[1], SCB_LIST_NULL jne coales
s
_by_count;
cmp COMPLETE_SCB_HEAD[1], SCB_LIST_NULL jne coales
s
_by_count;
test LOCAL_HS_MAILBOX, ENINT_COALES
S
jz issue_cmdcmplt;
cmp COMPLETE_DMA_SCB_HEAD[1], SCB_LIST_NULL jne coales
ce
_by_count;
cmp COMPLETE_SCB_HEAD[1], SCB_LIST_NULL jne coales
ce
_by_count;
test LOCAL_HS_MAILBOX, ENINT_COALES
CE
jz issue_cmdcmplt;
/*
* If we have relatively few commands outstanding, don't
* bother waiting for another command to complete.
*/
test CMDS_PENDING[1], 0xFF jnz coales
s
_by_count;
test CMDS_PENDING[1], 0xFF jnz coales
ce
_by_count;
/* Add -1 so that jnc means <= not just < */
add A, -1, INT_COALES
S
ING_MINCMDS;
add A, -1, INT_COALES
C
ING_MINCMDS;
add NONE, A, CMDS_PENDING;
jnc issue_cmdcmplt;
/*
* If coales
sing, only coaless
up to the limit
* If coales
cing, only coalesce
up to the limit
* provided by the host driver.
*/
coales
s
_by_count:
mov A, INT_COALES
S
ING_MAXCMDS;
add NONE, A, INT_COALES
S
ING_CMDCOUNT;
coales
ce
_by_count:
mov A, INT_COALES
C
ING_MAXCMDS;
add NONE, A, INT_COALES
C
ING_CMDCOUNT;
jc issue_cmdcmplt;
/*
* If the timer is not currently active,
* fire it up.
*/
test INTCTL, SWTMINTMASK jz return;
bmov SWTIMER, INT_COALES
S
ING_TIMER, 2;
bmov SWTIMER, INT_COALES
C
ING_TIMER, 2;
mvi CLRSEQINTSTAT, CLRSEQ_SWTMRTO;
or INTCTL, SWTMINTEN|SWTIMER_START;
and INTCTL, ~SWTMINTMASK ret;
issue_cmdcmplt:
mvi INTSTAT, CMDCMPLT;
clr INT_COALES
S
ING_CMDCOUNT;
clr INT_COALES
C
ING_CMDCOUNT;
or INTCTL, SWTMINTMASK ret;
BEGIN_CRITICAL;
...
...
@@ -261,6 +261,15 @@ fetch_new_scb_done:
clr A;
add CMDS_PENDING, 1;
adc CMDS_PENDING[1], A;
if ((ahd->bugs & AHD_PKT_LUN_BUG) != 0) {
/*
* "Short Luns" are not placed into outgoing LQ
* packets in the correct byte order. Use a full
* sized lun field instead and fill it with the
* one byte of lun information we support.
*/
mov SCB_PKT_LUN[6], SCB_LUN;
}
/*
* The FIFO use count field is shared with the
* tag set by the host so that our SCB dma engine
...
...
@@ -324,7 +333,7 @@ fill_qoutfifo_loop:
mov CCSCBRAM, SCBPTR;
or CCSCBRAM, A, SCBPTR[1];
mov NONE, SDSCB_QOFF;
inc INT_COALES
S
ING_CMDCOUNT;
inc INT_COALES
C
ING_CMDCOUNT;
add CMDS_PENDING, -1;
adc CMDS_PENDING[1], -1;
cmp SCB_NEXT_COMPLETE[1], SCB_LIST_NULL je fill_qoutfifo_done;
...
...
@@ -863,7 +872,8 @@ mesgin_ign_wide_residue:
mvi REG0 call inb_next;
cmp REG0, 0x01 jne mesgin_reject;
test SCB_RESIDUAL_SGPTR[0], SG_LIST_NULL jz . + 2;
test DATA_COUNT_ODD, 0x1 jz mesgin_done;
test SCB_TASK_ATTRIBUTE, SCB_XFERLEN_ODD jnz mesgin_done;
SET_SEQINTCODE(IGN_WIDE_RES)
jmp mesgin_done;
mesgin_proto_violation:
...
...
@@ -1308,8 +1318,6 @@ idle_sg_avail:
bmov HADDR, CCSGRAM, 4;
}
bmov HCNT, CCSGRAM, 3;
test HCNT[0], 0x1 jz . + 2;
xor DATA_COUNT_ODD, 0x1;
bmov SCB_RESIDUAL_DATACNT[3], CCSGRAM, 1;
if ((ahd->flags & AHD_39BIT_ADDRESSING) != 0) {
and HADDR[4], SG_HIGH_ADDR_BITS, SCB_RESIDUAL_DATACNT[3];
...
...
@@ -1325,8 +1333,6 @@ sg_advance:
adc SCB_RESIDUAL_SGPTR[2],A;
adc SCB_RESIDUAL_SGPTR[3],A;
mov SINDEX, SCB_RESIDUAL_SGPTR[0];
test DATA_COUNT_ODD, 0x1 jz . + 2;
or SINDEX, ODD_SEG;
test SCB_RESIDUAL_DATACNT[3], SG_LAST_SEG jz . + 3;
or SINDEX, LAST_SEG;
clr SG_STATE;
...
...
@@ -1352,12 +1358,9 @@ sg_advance:
*/
load_first_seg:
bmov HADDR, SCB_DATAPTR, 11;
and DATA_COUNT_ODD, 0x1, SCB_DATACNT[0];
and REG_ISR, ~SG_FULL_RESID, SCB_SGPTR[0];
test SCB_DATACNT[3], SG_LAST_SEG jz . + 2;
or REG_ISR, LAST_SEG;
test DATA_COUNT_ODD, 0x1 jz . + 2;
or REG_ISR, ODD_SEG;
mov SG_CACHE_PRE, REG_ISR;
mvi DFCNTRL, (PRELOADEN|SCSIEN|HDMAEN);
/*
...
...
@@ -1507,7 +1510,7 @@ data_phase_done:
* send Ignore Wide Residue messages for data-in phases.
test DFCNTRL, DIRECTION jz target_ITloop;
test SSTAT1, REQINIT jnz .;
test
DATA_COUNT_ODD, 0x1
jz target_ITloop;
test
SCB_TASK_ATTRIBUTE, SCB_XFERLEN_ODD
jz target_ITloop;
SET_MODE(M_SCSI, M_SCSI)
test NEGCONOPTS, WIDEXFER jz target_ITloop;
*/
...
...
@@ -1577,9 +1580,6 @@ sgptr_fixup:
adc SCB_RESIDUAL_SGPTR[3], -1;
sgptr_fixup_done:
and SCB_RESIDUAL_SGPTR[0], SG_ADDR_MASK, SG_CACHE_SHADOW;
clr DATA_COUNT_ODD;
test SG_CACHE_SHADOW, ODD_SEG jz . + 2;
or DATA_COUNT_ODD, 0x1;
clr SCB_RESIDUAL_DATACNT[3]; /* We are not the last seg */
bmov SCB_RESIDUAL_DATACNT, SHCNT, 3 ret;
...
...
drivers/scsi/aic7xxx/aic79xx_core.c
View file @
d98d10eb
...
...
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#19
0
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#19
4
$
*
* $FreeBSD$
*/
...
...
@@ -4401,7 +4401,7 @@ ahd_handle_ign_wide_residue(struct ahd_softc *ahd, struct ahd_devinfo *devinfo)
sgptr
=
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_SGPTR
);
if
((
sgptr
&
SG_LIST_NULL
)
!=
0
&&
ahd_inb
(
ahd
,
DATA_COUNT_ODD
)
==
1
)
{
&&
(
ahd_inb
(
ahd
,
SCB_TASK_ATTRIBUTE
)
&
SCB_XFERLEN_ODD
)
!=
0
)
{
/*
* If the residual occurred on the last
* transfer and the transfer request was
...
...
@@ -4414,29 +4414,20 @@ ahd_handle_ign_wide_residue(struct ahd_softc *ahd, struct ahd_devinfo *devinfo)
uint32_t
sglen
;
/* Pull in the rest of the sgptr */
sgptr
|=
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_SGPTR
+
3
)
<<
24
)
|
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_SGPTR
+
2
)
<<
16
)
|
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_SGPTR
+
1
)
<<
8
);
sgptr
&=
SG_PTR_MASK
;
data_cnt
=
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_DATACNT
+
3
)
<<
24
)
|
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_DATACNT
+
2
)
<<
16
)
|
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_DATACNT
+
1
)
<<
8
)
|
(
ahd_inb_scbram
(
ahd
,
SCB_RESIDUAL_DATACNT
));
data_addr
=
(((
uint64_t
)
ahd_inb
(
ahd
,
SHADDR
+
7
))
<<
56
)
|
(((
uint64_t
)
ahd_inb
(
ahd
,
SHADDR
+
6
))
<<
48
)
|
(((
uint64_t
)
ahd_inb
(
ahd
,
SHADDR
+
5
))
<<
40
)
|
(((
uint64_t
)
ahd_inb
(
ahd
,
SHADDR
+
4
))
<<
32
)
|
(
ahd_inb
(
ahd
,
SHADDR
+
3
)
<<
24
)
|
(
ahd_inb
(
ahd
,
SHADDR
+
2
)
<<
16
)
|
(
ahd_inb
(
ahd
,
SHADDR
+
1
)
<<
8
)
|
(
ahd_inb
(
ahd
,
SHADDR
));
sgptr
=
ahd_inl_scbram
(
ahd
,
SCB_RESIDUAL_SGPTR
);
data_cnt
=
ahd_inl_scbram
(
ahd
,
SCB_RESIDUAL_DATACNT
);
if
((
sgptr
&
SG_LIST_NULL
)
!=
0
)
{
/*
* The residual data count is not updated
* for the command run to completion case.
* Explicitly zero the count.
*/
data_cnt
&=
~
AHD_SG_LEN_MASK
;
}
data_addr
=
ahd_inq
(
ahd
,
SHADDR
);
data_cnt
+=
1
;
data_addr
-=
1
;
sgptr
&=
SG_PTR_MASK
;
if
((
ahd
->
flags
&
AHD_64BIT_ADDRESSING
)
!=
0
)
{
struct
ahd_dma64_seg
*
sg
;
...
...
@@ -4504,16 +4495,17 @@ ahd_handle_ign_wide_residue(struct ahd_softc *ahd, struct ahd_devinfo *devinfo)
sg
);
}
}
ahd_outb
(
ahd
,
SCB_RESIDUAL_SGPTR
+
3
,
sgptr
>>
24
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_SGPTR
+
2
,
sgptr
>>
16
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_SGPTR
+
1
,
sgptr
>>
8
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_SGPTR
,
sgptr
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_DATACNT
+
3
,
data_cnt
>>
24
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_DATACNT
+
2
,
data_cnt
>>
16
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_DATACNT
+
1
,
data_cnt
>>
8
);
ahd_outb
(
ahd
,
SCB_RESIDUAL_DATACNT
,
data_cnt
);
/*
* Toggle the "oddness" of the transfer length
* to handle this mid-transfer ignore wide
* residue. This ensures that the oddness is
* correct for subsequent data transfers.
*/
ahd_outb
(
ahd
,
SCB_TASK_ATTRIBUTE
,
ahd_inb
(
ahd
,
SCB_TASK_ATTRIBUTE
)
^
SCB_XFERLEN_ODD
);
ahd_outl
(
ahd
,
SCB_RESIDUAL_SGPTR
,
sgptr
);
ahd_outl
(
ahd
,
SCB_RESIDUAL_DATACNT
,
data_cnt
);
/*
* The FIFO's pointers will be updated if/when the
* sequencer re-enters a data phase.
...
...
@@ -4806,12 +4798,12 @@ ahd_alloc(void *platform_arg, char *name)
|
AHD_EXTENDED_TRANS_A
|
AHD_STPWLEVEL_A
;
ahd_timer_init
(
&
ahd
->
reset_timer
);
ahd_timer_init
(
&
ahd
->
stat_timer
);
ahd
->
int_coales
sing_timer
=
AHD_INT_COALESS
ING_TIMER_DEFAULT
;
ahd
->
int_coales
sing_maxcmds
=
AHD_INT_COALESS
ING_MAXCMDS_DEFAULT
;
ahd
->
int_coales
sing_mincmds
=
AHD_INT_COALESS
ING_MINCMDS_DEFAULT
;
ahd
->
int_coales
sing_threshold
=
AHD_INT_COALESS
ING_THRESHOLD_DEFAULT
;
ahd
->
int_coales
s
ing_stop_threshold
=
AHD_INT_COALES
S
ING_STOP_THRESHOLD_DEFAULT
;
ahd
->
int_coales
cing_timer
=
AHD_INT_COALESC
ING_TIMER_DEFAULT
;
ahd
->
int_coales
cing_maxcmds
=
AHD_INT_COALESC
ING_MAXCMDS_DEFAULT
;
ahd
->
int_coales
cing_mincmds
=
AHD_INT_COALESC
ING_MINCMDS_DEFAULT
;
ahd
->
int_coales
cing_threshold
=
AHD_INT_COALESC
ING_THRESHOLD_DEFAULT
;
ahd
->
int_coales
c
ing_stop_threshold
=
AHD_INT_COALES
C
ING_STOP_THRESHOLD_DEFAULT
;
if
(
ahd_platform_alloc
(
ahd
,
platform_arg
)
!=
0
)
{
ahd_free
(
ahd
);
...
...
@@ -5722,6 +5714,7 @@ ahd_alloc_scbs(struct ahd_softc *ahd)
next_scb
->
sg_list
=
segs
;
next_scb
->
sense_data
=
sense_data
;
next_scb
->
sense_busaddr
=
sense_busaddr
;
memset
(
hscb
,
0
,
sizeof
(
*
hscb
));
next_scb
->
hscb
=
hscb
;
hscb
->
hscb_busaddr
=
ahd_htole32
(
hscb_busaddr
);
...
...
@@ -6341,14 +6334,14 @@ ahd_chip_init(struct ahd_softc *ahd)
ahd_outb
(
ahd
,
NEXT_QUEUED_SCB_ADDR
+
3
,
(
busaddr
>>
24
)
&
0xFF
);
/*
* Default to coales
s
ing disabled.
* Default to coales
c
ing disabled.
*/
ahd_outw
(
ahd
,
INT_COALES
S
ING_CMDCOUNT
,
0
);
ahd_outw
(
ahd
,
INT_COALES
C
ING_CMDCOUNT
,
0
);
ahd_outw
(
ahd
,
CMDS_PENDING
,
0
);
ahd_update_coales
sing_values
(
ahd
,
ahd
->
int_coaless
ing_timer
,
ahd
->
int_coales
s
ing_maxcmds
,
ahd
->
int_coales
s
ing_mincmds
);
ahd_enable_coales
s
ing
(
ahd
,
FALSE
);
ahd_update_coales
cing_values
(
ahd
,
ahd
->
int_coalesc
ing_timer
,
ahd
->
int_coales
c
ing_maxcmds
,
ahd
->
int_coales
c
ing_mincmds
);
ahd_enable_coales
c
ing
(
ahd
,
FALSE
);
ahd_loadseq
(
ahd
);
ahd_set_modes
(
ahd
,
AHD_MODE_SCSI
,
AHD_MODE_SCSI
);
...
...
@@ -6601,30 +6594,30 @@ ahd_intr_enable(struct ahd_softc *ahd, int enable)
}
void
ahd_update_coales
s
ing_values
(
struct
ahd_softc
*
ahd
,
u_int
timer
,
u_int
maxcmds
,
ahd_update_coales
c
ing_values
(
struct
ahd_softc
*
ahd
,
u_int
timer
,
u_int
maxcmds
,
u_int
mincmds
)
{
if
(
timer
>
AHD_TIMER_MAX_US
)
timer
=
AHD_TIMER_MAX_US
;
ahd
->
int_coales
s
ing_timer
=
timer
;
ahd
->
int_coales
c
ing_timer
=
timer
;
if
(
maxcmds
>
AHD_INT_COALES
S
ING_MAXCMDS_MAX
)
maxcmds
=
AHD_INT_COALES
S
ING_MAXCMDS_MAX
;
if
(
mincmds
>
AHD_INT_COALES
S
ING_MINCMDS_MAX
)
mincmds
=
AHD_INT_COALES
S
ING_MINCMDS_MAX
;
ahd
->
int_coales
s
ing_maxcmds
=
maxcmds
;
ahd_outw
(
ahd
,
INT_COALES
S
ING_TIMER
,
timer
/
AHD_TIMER_US_PER_TICK
);
ahd_outb
(
ahd
,
INT_COALES
S
ING_MAXCMDS
,
-
maxcmds
);
ahd_outb
(
ahd
,
INT_COALES
S
ING_MINCMDS
,
-
mincmds
);
if
(
maxcmds
>
AHD_INT_COALES
C
ING_MAXCMDS_MAX
)
maxcmds
=
AHD_INT_COALES
C
ING_MAXCMDS_MAX
;
if
(
mincmds
>
AHD_INT_COALES
C
ING_MINCMDS_MAX
)
mincmds
=
AHD_INT_COALES
C
ING_MINCMDS_MAX
;
ahd
->
int_coales
c
ing_maxcmds
=
maxcmds
;
ahd_outw
(
ahd
,
INT_COALES
C
ING_TIMER
,
timer
/
AHD_TIMER_US_PER_TICK
);
ahd_outb
(
ahd
,
INT_COALES
C
ING_MAXCMDS
,
-
maxcmds
);
ahd_outb
(
ahd
,
INT_COALES
C
ING_MINCMDS
,
-
mincmds
);
}
void
ahd_enable_coales
s
ing
(
struct
ahd_softc
*
ahd
,
int
enable
)
ahd_enable_coales
c
ing
(
struct
ahd_softc
*
ahd
,
int
enable
)
{
ahd
->
hs_mailbox
&=
~
ENINT_COALES
S
;
ahd
->
hs_mailbox
&=
~
ENINT_COALES
CE
;
if
(
enable
)
ahd
->
hs_mailbox
|=
ENINT_COALES
S
;
ahd
->
hs_mailbox
|=
ENINT_COALES
CE
;
ahd_outb
(
ahd
,
HS_MAILBOX
,
ahd
->
hs_mailbox
);
ahd_flush_device_writes
(
ahd
);
ahd_run_qoutfifo
(
ahd
);
...
...
@@ -7718,20 +7711,20 @@ ahd_stat_timer(void *arg)
}
ahd_lock
(
ahd
,
&
s
);
enint_coal
=
ahd
->
hs_mailbox
&
ENINT_COALES
S
;
if
(
ahd
->
cmdcmplt_total
>
ahd
->
int_coales
s
ing_threshold
)
enint_coal
|=
ENINT_COALES
S
;
else
if
(
ahd
->
cmdcmplt_total
<
ahd
->
int_coales
s
ing_stop_threshold
)
enint_coal
&=
~
ENINT_COALES
S
;
enint_coal
=
ahd
->
hs_mailbox
&
ENINT_COALES
CE
;
if
(
ahd
->
cmdcmplt_total
>
ahd
->
int_coales
c
ing_threshold
)
enint_coal
|=
ENINT_COALES
CE
;
else
if
(
ahd
->
cmdcmplt_total
<
ahd
->
int_coales
c
ing_stop_threshold
)
enint_coal
&=
~
ENINT_COALES
CE
;
if
(
enint_coal
!=
(
ahd
->
hs_mailbox
&
ENINT_COALES
S
))
{
ahd_enable_coales
s
ing
(
ahd
,
enint_coal
);
if
(
enint_coal
!=
(
ahd
->
hs_mailbox
&
ENINT_COALES
CE
))
{
ahd_enable_coales
c
ing
(
ahd
,
enint_coal
);
#ifdef AHD_DEBUG
if
((
ahd_debug
&
AHD_SHOW_INT_COALES
S
ING
)
!=
0
)
printf
(
"%s: Interrupt coales
s
ing "
if
((
ahd_debug
&
AHD_SHOW_INT_COALES
C
ING
)
!=
0
)
printf
(
"%s: Interrupt coales
c
ing "
"now %sabled. Cmds %d
\n
"
,
ahd_name
(
ahd
),
(
enint_coal
&
ENINT_COALES
S
)
?
"en"
:
"dis"
,
(
enint_coal
&
ENINT_COALES
CE
)
?
"en"
:
"dis"
,
ahd
->
cmdcmplt_total
);
#endif
}
...
...
@@ -8279,8 +8272,6 @@ ahd_loadseq(struct ahd_softc *ahd)
download_consts
[
PKT_OVERRUN_BUFOFFSET
]
=
(
ahd
->
overrun_buf
-
(
uint8_t
*
)
ahd
->
qoutfifo
)
/
256
;
download_consts
[
SCB_TRANSFER_SIZE
]
=
SCB_TRANSFER_SIZE_1BYTE_LUN
;
if
((
ahd
->
bugs
&
AHD_PKT_LUN_BUG
)
!=
0
)
download_consts
[
SCB_TRANSFER_SIZE
]
=
SCB_TRANSFER_SIZE_FULL_LUN
;
cur_patch
=
patches
;
downloaded
=
0
;
skip_addr
=
0
;
...
...
@@ -8509,7 +8500,7 @@ ahd_probe_stack_size(struct ahd_softc *ahd)
}
void
ahd_dump_all_cards_state
()
ahd_dump_all_cards_state
(
void
)
{
struct
ahd_softc
*
list_ahd
;
...
...
drivers/scsi/aic7xxx/aic79xx_inline.h
View file @
d98d10eb
...
...
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#
48
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#
50
$
*
* $FreeBSD$
*/
...
...
@@ -271,11 +271,12 @@ ahd_setup_scb_common(struct ahd_softc *ahd, struct scb *scb)
scb
->
crc_retry_count
=
0
;
if
((
scb
->
flags
&
SCB_PACKETIZED
)
!=
0
)
{
/* XXX what about ACA?? It is type 4, but TAG_TYPE == 0x3. */
scb
->
hscb
->
task_attribute
=
scb
->
hscb
->
control
&
SCB_TAG_TYPE
;
/*
* For Rev A short lun workaround.
*/
scb
->
hscb
->
pkt_long_lun
[
6
]
=
scb
->
hscb
->
lun
;
scb
->
hscb
->
task_attribute
=
scb
->
hscb
->
control
&
SCB_TAG_TYPE
;
}
else
{
if
(
ahd_get_transfer_length
(
scb
)
&
0x01
)
scb
->
hscb
->
task_attribute
=
SCB_XFERLEN_ODD
;
else
scb
->
hscb
->
task_attribute
=
0
;
}
if
(
scb
->
hscb
->
cdb_len
<=
MAX_CDB_LEN_WITH_SENSE_ADDR
...
...
drivers/scsi/aic7xxx/aic79xx_osm.c
View file @
d98d10eb
/*
* Adaptec AIC79xx device driver for Linux.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#16
0
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#16
9
$
*
* --------------------------------------------------------------------------
* Copyright (c) 1994-2000 Justin T. Gibbs.
...
...
@@ -62,11 +62,6 @@
#include <linux/mm.h>
/* For fetching system memory size */
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
static
int
errno
;
/*
* Lock protecting manipulation of the ahd softc list.
*/
...
...
@@ -755,31 +750,11 @@ ahd_linux_map_seg(struct ahd_softc *ahd, struct scb *scb,
consumed
=
1
;
sg
->
addr
=
ahd_htole32
(
addr
&
0xFFFFFFFF
);
scb
->
platform_data
->
xfer_len
+=
len
;
if
(
sizeof
(
bus_addr_t
)
>
4
&&
(
ahd
->
flags
&
AHD_39BIT_ADDRESSING
)
!=
0
)
{
/*
* Due to DAC restrictions, we can't
* cross a 4GB boundary.
*/
if
((
addr
^
(
addr
+
len
-
1
))
&
~
0xFFFFFFFF
)
{
struct
ahd_dma_seg
*
next_sg
;
uint32_t
next_len
;
printf
(
"Crossed Seg
\n
"
);
if
((
scb
->
sg_count
+
2
)
>
AHD_NSEG
)
panic
(
"Too few segs for dma mapping. "
"Increase AHD_NSEG
\n
"
);
if
(
sizeof
(
bus_addr_t
)
>
4
&&
(
ahd
->
flags
&
AHD_39BIT_ADDRESSING
)
!=
0
)
len
|=
(
addr
>>
8
)
&
AHD_SG_HIGH_ADDR_MASK
;
consumed
++
;
next_sg
=
sg
+
1
;
next_sg
->
addr
=
0
;
next_len
=
0x100000000
-
(
addr
&
0xFFFFFFFF
);
len
-=
next_len
;
next_len
|=
((
addr
>>
8
)
+
0x1000000
)
&
0x7F000000
;
next_sg
->
len
=
ahd_htole32
(
next_len
);
}
len
|=
(
addr
>>
8
)
&
0x7F000000
;
}
sg
->
len
=
ahd_htole32
(
len
);
return
(
consumed
);
}
...
...
@@ -796,14 +771,18 @@ static int ahd_linux_queue(Scsi_Cmnd *, void (*)(Scsi_Cmnd *));
static
int
ahd_linux_slave_alloc
(
Scsi_Device
*
);
static
int
ahd_linux_slave_configure
(
Scsi_Device
*
);
static
void
ahd_linux_slave_destroy
(
Scsi_Device
*
);
#if defined(__i386__)
static
int
ahd_linux_biosparam
(
struct
scsi_device
*
,
struct
block_device
*
,
sector_t
,
int
[]);
#endif
#else
static
int
ahd_linux_release
(
struct
Scsi_Host
*
);
static
void
ahd_linux_select_queue_depth
(
struct
Scsi_Host
*
host
,
Scsi_Device
*
scsi_devs
);
#if defined(__i386__)
static
int
ahd_linux_biosparam
(
Disk
*
,
kdev_t
,
int
[]);
#endif
#endif
static
int
ahd_linux_bus_reset
(
Scsi_Cmnd
*
);
static
int
ahd_linux_dev_reset
(
Scsi_Cmnd
*
);
static
int
ahd_linux_abort
(
Scsi_Cmnd
*
);
...
...
@@ -1211,6 +1190,7 @@ ahd_linux_select_queue_depth(struct Scsi_Host * host,
}
#endif
#if defined(__i386__)
/*
* Return the disk geometry for the given SCSI device.
*/
...
...
@@ -1273,6 +1253,7 @@ ahd_linux_biosparam(Disk *disk, kdev_t dev, int geom[])
geom
[
2
]
=
cylinders
;
return
(
0
);
}
#endif
/*
* Abort the current SCSI command(s).
...
...
@@ -2198,7 +2179,7 @@ ahd_linux_register_host(struct ahd_softc *ahd, Scsi_Host_Template *template)
}
uint64_t
ahd_linux_get_memsize
()
ahd_linux_get_memsize
(
void
)
{
struct
sysinfo
si
;
...
...
@@ -2213,7 +2194,7 @@ ahd_linux_get_memsize()
* scenario.
*/
static
int
ahd_linux_next_unit
()
ahd_linux_next_unit
(
void
)
{
struct
ahd_softc
*
ahd
;
int
unit
;
...
...
@@ -2955,13 +2936,11 @@ ahd_linux_dv_transition(struct ahd_softc *ahd, struct scsi_cmnd *cmd,
struct
ahd_devinfo
*
devinfo
,
struct
ahd_linux_target
*
targ
)
{
cam_status
cam_status
;
u_int32_t
status
;
u_int
scsi_status
;
s
csi_status
=
ahd_cmd_get_scsi_status
(
cmd
);
cam_status
=
ahd_cmd_get_transaction_status
(
cmd
);
status
=
aic_error_action
(
cmd
,
targ
->
inq_data
,
cam_status
,
scsi_status
);
s
tatus
=
aic_error_action
(
cmd
,
targ
->
inq_data
,
ahd_cmd_get_transaction_status
(
cmd
),
ahd_cmd_get_scsi_status
(
cmd
)
);
#ifdef AHD_DEBUG
...
...
@@ -4211,7 +4190,7 @@ ahd_linux_run_device_queue(struct ahd_softc *ahd, struct ahd_linux_device *dev)
/*
* SCSI controller interrupt handler.
*/
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahd_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
ahd_softc
*
ahd
;
...
...
@@ -4225,7 +4204,7 @@ ahd_linux_isr(int irq, void *dev_id, struct pt_regs * regs)
ahd_schedule_runq
(
ahd
);
ahd_linux_run_complete_queue
(
ahd
);
ahd_unlock
(
ahd
,
&
flags
);
AIC_LINUX_IRQRETURN
(
ours
);
return
IRQ_RETVAL
(
ours
);
}
void
...
...
drivers/scsi/aic7xxx/aic79xx_osm.h
View file @
d98d10eb
...
...
@@ -36,7 +36,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#13
0
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#13
3
$
*
*/
#ifndef _AIC79XX_LINUX_H_
...
...
@@ -293,7 +293,7 @@ ahd_scb_timer_reset(struct scb *scb, u_int usec)
#define AHD_SCSI_HAS_HOST_LOCK 0
#endif
#define AIC79XX_DRIVER_VERSION "1.3.
8
"
#define AIC79XX_DRIVER_VERSION "1.3.
9
"
/**************************** Front End Queues ********************************/
/*
...
...
@@ -1211,7 +1211,7 @@ void ahd_platform_set_tags(struct ahd_softc *ahd,
int
ahd_platform_abort_scbs
(
struct
ahd_softc
*
ahd
,
int
target
,
char
channel
,
int
lun
,
u_int
tag
,
role_t
role
,
uint32_t
status
);
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahd_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
void
ahd_platform_flushwork
(
struct
ahd_softc
*
ahd
);
int
ahd_softc_comp
(
struct
ahd_softc
*
,
struct
ahd_softc
*
);
...
...
drivers/scsi/aic7xxx/aic79xx_osm_pci.c
View file @
d98d10eb
...
...
@@ -36,7 +36,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#2
1
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#2
3
$
*/
#include "aic79xx_osm.h"
...
...
@@ -157,18 +157,20 @@ ahd_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if
(
sizeof
(
bus_addr_t
)
>
4
)
{
uint64_t
memsize
;
bus_addr_t
mask_64bit
;
bus_addr_t
mask_39bit
;
memsize
=
ahd_linux_get_memsize
();
if
(
memsize
>=
0x8000000000
&&
ahd_pci_set_dma_mask
(
pdev
,
0xFFFFFFFFFFFFFFFFULL
)
==
0
)
{
mask_64bit
=
(
bus_addr_t
)(
0xFFFFFFFFFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
mask_39bit
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
if
(
memsize
>=
0x8000000000ULL
&&
ahd_pci_set_dma_mask
(
pdev
,
mask_64bit
)
==
0
)
{
ahd
->
flags
|=
AHD_64BIT_ADDRESSING
;
ahd
->
platform_data
->
hw_dma_mask
=
(
bus_addr_t
)(
0xFFFFFFFFFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
ahd
->
platform_data
->
hw_dma_mask
=
mask_64bit
;
}
else
if
(
memsize
>
0x80000000
&&
ahd_pci_set_dma_mask
(
pdev
,
0x7FFFFFFFFFULL
)
==
0
)
{
&&
ahd_pci_set_dma_mask
(
pdev
,
mask_39bit
)
==
0
)
{
ahd
->
flags
|=
AHD_39BIT_ADDRESSING
;
ahd
->
platform_data
->
hw_dma_mask
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
ahd
->
platform_data
->
hw_dma_mask
=
mask_39bit
;
}
}
else
{
ahd_pci_set_dma_mask
(
pdev
,
0xFFFFFFFF
);
...
...
drivers/scsi/aic7xxx/aic79xx_pci.c
View file @
d98d10eb
...
...
@@ -38,7 +38,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#7
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#7
3
$
*
* $FreeBSD$
*/
...
...
@@ -65,28 +65,29 @@ ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
}
#define ID_ALL_MASK 0xFFFFFFFFFFFFFFFFull
#define ID_ALL_IROC_MASK 0xFFFFFF7FFFFFFFFFull
#define ID_DEV_VENDOR_MASK 0xFFFFFFFF00000000ull
#define ID_9005_GENERIC_MASK 0xFFF0FFFF00000000ull
#define ID_9005_GENERIC_IROC_MASK 0xFFF0FF7F00000000ull
#define ID_AIC7901 0x800F9005FFFF9005ull
#define ID_AIC7901A 0x801E9005FFFF9005ull
#define ID_AIC7901A_IROC 0x809E9005FFFF9005ull
#define ID_AHA_29320A 0x8000900500609005ull
#define ID_AHA_29320ALP 0x8017900500449005ull
#define ID_AIC7901A 0x801E9005FFFF9005ull
#define ID_AHA_29320 0x8012900500429005ull
#define ID_AHA_29320B 0x8013900500439005ull
#define ID_AHA_29320LP 0x8014900500449005ull
#define ID_AHA_29320LP_IROC 0x8094900500449005ull
#define ID_AIC7902 0x801F9005FFFF9005ull
#define ID_AIC7902_IROC 0x809F9005FFFF9005ull
#define ID_AIC7902_B 0x801D9005FFFF9005ull
#define ID_AIC7902_B_IROC 0x809D9005FFFF9005ull
#define ID_AHA_39320 0x8010900500409005ull
#define ID_AHA_39320_B 0x8015900500409005ull
#define ID_AHA_39320A 0x8016900500409005ull
#define ID_AHA_39320D 0x8011900500419005ull
#define ID_AHA_39320D_B 0x801C900500419005ull
#define ID_AHA_39320D_HP 0x8011900500AC0E11ull
#define ID_AHA_39320D_B_HP 0x801C900500AC0E11ull
#define ID_AHA_29320 0x8012900500429005ull
#define ID_AHA_29320B 0x8013900500439005ull
#define ID_AIC7902_PCI_REV_A4 0x3
#define ID_AIC7902_PCI_REV_B0 0x10
#define SUBID_HP 0x0E11
...
...
@@ -113,22 +114,42 @@ ahd_compose_id(u_int device, u_int vendor, u_int subdevice, u_int subvendor)
#define SUBID_9005_SEEPTYPE_NONE 0x0
#define SUBID_9005_SEEPTYPE_4K 0x1
static
ahd_device_setup_t
ahd_aic7901_setup
;
static
ahd_device_setup_t
ahd_aic7901A_setup
;
static
ahd_device_setup_t
ahd_aic7902_setup
;
struct
ahd_pci_identity
ahd_pci_ident_table
[]
=
{
/* aic7901 based controllers */
{
ID_AHA_29320A
,
ID_ALL_MASK
,
"Adaptec 29320A Ultra320 SCSI adapter"
,
ahd_aic7901_setup
},
{
ID_AHA_29320ALP
,
ID_ALL_MASK
,
"Adaptec 29320ALP Ultra320 SCSI adapter"
,
ahd_aic7901_setup
},
/* aic7901A based controllers */
{
ID_AHA_29320
LP
,
ID_AHA_29320
,
ID_ALL_MASK
,
"Adaptec 29320
LP
Ultra320 SCSI adapter"
,
"Adaptec 29320 Ultra320 SCSI adapter"
,
ahd_aic7901A_setup
},
{
ID_AHA_29320
A
,
ID_AHA_29320
B
,
ID_ALL_MASK
,
"Adaptec 29320A Ultra320 SCSI adapter"
,
"Adaptec 29320B Ultra320 SCSI adapter"
,
ahd_aic7901A_setup
},
{
ID_AHA_29320LP
,
ID_ALL_MASK
,
"Adaptec 29320LP Ultra320 SCSI adapter"
,
ahd_aic7901A_setup
},
/* aic7902 based controllers */
...
...
@@ -138,6 +159,12 @@ struct ahd_pci_identity ahd_pci_ident_table [] =
"Adaptec 39320 Ultra320 SCSI adapter"
,
ahd_aic7902_setup
},
{
ID_AHA_39320_B
,
ID_ALL_MASK
,
"Adaptec 39320 Ultra320 SCSI adapter"
,
ahd_aic7902_setup
},
{
ID_AHA_39320A
,
ID_ALL_MASK
,
...
...
@@ -181,6 +208,12 @@ struct ahd_pci_identity ahd_pci_ident_table [] =
ahd_aic7902_setup
},
/* Generic chip probes for devices we don't know 'exactly' */
{
ID_AIC7901
&
ID_DEV_VENDOR_MASK
,
ID_DEV_VENDOR_MASK
,
"Adaptec AIC7901 Ultra320 SCSI adapter"
,
ahd_aic7901_setup
},
{
ID_AIC7901A
&
ID_DEV_VENDOR_MASK
,
ID_DEV_VENDOR_MASK
,
...
...
@@ -332,9 +365,9 @@ ahd_pci_config(struct ahd_softc *ahd, struct ahd_pci_identity *entry)
}
/* Ensure busmastering is enabled */
command
=
ahd_pci_read_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
1
);
command
=
ahd_pci_read_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
2
);
command
|=
PCIM_CMD_BUSMASTEREN
;
ahd_pci_write_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
1
);
ahd_pci_write_config
(
ahd
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
2
);
error
=
ahd_softc_init
(
ahd
);
if
(
error
!=
0
)
...
...
@@ -867,6 +900,18 @@ ahd_pci_split_intr(struct ahd_softc *ahd, u_int intstat)
ahd_restore_modes
(
ahd
,
saved_modes
);
}
static
int
ahd_aic7901_setup
(
struct
ahd_softc
*
ahd
)
{
int
error
;
error
=
ahd_aic7902_setup
(
ahd
);
if
(
error
!=
0
)
return
(
error
);
ahd
->
chip
=
AHD_AIC7901
;
return
(
0
);
}
static
int
ahd_aic7901A_setup
(
struct
ahd_softc
*
ahd
)
{
...
...
@@ -890,7 +935,7 @@ ahd_aic7902_setup(struct ahd_softc *ahd)
if
(
rev
<
ID_AIC7902_PCI_REV_A4
)
{
printf
(
"%s: Unable to attach to unsupported chip revision %d
\n
"
,
ahd_name
(
ahd
),
rev
);
ahd_pci_write_config
(
pci
,
PCIR_COMMAND
,
0
,
/*bytes*/
1
);
ahd_pci_write_config
(
pci
,
PCIR_COMMAND
,
0
,
/*bytes*/
2
);
return
(
ENXIO
);
}
ahd
->
channel
=
ahd_get_pci_function
(
pci
)
+
'A'
;
...
...
drivers/scsi/aic7xxx/aic79xx_reg.h_shipped
View file @
d98d10eb
...
...
@@ -2,8 +2,8 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
4
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
9
$
*/
typedef int (ahd_reg_print_t)(u_int, u_int *, u_int);
typedef struct ahd_reg_parse_entry {
...
...
@@ -2134,24 +2134,24 @@ ahd_reg_print_t ahd_allocfifo_scbptr_print;
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_timer_print;
ahd_reg_print_t ahd_int_coales
c
ing_timer_print;
#else
#define ahd_int_coales
s
ing_timer_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_TIMER", 0x14a, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_timer_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_TIMER", 0x14a, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_maxcmds_print;
ahd_reg_print_t ahd_int_coales
c
ing_maxcmds_print;
#else
#define ahd_int_coales
s
ing_maxcmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_MAXCMDS", 0x14c, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_maxcmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_MAXCMDS", 0x14c, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_mincmds_print;
ahd_reg_print_t ahd_int_coales
c
ing_mincmds_print;
#else
#define ahd_int_coales
s
ing_mincmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_MINCMDS", 0x14d, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_mincmds_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_MINCMDS", 0x14d, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
...
...
@@ -2162,10 +2162,10 @@ ahd_reg_print_t ahd_cmds_pending_print;
#endif
#if AIC_DEBUG_REGISTERS
ahd_reg_print_t ahd_int_coales
s
ing_cmdcount_print;
ahd_reg_print_t ahd_int_coales
c
ing_cmdcount_print;
#else
#define ahd_int_coales
s
ing_cmdcount_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
S
ING_CMDCOUNT", 0x150, regvalue, cur_col, wrap)
#define ahd_int_coales
c
ing_cmdcount_print(regvalue, cur_col, wrap) \
ahd_print_register(NULL, 0, "INT_COALES
C
ING_CMDCOUNT", 0x150, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
...
...
@@ -2432,7 +2432,7 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
#define HS_MAILBOX 0x0b
#define HOST_TQINPOS 0x80
#define ENINT_COALES
S
0x40
#define ENINT_COALES
CE
0x40
#define CLRSEQINTSTAT 0x0c
#define CLRSEQ_SWTMRTO 0x10
...
...
@@ -3612,15 +3612,15 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
#define ALLOCFIFO_SCBPTR 0x148
#define INT_COALES
S
ING_TIMER 0x14a
#define INT_COALES
C
ING_TIMER 0x14a
#define INT_COALES
S
ING_MAXCMDS 0x14c
#define INT_COALES
C
ING_MAXCMDS 0x14c
#define INT_COALES
S
ING_MINCMDS 0x14d
#define INT_COALES
C
ING_MINCMDS 0x14d
#define CMDS_PENDING 0x14e
#define INT_COALES
S
ING_CMDCOUNT 0x150
#define INT_COALES
C
ING_CMDCOUNT 0x150
#define LOCAL_HS_MAILBOX 0x151
...
...
@@ -3683,6 +3683,7 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
#define LID 0xff
#define SCB_TASK_ATTRIBUTE 0x1ab
#define SCB_XFERLEN_ODD 0x01
#define SCB_CDB_LEN 0x1ac
#define SCB_CDB_LEN_PTR 0x80
...
...
@@ -3768,5 +3769,5 @@ ahd_reg_print_t ahd_scb_disconnected_lists_print;
/* Exported Labels */
#define LABEL_seq_isr 0x2
70
#define LABEL_timer_isr 0x26
c
#define LABEL_seq_isr 0x2
69
#define LABEL_timer_isr 0x26
5
drivers/scsi/aic7xxx/aic79xx_reg_print.c_shipped
View file @
d98d10eb
...
...
@@ -2,8 +2,8 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
3
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
8
$
*/
#include "aic79xx_osm.h"
...
...
@@ -161,7 +161,7 @@ ahd_hescb_qoff_print(u_int regvalue, u_int *cur_col, u_int wrap)
}
static ahd_reg_parse_entry_t HS_MAILBOX_parse_table[] = {
{ "ENINT_COALES
S
", 0x40, 0x40 },
{ "ENINT_COALES
CE
", 0x40, 0x40 },
{ "HOST_TQINPOS", 0x80, 0x80 }
};
...
...
@@ -3375,23 +3375,23 @@ ahd_allocfifo_scbptr_print(u_int regvalue, u_int *cur_col, u_int wrap)
}
int
ahd_int_coales
s
ing_timer_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_timer_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_TIMER",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_TIMER",
0x14a, regvalue, cur_col, wrap));
}
int
ahd_int_coales
s
ing_maxcmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_maxcmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_MAXCMDS",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_MAXCMDS",
0x14c, regvalue, cur_col, wrap));
}
int
ahd_int_coales
s
ing_mincmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_mincmds_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_MINCMDS",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_MINCMDS",
0x14d, regvalue, cur_col, wrap));
}
...
...
@@ -3403,9 +3403,9 @@ ahd_cmds_pending_print(u_int regvalue, u_int *cur_col, u_int wrap)
}
int
ahd_int_coales
s
ing_cmdcount_print(u_int regvalue, u_int *cur_col, u_int wrap)
ahd_int_coales
c
ing_cmdcount_print(u_int regvalue, u_int *cur_col, u_int wrap)
{
return (ahd_print_register(NULL, 0, "INT_COALES
S
ING_CMDCOUNT",
return (ahd_print_register(NULL, 0, "INT_COALES
C
ING_CMDCOUNT",
0x150, regvalue, cur_col, wrap));
}
...
...
drivers/scsi/aic7xxx/aic79xx_seq.h_shipped
View file @
d98d10eb
...
...
@@ -2,30 +2,30 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
1
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
7
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#9
4
$
* $Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#6
9
$
*/
static uint8_t seqprog[] = {
0xff, 0x02, 0x06, 0x78,
0x00, 0xea, 0x
4e
, 0x59,
0x00, 0xea, 0x
50
, 0x59,
0x01, 0xea, 0x04, 0x30,
0xff, 0x04, 0x0c, 0x78,
0x19, 0xea, 0x
4e
, 0x59,
0x19, 0xea, 0x
50
, 0x59,
0x19, 0xea, 0x04, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x60, 0x3a, 0x1a, 0x68,
0x04, 0x47, 0x1b, 0x68,
0xff, 0x21, 0x1b, 0x70,
0x40, 0x4b, 0x9
0
, 0x69,
0x00, 0xe2, 0x5
2
, 0x59,
0x40, 0x4b, 0x9
0
, 0x69,
0x20, 0x4b, 0x8
0
, 0x69,
0x40, 0x4b, 0x9
2
, 0x69,
0x00, 0xe2, 0x5
4
, 0x59,
0x40, 0x4b, 0x9
2
, 0x69,
0x20, 0x4b, 0x8
2
, 0x69,
0xfc, 0x42, 0x24, 0x78,
0x10, 0x40, 0x24, 0x78,
0x00, 0xe2, 0x
d2
, 0x5d,
0x00, 0xe2, 0x
c4
, 0x5d,
0x20, 0x4d, 0x28, 0x78,
0x00, 0xe2, 0x
d2
, 0x5d,
0x00, 0xe2, 0x
c4
, 0x5d,
0x30, 0x3f, 0xc0, 0x09,
0x30, 0xe0, 0x30, 0x60,
0x7f, 0x4a, 0x94, 0x08,
...
...
@@ -35,7 +35,7 @@ static uint8_t seqprog[] = {
0x00, 0xe2, 0x56, 0x58,
0x00, 0xe2, 0x66, 0x58,
0x00, 0xe2, 0x06, 0x40,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x01, 0x52, 0x64, 0x78,
0x02, 0x58, 0x50, 0x31,
...
...
@@ -43,26 +43,26 @@ static uint8_t seqprog[] = {
0xff, 0xad, 0x4f, 0x78,
0x50, 0x4b, 0x4a, 0x68,
0xbf, 0x3a, 0x74, 0x08,
0x14, 0xea, 0x
4e
, 0x59,
0x14, 0xea, 0x
50
, 0x59,
0x14, 0xea, 0x04, 0x00,
0x08, 0xa8, 0x51, 0x03,
0xff, 0xae, 0x3f, 0x68,
0x00, 0xe2, 0x5
0
, 0x5b,
0x00, 0xe2, 0x5
6
, 0x5b,
0x00, 0xe2, 0x3e, 0x40,
0x00, 0xea, 0x4
2
, 0x59,
0x00, 0xea, 0x4
4
, 0x59,
0x01, 0xea, 0x00, 0x30,
0x80, 0xf9, 0x5e, 0x68,
0x00, 0xe2, 0x4
0
, 0x59,
0x11, 0xea, 0x4
2
, 0x59,
0x00, 0xe2, 0x4
2
, 0x59,
0x11, 0xea, 0x4
4
, 0x59,
0x11, 0xea, 0x00, 0x00,
0x80, 0xf9, 0x4
0
, 0x79,
0x80, 0xf9, 0x4
2
, 0x79,
0xff, 0xea, 0xd4, 0x0d,
0x22, 0xea, 0x4
2
, 0x59,
0x22, 0xea, 0x4
4
, 0x59,
0x22, 0xea, 0x00, 0x00,
0x10, 0x16, 0x70, 0x78,
0x01, 0x0b, 0xa2, 0x32,
0x10, 0x16, 0x2c, 0x00,
0x18, 0xad, 0x
fe, 0x78
,
0x18, 0xad, 0x
00, 0x79
,
0x04, 0xad, 0xca, 0x68,
0x80, 0xad, 0x64, 0x78,
0x10, 0xad, 0x98, 0x78,
...
...
@@ -71,15 +71,15 @@ static uint8_t seqprog[] = {
0x02, 0x8c, 0x59, 0x32,
0x02, 0x28, 0x19, 0x33,
0x02, 0xa8, 0x50, 0x36,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x40, 0x3a, 0x64, 0x68,
0x50, 0x4b, 0x64, 0x68,
0x22, 0xea, 0x4
2
, 0x59,
0x22, 0xea, 0x4
4
, 0x59,
0x22, 0xea, 0x00, 0x00,
0xe7, 0xad, 0x5a, 0x09,
0x02, 0x8c, 0x59, 0x32,
0x1a, 0xea, 0x
4e
, 0x59,
0x1a, 0xea, 0x
50
, 0x59,
0x1a, 0xea, 0x04, 0x00,
0xff, 0xea, 0xd4, 0x0d,
0xe7, 0xad, 0x5a, 0x09,
...
...
@@ -113,29 +113,30 @@ static uint8_t seqprog[] = {
0xff, 0xea, 0xc0, 0x09,
0x01, 0x4e, 0x9d, 0x1a,
0x00, 0x4f, 0x9f, 0x22,
0x01, 0xaa, 0x6d, 0x33,
0x01, 0xea, 0x5c, 0x33,
0x04, 0xa4, 0x49, 0x32,
0xff, 0xea, 0x4a, 0x03,
0xff, 0xea, 0x4e, 0x03,
0x01, 0x10, 0xd4, 0x31,
0x10, 0xa8, 0xf
3
, 0x68,
0x10, 0xa8, 0xf
5
, 0x68,
0x3d, 0xa9, 0xc5, 0x29,
0xfe, 0xe2, 0xc4, 0x09,
0x01, 0xea, 0xc6, 0x01,
0x02, 0xe2, 0xc8, 0x31,
0x02, 0xec, 0x50, 0x31,
0x02, 0xa0, 0xda, 0x31,
0xff, 0xa9, 0xf
2
, 0x70,
0xff, 0xa9, 0xf
4
, 0x70,
0x02, 0xa0, 0x48, 0x37,
0xff, 0x21, 0xf
b
, 0x70,
0xff, 0x21, 0xf
d
, 0x70,
0x02, 0x22, 0x51, 0x31,
0x02, 0xa0, 0x4c, 0x33,
0x02, 0xa0, 0x44, 0x36,
0x02, 0xa0, 0x40, 0x32,
0x02, 0xa0, 0x44, 0x36,
0x04, 0x47, 0x0
3
, 0x69,
0x40, 0x16, 0x
2e
, 0x69,
0xff, 0x2d, 0x3
3
, 0x61,
0x04, 0x47, 0x0
5
, 0x69,
0x40, 0x16, 0x
30
, 0x69,
0xff, 0x2d, 0x3
5
, 0x61,
0xff, 0x29, 0x65, 0x70,
0x01, 0x37, 0xc1, 0x31,
0x02, 0x28, 0x55, 0x32,
...
...
@@ -148,20 +149,20 @@ static uint8_t seqprog[] = {
0x01, 0x50, 0xa1, 0x1a,
0xff, 0x4e, 0x9d, 0x1a,
0xff, 0x4f, 0x9f, 0x22,
0xff, 0x8d, 0x2
7
, 0x71,
0x80, 0xac, 0x2
6
, 0x71,
0x20, 0x16, 0x2
6
, 0x69,
0xff, 0x8d, 0x2
9
, 0x71,
0x80, 0xac, 0x2
8
, 0x71,
0x20, 0x16, 0x2
8
, 0x69,
0x02, 0x8c, 0x51, 0x31,
0x00, 0xe2, 0x1
0
, 0x41,
0x00, 0xe2, 0x1
2
, 0x41,
0x01, 0xac, 0x08, 0x31,
0x09, 0xea, 0x5a, 0x01,
0x02, 0x8c, 0x51, 0x32,
0xff, 0xea, 0x1a, 0x07,
0x04, 0x24, 0xf9, 0x30,
0x1d, 0xea, 0x3
8
, 0x41,
0x1d, 0xea, 0x3
a
, 0x41,
0x02, 0x2c, 0x51, 0x31,
0x04, 0xa0, 0xf9, 0x30,
0x19, 0xea, 0x3
8
, 0x41,
0x19, 0xea, 0x3
a
, 0x41,
0x06, 0xea, 0x08, 0x81,
0x01, 0xe2, 0x5a, 0x35,
0x02, 0xf2, 0xf0, 0x35,
...
...
@@ -179,23 +180,23 @@ static uint8_t seqprog[] = {
0x02, 0x20, 0xb9, 0x30,
0x02, 0x20, 0x51, 0x31,
0x4c, 0xa9, 0xd7, 0x28,
0x10, 0xa8, 0x6
1
, 0x79,
0x10, 0xa8, 0x6
3
, 0x79,
0x01, 0x6b, 0xc0, 0x30,
0x02, 0x64, 0xc8, 0x00,
0x40, 0x3a, 0x74, 0x04,
0x00, 0xe2, 0x56, 0x58,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x30, 0x3f, 0xc0, 0x09,
0x30, 0xe0, 0x6
2
, 0x61,
0x20, 0x3f, 0x7
8
, 0x69,
0x10, 0x3f, 0x6
2
, 0x79,
0x30, 0xe0, 0x6
4
, 0x61,
0x20, 0x3f, 0x7
a
, 0x69,
0x10, 0x3f, 0x6
4
, 0x79,
0x02, 0xea, 0x7e, 0x00,
0x00, 0xea, 0x4
2
, 0x59,
0x00, 0xea, 0x4
4
, 0x59,
0x01, 0xea, 0x00, 0x30,
0x02, 0x48, 0x51, 0x35,
0x01, 0xea, 0x7e, 0x00,
0x11, 0xea, 0x4
2
, 0x59,
0x11, 0xea, 0x4
4
, 0x59,
0x11, 0xea, 0x00, 0x00,
0x02, 0x48, 0x51, 0x35,
0x08, 0xea, 0x98, 0x00,
...
...
@@ -205,11 +206,11 @@ static uint8_t seqprog[] = {
0x0f, 0x67, 0xc0, 0x09,
0x00, 0x34, 0x69, 0x02,
0x20, 0xea, 0x96, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x40, 0x3a, 0xa
c
, 0x69,
0x00, 0xe2, 0xf
8
, 0x41,
0x40, 0x3a, 0xa
e
, 0x69,
0x02, 0x55, 0x06, 0x68,
0x02, 0x56, 0xa
c
, 0x69,
0xff, 0x5b, 0xa
c
, 0x61,
0x02, 0x56, 0xa
e
, 0x69,
0xff, 0x5b, 0xa
e
, 0x61,
0x02, 0x20, 0x51, 0x31,
0x80, 0xea, 0xb2, 0x01,
0x44, 0xea, 0x00, 0x00,
...
...
@@ -217,36 +218,36 @@ static uint8_t seqprog[] = {
0x33, 0xea, 0x00, 0x00,
0xff, 0xea, 0xb2, 0x09,
0xff, 0xe0, 0xc0, 0x19,
0xff, 0xe0, 0x
ae
, 0x79,
0xff, 0xe0, 0x
b0
, 0x79,
0x02, 0xa4, 0x51, 0x31,
0x00, 0xe2, 0xa
4
, 0x41,
0x00, 0xe2, 0xa
6
, 0x41,
0x02, 0x5e, 0x50, 0x31,
0x02, 0xa8, 0xb8, 0x30,
0x02, 0x5c, 0x50, 0x31,
0xff, 0xa5, 0x
bf
, 0x71,
0xff, 0xa5, 0x
c1
, 0x71,
0x02, 0xa4, 0x41, 0x31,
0x02, 0x22, 0x51, 0x31,
0x02, 0xa0, 0x4c, 0x33,
0x02, 0xa0, 0x44, 0x32,
0x00, 0xe2, 0xc
8
, 0x41,
0x10, 0xa8, 0xc
9
, 0x69,
0x00, 0xe2, 0xc
a
, 0x41,
0x10, 0xa8, 0xc
b
, 0x69,
0x3d, 0xa9, 0xc9, 0x29,
0x01, 0xe4, 0xc8, 0x01,
0x01, 0xea, 0xca, 0x01,
0xff, 0xea, 0xda, 0x01,
0x02, 0x20, 0x51, 0x31,
0x02, 0xa6, 0x41, 0x32,
0xff, 0x21, 0xd
1
, 0x61,
0xff, 0x21, 0xd
3
, 0x61,
0xff, 0xea, 0x46, 0x02,
0x02, 0x5c, 0x50, 0x31,
0x40, 0xea, 0x96, 0x00,
0x02, 0x56, 0x
da
, 0x6d,
0x01, 0x55, 0x
da
, 0x6d,
0x10, 0xa8, 0xd
d
, 0x79,
0x10, 0x40, 0xe
6
, 0x69,
0x01, 0x56, 0xe
6
, 0x79,
0x02, 0x56, 0x
cc
, 0x6d,
0x01, 0x55, 0x
cc
, 0x6d,
0x10, 0xa8, 0xd
f
, 0x79,
0x10, 0x40, 0xe
8
, 0x69,
0x01, 0x56, 0xe
8
, 0x79,
0xff, 0xad, 0x07, 0x78,
0x13, 0xea, 0x
4e
, 0x59,
0x13, 0xea, 0x
50
, 0x59,
0x13, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x06, 0x40,
0xbf, 0x3a, 0x74, 0x08,
...
...
@@ -257,104 +258,106 @@ static uint8_t seqprog[] = {
0x40, 0xea, 0x66, 0x02,
0x08, 0x3c, 0x78, 0x00,
0x80, 0xea, 0x62, 0x02,
0x00, 0xe2, 0xb
2
, 0x5b,
0x00, 0xe2, 0xb
8
, 0x5b,
0x01, 0x36, 0xc1, 0x31,
0x9f, 0xe0, 0x
54
, 0x7c,
0x80, 0xe0, 0x0
a
, 0x72,
0xa0, 0xe0, 0x4
2
, 0x72,
0xc0, 0xe0, 0x3
8
, 0x72,
0xe0, 0xe0, 0x7
2
, 0x72,
0x01, 0xea, 0x
4e
, 0x59,
0x9f, 0xe0, 0x
4c
, 0x7c,
0x80, 0xe0, 0x0
c
, 0x72,
0xa0, 0xe0, 0x4
4
, 0x72,
0xc0, 0xe0, 0x3
a
, 0x72,
0xe0, 0xe0, 0x7
4
, 0x72,
0x01, 0xea, 0x
50
, 0x59,
0x01, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x80, 0x33, 0x1
1
, 0x7a,
0x03, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0x80, 0x33, 0x1
3
, 0x7a,
0x03, 0xea, 0x
50
, 0x59,
0x03, 0xea, 0x04, 0x00,
0xee, 0x00, 0x1
8
, 0x6a,
0xee, 0x00, 0x1
a
, 0x6a,
0x05, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x02, 0xa8, 0x90, 0x32,
0x00, 0xe2, 0x6
8
, 0x59,
0x00, 0xe2, 0x6
a
, 0x59,
0xef, 0xac, 0xd5, 0x19,
0x00, 0xe2, 0x2
8
, 0x52,
0x00, 0xe2, 0x2
a
, 0x52,
0x09, 0x80, 0xe1, 0x30,
0x02, 0xea, 0x36, 0x00,
0xa8, 0xea, 0x32, 0x00,
0x00, 0xe2, 0x
2e
, 0x42,
0x00, 0xe2, 0x
30
, 0x42,
0x01, 0xac, 0xd1, 0x30,
0x10, 0x80, 0x89, 0x31,
0x20, 0xea, 0x32, 0x00,
0xbf, 0x33, 0x67, 0x0a,
0x20, 0x19, 0x3
0
, 0x6a,
0x02, 0x4d, 0xf
6
, 0x69,
0x20, 0x19, 0x3
2
, 0x6a,
0x02, 0x4d, 0xf
8
, 0x69,
0x40, 0x33, 0x67, 0x02,
0x00, 0xe2, 0xf
6
, 0x41,
0x80, 0x33, 0x
af
, 0x6a,
0x00, 0xe2, 0xf
8
, 0x41,
0x80, 0x33, 0x
b5
, 0x6a,
0x01, 0x44, 0x10, 0x33,
0x08, 0xa8, 0x51, 0x03,
0x00, 0xe2, 0xf
6
, 0x41,
0x00, 0xe2, 0xf
8
, 0x41,
0x10, 0xea, 0x80, 0x00,
0x01, 0x31, 0xc5, 0x31,
0x80, 0xe2, 0x
5e
, 0x62,
0x10, 0xa8, 0x8
3
, 0x6a,
0x80, 0xe2, 0x
60
, 0x62,
0x10, 0xa8, 0x8
5
, 0x6a,
0xc0, 0xaa, 0xc5, 0x01,
0x40, 0xa8, 0x
4f
, 0x6a,
0x40, 0xa8, 0x
51
, 0x6a,
0xbf, 0xe2, 0xc4, 0x09,
0x20, 0xa8, 0x6
3
, 0x7a,
0x20, 0xa8, 0x6
5
, 0x7a,
0x01, 0xe2, 0x88, 0x30,
0x00, 0xe2, 0xb
2
, 0x5b,
0xa0, 0x36, 0x6
b
, 0x62,
0x00, 0xe2, 0xb
8
, 0x5b,
0xa0, 0x36, 0x6
d
, 0x62,
0x23, 0xa8, 0x89, 0x08,
0x00, 0xe2, 0xb
2
, 0x5b,
0xa0, 0x36, 0x6
b
, 0x62,
0x00, 0xa8, 0x6
2
, 0x42,
0xff, 0xe2, 0x6
2
, 0x62,
0x00, 0xe2, 0x8
2
, 0x42,
0x00, 0xe2, 0xb
8
, 0x5b,
0xa0, 0x36, 0x6
d
, 0x62,
0x00, 0xa8, 0x6
4
, 0x42,
0xff, 0xe2, 0x6
4
, 0x62,
0x00, 0xe2, 0x8
4
, 0x42,
0x40, 0xea, 0x98, 0x00,
0x01, 0xe2, 0x88, 0x30,
0x00, 0xe2, 0xb
2
, 0x5b,
0xa0, 0x36, 0x4
1
, 0x72,
0x00, 0xe2, 0xb
8
, 0x5b,
0xa0, 0x36, 0x4
3
, 0x72,
0x40, 0xea, 0x98, 0x00,
0x01, 0x31, 0x89, 0x32,
0x08, 0xea, 0x62, 0x02,
0x00, 0xe2, 0xf
6
, 0x41,
0xe0, 0xea, 0x
ce
, 0x5b,
0x80, 0xe0, 0x
ba
, 0x6a,
0x04, 0xe0, 0x6
0
, 0x73,
0x02, 0xe0, 0x9
0
, 0x73,
0x00, 0xea, 0x1
8
, 0x73,
0x03, 0xe0, 0xa
0
, 0x73,
0x23, 0xe0, 0x9
4
, 0x72,
0x08, 0xe0, 0xb
6
, 0x72,
0x00, 0xe2, 0xb
2
, 0x5b,
0x07, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0xe0, 0xea, 0x
d4
, 0x5b,
0x80, 0xe0, 0x
c0
, 0x6a,
0x04, 0xe0, 0x6
6
, 0x73,
0x02, 0xe0, 0x9
6
, 0x73,
0x00, 0xea, 0x1
e
, 0x73,
0x03, 0xe0, 0xa
6
, 0x73,
0x23, 0xe0, 0x9
6
, 0x72,
0x08, 0xe0, 0xb
c
, 0x72,
0x00, 0xe2, 0xb
8
, 0x5b,
0x07, 0xea, 0x
50
, 0x59,
0x07, 0xea, 0x04, 0x00,
0x08, 0x42, 0xf
7
, 0x71,
0x04, 0x42, 0x9
1
, 0x62,
0x08, 0x42, 0xf
9
, 0x71,
0x04, 0x42, 0x9
3
, 0x62,
0x01, 0x43, 0x89, 0x30,
0x00, 0xe2, 0x8
2
, 0x42,
0x00, 0xe2, 0x8
4
, 0x42,
0x01, 0x44, 0xd4, 0x31,
0x00, 0xe2, 0x8
2
, 0x42,
0x00, 0xe2, 0x8
4
, 0x42,
0x01, 0x00, 0x60, 0x32,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x4c, 0x34, 0xc1, 0x28,
0x01, 0x64, 0xc0, 0x31,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x01, 0xe0, 0xb4, 0x7a,
0xa0, 0xea, 0xc4, 0x5b,
0x01, 0xa0, 0xb4, 0x62,
0x01, 0x84, 0xad, 0x7a,
0x01, 0xa7, 0xb6, 0x7a,
0x00, 0xe2, 0xb6, 0x42,
0x03, 0xea, 0x4e, 0x59,
0x01, 0xe0, 0xba, 0x7a,
0xa0, 0xea, 0xca, 0x5b,
0x01, 0xa0, 0xba, 0x62,
0x01, 0x84, 0xaf, 0x7a,
0x01, 0xab, 0xbd, 0x6a,
0x05, 0xea, 0x50, 0x59,
0x05, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xbc, 0x42,
0x03, 0xea, 0x50, 0x59,
0x03, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xb
6
, 0x42,
0x07, 0xea, 0xd
6
, 0x5b,
0x00, 0xe2, 0xb
c
, 0x42,
0x07, 0xea, 0xd
c
, 0x5b,
0x01, 0x44, 0xd4, 0x31,
0x00, 0xe2, 0xf
6
, 0x41,
0x00, 0xe2, 0xf
8
, 0x41,
0x3f, 0xe0, 0x6a, 0x0a,
0xc0, 0x34, 0xc1, 0x09,
0x00, 0x35, 0x51, 0x01,
...
...
@@ -365,54 +368,54 @@ static uint8_t seqprog[] = {
0x01, 0xea, 0xc6, 0x01,
0x02, 0xe2, 0xc8, 0x31,
0x02, 0xec, 0x40, 0x31,
0xff, 0xa1, 0xd
6
, 0x72,
0xff, 0xa1, 0xd
c
, 0x72,
0x02, 0xe8, 0xda, 0x31,
0x02, 0xa0, 0x50, 0x31,
0x00, 0xe2, 0xf
8
, 0x42,
0x00, 0xe2, 0xf
e
, 0x42,
0x80, 0x33, 0x67, 0x02,
0x01, 0x44, 0xd4, 0x31,
0x00, 0xe2, 0xb
2
, 0x5b,
0x00, 0xe2, 0xb
8
, 0x5b,
0x01, 0x33, 0x67, 0x02,
0xe0, 0x36, 0x1
3
, 0x63,
0xe0, 0x36, 0x1
9
, 0x63,
0x02, 0x33, 0x67, 0x02,
0x20, 0x46, 0x
0c
, 0x63,
0x20, 0x46, 0x
12
, 0x63,
0xff, 0xea, 0x52, 0x09,
0xa8, 0xea, 0xc
4
, 0x5b,
0x04, 0xa8, 0xf
3
, 0x7a,
0xa8, 0xea, 0xc
a
, 0x5b,
0x04, 0xa8, 0xf
9
, 0x7a,
0x01, 0x34, 0xc1, 0x31,
0x00, 0xa9, 0xf
3
, 0x62,
0x00, 0xa9, 0xf
9
, 0x62,
0x01, 0x35, 0xc1, 0x31,
0x00, 0xaa, 0x
fd, 0x72
,
0x00, 0xaa, 0x
03, 0x73
,
0x01, 0xa9, 0x52, 0x11,
0xff, 0xa9, 0xe
8
, 0x6a,
0x00, 0xe2, 0x
0c
, 0x43,
0xff, 0xa9, 0xe
e
, 0x6a,
0x00, 0xe2, 0x
12
, 0x43,
0x10, 0x33, 0x67, 0x02,
0x04, 0xa8, 0x
0d
, 0x7b,
0x04, 0xa8, 0x
13
, 0x7b,
0xfb, 0xa8, 0x51, 0x0b,
0xff, 0xea, 0x66, 0x0a,
0x01, 0x9c, 0x0
7
, 0x6b,
0x01, 0x9c, 0x0
d
, 0x6b,
0x02, 0xa8, 0x90, 0x32,
0x00, 0xe2, 0x6
8
, 0x59,
0x10, 0xa8, 0xb
7
, 0x7a,
0xff, 0xea, 0xd
6
, 0x5b,
0x00, 0xe2, 0xb
6
, 0x42,
0x04, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0x6
a
, 0x59,
0x10, 0xa8, 0xb
d
, 0x7a,
0xff, 0xea, 0xd
c
, 0x5b,
0x00, 0xe2, 0xb
c
, 0x42,
0x04, 0xea, 0x
50
, 0x59,
0x04, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xb
6
, 0x42,
0x04, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xb
c
, 0x42,
0x04, 0xea, 0x
50
, 0x59,
0x04, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x08, 0xa8, 0x
af
, 0x7a,
0xc0, 0x33, 0x2
3
, 0x7b,
0x80, 0x33, 0x
af
, 0x6a,
0xff, 0x88, 0x2
3
, 0x6b,
0x40, 0x33, 0x
af
, 0x6a,
0x10, 0xa8, 0x2
9
, 0x7b,
0x0a, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0x08, 0xa8, 0x
b5
, 0x7a,
0xc0, 0x33, 0x2
9
, 0x7b,
0x80, 0x33, 0x
b5
, 0x6a,
0xff, 0x88, 0x2
9
, 0x6b,
0x40, 0x33, 0x
b5
, 0x6a,
0x10, 0xa8, 0x2
f
, 0x7b,
0x0a, 0xea, 0x
50
, 0x59,
0x0a, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x4
8
, 0x5b,
0x00, 0xe2, 0x
7c
, 0x43,
0x50, 0x4b, 0x3
0
, 0x6b,
0x00, 0xe2, 0x4
e
, 0x5b,
0x00, 0xe2, 0x
82
, 0x43,
0x50, 0x4b, 0x3
6
, 0x6b,
0xbf, 0x3a, 0x74, 0x08,
0x01, 0xe0, 0xf4, 0x31,
0xff, 0xea, 0xc0, 0x09,
...
...
@@ -422,25 +425,25 @@ static uint8_t seqprog[] = {
0x01, 0xfa, 0xc0, 0x35,
0x02, 0xa8, 0x84, 0x32,
0x02, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x02, 0x42, 0x51, 0x31,
0xff, 0xae, 0x65, 0x68,
0xff, 0x88, 0x5
5
, 0x6b,
0x01, 0x9c, 0x5
1
, 0x6b,
0x02, 0x9c, 0x5
9
, 0x6b,
0x01, 0x84, 0x5
9
, 0x7b,
0xff, 0x88, 0x5
b
, 0x6b,
0x01, 0x9c, 0x5
7
, 0x6b,
0x02, 0x9c, 0x5
f
, 0x6b,
0x01, 0x84, 0x5
f
, 0x7b,
0x02, 0x28, 0x19, 0x33,
0x02, 0xa8, 0x50, 0x36,
0xff, 0x88, 0x5
9
, 0x73,
0x00, 0xe2, 0x
2c
, 0x5b,
0xff, 0x88, 0x5
f
, 0x73,
0x00, 0xe2, 0x
32
, 0x5b,
0x02, 0xa8, 0x5c, 0x33,
0x02, 0x2c, 0x19, 0x33,
0x02, 0xa8, 0x58, 0x32,
0x04, 0x9c, 0x39, 0x07,
0xc0, 0x33, 0x
af
, 0x6a,
0xc0, 0x33, 0x
b5
, 0x6a,
0x04, 0xa8, 0x51, 0x03,
0x20, 0xa8, 0x
7d
, 0x6b,
0x20, 0xa8, 0x
83
, 0x6b,
0x02, 0xa8, 0x40, 0x31,
0xc0, 0x34, 0xc1, 0x09,
0x00, 0x35, 0x51, 0x01,
...
...
@@ -455,56 +458,56 @@ static uint8_t seqprog[] = {
0xf7, 0x57, 0xae, 0x08,
0x08, 0xea, 0x98, 0x00,
0x01, 0x44, 0xd4, 0x31,
0xee, 0x00, 0x8
6
, 0x6b,
0xee, 0x00, 0x8
c
, 0x6b,
0x02, 0xea, 0xb4, 0x00,
0x00, 0xe2, 0x
ae
, 0x5b,
0x09, 0x4c, 0x8
8
, 0x7b,
0x00, 0xe2, 0x
b4
, 0x5b,
0x09, 0x4c, 0x8
e
, 0x7b,
0x08, 0x4c, 0x06, 0x68,
0x0b, 0xea, 0x
4e
, 0x59,
0x0b, 0xea, 0x
50
, 0x59,
0x0b, 0xea, 0x04, 0x00,
0x01, 0x44, 0xd4, 0x31,
0x20, 0x33, 0xf
7
, 0x79,
0x00, 0xe2, 0x9
8
, 0x5b,
0x00, 0xe2, 0xf
6
, 0x41,
0x01, 0x84, 0x
9d
, 0x7b,
0x20, 0x33, 0xf
9
, 0x79,
0x00, 0xe2, 0x9
e
, 0x5b,
0x00, 0xe2, 0xf
8
, 0x41,
0x01, 0x84, 0x
a3
, 0x7b,
0x01, 0x9c, 0x39, 0x07,
0x08, 0x60, 0x20, 0x33,
0x08, 0x80, 0x31, 0x37,
0xdf, 0x33, 0x67, 0x0a,
0xee, 0x00, 0x
aa
, 0x6b,
0xee, 0x00, 0x
b0
, 0x6b,
0x05, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x00, 0xe2, 0x6
8
, 0x59,
0x00, 0xe2, 0xb
6
, 0x42,
0x00, 0xe2, 0x6
a
, 0x59,
0x00, 0xe2, 0xb
c
, 0x42,
0x01, 0xea, 0x6c, 0x02,
0xc0, 0xea, 0x66, 0x06,
0xff, 0x42, 0x
be
, 0x6b,
0x01, 0x41, 0xb
2
, 0x6b,
0x02, 0x41, 0xb
2
, 0x7b,
0xff, 0x42, 0x
be
, 0x6b,
0x01, 0x41, 0xb
2
, 0x6b,
0x02, 0x41, 0xb
2
, 0x7b,
0xff, 0x42, 0x
be
, 0x7b,
0x04, 0x4c, 0xb
2
, 0x6b,
0xff, 0x42, 0x
c4
, 0x6b,
0x01, 0x41, 0xb
8
, 0x6b,
0x02, 0x41, 0xb
8
, 0x7b,
0xff, 0x42, 0x
c4
, 0x6b,
0x01, 0x41, 0xb
8
, 0x6b,
0x02, 0x41, 0xb
8
, 0x7b,
0xff, 0x42, 0x
c4
, 0x7b,
0x04, 0x4c, 0xb
8
, 0x6b,
0xe0, 0x41, 0x6c, 0x0e,
0x01, 0x44, 0xd4, 0x31,
0xff, 0x42, 0xc
6
, 0x7b,
0x04, 0x4c, 0xc
6
, 0x6b,
0xff, 0x42, 0xc
c
, 0x7b,
0x04, 0x4c, 0xc
c
, 0x6b,
0xe0, 0x41, 0x6c, 0x0a,
0xe0, 0x36, 0xf
7
, 0x61,
0xe0, 0x36, 0xf
9
, 0x61,
0xff, 0xea, 0xca, 0x09,
0x01, 0xe2, 0xc8, 0x31,
0x01, 0x46, 0xda, 0x35,
0x01, 0x44, 0xd4, 0x35,
0x10, 0xea, 0x80, 0x00,
0x01, 0xe2, 0x62, 0x36,
0x04, 0xa6, 0x
de
, 0x7b,
0x04, 0xa6, 0x
e4
, 0x7b,
0xff, 0xea, 0x5a, 0x09,
0xff, 0xea, 0x4c, 0x0d,
0x01, 0xa6, 0x
fc, 0x6b
,
0x01, 0xa6, 0x
02, 0x6c
,
0x10, 0xad, 0x64, 0x78,
0x80, 0xad, 0xf
4
, 0x6b,
0x80, 0xad, 0xf
a
, 0x6b,
0x08, 0xad, 0x64, 0x68,
0x04, 0x84, 0xf9, 0x30,
0x00, 0xea, 0x08, 0x81,
...
...
@@ -521,8 +524,6 @@ static uint8_t seqprog[] = {
0x08, 0xb0, 0xe0, 0x30,
0x04, 0xb0, 0xe0, 0x30,
0x03, 0xb0, 0xf0, 0x30,
0x01, 0x78, 0x0a, 0x7c,
0x01, 0xa7, 0x4e, 0x11,
0x01, 0xb0, 0x06, 0x33,
0x7f, 0x83, 0xe9, 0x08,
0x04, 0xac, 0x58, 0x19,
...
...
@@ -532,9 +533,7 @@ static uint8_t seqprog[] = {
0x00, 0x86, 0x0d, 0x23,
0x00, 0x87, 0x0f, 0x23,
0x01, 0x84, 0xc5, 0x31,
0x01, 0xa7, 0x20, 0x7c,
0x04, 0xe2, 0xc4, 0x01,
0x80, 0x83, 0x27, 0x7c,
0x80, 0x83, 0x25, 0x7c,
0x02, 0xe2, 0xc4, 0x01,
0xff, 0xea, 0x4c, 0x09,
0x01, 0xe2, 0x36, 0x30,
...
...
@@ -544,86 +543,80 @@ static uint8_t seqprog[] = {
0x00, 0xe2, 0x64, 0x50,
0xfe, 0xa6, 0x4c, 0x0d,
0x0b, 0x90, 0xe1, 0x30,
0x01, 0x98, 0x4f, 0x09,
0xfd, 0x9c, 0x49, 0x09,
0x80, 0x9b, 0x3
d
, 0x7c,
0x80, 0x9b, 0x3
9
, 0x7c,
0x02, 0xa4, 0x48, 0x01,
0x01, 0xa7, 0x40, 0x7c,
0x04, 0xa4, 0x48, 0x01,
0x01, 0xa4, 0x36, 0x30,
0xa8, 0xea, 0x32, 0x00,
0xfd, 0x9c, 0x39, 0x0b,
0x05, 0x9b, 0x07, 0x33,
0x80, 0x83, 0x4
d
, 0x6c,
0x80, 0x83, 0x4
5
, 0x6c,
0x02, 0xea, 0x4c, 0x05,
0xff, 0xea, 0x4c, 0x0d,
0x00, 0xe2, 0x3
c
, 0x59,
0x02, 0xa6, 0xe
0
, 0x6b,
0x00, 0xe2, 0x3
e
, 0x59,
0x02, 0xa6, 0xe
6
, 0x6b,
0x80, 0xf9, 0xf2, 0x05,
0xc0, 0x33, 0x5
b
, 0x7c,
0x03, 0xea, 0x
4e
, 0x59,
0xc0, 0x33, 0x5
3
, 0x7c,
0x03, 0xea, 0x
50
, 0x59,
0x03, 0xea, 0x04, 0x00,
0x20, 0x33, 0x7
f
, 0x7c,
0x01, 0x84, 0x
65
, 0x6c,
0x06, 0xea, 0x
4e
, 0x59,
0x20, 0x33, 0x7
7
, 0x7c,
0x01, 0x84, 0x
5d
, 0x6c,
0x06, 0xea, 0x
50
, 0x59,
0x06, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x
82
, 0x44,
0x00, 0xe2, 0x
7a
, 0x44,
0x01, 0x00, 0x60, 0x32,
0xee, 0x00, 0x6
e
, 0x6c,
0xee, 0x00, 0x6
6
, 0x6c,
0x05, 0xea, 0xb4, 0x00,
0x33, 0xea, 0x4
2
, 0x59,
0x33, 0xea, 0x4
4
, 0x59,
0x33, 0xea, 0x00, 0x00,
0x80, 0x3d, 0x7a, 0x00,
0xfc, 0x42, 0x
70
, 0x7c,
0xfc, 0x42, 0x
68
, 0x7c,
0x7f, 0x3d, 0x7a, 0x08,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x09, 0xea, 0x
4e
, 0x59,
0x09, 0xea, 0x
50
, 0x59,
0x09, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x01, 0x9c, 0x
65
, 0x6c,
0x00, 0xe2, 0x3
2
, 0x5c,
0x00, 0xe2, 0xf
8
, 0x41,
0x01, 0x9c, 0x
5d
, 0x6c,
0x00, 0xe2, 0x3
0
, 0x5c,
0x20, 0x33, 0x67, 0x02,
0x01, 0x00, 0x60, 0x32,
0x02, 0xa6, 0x8
a
, 0x7c,
0x00, 0xe2, 0x4
e
, 0x5c,
0x02, 0xa6, 0x8
2
, 0x7c,
0x00, 0xe2, 0x4
6
, 0x5c,
0x00, 0xe2, 0x56, 0x58,
0x00, 0xe2, 0x66, 0x58,
0x00, 0xe2, 0x3a, 0x58,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x20, 0x19, 0x8
a
, 0x6c,
0x00, 0xe2, 0xb
a
, 0x5c,
0x04, 0x19, 0x
a4
, 0x6c,
0x20, 0x19, 0x8
2
, 0x6c,
0x00, 0xe2, 0xb
2
, 0x5c,
0x04, 0x19, 0x
9c
, 0x6c,
0x02, 0x19, 0x32, 0x00,
0x01, 0x84, 0x
a5
, 0x7c,
0x01, 0x1b, 0x9
e
, 0x7c,
0x01, 0x1a, 0x
a4
, 0x6c,
0x00, 0xe2, 0x
54
, 0x44,
0x80, 0x4b, 0xa
a
, 0x6c,
0x01, 0x4c, 0x
a6
, 0x7c,
0x03, 0x42, 0x
54
, 0x6c,
0x00, 0xe2, 0x
da
, 0x5b,
0x01, 0x84, 0x
9d
, 0x7c,
0x01, 0x1b, 0x9
6
, 0x7c,
0x01, 0x1a, 0x
9c
, 0x6c,
0x00, 0xe2, 0x
4c
, 0x44,
0x80, 0x4b, 0xa
2
, 0x6c,
0x01, 0x4c, 0x
9e
, 0x7c,
0x03, 0x42, 0x
4c
, 0x6c,
0x00, 0xe2, 0x
e0
, 0x5b,
0x80, 0xf9, 0xf2, 0x01,
0x04, 0x33, 0xf
7
, 0x79,
0x00, 0xe2, 0xf
6
, 0x41,
0x08, 0x5d, 0x
c2
, 0x6c,
0x04, 0x33, 0xf
9
, 0x79,
0x00, 0xe2, 0xf
8
, 0x41,
0x08, 0x5d, 0x
ba
, 0x6c,
0x00, 0xe2, 0x56, 0x58,
0x00, 0x30, 0x4
3
, 0x59,
0x00, 0x30, 0x4
5
, 0x59,
0x01, 0x30, 0x01, 0x30,
0x02, 0x1b, 0x
b2
, 0x7c,
0x08, 0x5d, 0x
c0
, 0x7c,
0x02, 0x1b, 0x
aa
, 0x7c,
0x08, 0x5d, 0x
b8
, 0x7c,
0x03, 0x68, 0x00, 0x37,
0x01, 0x84, 0x09, 0x07,
0x80, 0x1b, 0xc
c
, 0x7c,
0x80, 0x84, 0xc
d
, 0x6c,
0x80, 0x1b, 0xc
4
, 0x7c,
0x80, 0x84, 0xc
5
, 0x6c,
0xff, 0x85, 0x0b, 0x1b,
0xff, 0x86, 0x0d, 0x23,
0xff, 0x87, 0x0f, 0x23,
0xf8, 0x1b, 0x08, 0x0b,
0xff, 0xea, 0x4e, 0x09,
0x04, 0x1b, 0xd4, 0x7c,
0x01, 0xa7, 0x4e, 0x01,
0xff, 0xea, 0x06, 0x0b,
0x03, 0x68, 0x00, 0x37,
0x00, 0xe2, 0xc4, 0x58,
...
...
@@ -631,161 +624,161 @@ static uint8_t seqprog[] = {
0xf9, 0xd9, 0xb2, 0x0d,
0x01, 0xd9, 0xb2, 0x05,
0x01, 0x52, 0x48, 0x31,
0x20, 0xa4, 0x
fc
, 0x7c,
0x20, 0x5b, 0x
fc
, 0x7c,
0x80, 0xf9, 0x
0a, 0x7d
,
0x20, 0xa4, 0x
ee
, 0x7c,
0x20, 0x5b, 0x
ee
, 0x7c,
0x80, 0xf9, 0x
fc, 0x7c
,
0x02, 0xea, 0xb4, 0x00,
0x11, 0x00, 0x00, 0x10,
0x04, 0x19, 0x
16
, 0x7d,
0x04, 0x19, 0x
08
, 0x7d,
0xdf, 0x19, 0x32, 0x08,
0x60, 0x5b, 0x
f4
, 0x6c,
0x01, 0x4c, 0x
f0
, 0x7c,
0x60, 0x5b, 0x
e6
, 0x6c,
0x01, 0x4c, 0x
e2
, 0x7c,
0x20, 0x19, 0x32, 0x00,
0x01, 0xd9, 0xb2, 0x05,
0x02, 0xea, 0xb4, 0x00,
0x01, 0xd9, 0xb2, 0x05,
0x10, 0x5b, 0x0
e
, 0x6d,
0x08, 0x5b, 0x
18
, 0x6d,
0x20, 0x5b, 0x
08, 0x6d
,
0x02, 0x5b, 0x
38
, 0x6d,
0x0e, 0xea, 0x
4e
, 0x59,
0x10, 0x5b, 0x0
0
, 0x6d,
0x08, 0x5b, 0x
0a
, 0x6d,
0x20, 0x5b, 0x
fa, 0x6c
,
0x02, 0x5b, 0x
2a
, 0x6d,
0x0e, 0xea, 0x
50
, 0x59,
0x0e, 0xea, 0x04, 0x00,
0x80, 0xf9, 0x
f8
, 0x6c,
0x80, 0xf9, 0x
ea
, 0x6c,
0xdf, 0x5c, 0xb8, 0x08,
0x01, 0xd9, 0xb2, 0x05,
0x01, 0x9c, 0x
f3
, 0x6d,
0x00, 0xe2, 0x3
2
, 0x5c,
0x00, 0xe2, 0x
42
, 0x5d,
0x01, 0x9c, 0x
e5
, 0x6d,
0x00, 0xe2, 0x3
0
, 0x5c,
0x00, 0xe2, 0x
34
, 0x5d,
0x01, 0xae, 0x5d, 0x1b,
0x01, 0xd9, 0xb2, 0x05,
0x00, 0xe2, 0x
2c
, 0x5b,
0x00, 0xe2, 0x
32
, 0x5b,
0xf3, 0xac, 0xd5, 0x19,
0x00, 0xe2, 0x
26
, 0x55,
0x80, 0xac, 0x
27
, 0x6d,
0x0f, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0x
18
, 0x55,
0x80, 0xac, 0x
19
, 0x6d,
0x0f, 0xea, 0x
50
, 0x59,
0x0f, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x2
e
, 0x45,
0x00, 0xe2, 0x2
0
, 0x45,
0x04, 0x8c, 0xe1, 0x30,
0x01, 0xea, 0xf2, 0x00,
0x02, 0xea, 0x36, 0x00,
0xa8, 0xea, 0x32, 0x00,
0xff, 0xad, 0x
35
, 0x7d,
0x14, 0xea, 0x
4e
, 0x59,
0xff, 0xad, 0x
27
, 0x7d,
0x14, 0xea, 0x
50
, 0x59,
0x14, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x
a4
, 0x5d,
0x00, 0xe2, 0x
96
, 0x5d,
0x01, 0xd9, 0xb2, 0x05,
0x09, 0x80, 0xe1, 0x30,
0x02, 0xea, 0x36, 0x00,
0xa8, 0xea, 0x32, 0x00,
0x00, 0xe2, 0x
9c
, 0x5d,
0x00, 0xe2, 0x
8e
, 0x5d,
0x01, 0xd9, 0xb2, 0x05,
0x02, 0xa6, 0x
52
, 0x7d,
0x00, 0xe2, 0x3
c
, 0x59,
0x20, 0x5b, 0x
60
, 0x6d,
0xfc, 0x42, 0x
4c
, 0x7d,
0x10, 0x40, 0x4
e
, 0x6d,
0x20, 0x4d, 0x
50
, 0x7d,
0x08, 0x5d, 0x
60
, 0x6d,
0x02, 0xa6, 0xe
0
, 0x6b,
0x00, 0xe2, 0x3
c
, 0x59,
0x20, 0x5b, 0x
60
, 0x6d,
0x01, 0x1b, 0x
80
, 0x6d,
0xfc, 0x42, 0x
5c
, 0x7d,
0x10, 0x40, 0x5
e
, 0x6d,
0x02, 0xa6, 0x
44
, 0x7d,
0x00, 0xe2, 0x3
e
, 0x59,
0x20, 0x5b, 0x
52
, 0x6d,
0xfc, 0x42, 0x
3e
, 0x7d,
0x10, 0x40, 0x4
0
, 0x6d,
0x20, 0x4d, 0x
42
, 0x7d,
0x08, 0x5d, 0x
52
, 0x6d,
0x02, 0xa6, 0xe
6
, 0x6b,
0x00, 0xe2, 0x3
e
, 0x59,
0x20, 0x5b, 0x
52
, 0x6d,
0x01, 0x1b, 0x
72
, 0x6d,
0xfc, 0x42, 0x
4e
, 0x7d,
0x10, 0x40, 0x5
0
, 0x6d,
0x20, 0x4d, 0x64, 0x78,
0x08, 0x5d, 0x64, 0x78,
0x02, 0x19, 0x32, 0x00,
0x01, 0x5b, 0x40, 0x31,
0x00, 0xe2, 0xb
a
, 0x5c,
0x00, 0xe2, 0x9
8
, 0x5b,
0x00, 0xe2, 0xb
2
, 0x5c,
0x00, 0xe2, 0x9
e
, 0x5b,
0x20, 0xea, 0xb6, 0x00,
0x00, 0xe2, 0x
da
, 0x5b,
0x00, 0xe2, 0x
e0
, 0x5b,
0x20, 0x5c, 0xb8, 0x00,
0x04, 0x19, 0x
76
, 0x6d,
0x01, 0x1a, 0x
76
, 0x6d,
0x00, 0xe2, 0x3
c
, 0x59,
0x04, 0x19, 0x
68
, 0x6d,
0x01, 0x1a, 0x
68
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x59,
0x01, 0x1a, 0x64, 0x78,
0x80, 0xf9, 0xf2, 0x01,
0x20, 0xa0, 0x
da
, 0x7d,
0x20, 0xa0, 0x
cc
, 0x7d,
0xff, 0xae, 0x5d, 0x1b,
0x08, 0xa8, 0x
3d
, 0x6b,
0x08, 0xa8, 0x
43
, 0x6b,
0x02, 0xea, 0xb4, 0x04,
0x01, 0x9c, 0x39, 0x03,
0x40, 0x5b, 0x
90
, 0x6d,
0x00, 0xe2, 0x3
c
, 0x59,
0x40, 0x5b, 0x
90
, 0x6d,
0x04, 0x5d, 0x
f4
, 0x7d,
0x01, 0x1a, 0x
f4
, 0x7d,
0x40, 0x5b, 0x
82
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x59,
0x40, 0x5b, 0x
82
, 0x6d,
0x04, 0x5d, 0x
e6
, 0x7d,
0x01, 0x1a, 0x
e6
, 0x7d,
0x20, 0x4d, 0x64, 0x78,
0x40, 0x5b, 0x
da
, 0x7d,
0x04, 0x5d, 0x
f4
, 0x7d,
0x01, 0x1a, 0x
f4
, 0x7d,
0x40, 0x5b, 0x
cc
, 0x7d,
0x04, 0x5d, 0x
e6
, 0x7d,
0x01, 0x1a, 0x
e6
, 0x7d,
0x80, 0xf9, 0xf2, 0x01,
0xff, 0xae, 0x5d, 0x1b,
0x08, 0xa8, 0x
3d
, 0x6b,
0x08, 0xa8, 0x
43
, 0x6b,
0x02, 0xea, 0xb4, 0x04,
0x00, 0xe2, 0x3
c
, 0x59,
0x00, 0xe2, 0x3
e
, 0x59,
0x01, 0x1b, 0x64, 0x78,
0x80, 0xf9, 0xf2, 0x01,
0x02, 0xea, 0xb4, 0x04,
0x00, 0xe2, 0x3
c
, 0x59,
0x01, 0x1b, 0x
b8
, 0x6d,
0x40, 0x5b, 0x
c6
, 0x7d,
0x01, 0x1b, 0x
b8
, 0x6d,
0x00, 0xe2, 0x3
e
, 0x59,
0x01, 0x1b, 0x
aa
, 0x6d,
0x40, 0x5b, 0x
b8
, 0x7d,
0x01, 0x1b, 0x
aa
, 0x6d,
0x02, 0x19, 0x32, 0x00,
0x01, 0x1a, 0x64, 0x78,
0x80, 0xf9, 0xf2, 0x01,
0xff, 0xea, 0x10, 0x03,
0x08, 0xa8, 0x51, 0x03,
0x00, 0xe2, 0x
3c
, 0x43,
0x01, 0x1a, 0x
c2
, 0x7d,
0x40, 0x5b, 0xb
e
, 0x7d,
0x01, 0x1a, 0x
ac
, 0x6d,
0x00, 0xe2, 0x
42
, 0x43,
0x01, 0x1a, 0x
b4
, 0x7d,
0x40, 0x5b, 0xb
0
, 0x7d,
0x01, 0x1a, 0x
9e
, 0x6d,
0xfc, 0x42, 0x64, 0x78,
0x01, 0x1a, 0x
c6
, 0x6d,
0x10, 0xea, 0x
4e
, 0x59,
0x01, 0x1a, 0x
b8
, 0x6d,
0x10, 0xea, 0x
50
, 0x59,
0x10, 0xea, 0x04, 0x00,
0xfc, 0x42, 0x64, 0x78,
0x10, 0x40, 0x
cc
, 0x6d,
0x10, 0x40, 0x
be
, 0x6d,
0x20, 0x4d, 0x64, 0x78,
0x40, 0x5b, 0x
ac
, 0x6d,
0x40, 0x5b, 0x
9e
, 0x6d,
0x01, 0x1a, 0x64, 0x78,
0x01, 0xae, 0x5d, 0x1b,
0x30, 0x3f, 0xc0, 0x09,
0x30, 0xe0, 0x64, 0x60,
0x40, 0x4b, 0x64, 0x68,
0xff, 0xea, 0x52, 0x01,
0xee, 0x00, 0x
e0
, 0x6d,
0xee, 0x00, 0x
d2
, 0x6d,
0x80, 0xf9, 0xf2, 0x01,
0xff, 0xae, 0x5d, 0x1b,
0x02, 0xea, 0xb4, 0x00,
0x20, 0xea, 0x9a, 0x00,
0xf3, 0x42, 0x
ec
, 0x6d,
0x12, 0xea, 0x
4e
, 0x59,
0xf3, 0x42, 0x
de
, 0x6d,
0x12, 0xea, 0x
50
, 0x59,
0x12, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x0d, 0xea, 0x
4e
, 0x59,
0x00, 0xe2, 0xf
8
, 0x41,
0x0d, 0xea, 0x
50
, 0x59,
0x0d, 0xea, 0x04, 0x00,
0x00, 0xe2, 0xf
6
, 0x41,
0x00, 0xe2, 0xf
8
, 0x41,
0x01, 0xae, 0x5d, 0x1b,
0x11, 0xea, 0x
4e
, 0x59,
0x11, 0xea, 0x
50
, 0x59,
0x11, 0xea, 0x04, 0x00,
0x00, 0xe2, 0x
2c
, 0x5b,
0x00, 0xe2, 0x
32
, 0x5b,
0x08, 0x5a, 0xb4, 0x00,
0x00, 0xe2, 0x
1a
, 0x5e,
0x00, 0xe2, 0x
0c
, 0x5e,
0xa8, 0xea, 0x32, 0x00,
0x00, 0xe2, 0x3
c
, 0x59,
0x80, 0x1a, 0x
08, 0x7e
,
0x00, 0xe2, 0x
1a
, 0x5e,
0x00, 0xe2, 0x3
e
, 0x59,
0x80, 0x1a, 0x
fa, 0x7d
,
0x00, 0xe2, 0x
0c
, 0x5e,
0x80, 0x19, 0x32, 0x00,
0x40, 0x5b, 0x0
e
, 0x6e,
0x08, 0x5a, 0x0
e
, 0x7e,
0x40, 0x5b, 0x0
0
, 0x6e,
0x08, 0x5a, 0x0
0
, 0x7e,
0x20, 0x4d, 0x64, 0x78,
0x02, 0x84, 0x09, 0x03,
0x40, 0x5b, 0x
da
, 0x7d,
0x40, 0x5b, 0x
cc
, 0x7d,
0xff, 0xae, 0x5d, 0x1b,
0x80, 0xf9, 0xf2, 0x01,
0x08, 0xa8, 0x
3d
, 0x6b,
0x08, 0xa8, 0x
43
, 0x6b,
0x02, 0xea, 0xb4, 0x04,
0x01, 0x38, 0xe1, 0x30,
0x05, 0x39, 0xe3, 0x98,
...
...
@@ -801,12 +794,20 @@ static uint8_t seqprog[] = {
};
typedef int ahd_patch_func_t (struct ahd_softc *ahd);
static ahd_patch_func_t ahd_patch22_func;
static int
ahd_patch22_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0);
}
static ahd_patch_func_t ahd_patch21_func;
static int
ahd_patch21_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG)
!
= 0);
return ((ahd->bugs & AHD_PKT_BITBUCKET_BUG)
=
= 0);
}
static ahd_patch_func_t ahd_patch20_func;
...
...
@@ -814,7 +815,7 @@ static ahd_patch_func_t ahd_patch20_func;
static int
ahd_patch20_func(struct ahd_softc *ahd)
{
return ((ahd->
bugs & AHD_PKT_BITBUCKET_BUG
) == 0);
return ((ahd->
features & AHD_RTI
) == 0);
}
static ahd_patch_func_t ahd_patch19_func;
...
...
@@ -822,7 +823,7 @@ static ahd_patch_func_t ahd_patch19_func;
static int
ahd_patch19_func(struct ahd_softc *ahd)
{
return ((ahd->f
eatures & AHD_RTI) =
= 0);
return ((ahd->f
lags & AHD_INITIATORROLE) !
= 0);
}
static ahd_patch_func_t ahd_patch18_func;
...
...
@@ -830,7 +831,7 @@ static ahd_patch_func_t ahd_patch18_func;
static int
ahd_patch18_func(struct ahd_softc *ahd)
{
return ((ahd->flags & AHD_
INITIATOR
ROLE) != 0);
return ((ahd->flags & AHD_
TARGET
ROLE) != 0);
}
static ahd_patch_func_t ahd_patch17_func;
...
...
@@ -838,7 +839,7 @@ static ahd_patch_func_t ahd_patch17_func;
static int
ahd_patch17_func(struct ahd_softc *ahd)
{
return ((ahd->
flags & AHD_TARGETROLE
) != 0);
return ((ahd->
bugs & AHD_AUTOFLUSH_BUG
) != 0);
}
static ahd_patch_func_t ahd_patch16_func;
...
...
@@ -846,7 +847,7 @@ static ahd_patch_func_t ahd_patch16_func;
static int
ahd_patch16_func(struct ahd_softc *ahd)
{
return ((ahd->
bugs & AHD_AUTOFLUSH_BUG
) != 0);
return ((ahd->
features & AHD_NEW_DFCNTRL_OPTS
) != 0);
}
static ahd_patch_func_t ahd_patch15_func;
...
...
@@ -854,7 +855,7 @@ static ahd_patch_func_t ahd_patch15_func;
static int
ahd_patch15_func(struct ahd_softc *ahd)
{
return ((ahd->f
eatures & AHD_NEW_DFCNTRL_OPTS
) != 0);
return ((ahd->f
lags & AHD_39BIT_ADDRESSING
) != 0);
}
static ahd_patch_func_t ahd_patch14_func;
...
...
@@ -862,7 +863,7 @@ static ahd_patch_func_t ahd_patch14_func;
static int
ahd_patch14_func(struct ahd_softc *ahd)
{
return ((ahd->flags & AHD_
39
BIT_ADDRESSING) != 0);
return ((ahd->flags & AHD_
64
BIT_ADDRESSING) != 0);
}
static ahd_patch_func_t ahd_patch13_func;
...
...
@@ -870,7 +871,7 @@ static ahd_patch_func_t ahd_patch13_func;
static int
ahd_patch13_func(struct ahd_softc *ahd)
{
return ((ahd->f
lags & AHD_64BIT_ADDRESSING) !
= 0);
return ((ahd->f
eatures & AHD_NEW_DFCNTRL_OPTS) =
= 0);
}
static ahd_patch_func_t ahd_patch12_func;
...
...
@@ -878,7 +879,7 @@ static ahd_patch_func_t ahd_patch12_func;
static int
ahd_patch12_func(struct ahd_softc *ahd)
{
return ((ahd->
features & AHD_NEW_DFCNTRL_OPTS) =
= 0);
return ((ahd->
bugs & AHD_REG_SLOW_SETTLE_BUG) !
= 0);
}
static ahd_patch_func_t ahd_patch11_func;
...
...
@@ -886,7 +887,7 @@ static ahd_patch_func_t ahd_patch11_func;
static int
ahd_patch11_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
REG_SLOW_SETTLE
_BUG) != 0);
return ((ahd->bugs & AHD_
EARLY_REQ
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch10_func;
...
...
@@ -894,7 +895,7 @@ static ahd_patch_func_t ahd_patch10_func;
static int
ahd_patch10_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
EARLY_REQ_BUG) !
= 0);
return ((ahd->bugs & AHD_
BUSFREEREV_BUG) =
= 0);
}
static ahd_patch_func_t ahd_patch9_func;
...
...
@@ -902,7 +903,7 @@ static ahd_patch_func_t ahd_patch9_func;
static int
ahd_patch9_func(struct ahd_softc *ahd)
{
return ((ahd->
bugs & AHD_BUSFREEREV_BUG) =
= 0);
return ((ahd->
flags & AHD_SEQUENCER_DEBUG) !
= 0);
}
static ahd_patch_func_t ahd_patch8_func;
...
...
@@ -910,7 +911,7 @@ static ahd_patch_func_t ahd_patch8_func;
static int
ahd_patch8_func(struct ahd_softc *ahd)
{
return ((ahd->
flags & AHD_SEQUENCER_DE
BUG) != 0);
return ((ahd->
bugs & AHD_LQO_ATNO_
BUG) != 0);
}
static ahd_patch_func_t ahd_patch7_func;
...
...
@@ -918,7 +919,7 @@ static ahd_patch_func_t ahd_patch7_func;
static int
ahd_patch7_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
LQO_ATNO
_BUG) != 0);
return ((ahd->bugs & AHD_
BUSFREEREV
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch6_func;
...
...
@@ -926,7 +927,7 @@ static ahd_patch_func_t ahd_patch6_func;
static int
ahd_patch6_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
BUSFREEREV
_BUG) != 0);
return ((ahd->bugs & AHD_
NONPACKFIFO
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch5_func;
...
...
@@ -934,7 +935,7 @@ static ahd_patch_func_t ahd_patch5_func;
static int
ahd_patch5_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
NONPACKFIFO
_BUG) != 0);
return ((ahd->bugs & AHD_
SENT_SCB_UPDATE
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch4_func;
...
...
@@ -942,7 +943,7 @@ static ahd_patch_func_t ahd_patch4_func;
static int
ahd_patch4_func(struct ahd_softc *ahd)
{
return ((ahd->bugs & AHD_
SENT_SCB_UPDATE
_BUG) != 0);
return ((ahd->bugs & AHD_
PKT_LUN
_BUG) != 0);
}
static ahd_patch_func_t ahd_patch3_func;
...
...
@@ -1008,109 +1009,112 @@ static struct patch {
{ ahd_patch0_func, 70, 1, 1 },
{ ahd_patch1_func, 73, 1, 2 },
{ ahd_patch0_func, 74, 1, 1 },
{ ahd_patch2_func, 161, 6, 1 },
{ ahd_patch1_func, 167, 2, 1 },
{ ahd_patch4_func, 169, 1, 1 },
{ ahd_patch2_func, 178, 1, 2 },
{ ahd_patch0_func, 179, 1, 1 },
{ ahd_patch5_func, 180, 2, 2 },
{ ahd_patch0_func, 182, 6, 3 },
{ ahd_patch2_func, 185, 1, 2 },
{ ahd_patch0_func, 186, 1, 1 },
{ ahd_patch2_func, 189, 1, 2 },
{ ahd_patch0_func, 190, 1, 1 },
{ ahd_patch6_func, 192, 2, 1 },
{ ahd_patch4_func, 200, 16, 2 },
{ ahd_patch0_func, 216, 1, 1 },
{ ahd_patch7_func, 236, 2, 1 },
{ ahd_patch1_func, 240, 1, 2 },
{ ahd_patch0_func, 241, 1, 1 },
{ ahd_patch6_func, 244, 2, 1 },
{ ahd_patch1_func, 258, 1, 2 },
{ ahd_patch0_func, 259, 1, 1 },
{ ahd_patch1_func, 262, 1, 2 },
{ ahd_patch0_func, 263, 1, 1 },
{ ahd_patch2_func, 266, 1, 2 },
{ ahd_patch0_func, 267, 1, 1 },
{ ahd_patch1_func, 322, 1, 2 },
{ ahd_patch0_func, 323, 1, 1 },
{ ahd_patch2_func, 331, 1, 2 },
{ ahd_patch0_func, 332, 1, 1 },
{ ahd_patch2_func, 335, 1, 2 },
{ ahd_patch0_func, 336, 1, 1 },
{ ahd_patch4_func, 107, 1, 1 },
{ ahd_patch2_func, 162, 6, 1 },
{ ahd_patch1_func, 168, 2, 1 },
{ ahd_patch5_func, 170, 1, 1 },
{ ahd_patch2_func, 179, 1, 2 },
{ ahd_patch0_func, 180, 1, 1 },
{ ahd_patch6_func, 181, 2, 2 },
{ ahd_patch0_func, 183, 6, 3 },
{ ahd_patch2_func, 186, 1, 2 },
{ ahd_patch0_func, 187, 1, 1 },
{ ahd_patch2_func, 190, 1, 2 },
{ ahd_patch0_func, 191, 1, 1 },
{ ahd_patch7_func, 193, 2, 1 },
{ ahd_patch5_func, 201, 16, 2 },
{ ahd_patch0_func, 217, 1, 1 },
{ ahd_patch8_func, 237, 2, 1 },
{ ahd_patch1_func, 241, 1, 2 },
{ ahd_patch0_func, 242, 1, 1 },
{ ahd_patch7_func, 245, 2, 1 },
{ ahd_patch1_func, 259, 1, 2 },
{ ahd_patch0_func, 260, 1, 1 },
{ ahd_patch1_func, 263, 1, 2 },
{ ahd_patch0_func, 264, 1, 1 },
{ ahd_patch2_func, 267, 1, 2 },
{ ahd_patch0_func, 268, 1, 1 },
{ ahd_patch1_func, 323, 1, 2 },
{ ahd_patch0_func, 324, 1, 1 },
{ ahd_patch2_func, 332, 1, 2 },
{ ahd_patch0_func, 333, 1, 1 },
{ ahd_patch2_func, 336, 1, 2 },
{ ahd_patch0_func, 337, 1, 1 },
{ ahd_patch1_func, 343, 1, 2 },
{ ahd_patch0_func, 344, 1, 1 },
{ ahd_patch
8_func, 363, 1, 1
},
{ ahd_patch
8_func, 366
, 1, 1 },
{ ahd_patch
8_func, 368
, 1, 1 },
{ ahd_patch
8_func, 380
, 1, 1 },
{ ahd_patch
1_func, 390, 1, 2
},
{ ahd_patch
0_func, 391
, 1, 1 },
{ ahd_patch
1_func, 346, 1, 2
},
{ ahd_patch
0_func, 347
, 1, 1 },
{ ahd_patch
9_func, 366
, 1, 1 },
{ ahd_patch
9_func, 369
, 1, 1 },
{ ahd_patch
9_func, 371, 1, 1
},
{ ahd_patch
9_func, 383
, 1, 1 },
{ ahd_patch1_func, 393, 1, 2 },
{ ahd_patch0_func, 394, 1, 1 },
{ ahd_patch1_func, 402, 1, 2 },
{ ahd_patch0_func, 403, 1, 1 },
{ ahd_patch2_func, 416, 1, 2 },
{ ahd_patch0_func, 417, 1, 1 },
{ ahd_patch9_func, 447, 1, 1 },
{ ahd_patch1_func, 454, 1, 2 },
{ ahd_patch0_func, 455, 1, 1 },
{ ahd_patch2_func, 467, 1, 2 },
{ ahd_patch0_func, 468, 1, 1 },
{ ahd_patch10_func, 473, 6, 2 },
{ ahd_patch0_func, 479, 1, 1 },
{ ahd_patch11_func, 502, 1, 1 },
{ ahd_patch12_func, 511, 1, 1 },
{ ahd_patch13_func, 512, 1, 2 },
{ ahd_patch0_func, 513, 1, 1 },
{ ahd_patch14_func, 518, 1, 1 },
{ ahd_patch13_func, 519, 1, 1 },
{ ahd_patch15_func, 532, 1, 2 },
{ ahd_patch0_func, 533, 1, 1 },
{ ahd_patch1_func, 396, 1, 2 },
{ ahd_patch0_func, 397, 1, 1 },
{ ahd_patch1_func, 405, 1, 2 },
{ ahd_patch0_func, 406, 1, 1 },
{ ahd_patch2_func, 419, 1, 2 },
{ ahd_patch0_func, 420, 1, 1 },
{ ahd_patch10_func, 450, 1, 1 },
{ ahd_patch1_func, 457, 1, 2 },
{ ahd_patch0_func, 458, 1, 1 },
{ ahd_patch2_func, 470, 1, 2 },
{ ahd_patch0_func, 471, 1, 1 },
{ ahd_patch11_func, 476, 6, 2 },
{ ahd_patch0_func, 482, 1, 1 },
{ ahd_patch12_func, 505, 1, 1 },
{ ahd_patch13_func, 514, 1, 1 },
{ ahd_patch14_func, 515, 1, 2 },
{ ahd_patch0_func, 516, 1, 1 },
{ ahd_patch15_func, 519, 1, 1 },
{ ahd_patch14_func, 520, 1, 1 },
{ ahd_patch16_func, 531, 1, 2 },
{ ahd_patch0_func, 532, 1, 1 },
{ ahd_patch1_func, 551, 1, 2 },
{ ahd_patch0_func, 552, 1, 1 },
{ ahd_patch1_func, 555, 1, 2 },
{ ahd_patch0_func, 556, 1, 1 },
{ ahd_patch
1_func, 559
, 1, 2 },
{ ahd_patch0_func, 56
0
, 1, 1 },
{ ahd_patch2_func, 56
5
, 1, 2 },
{ ahd_patch0_func, 56
6
, 1, 1 },
{ ahd_patch
2_func, 570
, 1, 2 },
{ ahd_patch0_func, 5
71
, 1, 1 },
{ ahd_patch
1_func, 572
, 1, 2 },
{ ahd_patch0_func, 5
73
, 1, 1 },
{ ahd_patch
2_func, 584, 1, 2
},
{ ahd_patch
0_func, 585
, 1, 1 },
{ ahd_patch1
6_func, 589, 1
, 1 },
{ ahd_patch1
7_func, 594, 1, 1
},
{ ahd_patch
18_func, 595, 2
, 1 },
{ ahd_patch
17
_func, 599, 1, 2 },
{ ahd_patch
2_func, 561
, 1, 2 },
{ ahd_patch0_func, 56
2
, 1, 1 },
{ ahd_patch2_func, 56
6
, 1, 2 },
{ ahd_patch0_func, 56
7
, 1, 1 },
{ ahd_patch
1_func, 568
, 1, 2 },
{ ahd_patch0_func, 5
69
, 1, 1 },
{ ahd_patch
2_func, 580
, 1, 2 },
{ ahd_patch0_func, 5
81
, 1, 1 },
{ ahd_patch
17_func, 585, 1, 1
},
{ ahd_patch
18_func, 590
, 1, 1 },
{ ahd_patch1
9_func, 591, 2
, 1 },
{ ahd_patch1
8_func, 595, 1, 2
},
{ ahd_patch
0_func, 596, 1
, 1 },
{ ahd_patch
2
_func, 599, 1, 2 },
{ ahd_patch0_func, 600, 1, 1 },
{ ahd_patch2_func, 603, 1, 2 },
{ ahd_patch0_func, 604, 1, 1 },
{ ahd_patch2_func, 622, 1, 2 },
{ ahd_patch0_func, 623, 1, 1 },
{ ahd_patch19_func, 624, 14, 1 },
{ ahd_patch1_func, 642, 1, 2 },
{ ahd_patch0_func, 643, 1, 1 },
{ ahd_patch19_func, 644, 1, 1 },
{ ahd_patch1_func, 656, 1, 2 },
{ ahd_patch0_func, 657, 1, 1 },
{ ahd_patch1_func, 664, 1, 2 },
{ ahd_patch0_func, 665, 1, 1 },
{ ahd_patch16_func, 688, 1, 1 },
{ ahd_patch16_func, 726, 1, 1 },
{ ahd_patch1_func, 737, 1, 2 },
{ ahd_patch0_func, 738, 1, 1 },
{ ahd_patch2_func, 615, 1, 2 },
{ ahd_patch0_func, 616, 1, 1 },
{ ahd_patch20_func, 617, 14, 1 },
{ ahd_patch1_func, 635, 1, 2 },
{ ahd_patch0_func, 636, 1, 1 },
{ ahd_patch20_func, 637, 1, 1 },
{ ahd_patch1_func, 649, 1, 2 },
{ ahd_patch0_func, 650, 1, 1 },
{ ahd_patch1_func, 657, 1, 2 },
{ ahd_patch0_func, 658, 1, 1 },
{ ahd_patch17_func, 681, 1, 1 },
{ ahd_patch17_func, 719, 1, 1 },
{ ahd_patch1_func, 730, 1, 2 },
{ ahd_patch0_func, 731, 1, 1 },
{ ahd_patch1_func, 748, 1, 2 },
{ ahd_patch0_func, 749, 1, 1 },
{ ahd_patch1_func, 751, 1, 2 },
{ ahd_patch0_func, 752, 1, 1 },
{ ahd_patch1_func, 755, 1, 2 },
{ ahd_patch0_func, 756, 1, 1 },
{ ahd_patch1_func, 758, 1, 2 },
{ ahd_patch0_func, 759, 1, 1 },
{ ahd_patch1_func, 762, 1, 2 },
{ ahd_patch0_func, 763, 1, 1 },
{ ahd_patch20_func, 765, 1, 2 },
{ ahd_patch0_func, 766, 2, 1 },
{ ahd_patch21_func, 769, 4, 2 },
{ ahd_patch0_func, 773, 1, 1 },
{ ahd_patch21_func, 781, 11, 1 }
{ ahd_patch21_func, 758, 1, 2 },
{ ahd_patch0_func, 759, 2, 1 },
{ ahd_patch22_func, 762, 4, 2 },
{ ahd_patch0_func, 766, 1, 1 },
{ ahd_patch22_func, 774, 11, 1 }
};
static struct cs {
...
...
@@ -1121,14 +1125,14 @@ static struct cs {
{ 13, 14 },
{ 29, 42 },
{ 56, 59 },
{ 101, 12
7
},
{ 12
8, 156
},
{ 15
8, 161
},
{ 1
69, 177
},
{ 20
0, 249
},
{ 68
8, 704
},
{
704, 718
},
{ 72
8, 732
}
{ 101, 12
8
},
{ 12
9, 157
},
{ 15
9, 162
},
{ 1
70, 178
},
{ 20
1, 250
},
{ 68
1, 697
},
{
697, 711
},
{ 72
1, 725
}
};
static const int num_critical_sections = sizeof(critical_sections)
...
...
drivers/scsi/aic7xxx/aic7xxx.h
View file @
d98d10eb
...
...
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.h#7
5
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.h#7
7
$
*
* $FreeBSD$
*/
...
...
@@ -93,7 +93,7 @@ struct seeprom_descriptor;
#define SCB_GET_CHANNEL(ahc, scb) \
SCSIID_CHANNEL(ahc, (scb)->hscb->scsiid)
#define SCB_GET_LUN(scb) \
((scb)->hscb->lun)
((scb)->hscb->lun
& LID
)
#define SCB_GET_TARGET_OFFSET(ahc, scb) \
(SCB_GET_TARGET(ahc, scb) + (SCB_IS_SCSIBUS_B(ahc, scb) ? 8 : 0))
#define SCB_GET_TARGET_MASK(ahc, scb) \
...
...
@@ -1046,6 +1046,11 @@ struct ahc_softc {
struct
target_cmd
*
targetcmds
;
uint8_t
tqinfifonext
;
/*
* Cached copy of the sequencer control register.
*/
uint8_t
seqctl
;
/*
* Incoming and outgoing message handling.
*/
...
...
drivers/scsi/aic7xxx/aic7xxx.reg
View file @
d98d10eb
...
...
@@ -39,7 +39,7 @@
*
* $FreeBSD$
*/
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#3
8
$"
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#3
9
$"
/*
* This file is processed by the aic7xxx_asm utility for use in assembling
...
...
@@ -1080,7 +1080,8 @@ scb {
mask OID 0x0f
}
SCB_LUN {
mask LID 0xff
field SCB_XFERLEN_ODD 0x80
mask LID 0x3f
size 1
}
SCB_TAG {
...
...
@@ -1239,7 +1240,6 @@ register SG_CACHE_PRE {
access_mode WO
address 0x0fc
mask SG_ADDR_MASK 0xf8
field ODD_SEG 0x04
field LAST_SEG 0x02
field LAST_SEG_DONE 0x01
}
...
...
@@ -1248,7 +1248,6 @@ register SG_CACHE_SHADOW {
access_mode RO
address 0x0fc
mask SG_ADDR_MASK 0xf8
field ODD_SEG 0x04
field LAST_SEG 0x02
field LAST_SEG_DONE 0x01
}
...
...
@@ -1478,14 +1477,6 @@ scratch_ram {
field ENAUTOATNI 0x04
field ENAUTOATNP 0x02
}
/*
* Track whether the transfer byte count for
* the current data phase is odd.
*/
DATA_COUNT_ODD {
size 1
}
}
scratch_ram {
...
...
drivers/scsi/aic7xxx/aic7xxx.seq
View file @
d98d10eb
...
...
@@ -40,7 +40,7 @@
* $FreeBSD$
*/
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#5
4
$"
VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#5
6
$"
PATCH_ARG_LIST = "struct ahc_softc *ahc"
PREFIX = "ahc_"
...
...
@@ -437,7 +437,7 @@ select_out:
mov SCBPTR, WAITING_SCBH;
mov WAITING_SCBH,SCB_NEXT;
mov SAVED_SCSIID, SCB_SCSIID;
mov SAVED_LUN
, SCB_LUN;
and SAVED_LUN, LID
, SCB_LUN;
call set_transfer_settings;
if ((ahc->flags & AHC_TARGETROLE) != 0) {
test SSTAT0, TARGET jz initiator_select;
...
...
@@ -461,7 +461,7 @@ select_out:
/*
* Start out with a simple identify message.
*/
or S
CB
_LUN, MSG_IDENTIFYFLAG call target_outb;
or S
AVED
_LUN, MSG_IDENTIFYFLAG call target_outb;
/*
* If we are the result of a tagged command, send
...
...
@@ -768,16 +768,12 @@ idle_sg_avail:
/* Does the hardware have space for another SG entry? */
test DFSTATUS, PRELOAD_AVAIL jz return;
bmov HADDR, CCSGRAM, 7;
test HCNT[0], 0x1 jz . + 2;
xor DATA_COUNT_ODD, 0x1;
bmov SCB_RESIDUAL_DATACNT[3], CCSGRAM, 1;
if ((ahc->flags & AHC_39BIT_ADDRESSING) != 0) {
mov SCB_RESIDUAL_DATACNT[3] call set_hhaddr;
}
call sg_advance;
mov SINDEX, SCB_RESIDUAL_SGPTR[0];
test DATA_COUNT_ODD, 0x1 jz . + 2;
or SINDEX, ODD_SEG;
test SCB_RESIDUAL_DATACNT[3], SG_LAST_SEG jz . + 2;
or SINDEX, LAST_SEG;
mov SG_CACHE_PRE, SINDEX;
...
...
@@ -875,7 +871,6 @@ data_phase_initialize:
call calc_mwi_residual;
}
and SCB_RESIDUAL_SGPTR[0], ~SG_FULL_RESID;
and DATA_COUNT_ODD, 0x1, HCNT[0];
if ((ahc->features & AHC_ULTRA2) == 0) {
if ((ahc->features & AHC_CMD_CHAN) != 0) {
...
...
@@ -910,8 +905,6 @@ data_phase_inbounds:
mov SINDEX, SCB_RESIDUAL_SGPTR[0];
test SCB_RESIDUAL_DATACNT[3], SG_LAST_SEG jz . + 2;
or SINDEX, LAST_SEG;
test DATA_COUNT_ODD, 0x1 jz . + 2;
or SINDEX, ODD_SEG;
mov SG_CACHE_PRE, SINDEX;
mov DFCNTRL, DMAPARAMS;
ultra2_dma_loop:
...
...
@@ -1006,10 +999,8 @@ sgptr_fixup:
adc SCB_RESIDUAL_SGPTR[3], -1;
sgptr_fixup_done:
and SCB_RESIDUAL_SGPTR[0], SG_ADDR_MASK, SG_CACHE_SHADOW;
clr DATA_COUNT_ODD;
test SG_CACHE_SHADOW, ODD_SEG jz . + 2;
or DATA_COUNT_ODD, 0x1;
clr SCB_RESIDUAL_DATACNT[3]; /* We are not the last seg */
/* We are not the last seg */
and SCB_RESIDUAL_DATACNT[3], ~SG_LAST_SEG;
residuals_correct:
/*
* Go ahead and shut down the DMA engine now.
...
...
@@ -1053,11 +1044,19 @@ ultra2_fifoflush:
* LAST_SEG_DONE to come true on a completed transfer
* and then test to see if the data FIFO is non-empty.
*/
test SCB_RESIDUAL_SGPTR[0], SG_LIST_NULL jz . + 4;
test SCB_RESIDUAL_SGPTR[0], SG_LIST_NULL
jz ultra2_wait_fifoemp;
test SG_CACHE_SHADOW, LAST_SEG_DONE jz .;
/*
* FIFOEMP can lag LAST_SEG_DONE. Wait a few
* clocks before calling this an overrun.
*/
test DFSTATUS, FIFOEMP jnz ultra2_fifoempty;
test DFSTATUS, FIFOEMP jnz ultra2_fifoempty;
test DFSTATUS, FIFOEMP jnz ultra2_fifoempty;
/* Overrun */
jmp data_phase_loop;
ultra2_wait_fifoemp:
test DFSTATUS, FIFOEMP jz .;
}
ultra2_fifoempty:
...
...
@@ -1246,9 +1245,6 @@ sg_load_done:
} else {
call set_stcnt_from_hcnt;
}
/* Track odd'ness */
test HCNT[0], 0x1 jz . + 2;
xor DATA_COUNT_ODD, 0x1;
if ((ahc->flags & AHC_TARGETROLE) != 0) {
test SSTAT0, TARGET jnz data_phase_loop;
...
...
@@ -1350,7 +1346,7 @@ residual_update_done:
*/
test DFCNTRL, DIRECTION jz target_ITloop;
test SSTAT1, REQINIT jnz .;
test
DATA_COUNT_ODD, 0x1
jz target_ITloop;
test
SCB_LUN, SCB_XFERLEN_ODD
jz target_ITloop;
test SCSIRATE, WIDEXFER jz target_ITloop;
/*
* Issue an Ignore Wide Residue Message.
...
...
@@ -1510,7 +1506,7 @@ p_mesgout:
cmp SINDEX, MSG_IDENTIFYFLAG jne p_mesgout_from_host;
test SCB_CONTROL,MK_MESSAGE jnz host_message_loop;
p_mesgout_identify:
or SINDEX, MSG_IDENTIFYFLAG|DISCENB, S
CB
_LUN;
or SINDEX, MSG_IDENTIFYFLAG|DISCENB, S
AVED
_LUN;
test SCB_CONTROL, DISCENB jnz . + 2;
and SINDEX, ~DISCENB;
/*
...
...
@@ -1587,7 +1583,7 @@ if ((ahc->features & AHC_WIDE) != 0) {
mvi ARG_1 call inb_next;
cmp ARG_1, 0x01 jne mesgin_reject;
test SCB_RESIDUAL_SGPTR[0], SG_LIST_NULL jz . + 2;
test
DATA_COUNT_ODD, 0x1 j
z mesgin_done;
test
SCB_LUN, SCB_XFERLEN_ODD jn
z mesgin_done;
mvi IGN_WIDE_RES call set_seqint;
jmp mesgin_done;
}
...
...
@@ -1716,7 +1712,7 @@ mesgin_disconnect:
}
test SCB_CONTROL, TAG_ENB jnz await_busfree;
mov ARG_1, SCB_TAG;
mov SAVED_LUN
, SCB_LUN;
and SAVED_LUN, LID
, SCB_LUN;
mov SCB_SCSIID call set_busy_target;
jmp await_busfree;
...
...
@@ -1859,7 +1855,7 @@ mesgin_identify:
* at a time. So, if the lun doesn't match, look
* for a tag message.
*/
mov A
, SCB_LUN;
and A, LID
, SCB_LUN;
cmp SAVED_LUN, A je setup_SCB_id_lun_okay;
if ((ahc->flags & AHC_PAGESCBS) != 0) {
/*
...
...
@@ -1917,7 +1913,7 @@ setup_SCB:
or SEQ_FLAGS, 0x8;
}
setup_SCB_id_okay:
mov A
, SCB_LUN;
and A, LID
, SCB_LUN;
cmp SAVED_LUN, A jne not_found_cleanup_scb;
setup_SCB_id_lun_okay:
if ((ahc->flags & AHC_SEQUENCER_DEBUG) != 0) {
...
...
drivers/scsi/aic7xxx/aic7xxx_core.c
View file @
d98d10eb
...
...
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#1
28
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#1
31
$
*
* $FreeBSD$
*/
...
...
@@ -202,7 +202,7 @@ static void ahc_handle_devreset(struct ahc_softc *ahc,
struct
ahc_devinfo
*
devinfo
,
cam_status
status
,
char
*
message
,
int
verbose_level
);
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
static
void
ahc_setup_target_msgin
(
struct
ahc_softc
*
ahc
,
struct
ahc_devinfo
*
devinfo
,
struct
scb
*
scb
);
...
...
@@ -291,7 +291,7 @@ ahc_restart(struct ahc_softc *ahc)
ahc_inb
(
ahc
,
SEQ_FLAGS2
)
&
~
SCB_DMA
);
}
ahc_outb
(
ahc
,
MWI_RESIDUAL
,
0
);
ahc_outb
(
ahc
,
SEQCTL
,
FASTMODE
);
ahc_outb
(
ahc
,
SEQCTL
,
ahc
->
seqctl
);
ahc_outb
(
ahc
,
SEQADDR0
,
0
);
ahc_outb
(
ahc
,
SEQADDR1
,
0
);
ahc_unpause
(
ahc
);
...
...
@@ -705,7 +705,7 @@ ahc_handle_seqint(struct ahc_softc *ahc, u_int intstat)
ahc
->
msgin_index
=
0
;
}
}
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
else
{
if
(
bus_phase
==
P_MESGOUT
)
{
ahc
->
msg_type
=
...
...
@@ -1467,7 +1467,7 @@ ahc_clear_critical_section(struct ahc_softc *ahc)
else
ahc_outb
(
ahc
,
SIMODE1
,
0
);
ahc_outb
(
ahc
,
CLRINT
,
CLRSCSIINT
);
ahc_outb
(
ahc
,
SEQCTL
,
ahc
_inb
(
ahc
,
SEQCTL
)
|
STEP
);
ahc_outb
(
ahc
,
SEQCTL
,
ahc
->
seqctl
|
STEP
);
stepping
=
TRUE
;
}
if
((
ahc
->
features
&
AHC_DT
)
!=
0
)
{
...
...
@@ -1481,7 +1481,7 @@ ahc_clear_critical_section(struct ahc_softc *ahc)
if
(
stepping
)
{
ahc_outb
(
ahc
,
SIMODE0
,
simode0
);
ahc_outb
(
ahc
,
SIMODE1
,
simode1
);
ahc_outb
(
ahc
,
SEQCTL
,
ahc
_inb
(
ahc
,
SEQCTL
)
&
~
STEP
);
ahc_outb
(
ahc
,
SEQCTL
,
ahc
->
seqctl
);
}
}
...
...
@@ -3573,7 +3573,7 @@ ahc_handle_ign_wide_residue(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
sgptr
=
ahc_inb
(
ahc
,
SCB_RESIDUAL_SGPTR
);
if
((
sgptr
&
SG_LIST_NULL
)
!=
0
&&
ahc_inb
(
ahc
,
DATA_COUNT_ODD
)
==
1
)
{
&&
(
ahc_inb
(
ahc
,
SCB_LUN
)
&
SCB_XFERLEN_ODD
)
!=
0
)
{
/*
* If the residual occurred on the last
* transfer and the transfer request was
...
...
@@ -3586,25 +3586,27 @@ ahc_handle_ign_wide_residue(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
uint32_t
data_addr
;
uint32_t
sglen
;
/* Pull in the rest of the sgptr */
sgptr
|=
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_SGPTR
+
3
)
<<
24
)
|
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_SGPTR
+
2
)
<<
16
)
|
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_SGPTR
+
1
)
<<
8
);
sgptr
&=
SG_PTR_MASK
;
data_cnt
=
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_DATACNT
+
3
)
<<
24
)
|
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_DATACNT
+
2
)
<<
16
)
|
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_DATACNT
+
1
)
<<
8
)
|
(
ahc_inb
(
ahc
,
SCB_RESIDUAL_DATACNT
));
/* Pull in all of the sgptr */
sgptr
=
ahc_inl
(
ahc
,
SCB_RESIDUAL_SGPTR
);
data_cnt
=
ahc_inl
(
ahc
,
SCB_RESIDUAL_DATACNT
);
data_addr
=
(
ahc_inb
(
ahc
,
SHADDR
+
3
)
<<
24
)
|
(
ahc_inb
(
ahc
,
SHADDR
+
2
)
<<
16
)
|
(
ahc_inb
(
ahc
,
SHADDR
+
1
)
<<
8
)
|
(
ahc_inb
(
ahc
,
SHADDR
));
if
((
sgptr
&
SG_LIST_NULL
)
!=
0
)
{
/*
* The residual data count is not updated
* for the command run to completion case.
* Explicitly zero the count.
*/
data_cnt
&=
~
AHC_SG_LEN_MASK
;
}
data_addr
=
ahc_inl
(
ahc
,
SHADDR
);
data_cnt
+=
1
;
data_addr
-=
1
;
sgptr
&=
SG_PTR_MASK
;
sg
=
ahc_sg_bus_to_virt
(
scb
,
sgptr
);
/*
* The residual sg ptr points to the next S/G
* to load so we must go back one.
...
...
@@ -3630,19 +3632,17 @@ ahc_handle_ign_wide_residue(struct ahc_softc *ahc, struct ahc_devinfo *devinfo)
*/
sg
++
;
sgptr
=
ahc_sg_virt_to_bus
(
scb
,
sg
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_SGPTR
+
3
,
sgptr
>>
24
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_SGPTR
+
2
,
sgptr
>>
16
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_SGPTR
+
1
,
sgptr
>>
8
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_SGPTR
,
sgptr
);
}
ahc_outb
(
ahc
,
SCB_RESIDUAL_DATACNT
+
3
,
data_cnt
>>
24
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_DATACNT
+
2
,
data_cnt
>>
16
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_DATACNT
+
1
,
data_cnt
>>
8
);
ahc_outb
(
ahc
,
SCB_RESIDUAL_DATACNT
,
data_cnt
);
ahc_outl
(
ahc
,
SCB_RESIDUAL_SGPTR
,
sgptr
);
ahc_outl
(
ahc
,
SCB_RESIDUAL_DATACNT
,
data_cnt
);
/*
* Toggle the "oddness" of the transfer length
* to handle this mid-transfer ignore wide
* residue. This ensures that the oddness is
* correct for subsequent data transfers.
*/
ahc_outb
(
ahc
,
SCB_LUN
,
ahc_inb
(
ahc
,
SCB_LUN
)
^
SCB_XFERLEN_ODD
);
}
}
}
...
...
@@ -3826,6 +3826,12 @@ ahc_alloc(void *platform_arg, char *name)
ahc
->
features
=
AHC_FENONE
;
ahc
->
bugs
=
AHC_BUGNONE
;
ahc
->
flags
=
AHC_FNONE
;
/*
* Default to all error reporting enabled with the
* sequencer operating at its fastest speed.
* The bus attach code may modify this.
*/
ahc
->
seqctl
=
FASTMODE
;
for
(
i
=
0
;
i
<
AHC_NUM_TARGETS
;
i
++
)
TAILQ_INIT
(
&
ahc
->
untagged_queues
[
i
]);
...
...
@@ -3986,7 +3992,7 @@ ahc_free(struct ahc_softc *ahc)
tstate
=
ahc
->
enabled_targets
[
i
];
if
(
tstate
!=
NULL
)
{
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
int
j
;
for
(
j
=
0
;
j
<
AHC_NUM_LUNS
;
j
++
)
{
...
...
@@ -4002,7 +4008,7 @@ ahc_free(struct ahc_softc *ahc)
free
(
tstate
,
M_DEVBUF
);
}
}
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
if
(
ahc
->
black_hole
!=
NULL
)
{
xpt_free_path
(
ahc
->
black_hole
->
path
);
free
(
ahc
->
black_hole
,
M_DEVBUF
);
...
...
@@ -5120,7 +5126,7 @@ ahc_suspend(struct ahc_softc *ahc)
return
(
EBUSY
);
}
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
/*
* XXX What about ATIOs that have not yet been serviced?
* Perhaps we should just refuse to be suspended if we
...
...
@@ -5221,7 +5227,7 @@ ahc_match_scb(struct ahc_softc *ahc, struct scb *scb, int target,
if
(
match
!=
0
)
match
=
((
lun
==
slun
)
||
(
lun
==
CAM_LUN_WILDCARD
));
if
(
match
!=
0
)
{
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
int
group
;
group
=
XPT_FC_GROUP
(
scb
->
io_ctx
->
ccb_h
.
func_code
);
...
...
@@ -5964,7 +5970,7 @@ ahc_reset_channel(struct ahc_softc *ahc, char channel, int initiate_reset)
* before the reset occurred.
*/
ahc_run_qoutfifo
(
ahc
);
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
/*
* XXX - In Twin mode, the tqinfifo may have commands
* for an unaffected channel in it. However, if
...
...
@@ -5996,7 +6002,7 @@ ahc_reset_channel(struct ahc_softc *ahc, char channel, int initiate_reset)
*/
ahc_outb
(
ahc
,
SBLKCTL
,
sblkctl
^
SELBUSB
);
simode1
=
ahc_inb
(
ahc
,
SIMODE1
)
&
~
(
ENBUSFREE
|
ENSCSIRST
);
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
/*
* Bus resets clear ENSELI, so we cannot
* defer re-enabling bus reset interrupts
...
...
@@ -6015,7 +6021,7 @@ ahc_reset_channel(struct ahc_softc *ahc, char channel, int initiate_reset)
}
else
{
/* Case 2: A command from this bus is active or we're idle */
simode1
=
ahc_inb
(
ahc
,
SIMODE1
)
&
~
(
ENBUSFREE
|
ENSCSIRST
);
#if AHC_TARGET_MODE
#if
def
AHC_TARGET_MODE
/*
* Bus resets clear ENSELI, so we cannot
* defer re-enabling bus reset interrupts
...
...
drivers/scsi/aic7xxx/aic7xxx_inline.h
View file @
d98d10eb
...
...
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx_inline.h#4
2
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx_inline.h#4
3
$
*
* $FreeBSD$
*/
...
...
@@ -454,6 +454,13 @@ ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb)
panic
(
"Attempt to queue invalid SCB tag %x:%x
\n
"
,
scb
->
hscb
->
tag
,
scb
->
hscb
->
next
);
/*
* Setup data "oddness".
*/
scb
->
hscb
->
lun
&=
LID
;
if
(
ahc_get_transfer_length
(
scb
)
&
0x1
)
scb
->
hscb
->
lun
|=
SCB_XFERLEN_ODD
;
/*
* Keep a history of SCBs we've downloaded in the qinfifo.
*/
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.c
View file @
d98d10eb
/*
* Adaptec AIC7xxx device driver for Linux.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#2
21
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#2
32
$
*
* Copyright (c) 1994 John Aycock
* The University of Calgary Department of Computer Science.
...
...
@@ -141,11 +141,6 @@
#include <linux/mm.h>
/* For fetching system memory size */
#include <linux/blk.h>
/* For block_size() */
#define __KERNEL_SYSCALLS__
#include <linux/unistd.h>
static
int
errno
;
/*
* Lock protecting manipulation of the ahc softc list.
*/
...
...
@@ -746,31 +741,11 @@ ahc_linux_map_seg(struct ahc_softc *ahc, struct scb *scb,
consumed
=
1
;
sg
->
addr
=
ahc_htole32
(
addr
&
0xFFFFFFFF
);
scb
->
platform_data
->
xfer_len
+=
len
;
if
(
sizeof
(
bus_addr_t
)
>
4
&&
(
ahc
->
flags
&
AHC_39BIT_ADDRESSING
)
!=
0
)
{
/*
* Due to DAC restrictions, we can't
* cross a 4GB boundary.
*/
if
((
addr
^
(
addr
+
len
-
1
))
&
~
0xFFFFFFFF
)
{
struct
ahc_dma_seg
*
next_sg
;
uint32_t
next_len
;
printf
(
"Crossed Seg
\n
"
);
if
((
scb
->
sg_count
+
2
)
>
AHC_NSEG
)
panic
(
"Too few segs for dma mapping. "
"Increase AHC_NSEG
\n
"
);
if
(
sizeof
(
bus_addr_t
)
>
4
&&
(
ahc
->
flags
&
AHC_39BIT_ADDRESSING
)
!=
0
)
len
|=
(
addr
>>
8
)
&
AHC_SG_HIGH_ADDR_MASK
;
consumed
++
;
next_sg
=
sg
+
1
;
next_sg
->
addr
=
0
;
next_len
=
0x100000000
-
(
addr
&
0xFFFFFFFF
);
len
-=
next_len
;
next_len
|=
((
addr
>>
8
)
+
0x1000000
)
&
0x7F000000
;
next_sg
->
len
=
ahc_htole32
(
next_len
);
}
len
|=
(
addr
>>
8
)
&
0x7F000000
;
}
sg
->
len
=
ahc_htole32
(
len
);
return
(
consumed
);
}
...
...
@@ -1195,10 +1170,10 @@ ahc_linux_select_queue_depth(struct Scsi_Host *host, Scsi_Device *scsi_devs)
}
#endif
#if defined(__i386__)
/*
* Return the disk geometry for the given SCSI device.
*/
#if defined(__i386__)
static
int
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
ahc_linux_biosparam
(
struct
scsi_device
*
sdev
,
struct
block_device
*
bdev
,
...
...
@@ -1747,7 +1722,7 @@ ahc_linux_register_host(struct ahc_softc *ahc, Scsi_Host_Template *template)
struct
Scsi_Host
*
host
;
char
*
new_name
;
u_long
s
;
u_int
target
;
u_int
targ
_offs
et
;
template
->
name
=
ahc
->
description
;
host
=
scsi_register
(
template
,
sizeof
(
struct
ahc_softc
*
));
...
...
@@ -1802,14 +1777,19 @@ ahc_linux_register_host(struct ahc_softc *ahc, Scsi_Host_Template *template)
* negotiation will occur for the first command, and DV
* will comence should that first command be successful.
*/
for
(
target
=
0
;
target
<
host
->
max_id
*
(
host
->
max_channel
+
1
);
target
++
)
{
for
(
targ_offset
=
0
;
targ_offset
<
host
->
max_id
*
(
host
->
max_channel
+
1
);
targ_offset
++
)
{
u_int
channel
;
u_int
target
;
channel
=
0
;
target
=
targ_offset
;
if
(
target
>
7
&&
(
ahc
->
features
&
AHC_TWIN
)
!=
0
)
&&
(
ahc
->
features
&
AHC_TWIN
)
!=
0
)
{
channel
=
1
;
target
&=
0x7
;
}
/*
* Skip our own ID. Some Compaq/HP storage devices
* have enclosure management devices that respond to
...
...
@@ -2443,8 +2423,10 @@ ahc_linux_dv_target(struct ahc_softc *ahc, u_int target_offset)
ahc_unlock
(
ahc
,
&
s
);
return
;
}
ahc_compile_devinfo
(
&
devinfo
,
ahc
->
our_id
,
targ
->
target
,
/*lun*/
0
,
targ
->
channel
+
'A'
,
ROLE_INITIATOR
);
ahc_compile_devinfo
(
&
devinfo
,
targ
->
channel
==
0
?
ahc
->
our_id
:
ahc
->
our_id_b
,
targ
->
target
,
/*lun*/
0
,
targ
->
channel
+
'A'
,
ROLE_INITIATOR
);
#ifdef AHC_DEBUG
if
(
ahc_debug
&
AHC_SHOW_DV
)
{
ahc_print_devinfo
(
ahc
,
&
devinfo
);
...
...
@@ -2616,14 +2598,11 @@ ahc_linux_dv_transition(struct ahc_softc *ahc, struct scsi_cmnd *cmd,
struct
ahc_devinfo
*
devinfo
,
struct
ahc_linux_target
*
targ
)
{
cam_status
cam_status
;
u_int32_t
status
;
u_int
scsi_status
;
scsi_status
=
ahc_cmd_get_scsi_status
(
cmd
);
cam_status
=
ahc_cmd_get_transaction_status
(
cmd
);
status
=
aic_error_action
(
cmd
,
targ
->
inq_data
,
cam_status
,
scsi_status
);
status
=
aic_error_action
(
cmd
,
targ
->
inq_data
,
ahc_cmd_get_transaction_status
(
cmd
),
ahc_cmd_get_scsi_status
(
cmd
));
#ifdef AHC_DEBUG
if
(
ahc_debug
&
AHC_SHOW_DV
)
{
...
...
@@ -3777,7 +3756,7 @@ ahc_linux_run_device_queue(struct ahc_softc *ahc, struct ahc_linux_device *dev)
cur_seg
=
(
struct
scatterlist
*
)
cmd
->
request_buffer
;
nseg
=
pci_map_sg
(
ahc
->
dev_softc
,
cur_seg
,
cmd
->
use_sg
,
scsi_to_pci_dma_dir
(
cmd
->
sc_data_direction
));
scsi_to_pci_dma_dir
(
cmd
->
sc_data_direction
));
end_seg
=
cur_seg
+
nseg
;
/* Copy the segments into the SG list. */
sg
=
scb
->
sg_list
;
...
...
@@ -3881,7 +3860,7 @@ ahc_linux_run_device_queue(struct ahc_softc *ahc, struct ahc_linux_device *dev)
/*
* SCSI controller interrupt handler.
*/
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahc_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
struct
ahc_softc
*
ahc
;
...
...
@@ -3895,7 +3874,7 @@ ahc_linux_isr(int irq, void *dev_id, struct pt_regs * regs)
ahc_schedule_runq
(
ahc
);
ahc_linux_run_complete_queue
(
ahc
);
ahc_unlock
(
ahc
,
&
flags
);
AIC_LINUX_IRQRETURN
(
ours
);
return
IRQ_RETVAL
(
ours
);
}
void
...
...
@@ -4910,7 +4889,7 @@ ahc_linux_queue_recovery_cmd(Scsi_Cmnd *cmd, scb_flag flag)
disconnected
=
FALSE
;
else
if
(
flag
!=
SCB_ABORT
&&
ahc_inb
(
ahc
,
SAVED_SCSIID
)
==
pending_scb
->
hscb
->
scsiid
&&
ahc_inb
(
ahc
,
SAVED_LUN
)
==
pending_scb
->
hscb
->
lun
)
&&
ahc_inb
(
ahc
,
SAVED_LUN
)
==
SCB_GET_LUN
(
pending_scb
)
)
disconnected
=
FALSE
;
}
...
...
drivers/scsi/aic7xxx/aic7xxx_osm.h
View file @
d98d10eb
...
...
@@ -53,7 +53,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#14
2
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#14
7
$
*
*/
#ifndef _AIC7XXX_LINUX_H_
...
...
@@ -305,7 +305,7 @@ ahc_scb_timer_reset(struct scb *scb, u_int usec)
#define AHC_SCSI_HAS_HOST_LOCK 0
#endif
#define AIC7XXX_DRIVER_VERSION "6.2.3
3
"
#define AIC7XXX_DRIVER_VERSION "6.2.3
5
"
/**************************** Front End Queues ********************************/
/*
...
...
@@ -1165,7 +1165,7 @@ void ahc_platform_set_tags(struct ahc_softc *ahc,
int
ahc_platform_abort_scbs
(
struct
ahc_softc
*
ahc
,
int
target
,
char
channel
,
int
lun
,
u_int
tag
,
role_t
role
,
uint32_t
status
);
AIC_LINUX_IRQRETURN_T
irqreturn_t
ahc_linux_isr
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
void
ahc_platform_flushwork
(
struct
ahc_softc
*
ahc
);
int
ahc_softc_comp
(
struct
ahc_softc
*
,
struct
ahc_softc
*
);
...
...
drivers/scsi/aic7xxx/aic7xxx_osm_pci.c
View file @
d98d10eb
...
...
@@ -36,7 +36,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c#4
4
$
* $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm_pci.c#4
5
$
*/
#include "aic7xxx_osm.h"
...
...
@@ -110,6 +110,7 @@ static int
ahc_linux_pci_dev_probe
(
struct
pci_dev
*
pdev
,
const
struct
pci_device_id
*
ent
)
{
char
buf
[
80
];
bus_addr_t
mask_39bit
;
struct
ahc_softc
*
ahc
;
ahc_dev_softc_t
pci
;
struct
ahc_pci_identity
*
entry
;
...
...
@@ -160,12 +161,12 @@ ahc_linux_pci_dev_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
}
pci_set_master
(
pdev
);
mask_39bit
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
if
(
sizeof
(
bus_addr_t
)
>
4
&&
ahc_linux_get_memsize
()
>
0x80000000
&&
ahc_pci_set_dma_mask
(
pdev
,
0x7FFFFFFFFFULL
)
==
0
)
{
&&
ahc_pci_set_dma_mask
(
pdev
,
mask_39bit
)
==
0
)
{
ahc
->
flags
|=
AHC_39BIT_ADDRESSING
;
ahc
->
platform_data
->
hw_dma_mask
=
(
bus_addr_t
)(
0x7FFFFFFFFFULL
&
(
bus_addr_t
)
~
0
);
ahc
->
platform_data
->
hw_dma_mask
=
mask_39bit
;
}
else
{
ahc_pci_set_dma_mask
(
pdev
,
0xFFFFFFFF
);
ahc
->
platform_data
->
hw_dma_mask
=
0xFFFFFFFF
;
...
...
drivers/scsi/aic7xxx/aic7xxx_pci.c
View file @
d98d10eb
...
...
@@ -39,7 +39,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx_pci.c#6
3
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx_pci.c#6
6
$
*
* $FreeBSD$
*/
...
...
@@ -834,10 +834,10 @@ ahc_pci_config(struct ahc_softc *ahc, struct ahc_pci_identity *entry)
ahc_pci_write_config
(
ahc
->
dev_softc
,
DEVCONFIG
,
devconfig
,
/*bytes*/
4
);
/* Ensure busmastering is enabled */
command
=
ahc_pci_read_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
1
);
command
=
ahc_pci_read_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
/*bytes*/
2
);
command
|=
PCIM_CMD_BUSMASTEREN
;
ahc_pci_write_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
1
);
ahc_pci_write_config
(
ahc
->
dev_softc
,
PCIR_COMMAND
,
command
,
/*bytes*/
2
);
/* On all PCI adapters, we allow SCB paging */
ahc
->
flags
|=
AHC_PAGESCBS
;
...
...
@@ -854,10 +854,8 @@ ahc_pci_config(struct ahc_softc *ahc, struct ahc_pci_identity *entry)
* error reporting when doing this, so CIO bus, scb ram, and
* scratch ram parity errors will be ignored too.
*/
if
((
ahc
->
flags
&
AHC_DISABLE_PCI_PERR
)
!=
0
)
{
ahc
->
pause
|=
FAILDIS
;
ahc
->
unpause
|=
FAILDIS
;
}
if
((
ahc
->
flags
&
AHC_DISABLE_PCI_PERR
)
!=
0
)
ahc
->
seqctl
|=
FAILDIS
;
ahc
->
bus_intr
=
ahc_pci_intr
;
ahc
->
bus_chip_init
=
ahc_pci_chip_init
;
...
...
@@ -2044,8 +2042,8 @@ ahc_pci_intr(struct ahc_softc *ahc)
"%s: WARNING WARNING WARNING WARNING
\n
"
,
ahc_name
(
ahc
),
ahc_name
(
ahc
),
ahc_name
(
ahc
),
ahc_name
(
ahc
),
ahc_name
(
ahc
),
ahc_name
(
ahc
));
ahc
->
pause
|=
FAILDIS
;
ahc
->
unpause
|=
FAILDIS
;
ahc
->
seqctl
|=
FAILDIS
;
ahc
_outb
(
ahc
,
SEQCTL
,
ahc
->
seqctl
)
;
}
ahc_unpause
(
ahc
);
}
...
...
drivers/scsi/aic7xxx/aic7xxx_reg.h_shipped
View file @
d98d10eb
...
...
@@ -2,8 +2,8 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#5
4
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#3
8
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#5
6
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#3
9
$
*/
typedef int (ahc_reg_print_t)(u_int, u_int *, u_int);
typedef struct ahc_reg_parse_entry {
...
...
@@ -432,13 +432,6 @@ ahc_reg_print_t ahc_scsiseq_template_print;
ahc_print_register(NULL, 0, "SCSISEQ_TEMPLATE", 0x54, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_data_count_odd_print;
#else
#define ahc_data_count_odd_print(regvalue, cur_col, wrap) \
ahc_print_register(NULL, 0, "DATA_COUNT_ODD", 0x55, regvalue, cur_col, wrap)
#endif
#if AIC_DEBUG_REGISTERS
ahc_reg_print_t ahc_ha_274_biosglobal_print;
#else
...
...
@@ -1396,8 +1389,6 @@ ahc_reg_print_t ahc_sg_cache_pre_print;
#define ENAUTOATNI 0x04
#define ENAUTOATNP 0x02
#define DATA_COUNT_ODD 0x55
#define HA_274_BIOSGLOBAL 0x56
#define INITIATOR_TAG 0x56
#define HA_274_EXTENDED_TRANS 0x01
...
...
@@ -1655,7 +1646,8 @@ ahc_reg_print_t ahc_sg_cache_pre_print;
#define TWIN_CHNLB 0x80
#define SCB_LUN 0xba
#define LID 0xff
#define LID 0x3f
#define SCB_XFERLEN_ODD 0x80
#define SCB_TAG 0xbb
...
...
@@ -1749,7 +1741,6 @@ ahc_reg_print_t ahc_sg_cache_pre_print;
#define SG_CACHE_SHADOW 0xfc
#define SG_ADDR_MASK 0xf8
#define ODD_SEG 0x04
#define LAST_SEG 0x02
#define LAST_SEG_DONE 0x01
...
...
drivers/scsi/aic7xxx/aic7xxx_seq.h_shipped
View file @
d98d10eb
...
...
@@ -2,8 +2,8 @@
* DO NOT EDIT - This file is automatically generated
* from the following source files:
*
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#5
4
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#3
8
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.seq#5
6
$
* $Id: //depot/aic7xxx/aic7xxx/aic7xxx.reg#3
9
$
*/
static uint8_t seqprog[] = {
0xb2, 0x00, 0x00, 0x08,
...
...
@@ -21,15 +21,15 @@ static uint8_t seqprog[] = {
0x01, 0x4d, 0xc8, 0x30,
0x00, 0x4c, 0x12, 0x70,
0x01, 0x39, 0xa2, 0x30,
0x00, 0x6a, 0x
d4
, 0x5e,
0x00, 0x6a, 0x
c0
, 0x5e,
0x01, 0x51, 0x20, 0x31,
0x01, 0x57, 0xae, 0x00,
0x0d, 0x6a, 0x76, 0x00,
0x00, 0x51, 0x
26
, 0x5e,
0x00, 0x51, 0x
12
, 0x5e,
0x01, 0x51, 0xc8, 0x30,
0x00, 0x39, 0xc8, 0x60,
0x00, 0xbb, 0x30, 0x70,
0xc1, 0x6a, 0x
ec
, 0x5e,
0xc1, 0x6a, 0x
d8
, 0x5e,
0x01, 0xbf, 0x72, 0x30,
0x01, 0x40, 0x7e, 0x31,
0x01, 0x90, 0x80, 0x30,
...
...
@@ -49,10 +49,10 @@ static uint8_t seqprog[] = {
0x08, 0x6a, 0x78, 0x00,
0x01, 0x50, 0xc8, 0x30,
0xe0, 0x6a, 0xcc, 0x00,
0x48, 0x6a, 0x
10, 0x5e
,
0x48, 0x6a, 0x
fc, 0x5d
,
0x01, 0x6a, 0xdc, 0x01,
0x88, 0x6a, 0xcc, 0x00,
0x48, 0x6a, 0x
10, 0x5e
,
0x48, 0x6a, 0x
fc, 0x5d
,
0x01, 0x6a, 0x26, 0x01,
0xf0, 0x19, 0x7a, 0x08,
0x0f, 0x18, 0xc8, 0x08,
...
...
@@ -93,7 +93,7 @@ static uint8_t seqprog[] = {
0x00, 0x65, 0x20, 0x41,
0x02, 0x57, 0xae, 0x00,
0x00, 0x65, 0x9e, 0x40,
0x61, 0x6a, 0x
ec
, 0x5e,
0x61, 0x6a, 0x
d8
, 0x5e,
0x08, 0x51, 0x20, 0x71,
0x02, 0x0b, 0xb2, 0x78,
0x00, 0x65, 0xae, 0x40,
...
...
@@ -106,7 +106,7 @@ static uint8_t seqprog[] = {
0x80, 0x3d, 0x7a, 0x00,
0x20, 0x6a, 0x16, 0x00,
0x00, 0x65, 0xcc, 0x41,
0x00, 0x65, 0x
c6
, 0x5e,
0x00, 0x65, 0x
b2
, 0x5e,
0x00, 0x65, 0x12, 0x40,
0x20, 0x11, 0xd2, 0x68,
0x20, 0x6a, 0x18, 0x00,
...
...
@@ -135,20 +135,20 @@ static uint8_t seqprog[] = {
0x01, 0x40, 0x20, 0x31,
0x01, 0xbf, 0x80, 0x30,
0x01, 0xb9, 0x7a, 0x30,
0x
01, 0xba, 0x7c, 0x30
,
0x
3f, 0xba, 0x7c, 0x08
,
0x00, 0x65, 0xea, 0x58,
0x80, 0x0b, 0xc4, 0x79,
0x12, 0x01, 0x02, 0x00,
0x01, 0xab, 0xac, 0x30,
0xe4, 0x6a, 0x
82
, 0x5d,
0xe4, 0x6a, 0x
6e
, 0x5d,
0x40, 0x6a, 0x16, 0x00,
0x80, 0x
ba, 0x98
, 0x5d,
0x80, 0x
3e, 0x84
, 0x5d,
0x20, 0xb8, 0x18, 0x79,
0x20, 0x6a, 0x
98
, 0x5d,
0x00, 0xab, 0x
98
, 0x5d,
0x20, 0x6a, 0x
84
, 0x5d,
0x00, 0xab, 0x
84
, 0x5d,
0x01, 0xa9, 0x78, 0x30,
0x10, 0xb8, 0x20, 0x79,
0xe4, 0x6a, 0x
82
, 0x5d,
0xe4, 0x6a, 0x
6e
, 0x5d,
0x00, 0x65, 0xae, 0x40,
0x10, 0x03, 0x3c, 0x69,
0x08, 0x3c, 0x5a, 0x69,
...
...
@@ -157,10 +157,10 @@ static uint8_t seqprog[] = {
0x01, 0x3c, 0x44, 0x79,
0xff, 0x6a, 0x70, 0x00,
0x00, 0x65, 0xa4, 0x59,
0x00, 0x6a, 0x
d4
, 0x5e,
0x00, 0x6a, 0x
c0
, 0x5e,
0xff, 0x38, 0x30, 0x71,
0x0d, 0x6a, 0x76, 0x00,
0x00, 0x38, 0x
26
, 0x5e,
0x00, 0x38, 0x
12
, 0x5e,
0x00, 0x65, 0xea, 0x58,
0x12, 0x01, 0x02, 0x00,
0x00, 0x65, 0x18, 0x41,
...
...
@@ -168,10 +168,10 @@ static uint8_t seqprog[] = {
0x00, 0x65, 0xf2, 0x58,
0xfd, 0x57, 0xae, 0x08,
0x00, 0x65, 0xae, 0x40,
0xe4, 0x6a, 0x
82
, 0x5d,
0xe4, 0x6a, 0x
6e
, 0x5d,
0x20, 0x3c, 0x4a, 0x79,
0x02, 0x6a, 0x
98
, 0x5d,
0x04, 0x6a, 0x
98
, 0x5d,
0x02, 0x6a, 0x
84
, 0x5d,
0x04, 0x6a, 0x
84
, 0x5d,
0x01, 0x03, 0x4c, 0x69,
0xf7, 0x11, 0x22, 0x08,
0xff, 0x6a, 0x24, 0x08,
...
...
@@ -182,13 +182,13 @@ static uint8_t seqprog[] = {
0x80, 0x86, 0xc8, 0x08,
0x01, 0x4f, 0xc8, 0x30,
0x00, 0x50, 0x6c, 0x61,
0xc4, 0x6a, 0x
82
, 0x5d,
0xc4, 0x6a, 0x
6e
, 0x5d,
0x40, 0x3c, 0x68, 0x79,
0x28, 0x6a, 0x
98
, 0x5d,
0x28, 0x6a, 0x
84
, 0x5d,
0x00, 0x65, 0x4c, 0x41,
0x08, 0x6a, 0x
98
, 0x5d,
0x08, 0x6a, 0x
84
, 0x5d,
0x00, 0x65, 0x4c, 0x41,
0x84, 0x6a, 0x
82
, 0x5d,
0x84, 0x6a, 0x
6e
, 0x5d,
0x00, 0x65, 0xf2, 0x58,
0x01, 0x66, 0xc8, 0x30,
0x01, 0x64, 0xd8, 0x31,
...
...
@@ -208,16 +208,16 @@ static uint8_t seqprog[] = {
0xf7, 0x3c, 0x78, 0x08,
0x00, 0x65, 0x20, 0x41,
0x40, 0xaa, 0x7e, 0x10,
0x04, 0xaa, 0x
82
, 0x5d,
0x00, 0x65, 0x5
e
, 0x42,
0xc4, 0x6a, 0x
82
, 0x5d,
0x04, 0xaa, 0x
6e
, 0x5d,
0x00, 0x65, 0x5
6
, 0x42,
0xc4, 0x6a, 0x
6e
, 0x5d,
0xc0, 0x6a, 0x7e, 0x00,
0x00, 0xa8, 0x
98
, 0x5d,
0x00, 0xa8, 0x
84
, 0x5d,
0xe4, 0x6a, 0x06, 0x00,
0x00, 0x6a, 0x
98
, 0x5d,
0x00, 0x6a, 0x
84
, 0x5d,
0x00, 0x65, 0x4c, 0x41,
0x10, 0x3c, 0xa8, 0x69,
0x00, 0xbb, 0x
9e
, 0x44,
0x00, 0xbb, 0x
8a
, 0x44,
0x18, 0x6a, 0xda, 0x01,
0x01, 0x69, 0xd8, 0x31,
0x1c, 0x6a, 0xd0, 0x01,
...
...
@@ -227,23 +227,23 @@ static uint8_t seqprog[] = {
0x01, 0x93, 0x26, 0x01,
0x03, 0x6a, 0x2a, 0x01,
0x01, 0x69, 0x32, 0x31,
0x1c, 0x6a, 0x
f4
, 0x5d,
0x1c, 0x6a, 0x
e0
, 0x5d,
0x0a, 0x93, 0x26, 0x01,
0x00, 0x65, 0x
bc
, 0x5e,
0x00, 0x65, 0x
a8
, 0x5e,
0x01, 0x50, 0xa0, 0x18,
0x02, 0x6a, 0x22, 0x05,
0x1a, 0x01, 0x02, 0x00,
0x80, 0x6a, 0x74, 0x00,
0x40, 0x6a, 0x78, 0x00,
0x40, 0x6a, 0x16, 0x00,
0x00, 0x65, 0x
ec
, 0x5d,
0x00, 0x65, 0x
d8
, 0x5d,
0x01, 0x3f, 0xc8, 0x30,
0xbf, 0x64, 0x5
e
, 0x7a,
0x80, 0x64, 0x
b2
, 0x73,
0xa0, 0x64, 0x
14
, 0x74,
0xc0, 0x64, 0x
08, 0x74
,
0xe0, 0x64, 0x
44
, 0x74,
0x01, 0x6a, 0x
ec
, 0x5e,
0xbf, 0x64, 0x5
6
, 0x7a,
0x80, 0x64, 0x
9e
, 0x73,
0xa0, 0x64, 0x
00
, 0x74,
0xc0, 0x64, 0x
f4, 0x73
,
0xe0, 0x64, 0x
30
, 0x74,
0x01, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0xcc, 0x41,
0xf7, 0x11, 0x22, 0x08,
0x01, 0x06, 0xd4, 0x30,
...
...
@@ -251,7 +251,7 @@ static uint8_t seqprog[] = {
0xf7, 0x01, 0x02, 0x08,
0x09, 0x0c, 0xe6, 0x79,
0x08, 0x0c, 0x04, 0x68,
0xb1, 0x6a, 0x
ec
, 0x5e,
0xb1, 0x6a, 0x
d8
, 0x5e,
0xff, 0x6a, 0x26, 0x09,
0x12, 0x01, 0x02, 0x00,
0x02, 0x6a, 0x08, 0x30,
...
...
@@ -264,33 +264,29 @@ static uint8_t seqprog[] = {
0x00, 0xa5, 0x4a, 0x21,
0x00, 0xa6, 0x4c, 0x21,
0x00, 0xa7, 0x4e, 0x25,
0x08, 0xeb, 0x
f0
, 0x7e,
0x08, 0xeb, 0x
dc
, 0x7e,
0x80, 0xeb, 0x06, 0x7a,
0xff, 0x6a, 0xd6, 0x09,
0x08, 0xeb, 0x0a, 0x6a,
0xff, 0x6a, 0xd4, 0x0c,
0x80, 0xa3, 0x
f0
, 0x6e,
0x80, 0xa3, 0x
dc
, 0x6e,
0x88, 0xeb, 0x20, 0x72,
0x08, 0xeb, 0x
f0
, 0x6e,
0x08, 0xeb, 0x
dc
, 0x6e,
0x04, 0xea, 0x24, 0xe2,
0x08, 0xee, 0x
f0
, 0x6e,
0x08, 0xee, 0x
dc
, 0x6e,
0x04, 0x6a, 0xd0, 0x81,
0x05, 0xa4, 0xc0, 0x89,
0x03, 0xa5, 0xc2, 0x31,
0x09, 0x6a, 0xd6, 0x05,
0x00, 0x65, 0x08, 0x5a,
0x06, 0xa4, 0xd4, 0x89,
0x80, 0x94, 0x
f0
, 0x7e,
0x80, 0x94, 0x
dc
, 0x7e,
0x07, 0xe9, 0x10, 0x31,
0x01, 0x8c, 0x2c, 0x7a,
0x01, 0x55, 0xaa, 0x10,
0x01, 0xe9, 0x46, 0x31,
0x00, 0xa3, 0x
ce
, 0x5e,
0x00, 0xa3, 0x
ba
, 0x5e,
0x00, 0x65, 0xfa, 0x59,
0x01, 0xa4, 0xca, 0x30,
0x01, 0x55, 0x38, 0x7a,
0x04, 0x65, 0xca, 0x00,
0x80, 0xa3, 0x3c, 0x7a,
0x80, 0xa3, 0x34, 0x7a,
0x02, 0x65, 0xca, 0x00,
0x01, 0x65, 0xf8, 0x31,
0x80, 0x93, 0x26, 0x01,
...
...
@@ -298,168 +294,162 @@ static uint8_t seqprog[] = {
0x01, 0x8c, 0xc8, 0x30,
0x00, 0x88, 0xc8, 0x18,
0x02, 0x64, 0xc8, 0x88,
0xff, 0x64, 0x
f0
, 0x7e,
0xff, 0x8d, 0x
52
, 0x6a,
0xff, 0x8e, 0x
52
, 0x6a,
0xff, 0x64, 0x
dc
, 0x7e,
0xff, 0x8d, 0x
4a
, 0x6a,
0xff, 0x8e, 0x
4a
, 0x6a,
0x03, 0x8c, 0xd4, 0x98,
0x00, 0x65, 0x
f0
, 0x56,
0x00, 0x65, 0x
dc
, 0x56,
0x01, 0x64, 0x70, 0x30,
0xff, 0x64, 0xc8, 0x10,
0x01, 0x64, 0xc8, 0x18,
0x00, 0x8c, 0x18, 0x19,
0xff, 0x8d, 0x1a, 0x21,
0xff, 0x8e, 0x1c, 0x25,
0xc0, 0x3c, 0x
62
, 0x7a,
0x21, 0x6a, 0x
ec
, 0x5e,
0xc0, 0x3c, 0x
5a
, 0x7a,
0x21, 0x6a, 0x
d8
, 0x5e,
0xa8, 0x6a, 0x76, 0x00,
0x79, 0x6a, 0x76, 0x00,
0x40, 0x3f, 0x6
a
, 0x6a,
0x40, 0x3f, 0x6
2
, 0x6a,
0x04, 0x3b, 0x76, 0x00,
0x04, 0x6a, 0xd4, 0x81,
0x20, 0x3c, 0x
72
, 0x7a,
0x51, 0x6a, 0x
ec
, 0x5e,
0x00, 0x65, 0x8
c
, 0x42,
0x20, 0x3c, 0x
6a
, 0x7a,
0x51, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0x8
2
, 0x42,
0x20, 0x3c, 0x78, 0x00,
0x00, 0xb3, 0x
ce
, 0x5e,
0x00, 0xb3, 0x
ba
, 0x5e,
0x07, 0xac, 0x10, 0x31,
0x05, 0xb3, 0x46, 0x31,
0x88, 0x6a, 0xcc, 0x00,
0xac, 0x6a, 0x
02, 0x5e
,
0xac, 0x6a, 0x
ee, 0x5d
,
0xa3, 0x6a, 0xcc, 0x00,
0xb3, 0x6a, 0x
06, 0x5e
,
0x00, 0x65, 0x
42
, 0x5a,
0xb3, 0x6a, 0x
f2, 0x5d
,
0x00, 0x65, 0x
3a
, 0x5a,
0xfd, 0xa4, 0x48, 0x09,
0x01, 0x8c, 0xaa, 0x08,
0x03, 0x8c, 0x10, 0x30,
0x00, 0x65, 0x
fa
, 0x5d,
0x01, 0xa4, 0x9
e
, 0x7a,
0x00, 0x65, 0x
e6
, 0x5d,
0x01, 0xa4, 0x9
4
, 0x7a,
0x04, 0x3b, 0x76, 0x08,
0x01, 0x3b, 0x26, 0x31,
0x80, 0x02, 0x04, 0x00,
0x10, 0x0c, 0x
94
, 0x7a,
0x03, 0x9e, 0x
96
, 0x6a,
0x10, 0x0c, 0x
8a
, 0x7a,
0x03, 0x9e, 0x
8c
, 0x6a,
0x7f, 0x02, 0x04, 0x08,
0x91, 0x6a, 0x
ec
, 0x5e,
0x91, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0xcc, 0x41,
0x01, 0xa4, 0xca, 0x30,
0x80, 0xa3, 0x
a4
, 0x7a,
0x80, 0xa3, 0x
9a
, 0x7a,
0x02, 0x65, 0xca, 0x00,
0x01, 0x55, 0xa8, 0x7a,
0x04, 0x65, 0xca, 0x00,
0x01, 0x65, 0xf8, 0x31,
0x01, 0x3b, 0x26, 0x31,
0x00, 0x65, 0x0e, 0x5a,
0x01, 0xfc, 0x
b6
, 0x6a,
0x80, 0x0b, 0x
ac
, 0x6a,
0x10, 0x0c, 0x
ac
, 0x7a,
0x20, 0x93, 0x
ac
, 0x6a,
0x01, 0xfc, 0x
a8
, 0x6a,
0x80, 0x0b, 0x
9e
, 0x6a,
0x10, 0x0c, 0x
9e
, 0x7a,
0x20, 0x93, 0x
9e
, 0x6a,
0x02, 0x93, 0x26, 0x01,
0x02, 0xfc, 0xc0, 0x7a,
0x40, 0x0d, 0xda, 0x6a,
0x01, 0xa4, 0x48, 0x01,
0x00, 0x65, 0xda, 0x42,
0x02, 0xfc, 0xb2, 0x7a,
0x40, 0x0d, 0xc6, 0x6a,
0x01, 0xa4, 0x48, 0x01,
0x00, 0x65, 0xc6, 0x42,
0x40, 0x0d, 0xb8, 0x6a,
0x00, 0x65, 0x0e, 0x5a,
0x00, 0x65, 0x
b8
, 0x42,
0x80, 0xfc, 0x
d0
, 0x7a,
0x80, 0xa4, 0x
d0
, 0x6a,
0x00, 0x65, 0x
aa
, 0x42,
0x80, 0xfc, 0x
c2
, 0x7a,
0x80, 0xa4, 0x
c2
, 0x6a,
0xff, 0xa5, 0x4a, 0x19,
0xff, 0xa6, 0x4c, 0x21,
0xff, 0xa7, 0x4e, 0x21,
0xf8, 0xfc, 0x48, 0x09,
0xff, 0x6a, 0xaa, 0x08,
0x04, 0xfc, 0xd8, 0x7a,
0x01, 0x55, 0xaa, 0x00,
0xff, 0x6a, 0x46, 0x09,
0x04, 0x3b, 0xf2, 0x6a,
0x7f, 0xa3, 0x46, 0x09,
0x04, 0x3b, 0xe2, 0x6a,
0x02, 0x93, 0x26, 0x01,
0x01, 0x94, 0xdc, 0x7a,
0x01, 0x94, 0xdc, 0x7a,
0x01, 0x94, 0xdc, 0x7a,
0x01, 0x94, 0xdc, 0x7a,
0x01, 0x94, 0xdc, 0x7a,
0x01, 0xa4, 0xf0, 0x7a,
0x01, 0xfc, 0xea, 0x7a,
0x01, 0x94, 0xf2, 0x6a,
0x00, 0x65, 0x8c, 0x42,
0x01, 0x94, 0xf0, 0x7a,
0x10, 0x94, 0xf2, 0x6a,
0x01, 0x94, 0xc8, 0x7a,
0x01, 0x94, 0xc8, 0x7a,
0x01, 0x94, 0xc8, 0x7a,
0x01, 0x94, 0xc8, 0x7a,
0x01, 0x94, 0xc8, 0x7a,
0x01, 0xa4, 0xe0, 0x7a,
0x01, 0xfc, 0xd6, 0x7a,
0x01, 0x94, 0xe2, 0x6a,
0x01, 0x94, 0xe2, 0x6a,
0x01, 0x94, 0xe2, 0x6a,
0x00, 0x65, 0x82, 0x42,
0x01, 0x94, 0xe0, 0x7a,
0x10, 0x94, 0xe2, 0x6a,
0xd7, 0x93, 0x26, 0x09,
0x28, 0x93, 0x
f
6, 0x6a,
0x28, 0x93, 0x
e
6, 0x6a,
0x01, 0x85, 0x0a, 0x01,
0x02, 0xfc, 0x
f
e, 0x6a,
0x02, 0xfc, 0x
e
e, 0x6a,
0x01, 0x14, 0x46, 0x31,
0xff, 0x6a, 0x10, 0x09,
0xfe, 0x85, 0x0a, 0x09,
0xff, 0x38, 0x
0c, 0x6b
,
0x80, 0xa3, 0x
0c, 0x7b
,
0x80, 0x0b, 0x
0a, 0x7b
,
0x04, 0x3b, 0x
0c, 0x7b
,
0xff, 0x38, 0x
fc, 0x6a
,
0x80, 0xa3, 0x
fc, 0x7a
,
0x80, 0x0b, 0x
fa, 0x7a
,
0x04, 0x3b, 0x
fc, 0x7a
,
0xbf, 0x3b, 0x76, 0x08,
0x01, 0x3b, 0x26, 0x31,
0x00, 0x65, 0x0e, 0x5a,
0x01, 0x0b, 0x
1
a, 0x6b,
0x10, 0x0c, 0x
0e, 0x7b
,
0x04, 0x93, 0x
1
8, 0x6b,
0x01, 0x94, 0x
1
6, 0x7b,
0x10, 0x94, 0x
1
8, 0x6b,
0x01, 0x0b, 0x
0
a, 0x6b,
0x10, 0x0c, 0x
fe, 0x7a
,
0x04, 0x93, 0x
0
8, 0x6b,
0x01, 0x94, 0x
0
6, 0x7b,
0x10, 0x94, 0x
0
8, 0x6b,
0xc7, 0x93, 0x26, 0x09,
0x01, 0x99, 0xd4, 0x30,
0x38, 0x93, 0x
1
c, 0x6b,
0xff, 0x08, 0x
6e
, 0x6b,
0xff, 0x09, 0x
6e
, 0x6b,
0xff, 0x0a, 0x
6e
, 0x6b,
0xff, 0x38, 0x
3
8, 0x7b,
0x38, 0x93, 0x
0
c, 0x6b,
0xff, 0x08, 0x
5a
, 0x6b,
0xff, 0x09, 0x
5a
, 0x6b,
0xff, 0x0a, 0x
5a
, 0x6b,
0xff, 0x38, 0x
2
8, 0x7b,
0x04, 0x14, 0x10, 0x31,
0x01, 0x38, 0x18, 0x31,
0x02, 0x6a, 0x1a, 0x31,
0x88, 0x6a, 0xcc, 0x00,
0x14, 0x6a, 0x
08, 0x5e
,
0x00, 0x38, 0x
f4
, 0x5d,
0x14, 0x6a, 0x
f4, 0x5d
,
0x00, 0x38, 0x
e0
, 0x5d,
0xff, 0x6a, 0x70, 0x08,
0x00, 0x65, 0x
6
4, 0x43,
0x80, 0xa3, 0x
3
e, 0x7b,
0x00, 0x65, 0x
5
4, 0x43,
0x80, 0xa3, 0x
2
e, 0x7b,
0x01, 0xa4, 0x48, 0x01,
0x00, 0x65, 0x
6e
, 0x43,
0x08, 0xeb, 0x
4
4, 0x7b,
0x00, 0x65, 0x
5a
, 0x43,
0x08, 0xeb, 0x
3
4, 0x7b,
0x00, 0x65, 0x0e, 0x5a,
0x08, 0xeb, 0x
4
0, 0x6b,
0x08, 0xeb, 0x
3
0, 0x6b,
0x07, 0xe9, 0x10, 0x31,
0x01, 0xe9, 0xca, 0x30,
0x01, 0x65, 0x46, 0x31,
0x00, 0x6a, 0x
ce
, 0x5e,
0x00, 0x6a, 0x
ba
, 0x5e,
0x88, 0x6a, 0xcc, 0x00,
0xa4, 0x6a, 0x
08, 0x5e
,
0x08, 0x6a, 0x
f4
, 0x5d,
0xa4, 0x6a, 0x
f4, 0x5d
,
0x08, 0x6a, 0x
e0
, 0x5d,
0x0d, 0x93, 0x26, 0x01,
0x00, 0x65, 0x
bc
, 0x5e,
0x00, 0x65, 0x
a8
, 0x5e,
0x88, 0x6a, 0xcc, 0x00,
0x00, 0x65, 0x
9e
, 0x5e,
0x00, 0x65, 0x
8a
, 0x5e,
0x01, 0x99, 0x46, 0x31,
0x00, 0xa3, 0x
ce
, 0x5e,
0x00, 0xa3, 0x
ba
, 0x5e,
0x01, 0x88, 0x10, 0x31,
0x00, 0x65, 0x
42
, 0x5a,
0x00, 0x65, 0x
3a
, 0x5a,
0x00, 0x65, 0xfa, 0x59,
0x03, 0x8c, 0x10, 0x30,
0x00, 0x65, 0xfa, 0x5d,
0x01, 0x8c, 0x6c, 0x7b,
0x01, 0x55, 0xaa, 0x10,
0x80, 0x0b, 0x8c, 0x6a,
0x80, 0x0b, 0x76, 0x6b,
0x01, 0x0c, 0x70, 0x7b,
0x10, 0x0c, 0x8c, 0x7a,
0x03, 0x9e, 0x8c, 0x6a,
0x00, 0x65, 0xe6, 0x5d,
0x80, 0x0b, 0x82, 0x6a,
0x80, 0x0b, 0x62, 0x6b,
0x01, 0x0c, 0x5c, 0x7b,
0x10, 0x0c, 0x82, 0x7a,
0x03, 0x9e, 0x82, 0x6a,
0x00, 0x65, 0x04, 0x5a,
0x00, 0x6a, 0x
ce
, 0x5e,
0x01, 0xa4, 0x
96
, 0x6b,
0xff, 0x38, 0x
8c
, 0x7b,
0x00, 0x6a, 0x
ba
, 0x5e,
0x01, 0xa4, 0x
82
, 0x6b,
0xff, 0x38, 0x
78
, 0x7b,
0x01, 0x38, 0xc8, 0x30,
0x00, 0x08, 0x40, 0x19,
0xff, 0x6a, 0xc8, 0x08,
0x00, 0x09, 0x42, 0x21,
0x00, 0x0a, 0x44, 0x21,
0xff, 0x6a, 0x70, 0x08,
0x00, 0x65, 0x
8e
, 0x43,
0x00, 0x65, 0x
7a
, 0x43,
0x03, 0x08, 0x40, 0x31,
0x03, 0x08, 0x40, 0x31,
0x01, 0x08, 0x40, 0x31,
...
...
@@ -471,16 +461,16 @@ static uint8_t seqprog[] = {
0x04, 0x3c, 0xcc, 0x79,
0xfb, 0x3c, 0x78, 0x08,
0x04, 0x93, 0x20, 0x79,
0x01, 0x0c, 0x
a2
, 0x6b,
0x
01, 0x55
, 0x20, 0x79,
0x01, 0x0c, 0x
8e
, 0x6b,
0x
80, 0xba
, 0x20, 0x79,
0x80, 0x04, 0x20, 0x79,
0xe4, 0x6a, 0x
82
, 0x5d,
0x23, 0x6a, 0x
98
, 0x5d,
0x01, 0x6a, 0x
98
, 0x5d,
0xe4, 0x6a, 0x
6e
, 0x5d,
0x23, 0x6a, 0x
84
, 0x5d,
0x01, 0x6a, 0x
84
, 0x5d,
0x00, 0x65, 0x20, 0x41,
0x00, 0x65, 0xcc, 0x41,
0x80, 0x3c, 0x
b6
, 0x7b,
0x21, 0x6a, 0x
ec
, 0x5e,
0x80, 0x3c, 0x
a2
, 0x7b,
0x21, 0x6a, 0x
d8
, 0x5e,
0x01, 0xbc, 0x18, 0x31,
0x02, 0x6a, 0x1a, 0x31,
0x02, 0x6a, 0xf8, 0x01,
...
...
@@ -490,16 +480,16 @@ static uint8_t seqprog[] = {
0xff, 0x6a, 0x12, 0x08,
0xff, 0x6a, 0x14, 0x08,
0xf3, 0xbc, 0xd4, 0x18,
0xa0, 0x6a, 0x
dc
, 0x53,
0xa0, 0x6a, 0x
c8
, 0x53,
0x04, 0xa0, 0x10, 0x31,
0xac, 0x6a, 0x26, 0x01,
0x04, 0xa0, 0x10, 0x31,
0x03, 0x08, 0x18, 0x31,
0x88, 0x6a, 0xcc, 0x00,
0xa0, 0x6a, 0x
08, 0x5e
,
0x00, 0xbc, 0x
f4
, 0x5d,
0xa0, 0x6a, 0x
f4, 0x5d
,
0x00, 0xbc, 0x
e0
, 0x5d,
0x3d, 0x6a, 0x26, 0x01,
0x00, 0x65, 0x
f4
, 0x43,
0x00, 0x65, 0x
e0
, 0x43,
0xff, 0x6a, 0x10, 0x09,
0xa4, 0x6a, 0x26, 0x01,
0x0c, 0xa0, 0x32, 0x31,
...
...
@@ -509,128 +499,128 @@ static uint8_t seqprog[] = {
0x36, 0x6a, 0x26, 0x01,
0x02, 0x93, 0x26, 0x01,
0x35, 0x6a, 0x26, 0x01,
0x00, 0x65, 0x
b0
, 0x5e,
0x00, 0x65, 0x
b0
, 0x5e,
0x00, 0x65, 0x
9c
, 0x5e,
0x00, 0x65, 0x
9c
, 0x5e,
0x02, 0x93, 0x26, 0x01,
0xbf, 0x3c, 0x78, 0x08,
0x04, 0x0b, 0x
fa
, 0x6b,
0x10, 0x0c, 0x
f6
, 0x7b,
0x01, 0x03, 0x
fa
, 0x6b,
0x20, 0x93, 0x
fc
, 0x6b,
0x04, 0x0b, 0x
02, 0x6c
,
0x04, 0x0b, 0x
e6
, 0x6b,
0x10, 0x0c, 0x
e2
, 0x7b,
0x01, 0x03, 0x
e6
, 0x6b,
0x20, 0x93, 0x
e8
, 0x6b,
0x04, 0x0b, 0x
ee, 0x6b
,
0x40, 0x3c, 0x78, 0x00,
0xc7, 0x93, 0x26, 0x09,
0x38, 0x93, 0x
04, 0x6c
,
0x38, 0x93, 0x
f0, 0x6b
,
0x00, 0x65, 0xcc, 0x41,
0x80, 0x3c, 0x
6a
, 0x6c,
0x80, 0x3c, 0x
56
, 0x6c,
0x01, 0x06, 0x50, 0x31,
0x80, 0xb8, 0x70, 0x01,
0x00, 0x65, 0xcc, 0x41,
0x10, 0x3f, 0x06, 0x00,
0x10, 0x6a, 0x06, 0x00,
0x01, 0x3a, 0xca, 0x30,
0x80, 0x65, 0x
30
, 0x64,
0x10, 0xb8, 0x
54
, 0x6c,
0xc0, 0x
ba
, 0xca, 0x00,
0x40, 0xb8, 0x
20
, 0x6c,
0x80, 0x65, 0x
1c
, 0x64,
0x10, 0xb8, 0x
40
, 0x6c,
0xc0, 0x
3e
, 0xca, 0x00,
0x40, 0xb8, 0x
0c
, 0x6c,
0xbf, 0x65, 0xca, 0x08,
0x20, 0xb8, 0x
34
, 0x7c,
0x20, 0xb8, 0x
20
, 0x7c,
0x01, 0x65, 0x0c, 0x30,
0x00, 0x65, 0x
ec
, 0x5d,
0xa0, 0x3f, 0x
3c
, 0x64,
0x00, 0x65, 0x
d8
, 0x5d,
0xa0, 0x3f, 0x
28
, 0x64,
0x23, 0xb8, 0x0c, 0x08,
0x00, 0x65, 0x
ec
, 0x5d,
0xa0, 0x3f, 0x
3c
, 0x64,
0x00, 0xbb, 0x
34
, 0x44,
0xff, 0x65, 0x
34
, 0x64,
0x00, 0x65, 0x
54
, 0x44,
0x00, 0x65, 0x
d8
, 0x5d,
0xa0, 0x3f, 0x
28
, 0x64,
0x00, 0xbb, 0x
20
, 0x44,
0xff, 0x65, 0x
20
, 0x64,
0x00, 0x65, 0x
40
, 0x44,
0x40, 0x6a, 0x18, 0x00,
0x01, 0x65, 0x0c, 0x30,
0x00, 0x65, 0x
ec
, 0x5d,
0xa0, 0x3f, 0x
10, 0x74
,
0x00, 0x65, 0x
d8
, 0x5d,
0xa0, 0x3f, 0x
fc, 0x73
,
0x40, 0x6a, 0x18, 0x00,
0x01, 0x3a, 0xa6, 0x30,
0x08, 0x6a, 0x74, 0x00,
0x00, 0x65, 0xcc, 0x41,
0x64, 0x6a, 0x
7c
, 0x5d,
0x80, 0x64, 0x
ec
, 0x6c,
0x04, 0x64, 0x
ae
, 0x74,
0x02, 0x64, 0x
be
, 0x74,
0x00, 0x6a, 0x
74
, 0x74,
0x03, 0x64, 0x
dc
, 0x74,
0x23, 0x64, 0x
5c
, 0x74,
0x08, 0x64, 0x
70
, 0x74,
0x61, 0x6a, 0x
ec
, 0x5e,
0x00, 0x65, 0x
ec
, 0x5d,
0x64, 0x6a, 0x
68
, 0x5d,
0x80, 0x64, 0x
d8
, 0x6c,
0x04, 0x64, 0x
9a
, 0x74,
0x02, 0x64, 0x
aa
, 0x74,
0x00, 0x6a, 0x
60
, 0x74,
0x03, 0x64, 0x
c8
, 0x74,
0x23, 0x64, 0x
48
, 0x74,
0x08, 0x64, 0x
5c
, 0x74,
0x61, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0x
d8
, 0x5d,
0x08, 0x51, 0xce, 0x71,
0x00, 0x65, 0x
54
, 0x44,
0x80, 0x04, 0x
6e
, 0x7c,
0x51, 0x6a, 0x
72
, 0x5d,
0x01, 0x51, 0x
6e
, 0x64,
0x01, 0xa4, 0x
66
, 0x7c,
0x
01, 0x55, 0x70, 0x7
c,
0x41, 0x6a, 0x
ec
, 0x5e,
0x00, 0x65, 0x
70
, 0x44,
0x21, 0x6a, 0x
ec
, 0x5e,
0x00, 0x65, 0x
70
, 0x44,
0x07, 0x6a, 0x
68
, 0x5d,
0x00, 0x65, 0x
40
, 0x44,
0x80, 0x04, 0x
5a
, 0x7c,
0x51, 0x6a, 0x
5e
, 0x5d,
0x01, 0x51, 0x
5a
, 0x64,
0x01, 0xa4, 0x
52
, 0x7c,
0x
80, 0xba, 0x5c, 0x6
c,
0x41, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0x
5c
, 0x44,
0x21, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0x
5c
, 0x44,
0x07, 0x6a, 0x
54
, 0x5d,
0x01, 0x06, 0xd4, 0x30,
0x00, 0x65, 0xcc, 0x41,
0x80, 0xb8, 0x
6a
, 0x7c,
0xc0, 0x3c, 0x
7e
, 0x7c,
0x80, 0x3c, 0x
6a
, 0x6c,
0xff, 0xa8, 0x
7e
, 0x6c,
0x40, 0x3c, 0x
6a
, 0x6c,
0x10, 0xb8, 0x
82
, 0x7c,
0xa1, 0x6a, 0x
ec
, 0x5e,
0x01, 0xb4, 0x
88
, 0x6c,
0x02, 0xb4, 0x
8a
, 0x6c,
0x01, 0xa4, 0x
8a
, 0x7c,
0xff, 0xa8, 0x
9a
, 0x7c,
0x80, 0xb8, 0x
56
, 0x7c,
0xc0, 0x3c, 0x
6a
, 0x7c,
0x80, 0x3c, 0x
56
, 0x6c,
0xff, 0xa8, 0x
6a
, 0x6c,
0x40, 0x3c, 0x
56
, 0x6c,
0x10, 0xb8, 0x
6e
, 0x7c,
0xa1, 0x6a, 0x
d8
, 0x5e,
0x01, 0xb4, 0x
74
, 0x6c,
0x02, 0xb4, 0x
76
, 0x6c,
0x01, 0xa4, 0x
76
, 0x7c,
0xff, 0xa8, 0x
86
, 0x7c,
0x04, 0xb4, 0x68, 0x01,
0x01, 0x6a, 0x76, 0x00,
0x00, 0xbb, 0x
26
, 0x5e,
0xff, 0xa8, 0x
9a
, 0x7c,
0x71, 0x6a, 0x
ec
, 0x5e,
0x40, 0x51, 0x
9a
, 0x64,
0x00, 0x65, 0x
c6
, 0x5e,
0x00, 0xbb, 0x
12
, 0x5e,
0xff, 0xa8, 0x
86
, 0x7c,
0x71, 0x6a, 0x
d8
, 0x5e,
0x40, 0x51, 0x
86
, 0x64,
0x00, 0x65, 0x
b2
, 0x5e,
0x00, 0x65, 0xde, 0x41,
0x00, 0xbb, 0x
9e
, 0x5c,
0x00, 0xbb, 0x
8a
, 0x5c,
0x00, 0x65, 0xde, 0x41,
0x00, 0x65, 0x
c6
, 0x5e,
0x00, 0x65, 0x
b2
, 0x5e,
0x01, 0x65, 0xa2, 0x30,
0x01, 0xf8, 0xc8, 0x30,
0x01, 0x4e, 0xc8, 0x30,
0x00, 0x6a, 0x
ca
, 0xdd,
0x00, 0x51, 0x
dc
, 0x5d,
0x00, 0x6a, 0x
b6
, 0xdd,
0x00, 0x51, 0x
c8
, 0x5d,
0x01, 0x4e, 0x9c, 0x18,
0x02, 0x6a, 0x22, 0x05,
0xc0, 0x3c, 0x
6a
, 0x6c,
0xc0, 0x3c, 0x
56
, 0x6c,
0x04, 0xb8, 0x70, 0x01,
0x00, 0x65, 0x
e8
, 0x5e,
0x00, 0x65, 0x
d4
, 0x5e,
0x20, 0xb8, 0xde, 0x69,
0x01, 0xbb, 0xa2, 0x30,
0x
01, 0xba, 0x7c, 0x30
,
0x00, 0xb9, 0x
e2
, 0x5c,
0x
3f, 0xba, 0x7c, 0x08
,
0x00, 0xb9, 0x
ce
, 0x5c,
0x00, 0x65, 0xde, 0x41,
0x01, 0x06, 0xd4, 0x30,
0x20, 0x3c, 0xcc, 0x79,
0x20, 0x3c, 0x
70
, 0x7c,
0x01, 0xa4, 0x
cc
, 0x7c,
0x20, 0x3c, 0x
5c
, 0x7c,
0x01, 0xa4, 0x
b8
, 0x7c,
0x01, 0xb4, 0x68, 0x01,
0x00, 0x65, 0xcc, 0x41,
0x00, 0x65, 0x
70
, 0x44,
0x00, 0x65, 0x
5c
, 0x44,
0x04, 0x14, 0x58, 0x31,
0x01, 0x06, 0xd4, 0x30,
0x08, 0xa0, 0x60, 0x31,
0xac, 0x6a, 0xcc, 0x00,
0x14, 0x6a, 0x
08, 0x5e
,
0x14, 0x6a, 0x
f4, 0x5d
,
0x01, 0x06, 0xd4, 0x30,
0xa0, 0x6a, 0x
00, 0x5e
,
0xa0, 0x6a, 0x
ec, 0x5d
,
0x00, 0x65, 0xcc, 0x41,
0xdf, 0x3c, 0x78, 0x08,
0x12, 0x01, 0x02, 0x00,
0x00, 0x65, 0x
70
, 0x44,
0x00, 0x65, 0x
5c
, 0x44,
0x4c, 0x65, 0xcc, 0x28,
0x01, 0x3e, 0x20, 0x31,
0xd0, 0x66, 0xcc, 0x18,
...
...
@@ -641,102 +631,102 @@ static uint8_t seqprog[] = {
0xd0, 0x65, 0xca, 0x18,
0x01, 0x3e, 0x20, 0x31,
0x30, 0x65, 0xd4, 0x18,
0x00, 0x65, 0x
fa
, 0x4c,
0x00, 0x65, 0x
e6
, 0x4c,
0xe1, 0x6a, 0x22, 0x01,
0xff, 0x6a, 0xd4, 0x08,
0x20, 0x65, 0xd4, 0x18,
0x00, 0x65, 0x
02, 0x55
,
0x00, 0x65, 0x
ee, 0x54
,
0xe1, 0x6a, 0x22, 0x01,
0xff, 0x6a, 0xd4, 0x08,
0x20, 0x65, 0xca, 0x18,
0xe0, 0x65, 0xd4, 0x18,
0x00, 0x65, 0x
0c, 0x4d
,
0x00, 0x65, 0x
f8, 0x4c
,
0xe1, 0x6a, 0x22, 0x01,
0xff, 0x6a, 0xd4, 0x08,
0xd0, 0x65, 0xd4, 0x18,
0x00, 0x65, 0x
14
, 0x55,
0x00, 0x65, 0x
00
, 0x55,
0xe1, 0x6a, 0x22, 0x01,
0xff, 0x6a, 0xd4, 0x08,
0x01, 0x6c, 0xa2, 0x30,
0xff, 0x51, 0x
26
, 0x75,
0x00, 0x51, 0x
a2
, 0x5d,
0xff, 0x51, 0x
12
, 0x75,
0x00, 0x51, 0x
8e
, 0x5d,
0x01, 0x51, 0x20, 0x31,
0x00, 0x65, 0x
48
, 0x45,
0x
01, 0xba, 0xc8, 0x30
,
0x00, 0x3e, 0x
48
, 0x75,
0x00, 0x65, 0x
c4
, 0x5e,
0x00, 0x65, 0x
34
, 0x45,
0x
3f, 0xba, 0xc8, 0x08
,
0x00, 0x3e, 0x
34
, 0x75,
0x00, 0x65, 0x
b0
, 0x5e,
0x80, 0x3c, 0x78, 0x00,
0x01, 0x06, 0xd4, 0x30,
0x00, 0x65, 0x
ec
, 0x5d,
0x00, 0x65, 0x
d8
, 0x5d,
0x01, 0x3c, 0x78, 0x00,
0xe0, 0x3f, 0x
64
, 0x65,
0xe0, 0x3f, 0x
50
, 0x65,
0x02, 0x3c, 0x78, 0x00,
0x20, 0x12, 0x
64
, 0x65,
0x51, 0x6a, 0x
72
, 0x5d,
0x00, 0x51, 0x
a2
, 0x5d,
0x51, 0x6a, 0x
72
, 0x5d,
0x20, 0x12, 0x
50
, 0x65,
0x51, 0x6a, 0x
5e
, 0x5d,
0x00, 0x51, 0x
8e
, 0x5d,
0x51, 0x6a, 0x
5e
, 0x5d,
0x01, 0x51, 0x20, 0x31,
0x04, 0x3c, 0x78, 0x00,
0x01, 0xb9, 0xc8, 0x30,
0x00, 0x3d, 0x
62
, 0x65,
0x00, 0x3d, 0x
4e
, 0x65,
0x08, 0x3c, 0x78, 0x00,
0x
01, 0xba, 0xc8, 0x30
,
0x00, 0x3e, 0x
62
, 0x65,
0x
3f, 0xba, 0xc8, 0x08
,
0x00, 0x3e, 0x
4e
, 0x65,
0x10, 0x3c, 0x78, 0x00,
0x04, 0xb8, 0x
62
, 0x7d,
0x04, 0xb8, 0x
4e
, 0x7d,
0xfb, 0xb8, 0x70, 0x09,
0x20, 0xb8, 0x
58
, 0x6d,
0x20, 0xb8, 0x
44
, 0x6d,
0x01, 0x90, 0xc8, 0x30,
0xff, 0x6a, 0xa2, 0x00,
0x00, 0x3d, 0x
e2
, 0x5c,
0x00, 0x3d, 0x
ce
, 0x5c,
0x01, 0x64, 0x20, 0x31,
0xff, 0x6a, 0x78, 0x08,
0x00, 0x65, 0xea, 0x58,
0x10, 0xb8, 0x
70
, 0x7c,
0xff, 0x6a, 0x
68
, 0x5d,
0x00, 0x65, 0x
70
, 0x44,
0x00, 0x65, 0x
c4
, 0x5e,
0x31, 0x6a, 0x
ec
, 0x5e,
0x00, 0x65, 0x
70
, 0x44,
0x10, 0xb8, 0x
5c
, 0x7c,
0xff, 0x6a, 0x
54
, 0x5d,
0x00, 0x65, 0x
5c
, 0x44,
0x00, 0x65, 0x
b0
, 0x5e,
0x31, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0x
5c
, 0x44,
0x10, 0x3f, 0x06, 0x00,
0x10, 0x6a, 0x06, 0x00,
0x01, 0x65, 0x74, 0x34,
0x81, 0x6a, 0x
ec
, 0x5e,
0x00, 0x65, 0x
74
, 0x45,
0x81, 0x6a, 0x
d8
, 0x5e,
0x00, 0x65, 0x
60
, 0x45,
0x01, 0x06, 0xd4, 0x30,
0x01, 0x0c, 0x
74
, 0x7d,
0x04, 0x0c, 0x
6e
, 0x6d,
0x01, 0x0c, 0x
60
, 0x7d,
0x04, 0x0c, 0x
5a
, 0x6d,
0xe0, 0x03, 0x7e, 0x08,
0xe0, 0x3f, 0xcc, 0x61,
0x01, 0x65, 0xcc, 0x30,
0x01, 0x12, 0xda, 0x34,
0x01, 0x06, 0xd4, 0x34,
0x01, 0x03, 0x
82
, 0x6d,
0x01, 0x03, 0x
6e
, 0x6d,
0x40, 0x03, 0xcc, 0x08,
0x01, 0x65, 0x06, 0x30,
0x40, 0x65, 0xc8, 0x08,
0x00, 0x66, 0x
90
, 0x75,
0x40, 0x65, 0x
90
, 0x7d,
0x00, 0x65, 0x
90
, 0x5d,
0x00, 0x66, 0x
7c
, 0x75,
0x40, 0x65, 0x
7c
, 0x7d,
0x00, 0x65, 0x
7c
, 0x5d,
0xff, 0x6a, 0xd4, 0x08,
0xff, 0x6a, 0xd4, 0x08,
0xff, 0x6a, 0xd4, 0x08,
0xff, 0x6a, 0xd4, 0x0c,
0x08, 0x01, 0x02, 0x00,
0x02, 0x0b, 0x
9a
, 0x7d,
0x02, 0x0b, 0x
86
, 0x7d,
0x01, 0x65, 0x0c, 0x30,
0x02, 0x0b, 0x
9e
, 0x7d,
0x02, 0x0b, 0x
8a
, 0x7d,
0xf7, 0x01, 0x02, 0x0c,
0x01, 0x65, 0xc8, 0x30,
0xff, 0x41, 0x
c2
, 0x75,
0xff, 0x41, 0x
ae
, 0x75,
0x01, 0x41, 0x20, 0x31,
0xff, 0x6a, 0xa4, 0x00,
0x00, 0x65, 0x
b2
, 0x45,
0xff, 0xbf, 0x
c2
, 0x75,
0x00, 0x65, 0x
9e
, 0x45,
0xff, 0xbf, 0x
ae
, 0x75,
0x01, 0x90, 0xa4, 0x30,
0x01, 0xbf, 0x20, 0x31,
0x00, 0xbb, 0x
ac
, 0x65,
0xff, 0x52, 0x
c0
, 0x75,
0x00, 0xbb, 0x
98
, 0x65,
0xff, 0x52, 0x
ac
, 0x75,
0x01, 0xbf, 0xcc, 0x30,
0x01, 0x90, 0xca, 0x30,
0x01, 0x52, 0x20, 0x31,
...
...
@@ -744,28 +734,28 @@ static uint8_t seqprog[] = {
0x01, 0x65, 0x20, 0x35,
0x01, 0xbf, 0x82, 0x34,
0x01, 0x64, 0xa2, 0x30,
0x00, 0x6a, 0x
d4
, 0x5e,
0x00, 0x6a, 0x
c0
, 0x5e,
0x0d, 0x6a, 0x76, 0x00,
0x00, 0x51, 0x
26
, 0x46,
0x00, 0x51, 0x
12
, 0x46,
0x01, 0x65, 0xa4, 0x30,
0xe0, 0x6a, 0xcc, 0x00,
0x48, 0x6a, 0x
1a
, 0x5e,
0x48, 0x6a, 0x
06
, 0x5e,
0x01, 0x6a, 0xd0, 0x01,
0x01, 0x6a, 0xdc, 0x05,
0x88, 0x6a, 0xcc, 0x00,
0x48, 0x6a, 0x
1a
, 0x5e,
0x01, 0x6a, 0x
f4
, 0x5d,
0x48, 0x6a, 0x
06
, 0x5e,
0x01, 0x6a, 0x
e0
, 0x5d,
0x01, 0x6a, 0x26, 0x05,
0x01, 0x65, 0xd8, 0x31,
0x09, 0xee, 0xdc, 0x01,
0x80, 0xee, 0x
e0
, 0x7d,
0x80, 0xee, 0x
cc
, 0x7d,
0xff, 0x6a, 0xdc, 0x0d,
0x01, 0x65, 0x32, 0x31,
0x0a, 0x93, 0x26, 0x01,
0x00, 0x65, 0x
bc
, 0x46,
0x81, 0x6a, 0x
ec
, 0x5e,
0x01, 0x0c, 0x
ec
, 0x7d,
0x04, 0x0c, 0x
ea
, 0x6d,
0x00, 0x65, 0x
a8
, 0x46,
0x81, 0x6a, 0x
d8
, 0x5e,
0x01, 0x0c, 0x
d8
, 0x7d,
0x04, 0x0c, 0x
d6
, 0x6d,
0xe0, 0x03, 0x06, 0x08,
0xe0, 0x03, 0x7e, 0x0c,
0x01, 0x65, 0x18, 0x31,
...
...
@@ -784,7 +774,7 @@ static uint8_t seqprog[] = {
0x01, 0x6c, 0xda, 0x34,
0x3d, 0x64, 0xa4, 0x28,
0x55, 0x64, 0xc8, 0x28,
0x00, 0x65, 0x
1a
, 0x46,
0x00, 0x65, 0x
06
, 0x46,
0x2e, 0x64, 0xa4, 0x28,
0x66, 0x64, 0xc8, 0x28,
0x00, 0x6c, 0xda, 0x18,
...
...
@@ -795,63 +785,63 @@ static uint8_t seqprog[] = {
0x00, 0x6c, 0xda, 0x24,
0x01, 0x65, 0xc8, 0x30,
0xe0, 0x6a, 0xcc, 0x00,
0x44, 0x6a, 0x
16
, 0x5e,
0x44, 0x6a, 0x
02
, 0x5e,
0x01, 0x90, 0xe2, 0x31,
0x04, 0x3b, 0x
3a
, 0x7e,
0x04, 0x3b, 0x
26
, 0x7e,
0x30, 0x6a, 0xd0, 0x01,
0x20, 0x6a, 0xd0, 0x01,
0x1d, 0x6a, 0xdc, 0x01,
0xdc, 0xee, 0x
36
, 0x66,
0x00, 0x65, 0x
52
, 0x46,
0xdc, 0xee, 0x
22
, 0x66,
0x00, 0x65, 0x
3e
, 0x46,
0x20, 0x6a, 0xd0, 0x01,
0x01, 0x6a, 0xdc, 0x01,
0x20, 0xa0, 0xd8, 0x31,
0x09, 0xee, 0xdc, 0x01,
0x80, 0xee, 0x
42
, 0x7e,
0x80, 0xee, 0x
2e
, 0x7e,
0x11, 0x6a, 0xdc, 0x01,
0x50, 0xee, 0x
46
, 0x66,
0x50, 0xee, 0x
32
, 0x66,
0x20, 0x6a, 0xd0, 0x01,
0x09, 0x6a, 0xdc, 0x01,
0x88, 0xee, 0x
4c
, 0x66,
0x88, 0xee, 0x
38
, 0x66,
0x19, 0x6a, 0xdc, 0x01,
0xd8, 0xee, 0x
50
, 0x66,
0xd8, 0xee, 0x
3c
, 0x66,
0xff, 0x6a, 0xdc, 0x09,
0x18, 0xee, 0x
54
, 0x6e,
0x18, 0xee, 0x
40
, 0x6e,
0xff, 0x6a, 0xd4, 0x0c,
0x88, 0x6a, 0xcc, 0x00,
0x44, 0x6a, 0x
16
, 0x5e,
0x20, 0x6a, 0x
f4
, 0x5d,
0x44, 0x6a, 0x
02
, 0x5e,
0x20, 0x6a, 0x
e0
, 0x5d,
0x01, 0x3b, 0x26, 0x31,
0x04, 0x3b, 0x
6e
, 0x6e,
0x04, 0x3b, 0x
5a
, 0x6e,
0xa0, 0x6a, 0xca, 0x00,
0x20, 0x65, 0xc8, 0x18,
0x00, 0x65, 0x
ac
, 0x5e,
0x00, 0x65, 0x
66
, 0x66,
0x00, 0x65, 0x
98
, 0x5e,
0x00, 0x65, 0x
52
, 0x66,
0x0a, 0x93, 0x26, 0x01,
0x00, 0x65, 0x
bc
, 0x46,
0x00, 0x65, 0x
a8
, 0x46,
0xa0, 0x6a, 0xcc, 0x00,
0xff, 0x6a, 0xc8, 0x08,
0x20, 0x94, 0x
72
, 0x6e,
0x10, 0x94, 0x
74
, 0x6e,
0x08, 0x94, 0x
8e
, 0x6e,
0x08, 0x94, 0x
8e
, 0x6e,
0x08, 0x94, 0x
8e
, 0x6e,
0x20, 0x94, 0x
5e
, 0x6e,
0x10, 0x94, 0x
60
, 0x6e,
0x08, 0x94, 0x
7a
, 0x6e,
0x08, 0x94, 0x
7a
, 0x6e,
0x08, 0x94, 0x
7a
, 0x6e,
0xff, 0x8c, 0xc8, 0x10,
0xc1, 0x64, 0xc8, 0x18,
0xf8, 0x64, 0xc8, 0x08,
0x01, 0x99, 0xda, 0x30,
0x00, 0x66, 0x
82
, 0x66,
0xc0, 0x66, 0x
be
, 0x76,
0x00, 0x66, 0x
6e
, 0x66,
0xc0, 0x66, 0x
aa
, 0x76,
0x60, 0x66, 0xc8, 0x18,
0x3d, 0x64, 0xc8, 0x28,
0x00, 0x65, 0x
72
, 0x46,
0x00, 0x65, 0x
5e
, 0x46,
0xf7, 0x93, 0x26, 0x09,
0x08, 0x93, 0x
90
, 0x6e,
0x08, 0x93, 0x
7c
, 0x6e,
0x00, 0x62, 0xc4, 0x18,
0x00, 0x65, 0x
bc
, 0x5e,
0x00, 0x65, 0x
9c
, 0x5e,
0x00, 0x65, 0x
9c
, 0x5e,
0x00, 0x65, 0x
9c
, 0x5e,
0x00, 0x65, 0x
a8
, 0x5e,
0x00, 0x65, 0x
88
, 0x5e,
0x00, 0x65, 0x
88
, 0x5e,
0x00, 0x65, 0x
88
, 0x5e,
0x01, 0x99, 0xda, 0x30,
0x01, 0x99, 0xda, 0x30,
0x01, 0x99, 0xda, 0x30,
...
...
@@ -868,11 +858,11 @@ static uint8_t seqprog[] = {
0x01, 0x6c, 0x32, 0x31,
0x01, 0x6c, 0x32, 0x31,
0x01, 0x6c, 0x32, 0x35,
0x08, 0x94, 0x
bc
, 0x7e,
0x08, 0x94, 0x
a8
, 0x7e,
0xf7, 0x93, 0x26, 0x09,
0x08, 0x93, 0x
c0
, 0x6e,
0x08, 0x93, 0x
ac
, 0x6e,
0xff, 0x6a, 0xd4, 0x0c,
0x04, 0xb8, 0x
e8
, 0x6e,
0x04, 0xb8, 0x
d4
, 0x6e,
0x01, 0x42, 0x7e, 0x31,
0xff, 0x6a, 0x76, 0x01,
0x01, 0x90, 0x84, 0x34,
...
...
@@ -880,14 +870,14 @@ static uint8_t seqprog[] = {
0x01, 0x85, 0x0a, 0x01,
0x7f, 0x65, 0x10, 0x09,
0xfe, 0x85, 0x0a, 0x0d,
0xff, 0x42, 0x
e4
, 0x66,
0xff, 0x41, 0x
dc
, 0x66,
0xd1, 0x6a, 0x
ec
, 0x5e,
0xff, 0x42, 0x
d0
, 0x66,
0xff, 0x41, 0x
c8
, 0x66,
0xd1, 0x6a, 0x
d8
, 0x5e,
0xff, 0x6a, 0xca, 0x04,
0x01, 0x41, 0x20, 0x31,
0x01, 0xbf, 0x82, 0x30,
0x01, 0x6a, 0x76, 0x00,
0x00, 0xbb, 0x
26
, 0x46,
0x00, 0xbb, 0x
12
, 0x46,
0x01, 0x42, 0x20, 0x31,
0x01, 0xbf, 0x84, 0x34,
0x01, 0x41, 0x7e, 0x31,
...
...
@@ -1157,147 +1147,147 @@ static struct patch {
{ ahc_patch1_func, 248, 1, 2 },
{ ahc_patch0_func, 249, 2, 2 },
{ ahc_patch11_func, 250, 1, 1 },
{ ahc_patch9_func, 258, 31, 3 },
{ ahc_patch1_func, 274, 14, 2 },
{ ahc_patch13_func, 279, 1, 1 },
{ ahc_patch14_func, 289, 14, 1 },
{ ahc_patch1_func, 305, 1, 2 },
{ ahc_patch0_func, 306, 1, 1 },
{ ahc_patch9_func, 309, 1, 1 },
{ ahc_patch13_func, 314, 1, 1 },
{ ahc_patch9_func, 315, 2, 2 },
{ ahc_patch0_func, 317, 4, 1 },
{ ahc_patch14_func, 321, 1, 1 },
{ ahc_patch15_func, 324, 2, 3 },
{ ahc_patch9_func, 324, 1, 2 },
{ ahc_patch0_func, 325, 1, 1 },
{ ahc_patch6_func, 330, 1, 2 },
{ ahc_patch0_func, 331, 1, 1 },
{ ahc_patch1_func, 335, 50, 11 },
{ ahc_patch6_func, 344, 2, 4 },
{ ahc_patch7_func, 344, 1, 1 },
{ ahc_patch8_func, 345, 1, 1 },
{ ahc_patch0_func, 346, 1, 1 },
{ ahc_patch16_func, 347, 1, 1 },
{ ahc_patch6_func, 366, 6, 3 },
{ ahc_patch16_func, 366, 5, 1 },
{ ahc_patch0_func, 372, 5, 1 },
{ ahc_patch13_func, 380, 5, 1 },
{ ahc_patch0_func, 385, 54, 17 },
{ ahc_patch14_func, 385, 1, 1 },
{ ahc_patch7_func, 387, 2, 2 },
{ ahc_patch17_func, 388, 1, 1 },
{ ahc_patch9_func, 391, 1, 1 },
{ ahc_patch18_func, 398, 1, 1 },
{ ahc_patch14_func, 403, 9, 3 },
{ ahc_patch9_func, 404, 3, 2 },
{ ahc_patch0_func, 407, 3, 1 },
{ ahc_patch9_func, 415, 6, 2 },
{ ahc_patch0_func, 421, 9, 2 },
{ ahc_patch13_func, 421, 1, 1 },
{ ahc_patch13_func, 430, 2, 1 },
{ ahc_patch14_func, 432, 1, 1 },
{ ahc_patch9_func, 434, 1, 2 },
{ ahc_patch0_func, 435, 1, 1 },
{ ahc_patch7_func, 438, 1, 1 },
{ ahc_patch7_func, 439, 1, 1 },
{ ahc_patch8_func, 440, 3, 3 },
{ ahc_patch6_func, 441, 1, 2 },
{ ahc_patch0_func, 442, 1, 1 },
{ ahc_patch9_func, 443, 1, 1 },
{ ahc_patch15_func, 444, 1, 2 },
{ ahc_patch13_func, 444, 1, 1 },
{ ahc_patch14_func, 446, 9, 4 },
{ ahc_patch9_func, 446, 1, 1 },
{ ahc_patch9_func, 453, 2, 1 },
{ ahc_patch0_func, 455, 4, 3 },
{ ahc_patch9_func, 455, 1, 2 },
{ ahc_patch0_func, 456, 3, 1 },
{ ahc_patch1_func, 460, 2, 1 },
{ ahc_patch7_func, 462, 10, 2 },
{ ahc_patch0_func, 472, 1, 1 },
{ ahc_patch8_func, 473, 118, 22 },
{ ahc_patch1_func, 475, 3, 2 },
{ ahc_patch0_func, 478, 5, 3 },
{ ahc_patch9_func, 478, 2, 2 },
{ ahc_patch0_func, 480, 3, 1 },
{ ahc_patch9_func, 258, 27, 3 },
{ ahc_patch1_func, 274, 10, 2 },
{ ahc_patch13_func, 277, 1, 1 },
{ ahc_patch14_func, 285, 14, 1 },
{ ahc_patch1_func, 301, 1, 2 },
{ ahc_patch0_func, 302, 1, 1 },
{ ahc_patch9_func, 305, 1, 1 },
{ ahc_patch13_func, 310, 1, 1 },
{ ahc_patch9_func, 311, 2, 2 },
{ ahc_patch0_func, 313, 4, 1 },
{ ahc_patch14_func, 317, 1, 1 },
{ ahc_patch15_func, 319, 2, 3 },
{ ahc_patch9_func, 319, 1, 2 },
{ ahc_patch0_func, 320, 1, 1 },
{ ahc_patch6_func, 325, 1, 2 },
{ ahc_patch0_func, 326, 1, 1 },
{ ahc_patch1_func, 330, 47, 11 },
{ ahc_patch6_func, 337, 2, 4 },
{ ahc_patch7_func, 337, 1, 1 },
{ ahc_patch8_func, 338, 1, 1 },
{ ahc_patch0_func, 339, 1, 1 },
{ ahc_patch16_func, 340, 1, 1 },
{ ahc_patch6_func, 356, 6, 3 },
{ ahc_patch16_func, 356, 5, 1 },
{ ahc_patch0_func, 362, 7, 1 },
{ ahc_patch13_func, 372, 5, 1 },
{ ahc_patch0_func, 377, 52, 17 },
{ ahc_patch14_func, 377, 1, 1 },
{ ahc_patch7_func, 379, 2, 2 },
{ ahc_patch17_func, 380, 1, 1 },
{ ahc_patch9_func, 383, 1, 1 },
{ ahc_patch18_func, 390, 1, 1 },
{ ahc_patch14_func, 395, 9, 3 },
{ ahc_patch9_func, 396, 3, 2 },
{ ahc_patch0_func, 399, 3, 1 },
{ ahc_patch9_func, 407, 6, 2 },
{ ahc_patch0_func, 413, 9, 2 },
{ ahc_patch13_func, 413, 1, 1 },
{ ahc_patch13_func, 422, 2, 1 },
{ ahc_patch14_func, 424, 1, 1 },
{ ahc_patch9_func, 426, 1, 2 },
{ ahc_patch0_func, 427, 1, 1 },
{ ahc_patch7_func, 428, 1, 1 },
{ ahc_patch7_func, 429, 1, 1 },
{ ahc_patch8_func, 430, 3, 3 },
{ ahc_patch6_func, 431, 1, 2 },
{ ahc_patch0_func, 432, 1, 1 },
{ ahc_patch9_func, 433, 1, 1 },
{ ahc_patch15_func, 434, 1, 2 },
{ ahc_patch13_func, 434, 1, 1 },
{ ahc_patch14_func, 436, 9, 4 },
{ ahc_patch9_func, 436, 1, 1 },
{ ahc_patch9_func, 443, 2, 1 },
{ ahc_patch0_func, 445, 4, 3 },
{ ahc_patch9_func, 445, 1, 2 },
{ ahc_patch0_func, 446, 3, 1 },
{ ahc_patch1_func, 450, 2, 1 },
{ ahc_patch7_func, 452, 10, 2 },
{ ahc_patch0_func, 462, 1, 1 },
{ ahc_patch8_func, 463, 118, 22 },
{ ahc_patch1_func, 465, 3, 2 },
{ ahc_patch0_func, 468, 5, 3 },
{ ahc_patch9_func, 468, 2, 2 },
{ ahc_patch0_func, 470, 3, 1 },
{ ahc_patch1_func, 475, 2, 2 },
{ ahc_patch0_func, 477, 6, 3 },
{ ahc_patch9_func, 477, 2, 2 },
{ ahc_patch0_func, 479, 3, 1 },
{ ahc_patch1_func, 485, 2, 2 },
{ ahc_patch0_func, 487, 6, 3 },
{ ahc_patch9_func, 487, 2, 2 },
{ ahc_patch0_func, 489, 3, 1 },
{ ahc_patch1_func, 495, 2, 2 },
{ ahc_patch0_func, 497, 9, 7 },
{ ahc_patch9_func, 497, 5, 6 },
{ ahc_patch19_func, 497, 1, 2 },
{ ahc_patch0_func, 498, 1, 1 },
{ ahc_patch19_func, 500, 1, 2 },
{ ahc_patch0_func, 501, 1, 1 },
{ ahc_patch0_func, 502, 4, 1 },
{ ahc_patch6_func, 507, 3, 2 },
{ ahc_patch0_func, 510, 1, 1 },
{ ahc_patch6_func, 520, 1, 2 },
{ ahc_patch0_func, 521, 1, 1 },
{ ahc_patch20_func, 558, 7, 1 },
{ ahc_patch3_func, 593, 1, 2 },
{ ahc_patch0_func, 594, 1, 1 },
{ ahc_patch21_func, 597, 1, 1 },
{ ahc_patch8_func, 599, 106, 33 },
{ ahc_patch4_func, 601, 1, 1 },
{ ahc_patch1_func, 607, 2, 2 },
{ ahc_patch0_func, 609, 1, 1 },
{ ahc_patch1_func, 612, 1, 2 },
{ ahc_patch0_func, 613, 1, 1 },
{ ahc_patch9_func, 614, 3, 3 },
{ ahc_patch15_func, 615, 1, 1 },
{ ahc_patch0_func, 617, 4, 1 },
{ ahc_patch19_func, 626, 2, 2 },
{ ahc_patch0_func, 628, 1, 1 },
{ ahc_patch19_func, 632, 10, 3 },
{ ahc_patch5_func, 634, 8, 1 },
{ ahc_patch0_func, 642, 9, 2 },
{ ahc_patch5_func, 643, 8, 1 },
{ ahc_patch4_func, 653, 1, 2 },
{ ahc_patch0_func, 654, 1, 1 },
{ ahc_patch19_func, 655, 1, 2 },
{ ahc_patch0_func, 656, 3, 2 },
{ ahc_patch4_func, 658, 1, 1 },
{ ahc_patch5_func, 659, 1, 1 },
{ ahc_patch5_func, 662, 1, 1 },
{ ahc_patch5_func, 664, 1, 1 },
{ ahc_patch4_func, 666, 2, 2 },
{ ahc_patch0_func, 668, 2, 1 },
{ ahc_patch5_func, 670, 1, 1 },
{ ahc_patch5_func, 673, 1, 1 },
{ ahc_patch5_func, 676, 1, 1 },
{ ahc_patch19_func, 680, 1, 1 },
{ ahc_patch19_func, 683, 1, 1 },
{ ahc_patch4_func, 689, 1, 1 },
{ ahc_patch6_func, 692, 1, 2 },
{ ahc_patch0_func, 693, 1, 1 },
{ ahc_patch7_func, 705, 16, 1 },
{ ahc_patch4_func, 721, 20, 1 },
{ ahc_patch9_func, 742, 4, 2 },
{ ahc_patch0_func, 746, 4, 1 },
{ ahc_patch9_func, 750, 4, 2 },
{ ahc_patch0_func, 754, 3, 1 },
{ ahc_patch6_func, 760, 1, 1 },
{ ahc_patch22_func, 762, 14, 1 },
{ ahc_patch7_func, 776, 3, 1 },
{ ahc_patch9_func, 788, 24, 8 },
{ ahc_patch19_func, 792, 1, 2 },
{ ahc_patch0_func, 793, 1, 1 },
{ ahc_patch15_func, 798, 4, 2 },
{ ahc_patch0_func, 802, 7, 3 },
{ ahc_patch23_func, 802, 5, 2 },
{ ahc_patch0_func, 807, 2, 1 },
{ ahc_patch0_func, 812, 42, 3 },
{ ahc_patch18_func, 824, 18, 2 },
{ ahc_patch0_func, 842, 1, 1 },
{ ahc_patch4_func, 866, 1, 1 },
{ ahc_patch4_func, 867, 3, 2 },
{ ahc_patch0_func, 870, 1, 1 },
{ ahc_patch13_func, 871, 3, 1 },
{ ahc_patch4_func, 874, 12, 1 }
{ ahc_patch0_func, 487, 9, 7 },
{ ahc_patch9_func, 487, 5, 6 },
{ ahc_patch19_func, 487, 1, 2 },
{ ahc_patch0_func, 488, 1, 1 },
{ ahc_patch19_func, 490, 1, 2 },
{ ahc_patch0_func, 491, 1, 1 },
{ ahc_patch0_func, 492, 4, 1 },
{ ahc_patch6_func, 497, 3, 2 },
{ ahc_patch0_func, 500, 1, 1 },
{ ahc_patch6_func, 510, 1, 2 },
{ ahc_patch0_func, 511, 1, 1 },
{ ahc_patch20_func, 548, 7, 1 },
{ ahc_patch3_func, 583, 1, 2 },
{ ahc_patch0_func, 584, 1, 1 },
{ ahc_patch21_func, 587, 1, 1 },
{ ahc_patch8_func, 589, 106, 33 },
{ ahc_patch4_func, 591, 1, 1 },
{ ahc_patch1_func, 597, 2, 2 },
{ ahc_patch0_func, 599, 1, 1 },
{ ahc_patch1_func, 602, 1, 2 },
{ ahc_patch0_func, 603, 1, 1 },
{ ahc_patch9_func, 604, 3, 3 },
{ ahc_patch15_func, 605, 1, 1 },
{ ahc_patch0_func, 607, 4, 1 },
{ ahc_patch19_func, 616, 2, 2 },
{ ahc_patch0_func, 618, 1, 1 },
{ ahc_patch19_func, 622, 10, 3 },
{ ahc_patch5_func, 624, 8, 1 },
{ ahc_patch0_func, 632, 9, 2 },
{ ahc_patch5_func, 633, 8, 1 },
{ ahc_patch4_func, 643, 1, 2 },
{ ahc_patch0_func, 644, 1, 1 },
{ ahc_patch19_func, 645, 1, 2 },
{ ahc_patch0_func, 646, 3, 2 },
{ ahc_patch4_func, 648, 1, 1 },
{ ahc_patch5_func, 649, 1, 1 },
{ ahc_patch5_func, 652, 1, 1 },
{ ahc_patch5_func, 654, 1, 1 },
{ ahc_patch4_func, 656, 2, 2 },
{ ahc_patch0_func, 658, 2, 1 },
{ ahc_patch5_func, 660, 1, 1 },
{ ahc_patch5_func, 663, 1, 1 },
{ ahc_patch5_func, 666, 1, 1 },
{ ahc_patch19_func, 670, 1, 1 },
{ ahc_patch19_func, 673, 1, 1 },
{ ahc_patch4_func, 679, 1, 1 },
{ ahc_patch6_func, 682, 1, 2 },
{ ahc_patch0_func, 683, 1, 1 },
{ ahc_patch7_func, 695, 16, 1 },
{ ahc_patch4_func, 711, 20, 1 },
{ ahc_patch9_func, 732, 4, 2 },
{ ahc_patch0_func, 736, 4, 1 },
{ ahc_patch9_func, 740, 4, 2 },
{ ahc_patch0_func, 744, 3, 1 },
{ ahc_patch6_func, 750, 1, 1 },
{ ahc_patch22_func, 752, 14, 1 },
{ ahc_patch7_func, 766, 3, 1 },
{ ahc_patch9_func, 778, 24, 8 },
{ ahc_patch19_func, 782, 1, 2 },
{ ahc_patch0_func, 783, 1, 1 },
{ ahc_patch15_func, 788, 4, 2 },
{ ahc_patch0_func, 792, 7, 3 },
{ ahc_patch23_func, 792, 5, 2 },
{ ahc_patch0_func, 797, 2, 1 },
{ ahc_patch0_func, 802, 42, 3 },
{ ahc_patch18_func, 814, 18, 2 },
{ ahc_patch0_func, 832, 1, 1 },
{ ahc_patch4_func, 856, 1, 1 },
{ ahc_patch4_func, 857, 3, 2 },
{ ahc_patch0_func, 860, 1, 1 },
{ ahc_patch13_func, 861, 3, 1 },
{ ahc_patch4_func, 864, 12, 1 }
};
static struct cs {
...
...
@@ -1306,11 +1296,11 @@ static struct cs {
} critical_sections[] = {
{ 11, 18 },
{ 21, 30 },
{ 7
21, 73
7 },
{ 8
67, 87
0 },
{ 8
74, 88
0 },
{ 8
82, 88
4 },
{ 8
84, 88
6 }
{ 7
11, 72
7 },
{ 8
57, 86
0 },
{ 8
64, 87
0 },
{ 8
72, 87
4 },
{ 8
74, 87
6 }
};
static const int num_critical_sections = sizeof(critical_sections)
...
...
drivers/scsi/aic7xxx/aiclib.h
View file @
d98d10eb
...
...
@@ -60,12 +60,9 @@
/*
* Linux Interrupt Support.
*/
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#define AIC_LINUX_IRQRETURN_T irqreturn_t
#define AIC_LINUX_IRQRETURN(ours) return (IRQ_RETVAL(ours))
#else
#define AIC_LINUX_IRQRETURN_T void
#define AIC_LINUX_IRQRETURN(ours) return
#ifndef IRQ_RETVAL
typedef
void
irqreturn_t
;
#define IRQ_RETVAL(x)
#endif
/*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment