Fixed register definition for the pak array which saved and restored the wrong content (not all of it) due to the internal longword alignment of the struct rqpkt.
This commit is contained in:
parent
33897a6ff2
commit
936c3dbcfe
1 changed files with 138 additions and 129 deletions
|
@ -872,17 +872,18 @@ UNIT rq_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
REG rq_reg[] = {
|
REG rq_reg[] = {
|
||||||
|
{ GRDATA (UBASE, rq_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
|
||||||
{ GRDATA (SA, rq_ctx.sa, DEV_RDX, 16, 0) },
|
{ GRDATA (SA, rq_ctx.sa, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (SAW, rq_ctx.saw, DEV_RDX, 16, 0) },
|
{ GRDATA (SAW, rq_ctx.saw, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (S1DAT, rq_ctx.s1dat, DEV_RDX, 16, 0) },
|
{ GRDATA (S1DAT, rq_ctx.s1dat, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (COMM, rq_ctx.comm, DEV_RDX, 22, 0) },
|
{ GRDATA (COMM, rq_ctx.comm, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQIOFF, rq_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (CQIOFF, rq_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (CQBA, rq_ctx.cq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (CQBA, rq_ctx.cq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQLNT, rq_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (CQLNT, rq_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (CQIDX, rq_ctx.cq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (CQIDX, rq_ctx.cq.idx, DEV_RDX, 8, 2) },
|
||||||
{ GRDATA (RQIOFF, rq_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (RQIOFF, rq_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (RQBA, rq_ctx.rq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (RQBA, rq_ctx.rq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (RQLNT, rq_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (RQLNT, rq_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (RQIDX, rq_ctx.rq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (RQIDX, rq_ctx.rq.idx, DEV_RDX, 8, 2) },
|
||||||
{ DRDATA (FREE, rq_ctx.freq, 5) },
|
{ DRDATA (FREE, rq_ctx.freq, 5) },
|
||||||
{ DRDATA (RESP, rq_ctx.rspq, 5) },
|
{ DRDATA (RESP, rq_ctx.rspq, 5) },
|
||||||
|
@ -895,13 +896,15 @@ REG rq_reg[] = {
|
||||||
{ DRDATA (HTMO, rq_ctx.htmo, 17) },
|
{ DRDATA (HTMO, rq_ctx.htmo, 17) },
|
||||||
{ FLDATA (PRGI, rq_ctx.prgi, 0), REG_HIDDEN },
|
{ FLDATA (PRGI, rq_ctx.prgi, 0), REG_HIDDEN },
|
||||||
{ FLDATA (PIP, rq_ctx.pip, 0), REG_HIDDEN },
|
{ FLDATA (PIP, rq_ctx.pip, 0), REG_HIDDEN },
|
||||||
{ FLDATA (INT, rq_ctx.irq, 0) },
|
{ FLDATA (CTYPE, rq_ctx.ctype, 32), REG_HIDDEN },
|
||||||
|
{ DRDATA (ITIME, rq_itime, 24), PV_LEFT + REG_NZ },
|
||||||
{ DRDATA (ITIME, rq_itime, 24), PV_LEFT + REG_NZ },
|
{ DRDATA (ITIME, rq_itime, 24), PV_LEFT + REG_NZ },
|
||||||
{ DRDATA (I4TIME, rq_itime4, 24), PV_LEFT + REG_NZ },
|
{ DRDATA (I4TIME, rq_itime4, 24), PV_LEFT + REG_NZ },
|
||||||
{ DRDATA (QTIME, rq_qtime, 24), PV_LEFT + REG_NZ },
|
{ DRDATA (QTIME, rq_qtime, 24), PV_LEFT + REG_NZ },
|
||||||
{ DRDATA (XTIME, rq_xtime, 24), PV_LEFT + REG_NZ },
|
{ DRDATA (XTIME, rq_xtime, 24), PV_LEFT + REG_NZ },
|
||||||
{ BRDATA (PKTS, rq_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
|
{ BRDATA (PKTS, rq_ctx.pak, DEV_RDX, 16, sizeof(rq_ctx.pak)/2) },
|
||||||
{ URDATA (CPKT, rq_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (CPKT, rq_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
|
{ URDATA (UCNUM, rq_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (PKTQ, rq_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (PKTQ, rq_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (UFLG, rq_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
{ URDATA (UFLG, rq_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (CAPAC, rq_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
{ URDATA (CAPAC, rq_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
||||||
|
@ -1038,17 +1041,18 @@ UNIT rqb_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
REG rqb_reg[] = {
|
REG rqb_reg[] = {
|
||||||
|
{ GRDATA (UBASE, rqb_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
|
||||||
{ GRDATA (SA, rqb_ctx.sa, DEV_RDX, 16, 0) },
|
{ GRDATA (SA, rqb_ctx.sa, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (SAW, rqb_ctx.saw, DEV_RDX, 16, 0) },
|
{ GRDATA (SAW, rqb_ctx.saw, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (S1DAT, rqb_ctx.s1dat, DEV_RDX, 16, 0) },
|
{ GRDATA (S1DAT, rqb_ctx.s1dat, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (COMM, rqb_ctx.comm, DEV_RDX, 22, 0) },
|
{ GRDATA (COMM, rqb_ctx.comm, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQIOFF, rqb_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (CQIOFF, rqb_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (CQBA, rqb_ctx.cq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (CQBA, rqb_ctx.cq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQLNT, rqb_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (CQLNT, rqb_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (CQIDX, rqb_ctx.cq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (CQIDX, rqb_ctx.cq.idx, DEV_RDX, 8, 2) },
|
||||||
{ GRDATA (RQIOFF, rqb_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (RQIOFF, rqb_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (RQBA, rqb_ctx.rq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (RQBA, rqb_ctx.rq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (RQLNT, rqb_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (RQLNT, rqb_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (RQIDX, rqb_ctx.rq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (RQIDX, rqb_ctx.rq.idx, DEV_RDX, 8, 2) },
|
||||||
{ DRDATA (FREE, rqb_ctx.freq, 5) },
|
{ DRDATA (FREE, rqb_ctx.freq, 5) },
|
||||||
{ DRDATA (RESP, rqb_ctx.rspq, 5) },
|
{ DRDATA (RESP, rqb_ctx.rspq, 5) },
|
||||||
|
@ -1061,9 +1065,10 @@ REG rqb_reg[] = {
|
||||||
{ DRDATA (HTMO, rqb_ctx.htmo, 17) },
|
{ DRDATA (HTMO, rqb_ctx.htmo, 17) },
|
||||||
{ FLDATA (PRGI, rqb_ctx.prgi, 0), REG_HIDDEN },
|
{ FLDATA (PRGI, rqb_ctx.prgi, 0), REG_HIDDEN },
|
||||||
{ FLDATA (PIP, rqb_ctx.pip, 0), REG_HIDDEN },
|
{ FLDATA (PIP, rqb_ctx.pip, 0), REG_HIDDEN },
|
||||||
{ FLDATA (INT, rqb_ctx.irq, 0) },
|
{ FLDATA (CTYPE, rqb_ctx.ctype, 32), REG_HIDDEN },
|
||||||
{ BRDATA (PKTS, rqb_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
|
{ BRDATA (PKTS, rqb_ctx.pak, DEV_RDX, 16, sizeof(rqb_ctx.pak)/2) },
|
||||||
{ URDATA (CPKT, rqb_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (CPKT, rqb_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
|
{ URDATA (UCNUM, rqb_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (PKTQ, rqb_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (PKTQ, rqb_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (UFLG, rqb_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
{ URDATA (UFLG, rqb_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (CAPAC, rqb_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
{ URDATA (CAPAC, rqb_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
||||||
|
@ -1110,17 +1115,18 @@ UNIT rqc_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
REG rqc_reg[] = {
|
REG rqc_reg[] = {
|
||||||
|
{ GRDATA (UBASE, rqc_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
|
||||||
{ GRDATA (SA, rqc_ctx.sa, DEV_RDX, 16, 0) },
|
{ GRDATA (SA, rqc_ctx.sa, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (SAW, rqc_ctx.saw, DEV_RDX, 16, 0) },
|
{ GRDATA (SAW, rqc_ctx.saw, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (S1DAT, rqc_ctx.s1dat, DEV_RDX, 16, 0) },
|
{ GRDATA (S1DAT, rqc_ctx.s1dat, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (COMM, rqc_ctx.comm, DEV_RDX, 22, 0) },
|
{ GRDATA (COMM, rqc_ctx.comm, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQIOFF, rqc_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (CQIOFF, rqc_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (CQBA, rqc_ctx.cq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (CQBA, rqc_ctx.cq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQLNT, rqc_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (CQLNT, rqc_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (CQIDX, rqc_ctx.cq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (CQIDX, rqc_ctx.cq.idx, DEV_RDX, 8, 2) },
|
||||||
{ GRDATA (RQIOFF, rqc_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (RQIOFF, rqc_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (RQBA, rqc_ctx.rq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (RQBA, rqc_ctx.rq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (RQLNT, rqc_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (RQLNT, rqc_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (RQIDX, rqc_ctx.rq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (RQIDX, rqc_ctx.rq.idx, DEV_RDX, 8, 2) },
|
||||||
{ DRDATA (FREE, rqc_ctx.freq, 5) },
|
{ DRDATA (FREE, rqc_ctx.freq, 5) },
|
||||||
{ DRDATA (RESP, rqc_ctx.rspq, 5) },
|
{ DRDATA (RESP, rqc_ctx.rspq, 5) },
|
||||||
|
@ -1133,9 +1139,10 @@ REG rqc_reg[] = {
|
||||||
{ DRDATA (HTMO, rqc_ctx.htmo, 17) },
|
{ DRDATA (HTMO, rqc_ctx.htmo, 17) },
|
||||||
{ FLDATA (PRGI, rqc_ctx.prgi, 0), REG_HIDDEN },
|
{ FLDATA (PRGI, rqc_ctx.prgi, 0), REG_HIDDEN },
|
||||||
{ FLDATA (PIP, rqc_ctx.pip, 0), REG_HIDDEN },
|
{ FLDATA (PIP, rqc_ctx.pip, 0), REG_HIDDEN },
|
||||||
{ FLDATA (INT, rqc_ctx.irq, 0) },
|
{ FLDATA (CTYPE, rqc_ctx.ctype, 32), REG_HIDDEN },
|
||||||
{ BRDATA (PKTS, rqc_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
|
{ BRDATA (PKTS, rqc_ctx.pak, DEV_RDX, 16, sizeof(rqc_ctx.pak)/2) },
|
||||||
{ URDATA (CPKT, rqc_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (CPKT, rqc_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
|
{ URDATA (UCNUM, rqc_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (PKTQ, rqc_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (PKTQ, rqc_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (UFLG, rqc_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
{ URDATA (UFLG, rqc_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (CAPAC, rqc_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
{ URDATA (CAPAC, rqc_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
||||||
|
@ -1182,17 +1189,18 @@ UNIT rqd_unit[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
REG rqd_reg[] = {
|
REG rqd_reg[] = {
|
||||||
|
{ GRDATA (UBASE, rqd_ctx.ubase, DEV_RDX, 8, 0), REG_RO },
|
||||||
{ GRDATA (SA, rqd_ctx.sa, DEV_RDX, 16, 0) },
|
{ GRDATA (SA, rqd_ctx.sa, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (SAW, rqd_ctx.saw, DEV_RDX, 16, 0) },
|
{ GRDATA (SAW, rqd_ctx.saw, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (S1DAT, rqd_ctx.s1dat, DEV_RDX, 16, 0) },
|
{ GRDATA (S1DAT, rqd_ctx.s1dat, DEV_RDX, 16, 0) },
|
||||||
{ GRDATA (COMM, rqd_ctx.comm, DEV_RDX, 22, 0) },
|
{ GRDATA (COMM, rqd_ctx.comm, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQIOFF, rqd_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (CQIOFF, rqd_ctx.cq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (CQBA, rqd_ctx.cq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (CQBA, rqd_ctx.cq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (CQLNT, rqd_ctx.cq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (CQLNT, rqd_ctx.cq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (CQIDX, rqd_ctx.cq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (CQIDX, rqd_ctx.cq.idx, DEV_RDX, 8, 2) },
|
||||||
{ GRDATA (RQIOFF, rqd_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
{ GRDATA (RQIOFF, rqd_ctx.rq.ioff, DEV_RDX, 32, 0) },
|
||||||
{ GRDATA (RQBA, rqd_ctx.rq.ba, DEV_RDX, 22, 0) },
|
{ GRDATA (RQBA, rqd_ctx.rq.ba, DEV_RDX, 22, 0) },
|
||||||
{ GRDATA (RQLNT, rqd_ctx.rq.lnt, DEV_RDX, 8, 2), REG_NZ },
|
{ GRDATA (RQLNT, rqd_ctx.rq.lnt, DEV_RDX, 32, 2), REG_NZ },
|
||||||
{ GRDATA (RQIDX, rqd_ctx.rq.idx, DEV_RDX, 8, 2) },
|
{ GRDATA (RQIDX, rqd_ctx.rq.idx, DEV_RDX, 8, 2) },
|
||||||
{ DRDATA (FREE, rqd_ctx.freq, 5) },
|
{ DRDATA (FREE, rqd_ctx.freq, 5) },
|
||||||
{ DRDATA (RESP, rqd_ctx.rspq, 5) },
|
{ DRDATA (RESP, rqd_ctx.rspq, 5) },
|
||||||
|
@ -1205,9 +1213,10 @@ REG rqd_reg[] = {
|
||||||
{ DRDATA (HTMO, rqd_ctx.htmo, 17) },
|
{ DRDATA (HTMO, rqd_ctx.htmo, 17) },
|
||||||
{ FLDATA (PRGI, rqd_ctx.prgi, 0), REG_HIDDEN },
|
{ FLDATA (PRGI, rqd_ctx.prgi, 0), REG_HIDDEN },
|
||||||
{ FLDATA (PIP, rqd_ctx.pip, 0), REG_HIDDEN },
|
{ FLDATA (PIP, rqd_ctx.pip, 0), REG_HIDDEN },
|
||||||
{ FLDATA (INT, rqd_ctx.irq, 0) },
|
{ FLDATA (CTYPE, rqd_ctx.ctype, 32), REG_HIDDEN },
|
||||||
{ BRDATA (PKTS, rqd_ctx.pak, DEV_RDX, 16, RQ_NPKTS * (RQ_PKT_SIZE_W + 1)) },
|
{ BRDATA (PKTS, rqd_ctx.pak, DEV_RDX, 16, sizeof(rqd_ctx.pak)/2) },
|
||||||
{ URDATA (CPKT, rqd_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (CPKT, rqd_unit[0].cpkt, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
|
{ URDATA (UCNUM, rqd_unit[0].cnum, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (PKTQ, rqd_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
{ URDATA (PKTQ, rqd_unit[0].pktq, 10, 5, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (UFLG, rqd_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
{ URDATA (UFLG, rqd_unit[0].uf, DEV_RDX, 16, 0, RQ_NUMDR, 0) },
|
||||||
{ URDATA (CAPAC, rqd_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
{ URDATA (CAPAC, rqd_unit[0].capac, 10, T_ADDR_W, 0, RQ_NUMDR, PV_LEFT | REG_HRO) },
|
||||||
|
|
Loading…
Add table
Reference in a new issue