blob: 78cc9033381e1bca390945506bac45148fcea9a9 [file] [log] [blame]
/********************************************************************************
* Marvell GPL License Option
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
******************************************************************************/
//////
/// don't edit! auto-generated by docc: drmdmx.h
////////////////////////////////////////////////////////////
#ifndef drmdmx_h
#define drmdmx_h (){}
#include "ctypes.h"
#pragma pack(1)
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _DOCC_H_BITOPS_
#define _DOCC_H_BITOPS_ (){}
#define _bSETMASK_(b) ((b)<32 ? (1<<((b)&31)) : 0)
#define _NSETMASK_(msb,lsb) (_bSETMASK_((msb)+1)-_bSETMASK_(lsb))
#define _bCLRMASK_(b) (~_bSETMASK_(b))
#define _NCLRMASK_(msb,lsb) (~_NSETMASK_(msb,lsb))
#define _BFGET_(r,msb,lsb) (_NSETMASK_((msb)-(lsb),0)&((r)>>(lsb)))
#define _BFSET_(r,msb,lsb,v) do{ (r)&=_NCLRMASK_(msb,lsb); (r)|=_NSETMASK_(msb,lsb)&((v)<<(lsb)); }while(0)
#endif
//////
///
/// $INTERFACE SemaINTR (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 mask (W-)
/// %unsigned 1 empty 0x0
/// ###
/// * Enable interrupt on 'empty' condition
/// ###
/// %unsigned 1 full 0x0
/// ###
/// * Enable interrupt on 'full' condition
/// ###
/// %unsigned 1 almostEmpty 0x0
/// ###
/// * Enable interrupt on 'almostEmpty' condition
/// ###
/// %unsigned 1 almostFull 0x0
/// ###
/// * Enable interrupt on 'almostFull' condition
/// ###
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 4b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaINTR
#define h_SemaINTR (){}
#define RA_SemaINTR_mask 0x0000
#define BA_SemaINTR_mask_empty 0x0000
#define B16SemaINTR_mask_empty 0x0000
#define LSb32SemaINTR_mask_empty 0
#define LSb16SemaINTR_mask_empty 0
#define bSemaINTR_mask_empty 1
#define MSK32SemaINTR_mask_empty 0x00000001
#define BA_SemaINTR_mask_full 0x0000
#define B16SemaINTR_mask_full 0x0000
#define LSb32SemaINTR_mask_full 1
#define LSb16SemaINTR_mask_full 1
#define bSemaINTR_mask_full 1
#define MSK32SemaINTR_mask_full 0x00000002
#define BA_SemaINTR_mask_almostEmpty 0x0000
#define B16SemaINTR_mask_almostEmpty 0x0000
#define LSb32SemaINTR_mask_almostEmpty 2
#define LSb16SemaINTR_mask_almostEmpty 2
#define bSemaINTR_mask_almostEmpty 1
#define MSK32SemaINTR_mask_almostEmpty 0x00000004
#define BA_SemaINTR_mask_almostFull 0x0000
#define B16SemaINTR_mask_almostFull 0x0000
#define LSb32SemaINTR_mask_almostFull 3
#define LSb16SemaINTR_mask_almostFull 3
#define bSemaINTR_mask_almostFull 1
#define MSK32SemaINTR_mask_almostFull 0x00000008
///////////////////////////////////////////////////////////
typedef struct SIE_SemaINTR {
///////////////////////////////////////////////////////////
#define GET32SemaINTR_mask_empty(r32) _BFGET_(r32, 0, 0)
#define SET32SemaINTR_mask_empty(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaINTR_mask_empty(r16) _BFGET_(r16, 0, 0)
#define SET16SemaINTR_mask_empty(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaINTR_mask_full(r32) _BFGET_(r32, 1, 1)
#define SET32SemaINTR_mask_full(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaINTR_mask_full(r16) _BFGET_(r16, 1, 1)
#define SET16SemaINTR_mask_full(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaINTR_mask_almostEmpty(r32) _BFGET_(r32, 2, 2)
#define SET32SemaINTR_mask_almostEmpty(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaINTR_mask_almostEmpty(r16) _BFGET_(r16, 2, 2)
#define SET16SemaINTR_mask_almostEmpty(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaINTR_mask_almostFull(r32) _BFGET_(r32, 3, 3)
#define SET32SemaINTR_mask_almostFull(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaINTR_mask_almostFull(r16) _BFGET_(r16, 3, 3)
#define SET16SemaINTR_mask_almostFull(r16,v) _BFSET_(r16, 3, 3,v)
#define w32SemaINTR_mask {\
UNSG32 umask_empty : 1;\
UNSG32 umask_full : 1;\
UNSG32 umask_almostEmpty : 1;\
UNSG32 umask_almostFull : 1;\
UNSG32 RSVDx0_b4 : 28;\
}
union { UNSG32 u32SemaINTR_mask;
struct w32SemaINTR_mask;
};
///////////////////////////////////////////////////////////
} SIE_SemaINTR;
typedef union T32SemaINTR_mask
{ UNSG32 u32;
struct w32SemaINTR_mask;
} T32SemaINTR_mask;
///////////////////////////////////////////////////////////
typedef union TSemaINTR_mask
{ UNSG32 u32[1];
struct {
struct w32SemaINTR_mask;
};
} TSemaINTR_mask;
///////////////////////////////////////////////////////////
SIGN32 SemaINTR_drvrd(SIE_SemaINTR *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaINTR_drvwr(SIE_SemaINTR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaINTR_reset(SIE_SemaINTR *p);
SIGN32 SemaINTR_cmp (SIE_SemaINTR *p, SIE_SemaINTR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaINTR_check(p,pie,pfx,hLOG) SemaINTR_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaINTR_print(p, pfx,hLOG) SemaINTR_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaINTR
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE Semaphore biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (W-)
/// %unsigned 16 DEPTH 0xF
/// ###
/// * Max level of semaphore
/// * Note: write this register will trigger counter reset
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00004 (P)
/// # 0x00004 INTR
/// $SemaINTR INTR REG [3]
/// ###
/// * Interrupt mask for 3 CPUs
/// ###
/// @ 0x00010 mask (W-)
/// %unsigned 1 full 0x0
/// %unsigned 1 emp 0x0
/// ###
/// * When full bit is set to one, to the producer, the semaphore will never be full, so that the producer will never be blocked.
/// * When emp bit is set to one, to the consumer, the semaphore will never be empty, so that the consumer will never be blocked.
/// * When the emp/full bit is set, the semaphore/FIFO pointer will be maintained, but the counter will be not correct anymore.
/// ###
/// %% 30 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 20B, bits: 30b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_Semaphore
#define h_Semaphore (){}
#define RA_Semaphore_CFG 0x0000
#define BA_Semaphore_CFG_DEPTH 0x0000
#define B16Semaphore_CFG_DEPTH 0x0000
#define LSb32Semaphore_CFG_DEPTH 0
#define LSb16Semaphore_CFG_DEPTH 0
#define bSemaphore_CFG_DEPTH 16
#define MSK32Semaphore_CFG_DEPTH 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_Semaphore_INTR 0x0004
///////////////////////////////////////////////////////////
#define RA_Semaphore_mask 0x0010
#define BA_Semaphore_mask_full 0x0010
#define B16Semaphore_mask_full 0x0010
#define LSb32Semaphore_mask_full 0
#define LSb16Semaphore_mask_full 0
#define bSemaphore_mask_full 1
#define MSK32Semaphore_mask_full 0x00000001
#define BA_Semaphore_mask_emp 0x0010
#define B16Semaphore_mask_emp 0x0010
#define LSb32Semaphore_mask_emp 1
#define LSb16Semaphore_mask_emp 1
#define bSemaphore_mask_emp 1
#define MSK32Semaphore_mask_emp 0x00000002
///////////////////////////////////////////////////////////
typedef struct SIE_Semaphore {
///////////////////////////////////////////////////////////
#define GET32Semaphore_CFG_DEPTH(r32) _BFGET_(r32,15, 0)
#define SET32Semaphore_CFG_DEPTH(r32,v) _BFSET_(r32,15, 0,v)
#define GET16Semaphore_CFG_DEPTH(r16) _BFGET_(r16,15, 0)
#define SET16Semaphore_CFG_DEPTH(r16,v) _BFSET_(r16,15, 0,v)
#define w32Semaphore_CFG {\
UNSG32 uCFG_DEPTH : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32Semaphore_CFG;
struct w32Semaphore_CFG;
};
///////////////////////////////////////////////////////////
SIE_SemaINTR ie_INTR[3];
///////////////////////////////////////////////////////////
#define GET32Semaphore_mask_full(r32) _BFGET_(r32, 0, 0)
#define SET32Semaphore_mask_full(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16Semaphore_mask_full(r16) _BFGET_(r16, 0, 0)
#define SET16Semaphore_mask_full(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32Semaphore_mask_emp(r32) _BFGET_(r32, 1, 1)
#define SET32Semaphore_mask_emp(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16Semaphore_mask_emp(r16) _BFGET_(r16, 1, 1)
#define SET16Semaphore_mask_emp(r16,v) _BFSET_(r16, 1, 1,v)
#define w32Semaphore_mask {\
UNSG32 umask_full : 1;\
UNSG32 umask_emp : 1;\
UNSG32 RSVDx10_b2 : 30;\
}
union { UNSG32 u32Semaphore_mask;
struct w32Semaphore_mask;
};
///////////////////////////////////////////////////////////
} SIE_Semaphore;
typedef union T32Semaphore_CFG
{ UNSG32 u32;
struct w32Semaphore_CFG;
} T32Semaphore_CFG;
typedef union T32Semaphore_mask
{ UNSG32 u32;
struct w32Semaphore_mask;
} T32Semaphore_mask;
///////////////////////////////////////////////////////////
typedef union TSemaphore_CFG
{ UNSG32 u32[1];
struct {
struct w32Semaphore_CFG;
};
} TSemaphore_CFG;
typedef union TSemaphore_mask
{ UNSG32 u32[1];
struct {
struct w32Semaphore_mask;
};
} TSemaphore_mask;
///////////////////////////////////////////////////////////
SIGN32 Semaphore_drvrd(SIE_Semaphore *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 Semaphore_drvwr(SIE_Semaphore *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void Semaphore_reset(SIE_Semaphore *p);
SIGN32 Semaphore_cmp (SIE_Semaphore *p, SIE_Semaphore *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define Semaphore_check(p,pie,pfx,hLOG) Semaphore_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define Semaphore_print(p, pfx,hLOG) Semaphore_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: Semaphore
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaQuery (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 RESP (R-)
/// %unsigned 16 CNT
/// ###
/// * Semaphore counter level
/// ###
/// %unsigned 16 PTR
/// ###
/// * Semaphore pointer:
/// * producer-wptr or consumer-rptr
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaQuery
#define h_SemaQuery (){}
#define RA_SemaQuery_RESP 0x0000
#define BA_SemaQuery_RESP_CNT 0x0000
#define B16SemaQuery_RESP_CNT 0x0000
#define LSb32SemaQuery_RESP_CNT 0
#define LSb16SemaQuery_RESP_CNT 0
#define bSemaQuery_RESP_CNT 16
#define MSK32SemaQuery_RESP_CNT 0x0000FFFF
#define BA_SemaQuery_RESP_PTR 0x0002
#define B16SemaQuery_RESP_PTR 0x0002
#define LSb32SemaQuery_RESP_PTR 16
#define LSb16SemaQuery_RESP_PTR 0
#define bSemaQuery_RESP_PTR 16
#define MSK32SemaQuery_RESP_PTR 0xFFFF0000
///////////////////////////////////////////////////////////
typedef struct SIE_SemaQuery {
///////////////////////////////////////////////////////////
#define GET32SemaQuery_RESP_CNT(r32) _BFGET_(r32,15, 0)
#define SET32SemaQuery_RESP_CNT(r32,v) _BFSET_(r32,15, 0,v)
#define GET16SemaQuery_RESP_CNT(r16) _BFGET_(r16,15, 0)
#define SET16SemaQuery_RESP_CNT(r16,v) _BFSET_(r16,15, 0,v)
#define GET32SemaQuery_RESP_PTR(r32) _BFGET_(r32,31,16)
#define SET32SemaQuery_RESP_PTR(r32,v) _BFSET_(r32,31,16,v)
#define GET16SemaQuery_RESP_PTR(r16) _BFGET_(r16,15, 0)
#define SET16SemaQuery_RESP_PTR(r16,v) _BFSET_(r16,15, 0,v)
#define w32SemaQuery_RESP {\
UNSG32 uRESP_CNT : 16;\
UNSG32 uRESP_PTR : 16;\
}
union { UNSG32 u32SemaQuery_RESP;
struct w32SemaQuery_RESP;
};
///////////////////////////////////////////////////////////
} SIE_SemaQuery;
typedef union T32SemaQuery_RESP
{ UNSG32 u32;
struct w32SemaQuery_RESP;
} T32SemaQuery_RESP;
///////////////////////////////////////////////////////////
typedef union TSemaQuery_RESP
{ UNSG32 u32[1];
struct {
struct w32SemaQuery_RESP;
};
} TSemaQuery_RESP;
///////////////////////////////////////////////////////////
SIGN32 SemaQuery_drvrd(SIE_SemaQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaQuery_drvwr(SIE_SemaQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaQuery_reset(SIE_SemaQuery *p);
SIGN32 SemaQuery_cmp (SIE_SemaQuery *p, SIE_SemaQuery *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaQuery_check(p,pie,pfx,hLOG) SemaQuery_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaQuery_print(p, pfx,hLOG) SemaQuery_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaQuery
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaQueryMap (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ADDR (P)
/// %unsigned 2 byte
/// %unsigned 5 ID
/// ###
/// * Semaphore cell index
/// ###
/// %unsigned 1 master
/// : producer 0x0
/// : consumer 0x1
/// ###
/// * Select which counter to read
/// ###
/// %% 24 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 8b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaQueryMap
#define h_SemaQueryMap (){}
#define RA_SemaQueryMap_ADDR 0x0000
#define BA_SemaQueryMap_ADDR_byte 0x0000
#define B16SemaQueryMap_ADDR_byte 0x0000
#define LSb32SemaQueryMap_ADDR_byte 0
#define LSb16SemaQueryMap_ADDR_byte 0
#define bSemaQueryMap_ADDR_byte 2
#define MSK32SemaQueryMap_ADDR_byte 0x00000003
#define BA_SemaQueryMap_ADDR_ID 0x0000
#define B16SemaQueryMap_ADDR_ID 0x0000
#define LSb32SemaQueryMap_ADDR_ID 2
#define LSb16SemaQueryMap_ADDR_ID 2
#define bSemaQueryMap_ADDR_ID 5
#define MSK32SemaQueryMap_ADDR_ID 0x0000007C
#define BA_SemaQueryMap_ADDR_master 0x0000
#define B16SemaQueryMap_ADDR_master 0x0000
#define LSb32SemaQueryMap_ADDR_master 7
#define LSb16SemaQueryMap_ADDR_master 7
#define bSemaQueryMap_ADDR_master 1
#define MSK32SemaQueryMap_ADDR_master 0x00000080
#define SemaQueryMap_ADDR_master_producer 0x0
#define SemaQueryMap_ADDR_master_consumer 0x1
///////////////////////////////////////////////////////////
typedef struct SIE_SemaQueryMap {
///////////////////////////////////////////////////////////
#define GET32SemaQueryMap_ADDR_byte(r32) _BFGET_(r32, 1, 0)
#define SET32SemaQueryMap_ADDR_byte(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16SemaQueryMap_ADDR_byte(r16) _BFGET_(r16, 1, 0)
#define SET16SemaQueryMap_ADDR_byte(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32SemaQueryMap_ADDR_ID(r32) _BFGET_(r32, 6, 2)
#define SET32SemaQueryMap_ADDR_ID(r32,v) _BFSET_(r32, 6, 2,v)
#define GET16SemaQueryMap_ADDR_ID(r16) _BFGET_(r16, 6, 2)
#define SET16SemaQueryMap_ADDR_ID(r16,v) _BFSET_(r16, 6, 2,v)
#define GET32SemaQueryMap_ADDR_master(r32) _BFGET_(r32, 7, 7)
#define SET32SemaQueryMap_ADDR_master(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaQueryMap_ADDR_master(r16) _BFGET_(r16, 7, 7)
#define SET16SemaQueryMap_ADDR_master(r16,v) _BFSET_(r16, 7, 7,v)
#define w32SemaQueryMap_ADDR {\
UNSG32 uADDR_byte : 2;\
UNSG32 uADDR_ID : 5;\
UNSG32 uADDR_master : 1;\
UNSG32 RSVDx0_b8 : 24;\
}
union { UNSG32 u32SemaQueryMap_ADDR;
struct w32SemaQueryMap_ADDR;
};
///////////////////////////////////////////////////////////
} SIE_SemaQueryMap;
typedef union T32SemaQueryMap_ADDR
{ UNSG32 u32;
struct w32SemaQueryMap_ADDR;
} T32SemaQueryMap_ADDR;
///////////////////////////////////////////////////////////
typedef union TSemaQueryMap_ADDR
{ UNSG32 u32[1];
struct {
struct w32SemaQueryMap_ADDR;
};
} TSemaQueryMap_ADDR;
///////////////////////////////////////////////////////////
SIGN32 SemaQueryMap_drvrd(SIE_SemaQueryMap *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaQueryMap_drvwr(SIE_SemaQueryMap *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaQueryMap_reset(SIE_SemaQueryMap *p);
SIGN32 SemaQueryMap_cmp (SIE_SemaQueryMap *p, SIE_SemaQueryMap *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaQueryMap_check(p,pie,pfx,hLOG) SemaQueryMap_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaQueryMap_print(p, pfx,hLOG) SemaQueryMap_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaQueryMap
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SemaHub biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 Query (R-)
/// # 0x00000 counter
/// $SemaQuery counter MEM [64]
/// ###
/// * Access address as defined above
/// ###
/// @ 0x00100 ARR (P)
/// # 0x00100 cell
/// $Semaphore cell REG [32]
/// ###
/// * Up-to 32 semaphore cells
/// ###
/// @ 0x00380 PUSH (W-)
/// %unsigned 8 ID
/// %unsigned 8 delta
/// ###
/// * CPU increases PCounter by delta (0 as push 256)
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00384 POP (W-)
/// %unsigned 8 ID
/// %unsigned 8 delta
/// ###
/// * CPU decreases CCounter by delta (0 as pop 256)
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00388 empty (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'empty' status
/// ###
/// @ 0x0038C full (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'full' status
/// ###
/// @ 0x00390 almostEmpty (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'almostEmpty' status
/// ###
/// @ 0x00394 almostFull (WOC-)
/// %unsigned 1 ST_0i 0x0
/// %unsigned 1 ST_1i 0x0
/// %unsigned 1 ST_2i 0x0
/// %unsigned 1 ST_3i 0x0
/// %unsigned 1 ST_4i 0x0
/// %unsigned 1 ST_5i 0x0
/// %unsigned 1 ST_6i 0x0
/// %unsigned 1 ST_7i 0x0
/// %unsigned 1 ST_8i 0x0
/// %unsigned 1 ST_9i 0x0
/// %unsigned 1 ST_10i 0x0
/// %unsigned 1 ST_11i 0x0
/// %unsigned 1 ST_12i 0x0
/// %unsigned 1 ST_13i 0x0
/// %unsigned 1 ST_14i 0x0
/// %unsigned 1 ST_15i 0x0
/// %unsigned 1 ST_16i 0x0
/// %unsigned 1 ST_17i 0x0
/// %unsigned 1 ST_18i 0x0
/// %unsigned 1 ST_19i 0x0
/// %unsigned 1 ST_20i 0x0
/// %unsigned 1 ST_21i 0x0
/// %unsigned 1 ST_22i 0x0
/// %unsigned 1 ST_23i 0x0
/// %unsigned 1 ST_24i 0x0
/// %unsigned 1 ST_25i 0x0
/// %unsigned 1 ST_26i 0x0
/// %unsigned 1 ST_27i 0x0
/// %unsigned 1 ST_28i 0x0
/// %unsigned 1 ST_29i 0x0
/// %unsigned 1 ST_30i 0x0
/// %unsigned 1 ST_31i 0x0
/// ###
/// * All cell 'almostFull' status
/// ###
/// @ 0x00398 (W-)
/// # # Stuffing bytes...
/// %% 832
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 1024B, bits: 1152b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SemaHub
#define h_SemaHub (){}
#define RA_SemaHub_Query 0x0000
#define RA_SemaHub_counter 0x0000
///////////////////////////////////////////////////////////
#define RA_SemaHub_ARR 0x0100
#define RA_SemaHub_cell 0x0100
///////////////////////////////////////////////////////////
#define RA_SemaHub_PUSH 0x0380
#define BA_SemaHub_PUSH_ID 0x0380
#define B16SemaHub_PUSH_ID 0x0380
#define LSb32SemaHub_PUSH_ID 0
#define LSb16SemaHub_PUSH_ID 0
#define bSemaHub_PUSH_ID 8
#define MSK32SemaHub_PUSH_ID 0x000000FF
#define BA_SemaHub_PUSH_delta 0x0381
#define B16SemaHub_PUSH_delta 0x0380
#define LSb32SemaHub_PUSH_delta 8
#define LSb16SemaHub_PUSH_delta 8
#define bSemaHub_PUSH_delta 8
#define MSK32SemaHub_PUSH_delta 0x0000FF00
///////////////////////////////////////////////////////////
#define RA_SemaHub_POP 0x0384
#define BA_SemaHub_POP_ID 0x0384
#define B16SemaHub_POP_ID 0x0384
#define LSb32SemaHub_POP_ID 0
#define LSb16SemaHub_POP_ID 0
#define bSemaHub_POP_ID 8
#define MSK32SemaHub_POP_ID 0x000000FF
#define BA_SemaHub_POP_delta 0x0385
#define B16SemaHub_POP_delta 0x0384
#define LSb32SemaHub_POP_delta 8
#define LSb16SemaHub_POP_delta 8
#define bSemaHub_POP_delta 8
#define MSK32SemaHub_POP_delta 0x0000FF00
///////////////////////////////////////////////////////////
#define RA_SemaHub_empty 0x0388
#define BA_SemaHub_empty_ST_0i 0x0388
#define B16SemaHub_empty_ST_0i 0x0388
#define LSb32SemaHub_empty_ST_0i 0
#define LSb16SemaHub_empty_ST_0i 0
#define bSemaHub_empty_ST_0i 1
#define MSK32SemaHub_empty_ST_0i 0x00000001
#define BA_SemaHub_empty_ST_1i 0x0388
#define B16SemaHub_empty_ST_1i 0x0388
#define LSb32SemaHub_empty_ST_1i 1
#define LSb16SemaHub_empty_ST_1i 1
#define bSemaHub_empty_ST_1i 1
#define MSK32SemaHub_empty_ST_1i 0x00000002
#define BA_SemaHub_empty_ST_2i 0x0388
#define B16SemaHub_empty_ST_2i 0x0388
#define LSb32SemaHub_empty_ST_2i 2
#define LSb16SemaHub_empty_ST_2i 2
#define bSemaHub_empty_ST_2i 1
#define MSK32SemaHub_empty_ST_2i 0x00000004
#define BA_SemaHub_empty_ST_3i 0x0388
#define B16SemaHub_empty_ST_3i 0x0388
#define LSb32SemaHub_empty_ST_3i 3
#define LSb16SemaHub_empty_ST_3i 3
#define bSemaHub_empty_ST_3i 1
#define MSK32SemaHub_empty_ST_3i 0x00000008
#define BA_SemaHub_empty_ST_4i 0x0388
#define B16SemaHub_empty_ST_4i 0x0388
#define LSb32SemaHub_empty_ST_4i 4
#define LSb16SemaHub_empty_ST_4i 4
#define bSemaHub_empty_ST_4i 1
#define MSK32SemaHub_empty_ST_4i 0x00000010
#define BA_SemaHub_empty_ST_5i 0x0388
#define B16SemaHub_empty_ST_5i 0x0388
#define LSb32SemaHub_empty_ST_5i 5
#define LSb16SemaHub_empty_ST_5i 5
#define bSemaHub_empty_ST_5i 1
#define MSK32SemaHub_empty_ST_5i 0x00000020
#define BA_SemaHub_empty_ST_6i 0x0388
#define B16SemaHub_empty_ST_6i 0x0388
#define LSb32SemaHub_empty_ST_6i 6
#define LSb16SemaHub_empty_ST_6i 6
#define bSemaHub_empty_ST_6i 1
#define MSK32SemaHub_empty_ST_6i 0x00000040
#define BA_SemaHub_empty_ST_7i 0x0388
#define B16SemaHub_empty_ST_7i 0x0388
#define LSb32SemaHub_empty_ST_7i 7
#define LSb16SemaHub_empty_ST_7i 7
#define bSemaHub_empty_ST_7i 1
#define MSK32SemaHub_empty_ST_7i 0x00000080
#define BA_SemaHub_empty_ST_8i 0x0389
#define B16SemaHub_empty_ST_8i 0x0388
#define LSb32SemaHub_empty_ST_8i 8
#define LSb16SemaHub_empty_ST_8i 8
#define bSemaHub_empty_ST_8i 1
#define MSK32SemaHub_empty_ST_8i 0x00000100
#define BA_SemaHub_empty_ST_9i 0x0389
#define B16SemaHub_empty_ST_9i 0x0388
#define LSb32SemaHub_empty_ST_9i 9
#define LSb16SemaHub_empty_ST_9i 9
#define bSemaHub_empty_ST_9i 1
#define MSK32SemaHub_empty_ST_9i 0x00000200
#define BA_SemaHub_empty_ST_10i 0x0389
#define B16SemaHub_empty_ST_10i 0x0388
#define LSb32SemaHub_empty_ST_10i 10
#define LSb16SemaHub_empty_ST_10i 10
#define bSemaHub_empty_ST_10i 1
#define MSK32SemaHub_empty_ST_10i 0x00000400
#define BA_SemaHub_empty_ST_11i 0x0389
#define B16SemaHub_empty_ST_11i 0x0388
#define LSb32SemaHub_empty_ST_11i 11
#define LSb16SemaHub_empty_ST_11i 11
#define bSemaHub_empty_ST_11i 1
#define MSK32SemaHub_empty_ST_11i 0x00000800
#define BA_SemaHub_empty_ST_12i 0x0389
#define B16SemaHub_empty_ST_12i 0x0388
#define LSb32SemaHub_empty_ST_12i 12
#define LSb16SemaHub_empty_ST_12i 12
#define bSemaHub_empty_ST_12i 1
#define MSK32SemaHub_empty_ST_12i 0x00001000
#define BA_SemaHub_empty_ST_13i 0x0389
#define B16SemaHub_empty_ST_13i 0x0388
#define LSb32SemaHub_empty_ST_13i 13
#define LSb16SemaHub_empty_ST_13i 13
#define bSemaHub_empty_ST_13i 1
#define MSK32SemaHub_empty_ST_13i 0x00002000
#define BA_SemaHub_empty_ST_14i 0x0389
#define B16SemaHub_empty_ST_14i 0x0388
#define LSb32SemaHub_empty_ST_14i 14
#define LSb16SemaHub_empty_ST_14i 14
#define bSemaHub_empty_ST_14i 1
#define MSK32SemaHub_empty_ST_14i 0x00004000
#define BA_SemaHub_empty_ST_15i 0x0389
#define B16SemaHub_empty_ST_15i 0x0388
#define LSb32SemaHub_empty_ST_15i 15
#define LSb16SemaHub_empty_ST_15i 15
#define bSemaHub_empty_ST_15i 1
#define MSK32SemaHub_empty_ST_15i 0x00008000
#define BA_SemaHub_empty_ST_16i 0x038A
#define B16SemaHub_empty_ST_16i 0x038A
#define LSb32SemaHub_empty_ST_16i 16
#define LSb16SemaHub_empty_ST_16i 0
#define bSemaHub_empty_ST_16i 1
#define MSK32SemaHub_empty_ST_16i 0x00010000
#define BA_SemaHub_empty_ST_17i 0x038A
#define B16SemaHub_empty_ST_17i 0x038A
#define LSb32SemaHub_empty_ST_17i 17
#define LSb16SemaHub_empty_ST_17i 1
#define bSemaHub_empty_ST_17i 1
#define MSK32SemaHub_empty_ST_17i 0x00020000
#define BA_SemaHub_empty_ST_18i 0x038A
#define B16SemaHub_empty_ST_18i 0x038A
#define LSb32SemaHub_empty_ST_18i 18
#define LSb16SemaHub_empty_ST_18i 2
#define bSemaHub_empty_ST_18i 1
#define MSK32SemaHub_empty_ST_18i 0x00040000
#define BA_SemaHub_empty_ST_19i 0x038A
#define B16SemaHub_empty_ST_19i 0x038A
#define LSb32SemaHub_empty_ST_19i 19
#define LSb16SemaHub_empty_ST_19i 3
#define bSemaHub_empty_ST_19i 1
#define MSK32SemaHub_empty_ST_19i 0x00080000
#define BA_SemaHub_empty_ST_20i 0x038A
#define B16SemaHub_empty_ST_20i 0x038A
#define LSb32SemaHub_empty_ST_20i 20
#define LSb16SemaHub_empty_ST_20i 4
#define bSemaHub_empty_ST_20i 1
#define MSK32SemaHub_empty_ST_20i 0x00100000
#define BA_SemaHub_empty_ST_21i 0x038A
#define B16SemaHub_empty_ST_21i 0x038A
#define LSb32SemaHub_empty_ST_21i 21
#define LSb16SemaHub_empty_ST_21i 5
#define bSemaHub_empty_ST_21i 1
#define MSK32SemaHub_empty_ST_21i 0x00200000
#define BA_SemaHub_empty_ST_22i 0x038A
#define B16SemaHub_empty_ST_22i 0x038A
#define LSb32SemaHub_empty_ST_22i 22
#define LSb16SemaHub_empty_ST_22i 6
#define bSemaHub_empty_ST_22i 1
#define MSK32SemaHub_empty_ST_22i 0x00400000
#define BA_SemaHub_empty_ST_23i 0x038A
#define B16SemaHub_empty_ST_23i 0x038A
#define LSb32SemaHub_empty_ST_23i 23
#define LSb16SemaHub_empty_ST_23i 7
#define bSemaHub_empty_ST_23i 1
#define MSK32SemaHub_empty_ST_23i 0x00800000
#define BA_SemaHub_empty_ST_24i 0x038B
#define B16SemaHub_empty_ST_24i 0x038A
#define LSb32SemaHub_empty_ST_24i 24
#define LSb16SemaHub_empty_ST_24i 8
#define bSemaHub_empty_ST_24i 1
#define MSK32SemaHub_empty_ST_24i 0x01000000
#define BA_SemaHub_empty_ST_25i 0x038B
#define B16SemaHub_empty_ST_25i 0x038A
#define LSb32SemaHub_empty_ST_25i 25
#define LSb16SemaHub_empty_ST_25i 9
#define bSemaHub_empty_ST_25i 1
#define MSK32SemaHub_empty_ST_25i 0x02000000
#define BA_SemaHub_empty_ST_26i 0x038B
#define B16SemaHub_empty_ST_26i 0x038A
#define LSb32SemaHub_empty_ST_26i 26
#define LSb16SemaHub_empty_ST_26i 10
#define bSemaHub_empty_ST_26i 1
#define MSK32SemaHub_empty_ST_26i 0x04000000
#define BA_SemaHub_empty_ST_27i 0x038B
#define B16SemaHub_empty_ST_27i 0x038A
#define LSb32SemaHub_empty_ST_27i 27
#define LSb16SemaHub_empty_ST_27i 11
#define bSemaHub_empty_ST_27i 1
#define MSK32SemaHub_empty_ST_27i 0x08000000
#define BA_SemaHub_empty_ST_28i 0x038B
#define B16SemaHub_empty_ST_28i 0x038A
#define LSb32SemaHub_empty_ST_28i 28
#define LSb16SemaHub_empty_ST_28i 12
#define bSemaHub_empty_ST_28i 1
#define MSK32SemaHub_empty_ST_28i 0x10000000
#define BA_SemaHub_empty_ST_29i 0x038B
#define B16SemaHub_empty_ST_29i 0x038A
#define LSb32SemaHub_empty_ST_29i 29
#define LSb16SemaHub_empty_ST_29i 13
#define bSemaHub_empty_ST_29i 1
#define MSK32SemaHub_empty_ST_29i 0x20000000
#define BA_SemaHub_empty_ST_30i 0x038B
#define B16SemaHub_empty_ST_30i 0x038A
#define LSb32SemaHub_empty_ST_30i 30
#define LSb16SemaHub_empty_ST_30i 14
#define bSemaHub_empty_ST_30i 1
#define MSK32SemaHub_empty_ST_30i 0x40000000
#define BA_SemaHub_empty_ST_31i 0x038B
#define B16SemaHub_empty_ST_31i 0x038A
#define LSb32SemaHub_empty_ST_31i 31
#define LSb16SemaHub_empty_ST_31i 15
#define bSemaHub_empty_ST_31i 1
#define MSK32SemaHub_empty_ST_31i 0x80000000
///////////////////////////////////////////////////////////
#define RA_SemaHub_full 0x038C
#define BA_SemaHub_full_ST_0i 0x038C
#define B16SemaHub_full_ST_0i 0x038C
#define LSb32SemaHub_full_ST_0i 0
#define LSb16SemaHub_full_ST_0i 0
#define bSemaHub_full_ST_0i 1
#define MSK32SemaHub_full_ST_0i 0x00000001
#define BA_SemaHub_full_ST_1i 0x038C
#define B16SemaHub_full_ST_1i 0x038C
#define LSb32SemaHub_full_ST_1i 1
#define LSb16SemaHub_full_ST_1i 1
#define bSemaHub_full_ST_1i 1
#define MSK32SemaHub_full_ST_1i 0x00000002
#define BA_SemaHub_full_ST_2i 0x038C
#define B16SemaHub_full_ST_2i 0x038C
#define LSb32SemaHub_full_ST_2i 2
#define LSb16SemaHub_full_ST_2i 2
#define bSemaHub_full_ST_2i 1
#define MSK32SemaHub_full_ST_2i 0x00000004
#define BA_SemaHub_full_ST_3i 0x038C
#define B16SemaHub_full_ST_3i 0x038C
#define LSb32SemaHub_full_ST_3i 3
#define LSb16SemaHub_full_ST_3i 3
#define bSemaHub_full_ST_3i 1
#define MSK32SemaHub_full_ST_3i 0x00000008
#define BA_SemaHub_full_ST_4i 0x038C
#define B16SemaHub_full_ST_4i 0x038C
#define LSb32SemaHub_full_ST_4i 4
#define LSb16SemaHub_full_ST_4i 4
#define bSemaHub_full_ST_4i 1
#define MSK32SemaHub_full_ST_4i 0x00000010
#define BA_SemaHub_full_ST_5i 0x038C
#define B16SemaHub_full_ST_5i 0x038C
#define LSb32SemaHub_full_ST_5i 5
#define LSb16SemaHub_full_ST_5i 5
#define bSemaHub_full_ST_5i 1
#define MSK32SemaHub_full_ST_5i 0x00000020
#define BA_SemaHub_full_ST_6i 0x038C
#define B16SemaHub_full_ST_6i 0x038C
#define LSb32SemaHub_full_ST_6i 6
#define LSb16SemaHub_full_ST_6i 6
#define bSemaHub_full_ST_6i 1
#define MSK32SemaHub_full_ST_6i 0x00000040
#define BA_SemaHub_full_ST_7i 0x038C
#define B16SemaHub_full_ST_7i 0x038C
#define LSb32SemaHub_full_ST_7i 7
#define LSb16SemaHub_full_ST_7i 7
#define bSemaHub_full_ST_7i 1
#define MSK32SemaHub_full_ST_7i 0x00000080
#define BA_SemaHub_full_ST_8i 0x038D
#define B16SemaHub_full_ST_8i 0x038C
#define LSb32SemaHub_full_ST_8i 8
#define LSb16SemaHub_full_ST_8i 8
#define bSemaHub_full_ST_8i 1
#define MSK32SemaHub_full_ST_8i 0x00000100
#define BA_SemaHub_full_ST_9i 0x038D
#define B16SemaHub_full_ST_9i 0x038C
#define LSb32SemaHub_full_ST_9i 9
#define LSb16SemaHub_full_ST_9i 9
#define bSemaHub_full_ST_9i 1
#define MSK32SemaHub_full_ST_9i 0x00000200
#define BA_SemaHub_full_ST_10i 0x038D
#define B16SemaHub_full_ST_10i 0x038C
#define LSb32SemaHub_full_ST_10i 10
#define LSb16SemaHub_full_ST_10i 10
#define bSemaHub_full_ST_10i 1
#define MSK32SemaHub_full_ST_10i 0x00000400
#define BA_SemaHub_full_ST_11i 0x038D
#define B16SemaHub_full_ST_11i 0x038C
#define LSb32SemaHub_full_ST_11i 11
#define LSb16SemaHub_full_ST_11i 11
#define bSemaHub_full_ST_11i 1
#define MSK32SemaHub_full_ST_11i 0x00000800
#define BA_SemaHub_full_ST_12i 0x038D
#define B16SemaHub_full_ST_12i 0x038C
#define LSb32SemaHub_full_ST_12i 12
#define LSb16SemaHub_full_ST_12i 12
#define bSemaHub_full_ST_12i 1
#define MSK32SemaHub_full_ST_12i 0x00001000
#define BA_SemaHub_full_ST_13i 0x038D
#define B16SemaHub_full_ST_13i 0x038C
#define LSb32SemaHub_full_ST_13i 13
#define LSb16SemaHub_full_ST_13i 13
#define bSemaHub_full_ST_13i 1
#define MSK32SemaHub_full_ST_13i 0x00002000
#define BA_SemaHub_full_ST_14i 0x038D
#define B16SemaHub_full_ST_14i 0x038C
#define LSb32SemaHub_full_ST_14i 14
#define LSb16SemaHub_full_ST_14i 14
#define bSemaHub_full_ST_14i 1
#define MSK32SemaHub_full_ST_14i 0x00004000
#define BA_SemaHub_full_ST_15i 0x038D
#define B16SemaHub_full_ST_15i 0x038C
#define LSb32SemaHub_full_ST_15i 15
#define LSb16SemaHub_full_ST_15i 15
#define bSemaHub_full_ST_15i 1
#define MSK32SemaHub_full_ST_15i 0x00008000
#define BA_SemaHub_full_ST_16i 0x038E
#define B16SemaHub_full_ST_16i 0x038E
#define LSb32SemaHub_full_ST_16i 16
#define LSb16SemaHub_full_ST_16i 0
#define bSemaHub_full_ST_16i 1
#define MSK32SemaHub_full_ST_16i 0x00010000
#define BA_SemaHub_full_ST_17i 0x038E
#define B16SemaHub_full_ST_17i 0x038E
#define LSb32SemaHub_full_ST_17i 17
#define LSb16SemaHub_full_ST_17i 1
#define bSemaHub_full_ST_17i 1
#define MSK32SemaHub_full_ST_17i 0x00020000
#define BA_SemaHub_full_ST_18i 0x038E
#define B16SemaHub_full_ST_18i 0x038E
#define LSb32SemaHub_full_ST_18i 18
#define LSb16SemaHub_full_ST_18i 2
#define bSemaHub_full_ST_18i 1
#define MSK32SemaHub_full_ST_18i 0x00040000
#define BA_SemaHub_full_ST_19i 0x038E
#define B16SemaHub_full_ST_19i 0x038E
#define LSb32SemaHub_full_ST_19i 19
#define LSb16SemaHub_full_ST_19i 3
#define bSemaHub_full_ST_19i 1
#define MSK32SemaHub_full_ST_19i 0x00080000
#define BA_SemaHub_full_ST_20i 0x038E
#define B16SemaHub_full_ST_20i 0x038E
#define LSb32SemaHub_full_ST_20i 20
#define LSb16SemaHub_full_ST_20i 4
#define bSemaHub_full_ST_20i 1
#define MSK32SemaHub_full_ST_20i 0x00100000
#define BA_SemaHub_full_ST_21i 0x038E
#define B16SemaHub_full_ST_21i 0x038E
#define LSb32SemaHub_full_ST_21i 21
#define LSb16SemaHub_full_ST_21i 5
#define bSemaHub_full_ST_21i 1
#define MSK32SemaHub_full_ST_21i 0x00200000
#define BA_SemaHub_full_ST_22i 0x038E
#define B16SemaHub_full_ST_22i 0x038E
#define LSb32SemaHub_full_ST_22i 22
#define LSb16SemaHub_full_ST_22i 6
#define bSemaHub_full_ST_22i 1
#define MSK32SemaHub_full_ST_22i 0x00400000
#define BA_SemaHub_full_ST_23i 0x038E
#define B16SemaHub_full_ST_23i 0x038E
#define LSb32SemaHub_full_ST_23i 23
#define LSb16SemaHub_full_ST_23i 7
#define bSemaHub_full_ST_23i 1
#define MSK32SemaHub_full_ST_23i 0x00800000
#define BA_SemaHub_full_ST_24i 0x038F
#define B16SemaHub_full_ST_24i 0x038E
#define LSb32SemaHub_full_ST_24i 24
#define LSb16SemaHub_full_ST_24i 8
#define bSemaHub_full_ST_24i 1
#define MSK32SemaHub_full_ST_24i 0x01000000
#define BA_SemaHub_full_ST_25i 0x038F
#define B16SemaHub_full_ST_25i 0x038E
#define LSb32SemaHub_full_ST_25i 25
#define LSb16SemaHub_full_ST_25i 9
#define bSemaHub_full_ST_25i 1
#define MSK32SemaHub_full_ST_25i 0x02000000
#define BA_SemaHub_full_ST_26i 0x038F
#define B16SemaHub_full_ST_26i 0x038E
#define LSb32SemaHub_full_ST_26i 26
#define LSb16SemaHub_full_ST_26i 10
#define bSemaHub_full_ST_26i 1
#define MSK32SemaHub_full_ST_26i 0x04000000
#define BA_SemaHub_full_ST_27i 0x038F
#define B16SemaHub_full_ST_27i 0x038E
#define LSb32SemaHub_full_ST_27i 27
#define LSb16SemaHub_full_ST_27i 11
#define bSemaHub_full_ST_27i 1
#define MSK32SemaHub_full_ST_27i 0x08000000
#define BA_SemaHub_full_ST_28i 0x038F
#define B16SemaHub_full_ST_28i 0x038E
#define LSb32SemaHub_full_ST_28i 28
#define LSb16SemaHub_full_ST_28i 12
#define bSemaHub_full_ST_28i 1
#define MSK32SemaHub_full_ST_28i 0x10000000
#define BA_SemaHub_full_ST_29i 0x038F
#define B16SemaHub_full_ST_29i 0x038E
#define LSb32SemaHub_full_ST_29i 29
#define LSb16SemaHub_full_ST_29i 13
#define bSemaHub_full_ST_29i 1
#define MSK32SemaHub_full_ST_29i 0x20000000
#define BA_SemaHub_full_ST_30i 0x038F
#define B16SemaHub_full_ST_30i 0x038E
#define LSb32SemaHub_full_ST_30i 30
#define LSb16SemaHub_full_ST_30i 14
#define bSemaHub_full_ST_30i 1
#define MSK32SemaHub_full_ST_30i 0x40000000
#define BA_SemaHub_full_ST_31i 0x038F
#define B16SemaHub_full_ST_31i 0x038E
#define LSb32SemaHub_full_ST_31i 31
#define LSb16SemaHub_full_ST_31i 15
#define bSemaHub_full_ST_31i 1
#define MSK32SemaHub_full_ST_31i 0x80000000
///////////////////////////////////////////////////////////
#define RA_SemaHub_almostEmpty 0x0390
#define BA_SemaHub_almostEmpty_ST_0i 0x0390
#define B16SemaHub_almostEmpty_ST_0i 0x0390
#define LSb32SemaHub_almostEmpty_ST_0i 0
#define LSb16SemaHub_almostEmpty_ST_0i 0
#define bSemaHub_almostEmpty_ST_0i 1
#define MSK32SemaHub_almostEmpty_ST_0i 0x00000001
#define BA_SemaHub_almostEmpty_ST_1i 0x0390
#define B16SemaHub_almostEmpty_ST_1i 0x0390
#define LSb32SemaHub_almostEmpty_ST_1i 1
#define LSb16SemaHub_almostEmpty_ST_1i 1
#define bSemaHub_almostEmpty_ST_1i 1
#define MSK32SemaHub_almostEmpty_ST_1i 0x00000002
#define BA_SemaHub_almostEmpty_ST_2i 0x0390
#define B16SemaHub_almostEmpty_ST_2i 0x0390
#define LSb32SemaHub_almostEmpty_ST_2i 2
#define LSb16SemaHub_almostEmpty_ST_2i 2
#define bSemaHub_almostEmpty_ST_2i 1
#define MSK32SemaHub_almostEmpty_ST_2i 0x00000004
#define BA_SemaHub_almostEmpty_ST_3i 0x0390
#define B16SemaHub_almostEmpty_ST_3i 0x0390
#define LSb32SemaHub_almostEmpty_ST_3i 3
#define LSb16SemaHub_almostEmpty_ST_3i 3
#define bSemaHub_almostEmpty_ST_3i 1
#define MSK32SemaHub_almostEmpty_ST_3i 0x00000008
#define BA_SemaHub_almostEmpty_ST_4i 0x0390
#define B16SemaHub_almostEmpty_ST_4i 0x0390
#define LSb32SemaHub_almostEmpty_ST_4i 4
#define LSb16SemaHub_almostEmpty_ST_4i 4
#define bSemaHub_almostEmpty_ST_4i 1
#define MSK32SemaHub_almostEmpty_ST_4i 0x00000010
#define BA_SemaHub_almostEmpty_ST_5i 0x0390
#define B16SemaHub_almostEmpty_ST_5i 0x0390
#define LSb32SemaHub_almostEmpty_ST_5i 5
#define LSb16SemaHub_almostEmpty_ST_5i 5
#define bSemaHub_almostEmpty_ST_5i 1
#define MSK32SemaHub_almostEmpty_ST_5i 0x00000020
#define BA_SemaHub_almostEmpty_ST_6i 0x0390
#define B16SemaHub_almostEmpty_ST_6i 0x0390
#define LSb32SemaHub_almostEmpty_ST_6i 6
#define LSb16SemaHub_almostEmpty_ST_6i 6
#define bSemaHub_almostEmpty_ST_6i 1
#define MSK32SemaHub_almostEmpty_ST_6i 0x00000040
#define BA_SemaHub_almostEmpty_ST_7i 0x0390
#define B16SemaHub_almostEmpty_ST_7i 0x0390
#define LSb32SemaHub_almostEmpty_ST_7i 7
#define LSb16SemaHub_almostEmpty_ST_7i 7
#define bSemaHub_almostEmpty_ST_7i 1
#define MSK32SemaHub_almostEmpty_ST_7i 0x00000080
#define BA_SemaHub_almostEmpty_ST_8i 0x0391
#define B16SemaHub_almostEmpty_ST_8i 0x0390
#define LSb32SemaHub_almostEmpty_ST_8i 8
#define LSb16SemaHub_almostEmpty_ST_8i 8
#define bSemaHub_almostEmpty_ST_8i 1
#define MSK32SemaHub_almostEmpty_ST_8i 0x00000100
#define BA_SemaHub_almostEmpty_ST_9i 0x0391
#define B16SemaHub_almostEmpty_ST_9i 0x0390
#define LSb32SemaHub_almostEmpty_ST_9i 9
#define LSb16SemaHub_almostEmpty_ST_9i 9
#define bSemaHub_almostEmpty_ST_9i 1
#define MSK32SemaHub_almostEmpty_ST_9i 0x00000200
#define BA_SemaHub_almostEmpty_ST_10i 0x0391
#define B16SemaHub_almostEmpty_ST_10i 0x0390
#define LSb32SemaHub_almostEmpty_ST_10i 10
#define LSb16SemaHub_almostEmpty_ST_10i 10
#define bSemaHub_almostEmpty_ST_10i 1
#define MSK32SemaHub_almostEmpty_ST_10i 0x00000400
#define BA_SemaHub_almostEmpty_ST_11i 0x0391
#define B16SemaHub_almostEmpty_ST_11i 0x0390
#define LSb32SemaHub_almostEmpty_ST_11i 11
#define LSb16SemaHub_almostEmpty_ST_11i 11
#define bSemaHub_almostEmpty_ST_11i 1
#define MSK32SemaHub_almostEmpty_ST_11i 0x00000800
#define BA_SemaHub_almostEmpty_ST_12i 0x0391
#define B16SemaHub_almostEmpty_ST_12i 0x0390
#define LSb32SemaHub_almostEmpty_ST_12i 12
#define LSb16SemaHub_almostEmpty_ST_12i 12
#define bSemaHub_almostEmpty_ST_12i 1
#define MSK32SemaHub_almostEmpty_ST_12i 0x00001000
#define BA_SemaHub_almostEmpty_ST_13i 0x0391
#define B16SemaHub_almostEmpty_ST_13i 0x0390
#define LSb32SemaHub_almostEmpty_ST_13i 13
#define LSb16SemaHub_almostEmpty_ST_13i 13
#define bSemaHub_almostEmpty_ST_13i 1
#define MSK32SemaHub_almostEmpty_ST_13i 0x00002000
#define BA_SemaHub_almostEmpty_ST_14i 0x0391
#define B16SemaHub_almostEmpty_ST_14i 0x0390
#define LSb32SemaHub_almostEmpty_ST_14i 14
#define LSb16SemaHub_almostEmpty_ST_14i 14
#define bSemaHub_almostEmpty_ST_14i 1
#define MSK32SemaHub_almostEmpty_ST_14i 0x00004000
#define BA_SemaHub_almostEmpty_ST_15i 0x0391
#define B16SemaHub_almostEmpty_ST_15i 0x0390
#define LSb32SemaHub_almostEmpty_ST_15i 15
#define LSb16SemaHub_almostEmpty_ST_15i 15
#define bSemaHub_almostEmpty_ST_15i 1
#define MSK32SemaHub_almostEmpty_ST_15i 0x00008000
#define BA_SemaHub_almostEmpty_ST_16i 0x0392
#define B16SemaHub_almostEmpty_ST_16i 0x0392
#define LSb32SemaHub_almostEmpty_ST_16i 16
#define LSb16SemaHub_almostEmpty_ST_16i 0
#define bSemaHub_almostEmpty_ST_16i 1
#define MSK32SemaHub_almostEmpty_ST_16i 0x00010000
#define BA_SemaHub_almostEmpty_ST_17i 0x0392
#define B16SemaHub_almostEmpty_ST_17i 0x0392
#define LSb32SemaHub_almostEmpty_ST_17i 17
#define LSb16SemaHub_almostEmpty_ST_17i 1
#define bSemaHub_almostEmpty_ST_17i 1
#define MSK32SemaHub_almostEmpty_ST_17i 0x00020000
#define BA_SemaHub_almostEmpty_ST_18i 0x0392
#define B16SemaHub_almostEmpty_ST_18i 0x0392
#define LSb32SemaHub_almostEmpty_ST_18i 18
#define LSb16SemaHub_almostEmpty_ST_18i 2
#define bSemaHub_almostEmpty_ST_18i 1
#define MSK32SemaHub_almostEmpty_ST_18i 0x00040000
#define BA_SemaHub_almostEmpty_ST_19i 0x0392
#define B16SemaHub_almostEmpty_ST_19i 0x0392
#define LSb32SemaHub_almostEmpty_ST_19i 19
#define LSb16SemaHub_almostEmpty_ST_19i 3
#define bSemaHub_almostEmpty_ST_19i 1
#define MSK32SemaHub_almostEmpty_ST_19i 0x00080000
#define BA_SemaHub_almostEmpty_ST_20i 0x0392
#define B16SemaHub_almostEmpty_ST_20i 0x0392
#define LSb32SemaHub_almostEmpty_ST_20i 20
#define LSb16SemaHub_almostEmpty_ST_20i 4
#define bSemaHub_almostEmpty_ST_20i 1
#define MSK32SemaHub_almostEmpty_ST_20i 0x00100000
#define BA_SemaHub_almostEmpty_ST_21i 0x0392
#define B16SemaHub_almostEmpty_ST_21i 0x0392
#define LSb32SemaHub_almostEmpty_ST_21i 21
#define LSb16SemaHub_almostEmpty_ST_21i 5
#define bSemaHub_almostEmpty_ST_21i 1
#define MSK32SemaHub_almostEmpty_ST_21i 0x00200000
#define BA_SemaHub_almostEmpty_ST_22i 0x0392
#define B16SemaHub_almostEmpty_ST_22i 0x0392
#define LSb32SemaHub_almostEmpty_ST_22i 22
#define LSb16SemaHub_almostEmpty_ST_22i 6
#define bSemaHub_almostEmpty_ST_22i 1
#define MSK32SemaHub_almostEmpty_ST_22i 0x00400000
#define BA_SemaHub_almostEmpty_ST_23i 0x0392
#define B16SemaHub_almostEmpty_ST_23i 0x0392
#define LSb32SemaHub_almostEmpty_ST_23i 23
#define LSb16SemaHub_almostEmpty_ST_23i 7
#define bSemaHub_almostEmpty_ST_23i 1
#define MSK32SemaHub_almostEmpty_ST_23i 0x00800000
#define BA_SemaHub_almostEmpty_ST_24i 0x0393
#define B16SemaHub_almostEmpty_ST_24i 0x0392
#define LSb32SemaHub_almostEmpty_ST_24i 24
#define LSb16SemaHub_almostEmpty_ST_24i 8
#define bSemaHub_almostEmpty_ST_24i 1
#define MSK32SemaHub_almostEmpty_ST_24i 0x01000000
#define BA_SemaHub_almostEmpty_ST_25i 0x0393
#define B16SemaHub_almostEmpty_ST_25i 0x0392
#define LSb32SemaHub_almostEmpty_ST_25i 25
#define LSb16SemaHub_almostEmpty_ST_25i 9
#define bSemaHub_almostEmpty_ST_25i 1
#define MSK32SemaHub_almostEmpty_ST_25i 0x02000000
#define BA_SemaHub_almostEmpty_ST_26i 0x0393
#define B16SemaHub_almostEmpty_ST_26i 0x0392
#define LSb32SemaHub_almostEmpty_ST_26i 26
#define LSb16SemaHub_almostEmpty_ST_26i 10
#define bSemaHub_almostEmpty_ST_26i 1
#define MSK32SemaHub_almostEmpty_ST_26i 0x04000000
#define BA_SemaHub_almostEmpty_ST_27i 0x0393
#define B16SemaHub_almostEmpty_ST_27i 0x0392
#define LSb32SemaHub_almostEmpty_ST_27i 27
#define LSb16SemaHub_almostEmpty_ST_27i 11
#define bSemaHub_almostEmpty_ST_27i 1
#define MSK32SemaHub_almostEmpty_ST_27i 0x08000000
#define BA_SemaHub_almostEmpty_ST_28i 0x0393
#define B16SemaHub_almostEmpty_ST_28i 0x0392
#define LSb32SemaHub_almostEmpty_ST_28i 28
#define LSb16SemaHub_almostEmpty_ST_28i 12
#define bSemaHub_almostEmpty_ST_28i 1
#define MSK32SemaHub_almostEmpty_ST_28i 0x10000000
#define BA_SemaHub_almostEmpty_ST_29i 0x0393
#define B16SemaHub_almostEmpty_ST_29i 0x0392
#define LSb32SemaHub_almostEmpty_ST_29i 29
#define LSb16SemaHub_almostEmpty_ST_29i 13
#define bSemaHub_almostEmpty_ST_29i 1
#define MSK32SemaHub_almostEmpty_ST_29i 0x20000000
#define BA_SemaHub_almostEmpty_ST_30i 0x0393
#define B16SemaHub_almostEmpty_ST_30i 0x0392
#define LSb32SemaHub_almostEmpty_ST_30i 30
#define LSb16SemaHub_almostEmpty_ST_30i 14
#define bSemaHub_almostEmpty_ST_30i 1
#define MSK32SemaHub_almostEmpty_ST_30i 0x40000000
#define BA_SemaHub_almostEmpty_ST_31i 0x0393
#define B16SemaHub_almostEmpty_ST_31i 0x0392
#define LSb32SemaHub_almostEmpty_ST_31i 31
#define LSb16SemaHub_almostEmpty_ST_31i 15
#define bSemaHub_almostEmpty_ST_31i 1
#define MSK32SemaHub_almostEmpty_ST_31i 0x80000000
///////////////////////////////////////////////////////////
#define RA_SemaHub_almostFull 0x0394
#define BA_SemaHub_almostFull_ST_0i 0x0394
#define B16SemaHub_almostFull_ST_0i 0x0394
#define LSb32SemaHub_almostFull_ST_0i 0
#define LSb16SemaHub_almostFull_ST_0i 0
#define bSemaHub_almostFull_ST_0i 1
#define MSK32SemaHub_almostFull_ST_0i 0x00000001
#define BA_SemaHub_almostFull_ST_1i 0x0394
#define B16SemaHub_almostFull_ST_1i 0x0394
#define LSb32SemaHub_almostFull_ST_1i 1
#define LSb16SemaHub_almostFull_ST_1i 1
#define bSemaHub_almostFull_ST_1i 1
#define MSK32SemaHub_almostFull_ST_1i 0x00000002
#define BA_SemaHub_almostFull_ST_2i 0x0394
#define B16SemaHub_almostFull_ST_2i 0x0394
#define LSb32SemaHub_almostFull_ST_2i 2
#define LSb16SemaHub_almostFull_ST_2i 2
#define bSemaHub_almostFull_ST_2i 1
#define MSK32SemaHub_almostFull_ST_2i 0x00000004
#define BA_SemaHub_almostFull_ST_3i 0x0394
#define B16SemaHub_almostFull_ST_3i 0x0394
#define LSb32SemaHub_almostFull_ST_3i 3
#define LSb16SemaHub_almostFull_ST_3i 3
#define bSemaHub_almostFull_ST_3i 1
#define MSK32SemaHub_almostFull_ST_3i 0x00000008
#define BA_SemaHub_almostFull_ST_4i 0x0394
#define B16SemaHub_almostFull_ST_4i 0x0394
#define LSb32SemaHub_almostFull_ST_4i 4
#define LSb16SemaHub_almostFull_ST_4i 4
#define bSemaHub_almostFull_ST_4i 1
#define MSK32SemaHub_almostFull_ST_4i 0x00000010
#define BA_SemaHub_almostFull_ST_5i 0x0394
#define B16SemaHub_almostFull_ST_5i 0x0394
#define LSb32SemaHub_almostFull_ST_5i 5
#define LSb16SemaHub_almostFull_ST_5i 5
#define bSemaHub_almostFull_ST_5i 1
#define MSK32SemaHub_almostFull_ST_5i 0x00000020
#define BA_SemaHub_almostFull_ST_6i 0x0394
#define B16SemaHub_almostFull_ST_6i 0x0394
#define LSb32SemaHub_almostFull_ST_6i 6
#define LSb16SemaHub_almostFull_ST_6i 6
#define bSemaHub_almostFull_ST_6i 1
#define MSK32SemaHub_almostFull_ST_6i 0x00000040
#define BA_SemaHub_almostFull_ST_7i 0x0394
#define B16SemaHub_almostFull_ST_7i 0x0394
#define LSb32SemaHub_almostFull_ST_7i 7
#define LSb16SemaHub_almostFull_ST_7i 7
#define bSemaHub_almostFull_ST_7i 1
#define MSK32SemaHub_almostFull_ST_7i 0x00000080
#define BA_SemaHub_almostFull_ST_8i 0x0395
#define B16SemaHub_almostFull_ST_8i 0x0394
#define LSb32SemaHub_almostFull_ST_8i 8
#define LSb16SemaHub_almostFull_ST_8i 8
#define bSemaHub_almostFull_ST_8i 1
#define MSK32SemaHub_almostFull_ST_8i 0x00000100
#define BA_SemaHub_almostFull_ST_9i 0x0395
#define B16SemaHub_almostFull_ST_9i 0x0394
#define LSb32SemaHub_almostFull_ST_9i 9
#define LSb16SemaHub_almostFull_ST_9i 9
#define bSemaHub_almostFull_ST_9i 1
#define MSK32SemaHub_almostFull_ST_9i 0x00000200
#define BA_SemaHub_almostFull_ST_10i 0x0395
#define B16SemaHub_almostFull_ST_10i 0x0394
#define LSb32SemaHub_almostFull_ST_10i 10
#define LSb16SemaHub_almostFull_ST_10i 10
#define bSemaHub_almostFull_ST_10i 1
#define MSK32SemaHub_almostFull_ST_10i 0x00000400
#define BA_SemaHub_almostFull_ST_11i 0x0395
#define B16SemaHub_almostFull_ST_11i 0x0394
#define LSb32SemaHub_almostFull_ST_11i 11
#define LSb16SemaHub_almostFull_ST_11i 11
#define bSemaHub_almostFull_ST_11i 1
#define MSK32SemaHub_almostFull_ST_11i 0x00000800
#define BA_SemaHub_almostFull_ST_12i 0x0395
#define B16SemaHub_almostFull_ST_12i 0x0394
#define LSb32SemaHub_almostFull_ST_12i 12
#define LSb16SemaHub_almostFull_ST_12i 12
#define bSemaHub_almostFull_ST_12i 1
#define MSK32SemaHub_almostFull_ST_12i 0x00001000
#define BA_SemaHub_almostFull_ST_13i 0x0395
#define B16SemaHub_almostFull_ST_13i 0x0394
#define LSb32SemaHub_almostFull_ST_13i 13
#define LSb16SemaHub_almostFull_ST_13i 13
#define bSemaHub_almostFull_ST_13i 1
#define MSK32SemaHub_almostFull_ST_13i 0x00002000
#define BA_SemaHub_almostFull_ST_14i 0x0395
#define B16SemaHub_almostFull_ST_14i 0x0394
#define LSb32SemaHub_almostFull_ST_14i 14
#define LSb16SemaHub_almostFull_ST_14i 14
#define bSemaHub_almostFull_ST_14i 1
#define MSK32SemaHub_almostFull_ST_14i 0x00004000
#define BA_SemaHub_almostFull_ST_15i 0x0395
#define B16SemaHub_almostFull_ST_15i 0x0394
#define LSb32SemaHub_almostFull_ST_15i 15
#define LSb16SemaHub_almostFull_ST_15i 15
#define bSemaHub_almostFull_ST_15i 1
#define MSK32SemaHub_almostFull_ST_15i 0x00008000
#define BA_SemaHub_almostFull_ST_16i 0x0396
#define B16SemaHub_almostFull_ST_16i 0x0396
#define LSb32SemaHub_almostFull_ST_16i 16
#define LSb16SemaHub_almostFull_ST_16i 0
#define bSemaHub_almostFull_ST_16i 1
#define MSK32SemaHub_almostFull_ST_16i 0x00010000
#define BA_SemaHub_almostFull_ST_17i 0x0396
#define B16SemaHub_almostFull_ST_17i 0x0396
#define LSb32SemaHub_almostFull_ST_17i 17
#define LSb16SemaHub_almostFull_ST_17i 1
#define bSemaHub_almostFull_ST_17i 1
#define MSK32SemaHub_almostFull_ST_17i 0x00020000
#define BA_SemaHub_almostFull_ST_18i 0x0396
#define B16SemaHub_almostFull_ST_18i 0x0396
#define LSb32SemaHub_almostFull_ST_18i 18
#define LSb16SemaHub_almostFull_ST_18i 2
#define bSemaHub_almostFull_ST_18i 1
#define MSK32SemaHub_almostFull_ST_18i 0x00040000
#define BA_SemaHub_almostFull_ST_19i 0x0396
#define B16SemaHub_almostFull_ST_19i 0x0396
#define LSb32SemaHub_almostFull_ST_19i 19
#define LSb16SemaHub_almostFull_ST_19i 3
#define bSemaHub_almostFull_ST_19i 1
#define MSK32SemaHub_almostFull_ST_19i 0x00080000
#define BA_SemaHub_almostFull_ST_20i 0x0396
#define B16SemaHub_almostFull_ST_20i 0x0396
#define LSb32SemaHub_almostFull_ST_20i 20
#define LSb16SemaHub_almostFull_ST_20i 4
#define bSemaHub_almostFull_ST_20i 1
#define MSK32SemaHub_almostFull_ST_20i 0x00100000
#define BA_SemaHub_almostFull_ST_21i 0x0396
#define B16SemaHub_almostFull_ST_21i 0x0396
#define LSb32SemaHub_almostFull_ST_21i 21
#define LSb16SemaHub_almostFull_ST_21i 5
#define bSemaHub_almostFull_ST_21i 1
#define MSK32SemaHub_almostFull_ST_21i 0x00200000
#define BA_SemaHub_almostFull_ST_22i 0x0396
#define B16SemaHub_almostFull_ST_22i 0x0396
#define LSb32SemaHub_almostFull_ST_22i 22
#define LSb16SemaHub_almostFull_ST_22i 6
#define bSemaHub_almostFull_ST_22i 1
#define MSK32SemaHub_almostFull_ST_22i 0x00400000
#define BA_SemaHub_almostFull_ST_23i 0x0396
#define B16SemaHub_almostFull_ST_23i 0x0396
#define LSb32SemaHub_almostFull_ST_23i 23
#define LSb16SemaHub_almostFull_ST_23i 7
#define bSemaHub_almostFull_ST_23i 1
#define MSK32SemaHub_almostFull_ST_23i 0x00800000
#define BA_SemaHub_almostFull_ST_24i 0x0397
#define B16SemaHub_almostFull_ST_24i 0x0396
#define LSb32SemaHub_almostFull_ST_24i 24
#define LSb16SemaHub_almostFull_ST_24i 8
#define bSemaHub_almostFull_ST_24i 1
#define MSK32SemaHub_almostFull_ST_24i 0x01000000
#define BA_SemaHub_almostFull_ST_25i 0x0397
#define B16SemaHub_almostFull_ST_25i 0x0396
#define LSb32SemaHub_almostFull_ST_25i 25
#define LSb16SemaHub_almostFull_ST_25i 9
#define bSemaHub_almostFull_ST_25i 1
#define MSK32SemaHub_almostFull_ST_25i 0x02000000
#define BA_SemaHub_almostFull_ST_26i 0x0397
#define B16SemaHub_almostFull_ST_26i 0x0396
#define LSb32SemaHub_almostFull_ST_26i 26
#define LSb16SemaHub_almostFull_ST_26i 10
#define bSemaHub_almostFull_ST_26i 1
#define MSK32SemaHub_almostFull_ST_26i 0x04000000
#define BA_SemaHub_almostFull_ST_27i 0x0397
#define B16SemaHub_almostFull_ST_27i 0x0396
#define LSb32SemaHub_almostFull_ST_27i 27
#define LSb16SemaHub_almostFull_ST_27i 11
#define bSemaHub_almostFull_ST_27i 1
#define MSK32SemaHub_almostFull_ST_27i 0x08000000
#define BA_SemaHub_almostFull_ST_28i 0x0397
#define B16SemaHub_almostFull_ST_28i 0x0396
#define LSb32SemaHub_almostFull_ST_28i 28
#define LSb16SemaHub_almostFull_ST_28i 12
#define bSemaHub_almostFull_ST_28i 1
#define MSK32SemaHub_almostFull_ST_28i 0x10000000
#define BA_SemaHub_almostFull_ST_29i 0x0397
#define B16SemaHub_almostFull_ST_29i 0x0396
#define LSb32SemaHub_almostFull_ST_29i 29
#define LSb16SemaHub_almostFull_ST_29i 13
#define bSemaHub_almostFull_ST_29i 1
#define MSK32SemaHub_almostFull_ST_29i 0x20000000
#define BA_SemaHub_almostFull_ST_30i 0x0397
#define B16SemaHub_almostFull_ST_30i 0x0396
#define LSb32SemaHub_almostFull_ST_30i 30
#define LSb16SemaHub_almostFull_ST_30i 14
#define bSemaHub_almostFull_ST_30i 1
#define MSK32SemaHub_almostFull_ST_30i 0x40000000
#define BA_SemaHub_almostFull_ST_31i 0x0397
#define B16SemaHub_almostFull_ST_31i 0x0396
#define LSb32SemaHub_almostFull_ST_31i 31
#define LSb16SemaHub_almostFull_ST_31i 15
#define bSemaHub_almostFull_ST_31i 1
#define MSK32SemaHub_almostFull_ST_31i 0x80000000
///////////////////////////////////////////////////////////
typedef struct SIE_SemaHub {
///////////////////////////////////////////////////////////
SIE_SemaQuery ie_counter[64];
///////////////////////////////////////////////////////////
SIE_Semaphore ie_cell[32];
///////////////////////////////////////////////////////////
#define GET32SemaHub_PUSH_ID(r32) _BFGET_(r32, 7, 0)
#define SET32SemaHub_PUSH_ID(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16SemaHub_PUSH_ID(r16) _BFGET_(r16, 7, 0)
#define SET16SemaHub_PUSH_ID(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32SemaHub_PUSH_delta(r32) _BFGET_(r32,15, 8)
#define SET32SemaHub_PUSH_delta(r32,v) _BFSET_(r32,15, 8,v)
#define GET16SemaHub_PUSH_delta(r16) _BFGET_(r16,15, 8)
#define SET16SemaHub_PUSH_delta(r16,v) _BFSET_(r16,15, 8,v)
#define w32SemaHub_PUSH {\
UNSG32 uPUSH_ID : 8;\
UNSG32 uPUSH_delta : 8;\
UNSG32 RSVDx380_b16 : 16;\
}
union { UNSG32 u32SemaHub_PUSH;
struct w32SemaHub_PUSH;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_POP_ID(r32) _BFGET_(r32, 7, 0)
#define SET32SemaHub_POP_ID(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16SemaHub_POP_ID(r16) _BFGET_(r16, 7, 0)
#define SET16SemaHub_POP_ID(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32SemaHub_POP_delta(r32) _BFGET_(r32,15, 8)
#define SET32SemaHub_POP_delta(r32,v) _BFSET_(r32,15, 8,v)
#define GET16SemaHub_POP_delta(r16) _BFGET_(r16,15, 8)
#define SET16SemaHub_POP_delta(r16,v) _BFSET_(r16,15, 8,v)
#define w32SemaHub_POP {\
UNSG32 uPOP_ID : 8;\
UNSG32 uPOP_delta : 8;\
UNSG32 RSVDx384_b16 : 16;\
}
union { UNSG32 u32SemaHub_POP;
struct w32SemaHub_POP;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_empty_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_empty_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_empty_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_empty_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_empty_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_empty_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_empty_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_empty_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_empty_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_empty_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_empty_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_empty_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_empty_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_empty_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_empty_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_empty_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_empty_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_empty_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_empty_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_empty_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_empty_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_empty_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_empty_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_empty_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_empty_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_empty_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_empty_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_empty_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_empty_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_empty_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_empty_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_empty_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_empty_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_empty_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_empty_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_empty_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_empty_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_empty_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_empty_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_empty_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_empty_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_empty_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_empty_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_empty_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_empty_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_empty_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_empty_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_empty_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_empty_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_empty_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_empty_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_empty_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_empty_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_empty_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_empty_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_empty_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_empty_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_empty_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_empty_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_empty_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_empty_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_empty_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_empty_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_empty_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_empty_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_empty_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_empty_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_empty_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_empty_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_empty_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_empty_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_empty_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_empty_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_empty_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_empty_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_empty_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_empty_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_empty_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_empty_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_empty_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_empty_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_empty_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_empty_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_empty_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_empty_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_empty_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_empty_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_empty_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_empty_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_empty_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_empty_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_empty_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_empty_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_empty_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_empty_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_empty_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_empty_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_empty_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_empty_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_empty_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_empty_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_empty_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_empty_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_empty_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_empty_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_empty_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_empty_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_empty_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_empty_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_empty_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_empty_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_empty_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_empty_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_empty_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_empty_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_empty_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_empty_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_empty_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_empty_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_empty_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_empty_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_empty_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_empty_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_empty_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_empty_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_empty_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_empty_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_empty_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_empty {\
UNSG32 uempty_ST_0i : 1;\
UNSG32 uempty_ST_1i : 1;\
UNSG32 uempty_ST_2i : 1;\
UNSG32 uempty_ST_3i : 1;\
UNSG32 uempty_ST_4i : 1;\
UNSG32 uempty_ST_5i : 1;\
UNSG32 uempty_ST_6i : 1;\
UNSG32 uempty_ST_7i : 1;\
UNSG32 uempty_ST_8i : 1;\
UNSG32 uempty_ST_9i : 1;\
UNSG32 uempty_ST_10i : 1;\
UNSG32 uempty_ST_11i : 1;\
UNSG32 uempty_ST_12i : 1;\
UNSG32 uempty_ST_13i : 1;\
UNSG32 uempty_ST_14i : 1;\
UNSG32 uempty_ST_15i : 1;\
UNSG32 uempty_ST_16i : 1;\
UNSG32 uempty_ST_17i : 1;\
UNSG32 uempty_ST_18i : 1;\
UNSG32 uempty_ST_19i : 1;\
UNSG32 uempty_ST_20i : 1;\
UNSG32 uempty_ST_21i : 1;\
UNSG32 uempty_ST_22i : 1;\
UNSG32 uempty_ST_23i : 1;\
UNSG32 uempty_ST_24i : 1;\
UNSG32 uempty_ST_25i : 1;\
UNSG32 uempty_ST_26i : 1;\
UNSG32 uempty_ST_27i : 1;\
UNSG32 uempty_ST_28i : 1;\
UNSG32 uempty_ST_29i : 1;\
UNSG32 uempty_ST_30i : 1;\
UNSG32 uempty_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_empty;
struct w32SemaHub_empty;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_full_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_full_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_full_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_full_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_full_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_full_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_full_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_full_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_full_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_full_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_full_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_full_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_full_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_full_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_full_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_full_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_full_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_full_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_full_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_full_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_full_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_full_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_full_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_full_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_full_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_full_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_full_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_full_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_full_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_full_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_full_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_full_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_full_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_full_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_full_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_full_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_full_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_full_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_full_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_full_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_full_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_full_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_full_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_full_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_full_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_full_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_full_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_full_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_full_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_full_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_full_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_full_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_full_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_full_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_full_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_full_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_full_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_full_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_full_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_full_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_full_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_full_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_full_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_full_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_full_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_full_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_full_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_full_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_full_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_full_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_full_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_full_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_full_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_full_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_full_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_full_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_full_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_full_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_full_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_full_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_full_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_full_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_full_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_full_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_full_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_full_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_full_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_full_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_full_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_full_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_full_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_full_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_full_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_full_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_full_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_full_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_full_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_full_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_full_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_full_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_full_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_full_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_full_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_full_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_full_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_full_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_full_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_full_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_full_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_full_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_full_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_full_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_full_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_full_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_full_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_full_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_full_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_full_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_full_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_full_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_full_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_full_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_full_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_full_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_full_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_full_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_full_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_full_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_full {\
UNSG32 ufull_ST_0i : 1;\
UNSG32 ufull_ST_1i : 1;\
UNSG32 ufull_ST_2i : 1;\
UNSG32 ufull_ST_3i : 1;\
UNSG32 ufull_ST_4i : 1;\
UNSG32 ufull_ST_5i : 1;\
UNSG32 ufull_ST_6i : 1;\
UNSG32 ufull_ST_7i : 1;\
UNSG32 ufull_ST_8i : 1;\
UNSG32 ufull_ST_9i : 1;\
UNSG32 ufull_ST_10i : 1;\
UNSG32 ufull_ST_11i : 1;\
UNSG32 ufull_ST_12i : 1;\
UNSG32 ufull_ST_13i : 1;\
UNSG32 ufull_ST_14i : 1;\
UNSG32 ufull_ST_15i : 1;\
UNSG32 ufull_ST_16i : 1;\
UNSG32 ufull_ST_17i : 1;\
UNSG32 ufull_ST_18i : 1;\
UNSG32 ufull_ST_19i : 1;\
UNSG32 ufull_ST_20i : 1;\
UNSG32 ufull_ST_21i : 1;\
UNSG32 ufull_ST_22i : 1;\
UNSG32 ufull_ST_23i : 1;\
UNSG32 ufull_ST_24i : 1;\
UNSG32 ufull_ST_25i : 1;\
UNSG32 ufull_ST_26i : 1;\
UNSG32 ufull_ST_27i : 1;\
UNSG32 ufull_ST_28i : 1;\
UNSG32 ufull_ST_29i : 1;\
UNSG32 ufull_ST_30i : 1;\
UNSG32 ufull_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_full;
struct w32SemaHub_full;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_almostEmpty_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_almostEmpty_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_almostEmpty_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostEmpty_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostEmpty_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_almostEmpty_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_almostEmpty_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostEmpty_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostEmpty_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_almostEmpty_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_almostEmpty_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostEmpty_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostEmpty_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_almostEmpty_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_almostEmpty_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostEmpty_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostEmpty_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_almostEmpty_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_almostEmpty_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostEmpty_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostEmpty_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_almostEmpty_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_almostEmpty_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostEmpty_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostEmpty_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_almostEmpty_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_almostEmpty_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostEmpty_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostEmpty_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_almostEmpty_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_almostEmpty_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostEmpty_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostEmpty_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_almostEmpty_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_almostEmpty_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostEmpty_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostEmpty_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_almostEmpty_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_almostEmpty_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostEmpty_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostEmpty_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_almostEmpty_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_almostEmpty_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostEmpty_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostEmpty_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_almostEmpty_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_almostEmpty_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostEmpty_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostEmpty_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_almostEmpty_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_almostEmpty_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostEmpty_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostEmpty_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_almostEmpty_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_almostEmpty_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostEmpty_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostEmpty_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_almostEmpty_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_almostEmpty_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostEmpty_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostEmpty_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_almostEmpty_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_almostEmpty_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostEmpty_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_almostEmpty_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_almostEmpty_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_almostEmpty_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostEmpty_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostEmpty_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_almostEmpty_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_almostEmpty_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostEmpty_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostEmpty_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_almostEmpty_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_almostEmpty_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostEmpty_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostEmpty_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_almostEmpty_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_almostEmpty_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostEmpty_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostEmpty_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_almostEmpty_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_almostEmpty_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostEmpty_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostEmpty_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_almostEmpty_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_almostEmpty_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostEmpty_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostEmpty_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_almostEmpty_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_almostEmpty_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostEmpty_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostEmpty_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_almostEmpty_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_almostEmpty_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostEmpty_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostEmpty_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_almostEmpty_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_almostEmpty_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostEmpty_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostEmpty_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_almostEmpty_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_almostEmpty_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostEmpty_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostEmpty_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_almostEmpty_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_almostEmpty_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostEmpty_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostEmpty_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_almostEmpty_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_almostEmpty_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostEmpty_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostEmpty_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_almostEmpty_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_almostEmpty_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostEmpty_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostEmpty_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_almostEmpty_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_almostEmpty_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostEmpty_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostEmpty_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_almostEmpty_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_almostEmpty_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostEmpty_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostEmpty_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_almostEmpty_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_almostEmpty_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostEmpty_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_almostEmpty {\
UNSG32 ualmostEmpty_ST_0i : 1;\
UNSG32 ualmostEmpty_ST_1i : 1;\
UNSG32 ualmostEmpty_ST_2i : 1;\
UNSG32 ualmostEmpty_ST_3i : 1;\
UNSG32 ualmostEmpty_ST_4i : 1;\
UNSG32 ualmostEmpty_ST_5i : 1;\
UNSG32 ualmostEmpty_ST_6i : 1;\
UNSG32 ualmostEmpty_ST_7i : 1;\
UNSG32 ualmostEmpty_ST_8i : 1;\
UNSG32 ualmostEmpty_ST_9i : 1;\
UNSG32 ualmostEmpty_ST_10i : 1;\
UNSG32 ualmostEmpty_ST_11i : 1;\
UNSG32 ualmostEmpty_ST_12i : 1;\
UNSG32 ualmostEmpty_ST_13i : 1;\
UNSG32 ualmostEmpty_ST_14i : 1;\
UNSG32 ualmostEmpty_ST_15i : 1;\
UNSG32 ualmostEmpty_ST_16i : 1;\
UNSG32 ualmostEmpty_ST_17i : 1;\
UNSG32 ualmostEmpty_ST_18i : 1;\
UNSG32 ualmostEmpty_ST_19i : 1;\
UNSG32 ualmostEmpty_ST_20i : 1;\
UNSG32 ualmostEmpty_ST_21i : 1;\
UNSG32 ualmostEmpty_ST_22i : 1;\
UNSG32 ualmostEmpty_ST_23i : 1;\
UNSG32 ualmostEmpty_ST_24i : 1;\
UNSG32 ualmostEmpty_ST_25i : 1;\
UNSG32 ualmostEmpty_ST_26i : 1;\
UNSG32 ualmostEmpty_ST_27i : 1;\
UNSG32 ualmostEmpty_ST_28i : 1;\
UNSG32 ualmostEmpty_ST_29i : 1;\
UNSG32 ualmostEmpty_ST_30i : 1;\
UNSG32 ualmostEmpty_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_almostEmpty;
struct w32SemaHub_almostEmpty;
};
///////////////////////////////////////////////////////////
#define GET32SemaHub_almostFull_ST_0i(r32) _BFGET_(r32, 0, 0)
#define SET32SemaHub_almostFull_ST_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SemaHub_almostFull_ST_0i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostFull_ST_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostFull_ST_1i(r32) _BFGET_(r32, 1, 1)
#define SET32SemaHub_almostFull_ST_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16SemaHub_almostFull_ST_1i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostFull_ST_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostFull_ST_2i(r32) _BFGET_(r32, 2, 2)
#define SET32SemaHub_almostFull_ST_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16SemaHub_almostFull_ST_2i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostFull_ST_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostFull_ST_3i(r32) _BFGET_(r32, 3, 3)
#define SET32SemaHub_almostFull_ST_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16SemaHub_almostFull_ST_3i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostFull_ST_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostFull_ST_4i(r32) _BFGET_(r32, 4, 4)
#define SET32SemaHub_almostFull_ST_4i(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16SemaHub_almostFull_ST_4i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostFull_ST_4i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostFull_ST_5i(r32) _BFGET_(r32, 5, 5)
#define SET32SemaHub_almostFull_ST_5i(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16SemaHub_almostFull_ST_5i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostFull_ST_5i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostFull_ST_6i(r32) _BFGET_(r32, 6, 6)
#define SET32SemaHub_almostFull_ST_6i(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16SemaHub_almostFull_ST_6i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostFull_ST_6i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostFull_ST_7i(r32) _BFGET_(r32, 7, 7)
#define SET32SemaHub_almostFull_ST_7i(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16SemaHub_almostFull_ST_7i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostFull_ST_7i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostFull_ST_8i(r32) _BFGET_(r32, 8, 8)
#define SET32SemaHub_almostFull_ST_8i(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16SemaHub_almostFull_ST_8i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostFull_ST_8i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostFull_ST_9i(r32) _BFGET_(r32, 9, 9)
#define SET32SemaHub_almostFull_ST_9i(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16SemaHub_almostFull_ST_9i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostFull_ST_9i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostFull_ST_10i(r32) _BFGET_(r32,10,10)
#define SET32SemaHub_almostFull_ST_10i(r32,v) _BFSET_(r32,10,10,v)
#define GET16SemaHub_almostFull_ST_10i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostFull_ST_10i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostFull_ST_11i(r32) _BFGET_(r32,11,11)
#define SET32SemaHub_almostFull_ST_11i(r32,v) _BFSET_(r32,11,11,v)
#define GET16SemaHub_almostFull_ST_11i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostFull_ST_11i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostFull_ST_12i(r32) _BFGET_(r32,12,12)
#define SET32SemaHub_almostFull_ST_12i(r32,v) _BFSET_(r32,12,12,v)
#define GET16SemaHub_almostFull_ST_12i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostFull_ST_12i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostFull_ST_13i(r32) _BFGET_(r32,13,13)
#define SET32SemaHub_almostFull_ST_13i(r32,v) _BFSET_(r32,13,13,v)
#define GET16SemaHub_almostFull_ST_13i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostFull_ST_13i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostFull_ST_14i(r32) _BFGET_(r32,14,14)
#define SET32SemaHub_almostFull_ST_14i(r32,v) _BFSET_(r32,14,14,v)
#define GET16SemaHub_almostFull_ST_14i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostFull_ST_14i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostFull_ST_15i(r32) _BFGET_(r32,15,15)
#define SET32SemaHub_almostFull_ST_15i(r32,v) _BFSET_(r32,15,15,v)
#define GET16SemaHub_almostFull_ST_15i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostFull_ST_15i(r16,v) _BFSET_(r16,15,15,v)
#define GET32SemaHub_almostFull_ST_16i(r32) _BFGET_(r32,16,16)
#define SET32SemaHub_almostFull_ST_16i(r32,v) _BFSET_(r32,16,16,v)
#define GET16SemaHub_almostFull_ST_16i(r16) _BFGET_(r16, 0, 0)
#define SET16SemaHub_almostFull_ST_16i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SemaHub_almostFull_ST_17i(r32) _BFGET_(r32,17,17)
#define SET32SemaHub_almostFull_ST_17i(r32,v) _BFSET_(r32,17,17,v)
#define GET16SemaHub_almostFull_ST_17i(r16) _BFGET_(r16, 1, 1)
#define SET16SemaHub_almostFull_ST_17i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32SemaHub_almostFull_ST_18i(r32) _BFGET_(r32,18,18)
#define SET32SemaHub_almostFull_ST_18i(r32,v) _BFSET_(r32,18,18,v)
#define GET16SemaHub_almostFull_ST_18i(r16) _BFGET_(r16, 2, 2)
#define SET16SemaHub_almostFull_ST_18i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32SemaHub_almostFull_ST_19i(r32) _BFGET_(r32,19,19)
#define SET32SemaHub_almostFull_ST_19i(r32,v) _BFSET_(r32,19,19,v)
#define GET16SemaHub_almostFull_ST_19i(r16) _BFGET_(r16, 3, 3)
#define SET16SemaHub_almostFull_ST_19i(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32SemaHub_almostFull_ST_20i(r32) _BFGET_(r32,20,20)
#define SET32SemaHub_almostFull_ST_20i(r32,v) _BFSET_(r32,20,20,v)
#define GET16SemaHub_almostFull_ST_20i(r16) _BFGET_(r16, 4, 4)
#define SET16SemaHub_almostFull_ST_20i(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32SemaHub_almostFull_ST_21i(r32) _BFGET_(r32,21,21)
#define SET32SemaHub_almostFull_ST_21i(r32,v) _BFSET_(r32,21,21,v)
#define GET16SemaHub_almostFull_ST_21i(r16) _BFGET_(r16, 5, 5)
#define SET16SemaHub_almostFull_ST_21i(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32SemaHub_almostFull_ST_22i(r32) _BFGET_(r32,22,22)
#define SET32SemaHub_almostFull_ST_22i(r32,v) _BFSET_(r32,22,22,v)
#define GET16SemaHub_almostFull_ST_22i(r16) _BFGET_(r16, 6, 6)
#define SET16SemaHub_almostFull_ST_22i(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32SemaHub_almostFull_ST_23i(r32) _BFGET_(r32,23,23)
#define SET32SemaHub_almostFull_ST_23i(r32,v) _BFSET_(r32,23,23,v)
#define GET16SemaHub_almostFull_ST_23i(r16) _BFGET_(r16, 7, 7)
#define SET16SemaHub_almostFull_ST_23i(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32SemaHub_almostFull_ST_24i(r32) _BFGET_(r32,24,24)
#define SET32SemaHub_almostFull_ST_24i(r32,v) _BFSET_(r32,24,24,v)
#define GET16SemaHub_almostFull_ST_24i(r16) _BFGET_(r16, 8, 8)
#define SET16SemaHub_almostFull_ST_24i(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32SemaHub_almostFull_ST_25i(r32) _BFGET_(r32,25,25)
#define SET32SemaHub_almostFull_ST_25i(r32,v) _BFSET_(r32,25,25,v)
#define GET16SemaHub_almostFull_ST_25i(r16) _BFGET_(r16, 9, 9)
#define SET16SemaHub_almostFull_ST_25i(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32SemaHub_almostFull_ST_26i(r32) _BFGET_(r32,26,26)
#define SET32SemaHub_almostFull_ST_26i(r32,v) _BFSET_(r32,26,26,v)
#define GET16SemaHub_almostFull_ST_26i(r16) _BFGET_(r16,10,10)
#define SET16SemaHub_almostFull_ST_26i(r16,v) _BFSET_(r16,10,10,v)
#define GET32SemaHub_almostFull_ST_27i(r32) _BFGET_(r32,27,27)
#define SET32SemaHub_almostFull_ST_27i(r32,v) _BFSET_(r32,27,27,v)
#define GET16SemaHub_almostFull_ST_27i(r16) _BFGET_(r16,11,11)
#define SET16SemaHub_almostFull_ST_27i(r16,v) _BFSET_(r16,11,11,v)
#define GET32SemaHub_almostFull_ST_28i(r32) _BFGET_(r32,28,28)
#define SET32SemaHub_almostFull_ST_28i(r32,v) _BFSET_(r32,28,28,v)
#define GET16SemaHub_almostFull_ST_28i(r16) _BFGET_(r16,12,12)
#define SET16SemaHub_almostFull_ST_28i(r16,v) _BFSET_(r16,12,12,v)
#define GET32SemaHub_almostFull_ST_29i(r32) _BFGET_(r32,29,29)
#define SET32SemaHub_almostFull_ST_29i(r32,v) _BFSET_(r32,29,29,v)
#define GET16SemaHub_almostFull_ST_29i(r16) _BFGET_(r16,13,13)
#define SET16SemaHub_almostFull_ST_29i(r16,v) _BFSET_(r16,13,13,v)
#define GET32SemaHub_almostFull_ST_30i(r32) _BFGET_(r32,30,30)
#define SET32SemaHub_almostFull_ST_30i(r32,v) _BFSET_(r32,30,30,v)
#define GET16SemaHub_almostFull_ST_30i(r16) _BFGET_(r16,14,14)
#define SET16SemaHub_almostFull_ST_30i(r16,v) _BFSET_(r16,14,14,v)
#define GET32SemaHub_almostFull_ST_31i(r32) _BFGET_(r32,31,31)
#define SET32SemaHub_almostFull_ST_31i(r32,v) _BFSET_(r32,31,31,v)
#define GET16SemaHub_almostFull_ST_31i(r16) _BFGET_(r16,15,15)
#define SET16SemaHub_almostFull_ST_31i(r16,v) _BFSET_(r16,15,15,v)
#define w32SemaHub_almostFull {\
UNSG32 ualmostFull_ST_0i : 1;\
UNSG32 ualmostFull_ST_1i : 1;\
UNSG32 ualmostFull_ST_2i : 1;\
UNSG32 ualmostFull_ST_3i : 1;\
UNSG32 ualmostFull_ST_4i : 1;\
UNSG32 ualmostFull_ST_5i : 1;\
UNSG32 ualmostFull_ST_6i : 1;\
UNSG32 ualmostFull_ST_7i : 1;\
UNSG32 ualmostFull_ST_8i : 1;\
UNSG32 ualmostFull_ST_9i : 1;\
UNSG32 ualmostFull_ST_10i : 1;\
UNSG32 ualmostFull_ST_11i : 1;\
UNSG32 ualmostFull_ST_12i : 1;\
UNSG32 ualmostFull_ST_13i : 1;\
UNSG32 ualmostFull_ST_14i : 1;\
UNSG32 ualmostFull_ST_15i : 1;\
UNSG32 ualmostFull_ST_16i : 1;\
UNSG32 ualmostFull_ST_17i : 1;\
UNSG32 ualmostFull_ST_18i : 1;\
UNSG32 ualmostFull_ST_19i : 1;\
UNSG32 ualmostFull_ST_20i : 1;\
UNSG32 ualmostFull_ST_21i : 1;\
UNSG32 ualmostFull_ST_22i : 1;\
UNSG32 ualmostFull_ST_23i : 1;\
UNSG32 ualmostFull_ST_24i : 1;\
UNSG32 ualmostFull_ST_25i : 1;\
UNSG32 ualmostFull_ST_26i : 1;\
UNSG32 ualmostFull_ST_27i : 1;\
UNSG32 ualmostFull_ST_28i : 1;\
UNSG32 ualmostFull_ST_29i : 1;\
UNSG32 ualmostFull_ST_30i : 1;\
UNSG32 ualmostFull_ST_31i : 1;\
}
union { UNSG32 u32SemaHub_almostFull;
struct w32SemaHub_almostFull;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx398 [104];
///////////////////////////////////////////////////////////
} SIE_SemaHub;
typedef union T32SemaHub_PUSH
{ UNSG32 u32;
struct w32SemaHub_PUSH;
} T32SemaHub_PUSH;
typedef union T32SemaHub_POP
{ UNSG32 u32;
struct w32SemaHub_POP;
} T32SemaHub_POP;
typedef union T32SemaHub_empty
{ UNSG32 u32;
struct w32SemaHub_empty;
} T32SemaHub_empty;
typedef union T32SemaHub_full
{ UNSG32 u32;
struct w32SemaHub_full;
} T32SemaHub_full;
typedef union T32SemaHub_almostEmpty
{ UNSG32 u32;
struct w32SemaHub_almostEmpty;
} T32SemaHub_almostEmpty;
typedef union T32SemaHub_almostFull
{ UNSG32 u32;
struct w32SemaHub_almostFull;
} T32SemaHub_almostFull;
///////////////////////////////////////////////////////////
typedef union TSemaHub_PUSH
{ UNSG32 u32[1];
struct {
struct w32SemaHub_PUSH;
};
} TSemaHub_PUSH;
typedef union TSemaHub_POP
{ UNSG32 u32[1];
struct {
struct w32SemaHub_POP;
};
} TSemaHub_POP;
typedef union TSemaHub_empty
{ UNSG32 u32[1];
struct {
struct w32SemaHub_empty;
};
} TSemaHub_empty;
typedef union TSemaHub_full
{ UNSG32 u32[1];
struct {
struct w32SemaHub_full;
};
} TSemaHub_full;
typedef union TSemaHub_almostEmpty
{ UNSG32 u32[1];
struct {
struct w32SemaHub_almostEmpty;
};
} TSemaHub_almostEmpty;
typedef union TSemaHub_almostFull
{ UNSG32 u32[1];
struct {
struct w32SemaHub_almostFull;
};
} TSemaHub_almostFull;
///////////////////////////////////////////////////////////
SIGN32 SemaHub_drvrd(SIE_SemaHub *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SemaHub_drvwr(SIE_SemaHub *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SemaHub_reset(SIE_SemaHub *p);
SIGN32 SemaHub_cmp (SIE_SemaHub *p, SIE_SemaHub *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SemaHub_check(p,pie,pfx,hLOG) SemaHub_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SemaHub_print(p, pfx,hLOG) SemaHub_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SemaHub
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FiFo biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (W-)
/// %unsigned 20 BASE
/// ###
/// * Base address (byte-address) of a FIFO in the shared SRAM. A channel's read/write pointers will be added to this “BASE” to get exact location of shared SRAM.
/// * Note: aligned with base SRAM data bus.
/// * For example, if SRAM data is 64-bit, then base[2:0] should be 3'b0;
/// ###
/// %% 12 # Stuffing bits...
/// @ 0x00004 START (W-)
/// %unsigned 1 EN 0x0
/// ###
/// * Write 1 to this register will enable this channel, or 0 to this register will disable this channel.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00008 CLEAR (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to clear FIFO pointers to 0.
/// * Note :
/// * CPU should make sure to disabled the channel (write 0 to START_EN register) before issue clear command, otherwise the clear request will be ignored.
/// * Do not restart the channel when clear operation is in process.
/// * HW will make sure there is no pending transactions before execute the clear operation.
/// * Associated semaphore cell needs reset separately by re-write “CFG_DEPTH”
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C FLUSH (W-)
/// %unsigned 1 EN
/// ###
/// * No support for now
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 16B, bits: 23b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FiFo
#define h_FiFo (){}
#define RA_FiFo_CFG 0x0000
#define BA_FiFo_CFG_BASE 0x0000
#define B16FiFo_CFG_BASE 0x0000
#define LSb32FiFo_CFG_BASE 0
#define LSb16FiFo_CFG_BASE 0
#define bFiFo_CFG_BASE 20
#define MSK32FiFo_CFG_BASE 0x000FFFFF
///////////////////////////////////////////////////////////
#define RA_FiFo_START 0x0004
#define BA_FiFo_START_EN 0x0004
#define B16FiFo_START_EN 0x0004
#define LSb32FiFo_START_EN 0
#define LSb16FiFo_START_EN 0
#define bFiFo_START_EN 1
#define MSK32FiFo_START_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_FiFo_CLEAR 0x0008
#define BA_FiFo_CLEAR_EN 0x0008
#define B16FiFo_CLEAR_EN 0x0008
#define LSb32FiFo_CLEAR_EN 0
#define LSb16FiFo_CLEAR_EN 0
#define bFiFo_CLEAR_EN 1
#define MSK32FiFo_CLEAR_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_FiFo_FLUSH 0x000C
#define BA_FiFo_FLUSH_EN 0x000C
#define B16FiFo_FLUSH_EN 0x000C
#define LSb32FiFo_FLUSH_EN 0
#define LSb16FiFo_FLUSH_EN 0
#define bFiFo_FLUSH_EN 1
#define MSK32FiFo_FLUSH_EN 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_FiFo {
///////////////////////////////////////////////////////////
#define GET32FiFo_CFG_BASE(r32) _BFGET_(r32,19, 0)
#define SET32FiFo_CFG_BASE(r32,v) _BFSET_(r32,19, 0,v)
#define w32FiFo_CFG {\
UNSG32 uCFG_BASE : 20;\
UNSG32 RSVDx0_b20 : 12;\
}
union { UNSG32 u32FiFo_CFG;
struct w32FiFo_CFG;
};
///////////////////////////////////////////////////////////
#define GET32FiFo_START_EN(r32) _BFGET_(r32, 0, 0)
#define SET32FiFo_START_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FiFo_START_EN(r16) _BFGET_(r16, 0, 0)
#define SET16FiFo_START_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FiFo_START {\
UNSG32 uSTART_EN : 1;\
UNSG32 RSVDx4_b1 : 31;\
}
union { UNSG32 u32FiFo_START;
struct w32FiFo_START;
};
///////////////////////////////////////////////////////////
#define GET32FiFo_CLEAR_EN(r32) _BFGET_(r32, 0, 0)
#define SET32FiFo_CLEAR_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FiFo_CLEAR_EN(r16) _BFGET_(r16, 0, 0)
#define SET16FiFo_CLEAR_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FiFo_CLEAR {\
UNSG32 uCLEAR_EN : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32FiFo_CLEAR;
struct w32FiFo_CLEAR;
};
///////////////////////////////////////////////////////////
#define GET32FiFo_FLUSH_EN(r32) _BFGET_(r32, 0, 0)
#define SET32FiFo_FLUSH_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FiFo_FLUSH_EN(r16) _BFGET_(r16, 0, 0)
#define SET16FiFo_FLUSH_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FiFo_FLUSH {\
UNSG32 uFLUSH_EN : 1;\
UNSG32 RSVDxC_b1 : 31;\
}
union { UNSG32 u32FiFo_FLUSH;
struct w32FiFo_FLUSH;
};
///////////////////////////////////////////////////////////
} SIE_FiFo;
typedef union T32FiFo_CFG
{ UNSG32 u32;
struct w32FiFo_CFG;
} T32FiFo_CFG;
typedef union T32FiFo_START
{ UNSG32 u32;
struct w32FiFo_START;
} T32FiFo_START;
typedef union T32FiFo_CLEAR
{ UNSG32 u32;
struct w32FiFo_CLEAR;
} T32FiFo_CLEAR;
typedef union T32FiFo_FLUSH
{ UNSG32 u32;
struct w32FiFo_FLUSH;
} T32FiFo_FLUSH;
///////////////////////////////////////////////////////////
typedef union TFiFo_CFG
{ UNSG32 u32[1];
struct {
struct w32FiFo_CFG;
};
} TFiFo_CFG;
typedef union TFiFo_START
{ UNSG32 u32[1];
struct {
struct w32FiFo_START;
};
} TFiFo_START;
typedef union TFiFo_CLEAR
{ UNSG32 u32[1];
struct {
struct w32FiFo_CLEAR;
};
} TFiFo_CLEAR;
typedef union TFiFo_FLUSH
{ UNSG32 u32[1];
struct {
struct w32FiFo_FLUSH;
};
} TFiFo_FLUSH;
///////////////////////////////////////////////////////////
SIGN32 FiFo_drvrd(SIE_FiFo *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FiFo_drvwr(SIE_FiFo *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FiFo_reset(SIE_FiFo *p);
SIGN32 FiFo_cmp (SIE_FiFo *p, SIE_FiFo *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FiFo_check(p,pie,pfx,hLOG) FiFo_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FiFo_print(p, pfx,hLOG) FiFo_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FiFo
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE HBO biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 FiFoCtl
/// $SemaHub FiFoCtl REG
/// @ 0x00400 ARR (P)
/// # 0x00400 FiFo
/// $FiFo FiFo REG [32]
/// ###
/// * Up-to 32 FIFO channels
/// * FiFo[N] is controlled by HBO.FiFoCtl.Channel[N]
/// ###
/// @ 0x00600 BUSY (R-)
/// %unsigned 32 ST
/// ###
/// * Per channel status
/// * Indicate the clear operation status.
/// * 1: clear is in process.
/// * 0 : clear is done.
/// ###
/// @ 0x00604 (W-)
/// # # Stuffing bytes...
/// %% 2016
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 1792B, bits: 1920b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_HBO
#define h_HBO (){}
#define RA_HBO_FiFoCtl 0x0000
///////////////////////////////////////////////////////////
#define RA_HBO_ARR 0x0400
#define RA_HBO_FiFo 0x0400
///////////////////////////////////////////////////////////
#define RA_HBO_BUSY 0x0600
#define BA_HBO_BUSY_ST 0x0600
#define B16HBO_BUSY_ST 0x0600
#define LSb32HBO_BUSY_ST 0
#define LSb16HBO_BUSY_ST 0
#define bHBO_BUSY_ST 32
#define MSK32HBO_BUSY_ST 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_HBO {
///////////////////////////////////////////////////////////
SIE_SemaHub ie_FiFoCtl;
///////////////////////////////////////////////////////////
SIE_FiFo ie_FiFo[32];
///////////////////////////////////////////////////////////
#define GET32HBO_BUSY_ST(r32) _BFGET_(r32,31, 0)
#define SET32HBO_BUSY_ST(r32,v) _BFSET_(r32,31, 0,v)
#define w32HBO_BUSY {\
UNSG32 uBUSY_ST : 32;\
}
union { UNSG32 u32HBO_BUSY;
struct w32HBO_BUSY;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx604 [252];
///////////////////////////////////////////////////////////
} SIE_HBO;
typedef union T32HBO_BUSY
{ UNSG32 u32;
struct w32HBO_BUSY;
} T32HBO_BUSY;
///////////////////////////////////////////////////////////
typedef union THBO_BUSY
{ UNSG32 u32[1];
struct {
struct w32HBO_BUSY;
};
} THBO_BUSY;
///////////////////////////////////////////////////////////
SIGN32 HBO_drvrd(SIE_HBO *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 HBO_drvwr(SIE_HBO *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void HBO_reset(SIE_HBO *p);
SIGN32 HBO_cmp (SIE_HBO *p, SIE_HBO *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define HBO_check(p,pie,pfx,hLOG) HBO_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define HBO_print(p, pfx,hLOG) HBO_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: HBO
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE LLDesFmt biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 mem (P)
/// %unsigned 16 size
/// ###
/// * The size of one piece of scattered memory.
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_LLDesFmt
#define h_LLDesFmt (){}
#define RA_LLDesFmt_mem 0x0000
#define BA_LLDesFmt_mem_size 0x0000
#define B16LLDesFmt_mem_size 0x0000
#define LSb32LLDesFmt_mem_size 0
#define LSb16LLDesFmt_mem_size 0
#define bLLDesFmt_mem_size 16
#define MSK32LLDesFmt_mem_size 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_LLDesFmt {
///////////////////////////////////////////////////////////
#define GET32LLDesFmt_mem_size(r32) _BFGET_(r32,15, 0)
#define SET32LLDesFmt_mem_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16LLDesFmt_mem_size(r16) _BFGET_(r16,15, 0)
#define SET16LLDesFmt_mem_size(r16,v) _BFSET_(r16,15, 0,v)
#define w32LLDesFmt_mem {\
UNSG32 umem_size : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32LLDesFmt_mem;
struct w32LLDesFmt_mem;
};
///////////////////////////////////////////////////////////
} SIE_LLDesFmt;
typedef union T32LLDesFmt_mem
{ UNSG32 u32;
struct w32LLDesFmt_mem;
} T32LLDesFmt_mem;
///////////////////////////////////////////////////////////
typedef union TLLDesFmt_mem
{ UNSG32 u32[1];
struct {
struct w32LLDesFmt_mem;
};
} TLLDesFmt_mem;
///////////////////////////////////////////////////////////
SIGN32 LLDesFmt_drvrd(SIE_LLDesFmt *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 LLDesFmt_drvwr(SIE_LLDesFmt *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void LLDesFmt_reset(SIE_LLDesFmt *p);
SIGN32 LLDesFmt_cmp (SIE_LLDesFmt *p, SIE_LLDesFmt *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define LLDesFmt_check(p,pie,pfx,hLOG) LLDesFmt_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define LLDesFmt_print(p, pfx,hLOG) LLDesFmt_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: LLDesFmt
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubCmdHDR (4,4)
/// ###
/// * 32-bit dHub command header
/// * [0:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 DESC (W-)
/// %unsigned 16 size
/// ###
/// * amount of data to be transferred, in bytes or MTU.
/// * Size of 0 is forbidden.
/// ###
/// %unsigned 1 sizeMTU
/// ###
/// * 0: size given in bytes;
/// * 1: size given in MTU (see dHubChCtl.CFG.MTU for MTU size definition)
/// ###
/// %unsigned 1 semOpMTU
/// ###
/// * 0: semaphore operations applied on dHubCmd level
/// * 1: semaphore operations applied on MTU level
/// ###
/// %unsigned 5 chkSemId
/// ###
/// * ID of semaphore to check before cmd / MTU;
/// * 0 indicates semaphore check is disabled
/// ###
/// %unsigned 5 updSemId
/// ###
/// * ID of semaphore to update after cmd / MTU;
/// * 0 indicates semaphore update is disabled
/// ###
/// %unsigned 1 interrupt
/// ###
/// * 1: raise interrupt upon command finish
/// * end dHubCmdHDR
/// ###
/// %% 3 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 29b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubCmdHDR
#define h_dHubCmdHDR (){}
#define RA_dHubCmdHDR_DESC 0x0000
#define BA_dHubCmdHDR_DESC_size 0x0000
#define B16dHubCmdHDR_DESC_size 0x0000
#define LSb32dHubCmdHDR_DESC_size 0
#define LSb16dHubCmdHDR_DESC_size 0
#define bdHubCmdHDR_DESC_size 16
#define MSK32dHubCmdHDR_DESC_size 0x0000FFFF
#define BA_dHubCmdHDR_DESC_sizeMTU 0x0002
#define B16dHubCmdHDR_DESC_sizeMTU 0x0002
#define LSb32dHubCmdHDR_DESC_sizeMTU 16
#define LSb16dHubCmdHDR_DESC_sizeMTU 0
#define bdHubCmdHDR_DESC_sizeMTU 1
#define MSK32dHubCmdHDR_DESC_sizeMTU 0x00010000
#define BA_dHubCmdHDR_DESC_semOpMTU 0x0002
#define B16dHubCmdHDR_DESC_semOpMTU 0x0002
#define LSb32dHubCmdHDR_DESC_semOpMTU 17
#define LSb16dHubCmdHDR_DESC_semOpMTU 1
#define bdHubCmdHDR_DESC_semOpMTU 1
#define MSK32dHubCmdHDR_DESC_semOpMTU 0x00020000
#define BA_dHubCmdHDR_DESC_chkSemId 0x0002
#define B16dHubCmdHDR_DESC_chkSemId 0x0002
#define LSb32dHubCmdHDR_DESC_chkSemId 18
#define LSb16dHubCmdHDR_DESC_chkSemId 2
#define bdHubCmdHDR_DESC_chkSemId 5
#define MSK32dHubCmdHDR_DESC_chkSemId 0x007C0000
#define BA_dHubCmdHDR_DESC_updSemId 0x0002
#define B16dHubCmdHDR_DESC_updSemId 0x0002
#define LSb32dHubCmdHDR_DESC_updSemId 23
#define LSb16dHubCmdHDR_DESC_updSemId 7
#define bdHubCmdHDR_DESC_updSemId 5
#define MSK32dHubCmdHDR_DESC_updSemId 0x0F800000
#define BA_dHubCmdHDR_DESC_interrupt 0x0003
#define B16dHubCmdHDR_DESC_interrupt 0x0002
#define LSb32dHubCmdHDR_DESC_interrupt 28
#define LSb16dHubCmdHDR_DESC_interrupt 12
#define bdHubCmdHDR_DESC_interrupt 1
#define MSK32dHubCmdHDR_DESC_interrupt 0x10000000
///////////////////////////////////////////////////////////
typedef struct SIE_dHubCmdHDR {
///////////////////////////////////////////////////////////
#define GET32dHubCmdHDR_DESC_size(r32) _BFGET_(r32,15, 0)
#define SET32dHubCmdHDR_DESC_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubCmdHDR_DESC_size(r16) _BFGET_(r16,15, 0)
#define SET16dHubCmdHDR_DESC_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32dHubCmdHDR_DESC_sizeMTU(r32) _BFGET_(r32,16,16)
#define SET32dHubCmdHDR_DESC_sizeMTU(r32,v) _BFSET_(r32,16,16,v)
#define GET16dHubCmdHDR_DESC_sizeMTU(r16) _BFGET_(r16, 0, 0)
#define SET16dHubCmdHDR_DESC_sizeMTU(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32dHubCmdHDR_DESC_semOpMTU(r32) _BFGET_(r32,17,17)
#define SET32dHubCmdHDR_DESC_semOpMTU(r32,v) _BFSET_(r32,17,17,v)
#define GET16dHubCmdHDR_DESC_semOpMTU(r16) _BFGET_(r16, 1, 1)
#define SET16dHubCmdHDR_DESC_semOpMTU(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32dHubCmdHDR_DESC_chkSemId(r32) _BFGET_(r32,22,18)
#define SET32dHubCmdHDR_DESC_chkSemId(r32,v) _BFSET_(r32,22,18,v)
#define GET16dHubCmdHDR_DESC_chkSemId(r16) _BFGET_(r16, 6, 2)
#define SET16dHubCmdHDR_DESC_chkSemId(r16,v) _BFSET_(r16, 6, 2,v)
#define GET32dHubCmdHDR_DESC_updSemId(r32) _BFGET_(r32,27,23)
#define SET32dHubCmdHDR_DESC_updSemId(r32,v) _BFSET_(r32,27,23,v)
#define GET16dHubCmdHDR_DESC_updSemId(r16) _BFGET_(r16,11, 7)
#define SET16dHubCmdHDR_DESC_updSemId(r16,v) _BFSET_(r16,11, 7,v)
#define GET32dHubCmdHDR_DESC_interrupt(r32) _BFGET_(r32,28,28)
#define SET32dHubCmdHDR_DESC_interrupt(r32,v) _BFSET_(r32,28,28,v)
#define GET16dHubCmdHDR_DESC_interrupt(r16) _BFGET_(r16,12,12)
#define SET16dHubCmdHDR_DESC_interrupt(r16,v) _BFSET_(r16,12,12,v)
#define w32dHubCmdHDR_DESC {\
UNSG32 uDESC_size : 16;\
UNSG32 uDESC_sizeMTU : 1;\
UNSG32 uDESC_semOpMTU : 1;\
UNSG32 uDESC_chkSemId : 5;\
UNSG32 uDESC_updSemId : 5;\
UNSG32 uDESC_interrupt : 1;\
UNSG32 RSVDx0_b29 : 3;\
}
union { UNSG32 u32dHubCmdHDR_DESC;
struct w32dHubCmdHDR_DESC;
};
///////////////////////////////////////////////////////////
} SIE_dHubCmdHDR;
typedef union T32dHubCmdHDR_DESC
{ UNSG32 u32;
struct w32dHubCmdHDR_DESC;
} T32dHubCmdHDR_DESC;
///////////////////////////////////////////////////////////
typedef union TdHubCmdHDR_DESC
{ UNSG32 u32[1];
struct {
struct w32dHubCmdHDR_DESC;
};
} TdHubCmdHDR_DESC;
///////////////////////////////////////////////////////////
SIGN32 dHubCmdHDR_drvrd(SIE_dHubCmdHDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubCmdHDR_drvwr(SIE_dHubCmdHDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubCmdHDR_reset(SIE_dHubCmdHDR *p);
SIGN32 dHubCmdHDR_cmp (SIE_dHubCmdHDR *p, SIE_dHubCmdHDR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubCmdHDR_check(p,pie,pfx,hLOG) dHubCmdHDR_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubCmdHDR_print(p, pfx,hLOG) dHubCmdHDR_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubCmdHDR
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubCmd biu (4,4)
/// ###
/// * 64-bit dHub command issued by read/write masters
/// * [0:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 MEM (W-)
/// %unsigned 32 addr
/// ###
/// * DRAM data address, in bytes; not necessarily MTU aligned.
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// # 0x00004 HDR
/// $dHubCmdHDR HDR REG
/// ###
/// * end dHubCmd
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 61b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubCmd
#define h_dHubCmd (){}
#define RA_dHubCmd_MEM 0x0000
#define BA_dHubCmd_MEM_addr 0x0000
#define B16dHubCmd_MEM_addr 0x0000
#define LSb32dHubCmd_MEM_addr 0
#define LSb16dHubCmd_MEM_addr 0
#define bdHubCmd_MEM_addr 32
#define MSK32dHubCmd_MEM_addr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_dHubCmd_HDR 0x0004
///////////////////////////////////////////////////////////
typedef struct SIE_dHubCmd {
///////////////////////////////////////////////////////////
#define GET32dHubCmd_MEM_addr(r32) _BFGET_(r32,31, 0)
#define SET32dHubCmd_MEM_addr(r32,v) _BFSET_(r32,31, 0,v)
#define w32dHubCmd_MEM {\
UNSG32 uMEM_addr : 32;\
}
union { UNSG32 u32dHubCmd_MEM;
struct w32dHubCmd_MEM;
};
///////////////////////////////////////////////////////////
SIE_dHubCmdHDR ie_HDR;
///////////////////////////////////////////////////////////
} SIE_dHubCmd;
typedef union T32dHubCmd_MEM
{ UNSG32 u32;
struct w32dHubCmd_MEM;
} T32dHubCmd_MEM;
///////////////////////////////////////////////////////////
typedef union TdHubCmd_MEM
{ UNSG32 u32[1];
struct {
struct w32dHubCmd_MEM;
};
} TdHubCmd_MEM;
///////////////////////////////////////////////////////////
SIGN32 dHubCmd_drvrd(SIE_dHubCmd *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubCmd_drvwr(SIE_dHubCmd *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubCmd_reset(SIE_dHubCmd *p);
SIGN32 dHubCmd_cmp (SIE_dHubCmd *p, SIE_dHubCmd *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubCmd_check(p,pie,pfx,hLOG) dHubCmd_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubCmd_print(p, pfx,hLOG) dHubCmd_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubCmd
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubChannel biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (W-)
/// %unsigned 2 MTU
/// : 8byte 0x0
/// : 32byte 0x1
/// : 128byte 0x2
/// : 1024byte 0x3
/// ###
/// * Minimum transfer unit of the channel
/// ###
/// %unsigned 1 QoS
/// ###
/// * Write 1 to turn on QoS detection
/// ###
/// %unsigned 1 selfLoop
/// ###
/// * Write 1 to enable cmd looping support; 0 to turn off
/// ###
/// %unsigned 1 intrCtl 0x0
/// : cmdDone 0x0
/// : chIdle 0x1
/// ###
/// * 0 : default vlaue, the interrupt is triggered by the finish of the dHub command if the interrupt bit is defined in the dHub command.
/// * 1 : The interrupt is triggered if the dHub channel is idle ( no busy and no pending and the corresponding dHub command Q is empty).
/// ###
/// %unsigned 1 hScan 0x0
/// : rastScan 0x0
/// : invScan 0x1
/// ###
/// * This parameter will only apply to read channels.
/// * It will affect 1D dHub command for the channel.
/// * When scan is set to 1 (invScan), the data (beat) inside the dHub command will be fetched in the inverse order. ie. The data from the last address will come first and the data (beat) from the first address will come lastly.
/// ###
/// %unsigned 1 vScan 0x0
/// : rastScan 0x0
/// : invScan 0x1
/// ###
/// * This parameter will only apply to read channels.
/// * It will affect 2D channels.
/// * When scan is set to 1 (invScan),
/// * The last address line (1D command) will be fetched first, and the first address line will be fetched lastly.
/// ###
/// %% 25 # Stuffing bits...
/// @ 0x00004 START (W-)
/// %unsigned 1 EN 0x0
/// ###
/// * Write 1 to enable the channel; 0 to pause the channel
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00008 CLEAR (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to reset the channel controller state
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C FLUSH (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to start the data flushing process. Invalid for read (M2H) channels
/// * end dHubChannel
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 16B, bits: 10b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubChannel
#define h_dHubChannel (){}
#define RA_dHubChannel_CFG 0x0000
#define BA_dHubChannel_CFG_MTU 0x0000
#define B16dHubChannel_CFG_MTU 0x0000
#define LSb32dHubChannel_CFG_MTU 0
#define LSb16dHubChannel_CFG_MTU 0
#define bdHubChannel_CFG_MTU 2
#define MSK32dHubChannel_CFG_MTU 0x00000003
#define dHubChannel_CFG_MTU_8byte 0x0
#define dHubChannel_CFG_MTU_32byte 0x1
#define dHubChannel_CFG_MTU_128byte 0x2
#define dHubChannel_CFG_MTU_1024byte 0x3
#define BA_dHubChannel_CFG_QoS 0x0000
#define B16dHubChannel_CFG_QoS 0x0000
#define LSb32dHubChannel_CFG_QoS 2
#define LSb16dHubChannel_CFG_QoS 2
#define bdHubChannel_CFG_QoS 1
#define MSK32dHubChannel_CFG_QoS 0x00000004
#define BA_dHubChannel_CFG_selfLoop 0x0000
#define B16dHubChannel_CFG_selfLoop 0x0000
#define LSb32dHubChannel_CFG_selfLoop 3
#define LSb16dHubChannel_CFG_selfLoop 3
#define bdHubChannel_CFG_selfLoop 1
#define MSK32dHubChannel_CFG_selfLoop 0x00000008
#define BA_dHubChannel_CFG_intrCtl 0x0000
#define B16dHubChannel_CFG_intrCtl 0x0000
#define LSb32dHubChannel_CFG_intrCtl 4
#define LSb16dHubChannel_CFG_intrCtl 4
#define bdHubChannel_CFG_intrCtl 1
#define MSK32dHubChannel_CFG_intrCtl 0x00000010
#define dHubChannel_CFG_intrCtl_cmdDone 0x0
#define dHubChannel_CFG_intrCtl_chIdle 0x1
#define BA_dHubChannel_CFG_hScan 0x0000
#define B16dHubChannel_CFG_hScan 0x0000
#define LSb32dHubChannel_CFG_hScan 5
#define LSb16dHubChannel_CFG_hScan 5
#define bdHubChannel_CFG_hScan 1
#define MSK32dHubChannel_CFG_hScan 0x00000020
#define dHubChannel_CFG_hScan_rastScan 0x0
#define dHubChannel_CFG_hScan_invScan 0x1
#define BA_dHubChannel_CFG_vScan 0x0000
#define B16dHubChannel_CFG_vScan 0x0000
#define LSb32dHubChannel_CFG_vScan 6
#define LSb16dHubChannel_CFG_vScan 6
#define bdHubChannel_CFG_vScan 1
#define MSK32dHubChannel_CFG_vScan 0x00000040
#define dHubChannel_CFG_vScan_rastScan 0x0
#define dHubChannel_CFG_vScan_invScan 0x1
///////////////////////////////////////////////////////////
#define RA_dHubChannel_START 0x0004
#define BA_dHubChannel_START_EN 0x0004
#define B16dHubChannel_START_EN 0x0004
#define LSb32dHubChannel_START_EN 0
#define LSb16dHubChannel_START_EN 0
#define bdHubChannel_START_EN 1
#define MSK32dHubChannel_START_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubChannel_CLEAR 0x0008
#define BA_dHubChannel_CLEAR_EN 0x0008
#define B16dHubChannel_CLEAR_EN 0x0008
#define LSb32dHubChannel_CLEAR_EN 0
#define LSb16dHubChannel_CLEAR_EN 0
#define bdHubChannel_CLEAR_EN 1
#define MSK32dHubChannel_CLEAR_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubChannel_FLUSH 0x000C
#define BA_dHubChannel_FLUSH_EN 0x000C
#define B16dHubChannel_FLUSH_EN 0x000C
#define LSb32dHubChannel_FLUSH_EN 0
#define LSb16dHubChannel_FLUSH_EN 0
#define bdHubChannel_FLUSH_EN 1
#define MSK32dHubChannel_FLUSH_EN 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_dHubChannel {
///////////////////////////////////////////////////////////
#define GET32dHubChannel_CFG_MTU(r32) _BFGET_(r32, 1, 0)
#define SET32dHubChannel_CFG_MTU(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16dHubChannel_CFG_MTU(r16) _BFGET_(r16, 1, 0)
#define SET16dHubChannel_CFG_MTU(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32dHubChannel_CFG_QoS(r32) _BFGET_(r32, 2, 2)
#define SET32dHubChannel_CFG_QoS(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16dHubChannel_CFG_QoS(r16) _BFGET_(r16, 2, 2)
#define SET16dHubChannel_CFG_QoS(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32dHubChannel_CFG_selfLoop(r32) _BFGET_(r32, 3, 3)
#define SET32dHubChannel_CFG_selfLoop(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16dHubChannel_CFG_selfLoop(r16) _BFGET_(r16, 3, 3)
#define SET16dHubChannel_CFG_selfLoop(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32dHubChannel_CFG_intrCtl(r32) _BFGET_(r32, 4, 4)
#define SET32dHubChannel_CFG_intrCtl(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16dHubChannel_CFG_intrCtl(r16) _BFGET_(r16, 4, 4)
#define SET16dHubChannel_CFG_intrCtl(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32dHubChannel_CFG_hScan(r32) _BFGET_(r32, 5, 5)
#define SET32dHubChannel_CFG_hScan(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16dHubChannel_CFG_hScan(r16) _BFGET_(r16, 5, 5)
#define SET16dHubChannel_CFG_hScan(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32dHubChannel_CFG_vScan(r32) _BFGET_(r32, 6, 6)
#define SET32dHubChannel_CFG_vScan(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16dHubChannel_CFG_vScan(r16) _BFGET_(r16, 6, 6)
#define SET16dHubChannel_CFG_vScan(r16,v) _BFSET_(r16, 6, 6,v)
#define w32dHubChannel_CFG {\
UNSG32 uCFG_MTU : 2;\
UNSG32 uCFG_QoS : 1;\
UNSG32 uCFG_selfLoop : 1;\
UNSG32 uCFG_intrCtl : 1;\
UNSG32 uCFG_hScan : 1;\
UNSG32 uCFG_vScan : 1;\
UNSG32 RSVDx0_b7 : 25;\
}
union { UNSG32 u32dHubChannel_CFG;
struct w32dHubChannel_CFG;
};
///////////////////////////////////////////////////////////
#define GET32dHubChannel_START_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubChannel_START_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubChannel_START_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubChannel_START_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubChannel_START {\
UNSG32 uSTART_EN : 1;\
UNSG32 RSVDx4_b1 : 31;\
}
union { UNSG32 u32dHubChannel_START;
struct w32dHubChannel_START;
};
///////////////////////////////////////////////////////////
#define GET32dHubChannel_CLEAR_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubChannel_CLEAR_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubChannel_CLEAR_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubChannel_CLEAR_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubChannel_CLEAR {\
UNSG32 uCLEAR_EN : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32dHubChannel_CLEAR;
struct w32dHubChannel_CLEAR;
};
///////////////////////////////////////////////////////////
#define GET32dHubChannel_FLUSH_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubChannel_FLUSH_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubChannel_FLUSH_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubChannel_FLUSH_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubChannel_FLUSH {\
UNSG32 uFLUSH_EN : 1;\
UNSG32 RSVDxC_b1 : 31;\
}
union { UNSG32 u32dHubChannel_FLUSH;
struct w32dHubChannel_FLUSH;
};
///////////////////////////////////////////////////////////
} SIE_dHubChannel;
typedef union T32dHubChannel_CFG
{ UNSG32 u32;
struct w32dHubChannel_CFG;
} T32dHubChannel_CFG;
typedef union T32dHubChannel_START
{ UNSG32 u32;
struct w32dHubChannel_START;
} T32dHubChannel_START;
typedef union T32dHubChannel_CLEAR
{ UNSG32 u32;
struct w32dHubChannel_CLEAR;
} T32dHubChannel_CLEAR;
typedef union T32dHubChannel_FLUSH
{ UNSG32 u32;
struct w32dHubChannel_FLUSH;
} T32dHubChannel_FLUSH;
///////////////////////////////////////////////////////////
typedef union TdHubChannel_CFG
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_CFG;
};
} TdHubChannel_CFG;
typedef union TdHubChannel_START
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_START;
};
} TdHubChannel_START;
typedef union TdHubChannel_CLEAR
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_CLEAR;
};
} TdHubChannel_CLEAR;
typedef union TdHubChannel_FLUSH
{ UNSG32 u32[1];
struct {
struct w32dHubChannel_FLUSH;
};
} TdHubChannel_FLUSH;
///////////////////////////////////////////////////////////
SIGN32 dHubChannel_drvrd(SIE_dHubChannel *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubChannel_drvwr(SIE_dHubChannel *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubChannel_reset(SIE_dHubChannel *p);
SIGN32 dHubChannel_cmp (SIE_dHubChannel *p, SIE_dHubChannel *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubChannel_check(p,pie,pfx,hLOG) dHubChannel_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubChannel_print(p, pfx,hLOG) dHubChannel_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubChannel
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubReg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 SemaHub
/// $SemaHub SemaHub REG
/// ###
/// * For dHub internal interrupts, also provide semaphore service for external (all channels will be opened to external to access).
/// * Channel 0 is used for dHub.HBO interrupt.
/// * Channel N+1 is used for dHub.Channel[N] interrupt.
/// ###
/// @ 0x00400 (P)
/// # 0x00400 HBO
/// $HBO HBO REG
/// ###
/// * For dHub channels (command/data queues), also provide (unused) FIFO service for external.
/// * Channel 2N is used for dHub.Channel[N] command.
/// * Channel 2N+1 is used for dHub.Channel[N] data.
/// ###
/// @ 0x00B00 ARR (P)
/// # 0x00B00 channelCtl
/// $dHubChannel channelCtl REG [16]
/// ###
/// * Up-to 16 channels
/// ###
/// @ 0x00C00 BUSY (R-)
/// %unsigned 16 ST
/// ###
/// * Per channel status
/// * 0: no ongoing command is being processed, and no flushing is taking place
/// * 1: channel controller is busy
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00C04 PENDING (R-)
/// %unsigned 16 ST
/// ###
/// * Per channel status
/// * 0: Response queue is empty, meaning no outstanding AXI transactions
/// * 1: there exist some outstanding AXI transactions
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00C08 busRstEn (RW-)
/// %unsigned 1 reg 0x0
/// ###
/// * Write one to this register will trigger gate-keeper to take over the AXI bus.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00C0C busRstDone (R-)
/// %unsigned 1 reg 0x1
/// ###
/// * After gate-keeper take over the AXI bus, it will assert this bit once there is no outstanding transactions on AXI bus.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00C10 flowCtl (P)
/// %unsigned 8 rAlpha 0x0
/// %unsigned 8 wAlpha 0x0
/// ###
/// * Flow control parameter for read and write axi master.
/// * clkCnt=(alpha*bstLen)>>4.
/// * This # of clock cycles will be blocked for the axi master after an axi command with the burst length of “bstLen”.
/// * When set alpha to be 0, the master will never be blocked.
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00C14 axiCmdCol (P)
/// %unsigned 16 rCnt 0x0
/// %unsigned 16 wCnt 0x0
/// ###
/// * Axi command collection. The counter value indicate read/write do the command collection for # of clock cycles, start from the first command pushed to an empty command Q. Here are the conditions that will trigger the Axi master to send out command.
/// * Cmd Q full or the counter count down to “0” from the programmed value.
/// * Set the counter to 0 will disable the command collection.
/// * end dHubReg
/// ###
/// @ 0x00C18 (W-)
/// # # Stuffing bytes...
/// %% 1856
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 3328B, bits: 3314b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubReg
#define h_dHubReg (){}
#define RA_dHubReg_SemaHub 0x0000
///////////////////////////////////////////////////////////
#define RA_dHubReg_HBO 0x0400
///////////////////////////////////////////////////////////
#define RA_dHubReg_ARR 0x0B00
#define RA_dHubReg_channelCtl 0x0B00
///////////////////////////////////////////////////////////
#define RA_dHubReg_BUSY 0x0C00
#define BA_dHubReg_BUSY_ST 0x0C00
#define B16dHubReg_BUSY_ST 0x0C00
#define LSb32dHubReg_BUSY_ST 0
#define LSb16dHubReg_BUSY_ST 0
#define bdHubReg_BUSY_ST 16
#define MSK32dHubReg_BUSY_ST 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dHubReg_PENDING 0x0C04
#define BA_dHubReg_PENDING_ST 0x0C04
#define B16dHubReg_PENDING_ST 0x0C04
#define LSb32dHubReg_PENDING_ST 0
#define LSb16dHubReg_PENDING_ST 0
#define bdHubReg_PENDING_ST 16
#define MSK32dHubReg_PENDING_ST 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dHubReg_busRstEn 0x0C08
#define BA_dHubReg_busRstEn_reg 0x0C08
#define B16dHubReg_busRstEn_reg 0x0C08
#define LSb32dHubReg_busRstEn_reg 0
#define LSb16dHubReg_busRstEn_reg 0
#define bdHubReg_busRstEn_reg 1
#define MSK32dHubReg_busRstEn_reg 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubReg_busRstDone 0x0C0C
#define BA_dHubReg_busRstDone_reg 0x0C0C
#define B16dHubReg_busRstDone_reg 0x0C0C
#define LSb32dHubReg_busRstDone_reg 0
#define LSb16dHubReg_busRstDone_reg 0
#define bdHubReg_busRstDone_reg 1
#define MSK32dHubReg_busRstDone_reg 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubReg_flowCtl 0x0C10
#define BA_dHubReg_flowCtl_rAlpha 0x0C10
#define B16dHubReg_flowCtl_rAlpha 0x0C10
#define LSb32dHubReg_flowCtl_rAlpha 0
#define LSb16dHubReg_flowCtl_rAlpha 0
#define bdHubReg_flowCtl_rAlpha 8
#define MSK32dHubReg_flowCtl_rAlpha 0x000000FF
#define BA_dHubReg_flowCtl_wAlpha 0x0C11
#define B16dHubReg_flowCtl_wAlpha 0x0C10
#define LSb32dHubReg_flowCtl_wAlpha 8
#define LSb16dHubReg_flowCtl_wAlpha 8
#define bdHubReg_flowCtl_wAlpha 8
#define MSK32dHubReg_flowCtl_wAlpha 0x0000FF00
///////////////////////////////////////////////////////////
#define RA_dHubReg_axiCmdCol 0x0C14
#define BA_dHubReg_axiCmdCol_rCnt 0x0C14
#define B16dHubReg_axiCmdCol_rCnt 0x0C14
#define LSb32dHubReg_axiCmdCol_rCnt 0
#define LSb16dHubReg_axiCmdCol_rCnt 0
#define bdHubReg_axiCmdCol_rCnt 16
#define MSK32dHubReg_axiCmdCol_rCnt 0x0000FFFF
#define BA_dHubReg_axiCmdCol_wCnt 0x0C16
#define B16dHubReg_axiCmdCol_wCnt 0x0C16
#define LSb32dHubReg_axiCmdCol_wCnt 16
#define LSb16dHubReg_axiCmdCol_wCnt 0
#define bdHubReg_axiCmdCol_wCnt 16
#define MSK32dHubReg_axiCmdCol_wCnt 0xFFFF0000
///////////////////////////////////////////////////////////
typedef struct SIE_dHubReg {
///////////////////////////////////////////////////////////
SIE_SemaHub ie_SemaHub;
///////////////////////////////////////////////////////////
SIE_HBO ie_HBO;
///////////////////////////////////////////////////////////
SIE_dHubChannel ie_channelCtl[16];
///////////////////////////////////////////////////////////
#define GET32dHubReg_BUSY_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg_BUSY_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg_BUSY_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_BUSY_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg_BUSY {\
UNSG32 uBUSY_ST : 16;\
UNSG32 RSVDxC00_b16 : 16;\
}
union { UNSG32 u32dHubReg_BUSY;
struct w32dHubReg_BUSY;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_PENDING_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg_PENDING_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg_PENDING_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_PENDING_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg_PENDING {\
UNSG32 uPENDING_ST : 16;\
UNSG32 RSVDxC04_b16 : 16;\
}
union { UNSG32 u32dHubReg_PENDING;
struct w32dHubReg_PENDING;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_busRstEn_reg(r32) _BFGET_(r32, 0, 0)
#define SET32dHubReg_busRstEn_reg(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubReg_busRstEn_reg(r16) _BFGET_(r16, 0, 0)
#define SET16dHubReg_busRstEn_reg(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubReg_busRstEn {\
UNSG32 ubusRstEn_reg : 1;\
UNSG32 RSVDxC08_b1 : 31;\
}
union { UNSG32 u32dHubReg_busRstEn;
struct w32dHubReg_busRstEn;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_busRstDone_reg(r32) _BFGET_(r32, 0, 0)
#define SET32dHubReg_busRstDone_reg(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubReg_busRstDone_reg(r16) _BFGET_(r16, 0, 0)
#define SET16dHubReg_busRstDone_reg(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubReg_busRstDone {\
UNSG32 ubusRstDone_reg : 1;\
UNSG32 RSVDxC0C_b1 : 31;\
}
union { UNSG32 u32dHubReg_busRstDone;
struct w32dHubReg_busRstDone;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_flowCtl_rAlpha(r32) _BFGET_(r32, 7, 0)
#define SET32dHubReg_flowCtl_rAlpha(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16dHubReg_flowCtl_rAlpha(r16) _BFGET_(r16, 7, 0)
#define SET16dHubReg_flowCtl_rAlpha(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32dHubReg_flowCtl_wAlpha(r32) _BFGET_(r32,15, 8)
#define SET32dHubReg_flowCtl_wAlpha(r32,v) _BFSET_(r32,15, 8,v)
#define GET16dHubReg_flowCtl_wAlpha(r16) _BFGET_(r16,15, 8)
#define SET16dHubReg_flowCtl_wAlpha(r16,v) _BFSET_(r16,15, 8,v)
#define w32dHubReg_flowCtl {\
UNSG32 uflowCtl_rAlpha : 8;\
UNSG32 uflowCtl_wAlpha : 8;\
UNSG32 RSVDxC10_b16 : 16;\
}
union { UNSG32 u32dHubReg_flowCtl;
struct w32dHubReg_flowCtl;
};
///////////////////////////////////////////////////////////
#define GET32dHubReg_axiCmdCol_rCnt(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg_axiCmdCol_rCnt(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg_axiCmdCol_rCnt(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_axiCmdCol_rCnt(r16,v) _BFSET_(r16,15, 0,v)
#define GET32dHubReg_axiCmdCol_wCnt(r32) _BFGET_(r32,31,16)
#define SET32dHubReg_axiCmdCol_wCnt(r32,v) _BFSET_(r32,31,16,v)
#define GET16dHubReg_axiCmdCol_wCnt(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg_axiCmdCol_wCnt(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg_axiCmdCol {\
UNSG32 uaxiCmdCol_rCnt : 16;\
UNSG32 uaxiCmdCol_wCnt : 16;\
}
union { UNSG32 u32dHubReg_axiCmdCol;
struct w32dHubReg_axiCmdCol;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxC18 [232];
///////////////////////////////////////////////////////////
} SIE_dHubReg;
typedef union T32dHubReg_BUSY
{ UNSG32 u32;
struct w32dHubReg_BUSY;
} T32dHubReg_BUSY;
typedef union T32dHubReg_PENDING
{ UNSG32 u32;
struct w32dHubReg_PENDING;
} T32dHubReg_PENDING;
typedef union T32dHubReg_busRstEn
{ UNSG32 u32;
struct w32dHubReg_busRstEn;
} T32dHubReg_busRstEn;
typedef union T32dHubReg_busRstDone
{ UNSG32 u32;
struct w32dHubReg_busRstDone;
} T32dHubReg_busRstDone;
typedef union T32dHubReg_flowCtl
{ UNSG32 u32;
struct w32dHubReg_flowCtl;
} T32dHubReg_flowCtl;
typedef union T32dHubReg_axiCmdCol
{ UNSG32 u32;
struct w32dHubReg_axiCmdCol;
} T32dHubReg_axiCmdCol;
///////////////////////////////////////////////////////////
typedef union TdHubReg_BUSY
{ UNSG32 u32[1];
struct {
struct w32dHubReg_BUSY;
};
} TdHubReg_BUSY;
typedef union TdHubReg_PENDING
{ UNSG32 u32[1];
struct {
struct w32dHubReg_PENDING;
};
} TdHubReg_PENDING;
typedef union TdHubReg_busRstEn
{ UNSG32 u32[1];
struct {
struct w32dHubReg_busRstEn;
};
} TdHubReg_busRstEn;
typedef union TdHubReg_busRstDone
{ UNSG32 u32[1];
struct {
struct w32dHubReg_busRstDone;
};
} TdHubReg_busRstDone;
typedef union TdHubReg_flowCtl
{ UNSG32 u32[1];
struct {
struct w32dHubReg_flowCtl;
};
} TdHubReg_flowCtl;
typedef union TdHubReg_axiCmdCol
{ UNSG32 u32[1];
struct {
struct w32dHubReg_axiCmdCol;
};
} TdHubReg_axiCmdCol;
///////////////////////////////////////////////////////////
SIGN32 dHubReg_drvrd(SIE_dHubReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubReg_drvwr(SIE_dHubReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubReg_reset(SIE_dHubReg *p);
SIGN32 dHubReg_cmp (SIE_dHubReg *p, SIE_dHubReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubReg_check(p,pie,pfx,hLOG) dHubReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubReg_print(p, pfx,hLOG) dHubReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubCmd2D biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 MEM (W-)
/// %unsigned 32 addr
/// ###
/// * DRAM data address of the 2D buffer, in bytes.
/// ###
/// @ 0x00004 DESC (W-)
/// %unsigned 16 stride
/// ###
/// * Line stride size in bytes
/// ###
/// %unsigned 13 numLine
/// ###
/// * Number of lines in buffer. Size of 0 is forbidden.
/// ###
/// %unsigned 2 hdrLoop
/// ###
/// * Size of line-loop for choosing dHubCmdHDR
/// * 0 is treated as 4
/// ###
/// %unsigned 1 interrupt
/// ###
/// * 1: raise interrupt upon whole 2D command finish.
/// * 1: set the last 1D command interrupt bit.
/// * 0 : use the default 1D command interrupt bit.
/// ###
/// @ 0x00008 START (W-)
/// %unsigned 1 EN 0x0
/// ###
/// * Write 1 to enable the channel; 0 to pause the channel
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C CLEAR (W-)
/// %unsigned 1 EN
/// ###
/// * Write anything to reset the 2D engine.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00010 (P)
/// # 0x00010 HDR
/// $dHubCmdHDR HDR REG [4]
/// ###
/// * Headers used in generating dHubCmd for each line in looping order, loop size (1,2,3,4) specified by DESC_hdrLoop
/// * end dHubCmd2D
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 32B, bits: 182b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubCmd2D
#define h_dHubCmd2D (){}
#define RA_dHubCmd2D_MEM 0x0000
#define BA_dHubCmd2D_MEM_addr 0x0000
#define B16dHubCmd2D_MEM_addr 0x0000
#define LSb32dHubCmd2D_MEM_addr 0
#define LSb16dHubCmd2D_MEM_addr 0
#define bdHubCmd2D_MEM_addr 32
#define MSK32dHubCmd2D_MEM_addr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_DESC 0x0004
#define BA_dHubCmd2D_DESC_stride 0x0004
#define B16dHubCmd2D_DESC_stride 0x0004
#define LSb32dHubCmd2D_DESC_stride 0
#define LSb16dHubCmd2D_DESC_stride 0
#define bdHubCmd2D_DESC_stride 16
#define MSK32dHubCmd2D_DESC_stride 0x0000FFFF
#define BA_dHubCmd2D_DESC_numLine 0x0006
#define B16dHubCmd2D_DESC_numLine 0x0006
#define LSb32dHubCmd2D_DESC_numLine 16
#define LSb16dHubCmd2D_DESC_numLine 0
#define bdHubCmd2D_DESC_numLine 13
#define MSK32dHubCmd2D_DESC_numLine 0x1FFF0000
#define BA_dHubCmd2D_DESC_hdrLoop 0x0007
#define B16dHubCmd2D_DESC_hdrLoop 0x0006
#define LSb32dHubCmd2D_DESC_hdrLoop 29
#define LSb16dHubCmd2D_DESC_hdrLoop 13
#define bdHubCmd2D_DESC_hdrLoop 2
#define MSK32dHubCmd2D_DESC_hdrLoop 0x60000000
#define BA_dHubCmd2D_DESC_interrupt 0x0007
#define B16dHubCmd2D_DESC_interrupt 0x0006
#define LSb32dHubCmd2D_DESC_interrupt 31
#define LSb16dHubCmd2D_DESC_interrupt 15
#define bdHubCmd2D_DESC_interrupt 1
#define MSK32dHubCmd2D_DESC_interrupt 0x80000000
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_START 0x0008
#define BA_dHubCmd2D_START_EN 0x0008
#define B16dHubCmd2D_START_EN 0x0008
#define LSb32dHubCmd2D_START_EN 0
#define LSb16dHubCmd2D_START_EN 0
#define bdHubCmd2D_START_EN 1
#define MSK32dHubCmd2D_START_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_CLEAR 0x000C
#define BA_dHubCmd2D_CLEAR_EN 0x000C
#define B16dHubCmd2D_CLEAR_EN 0x000C
#define LSb32dHubCmd2D_CLEAR_EN 0
#define LSb16dHubCmd2D_CLEAR_EN 0
#define bdHubCmd2D_CLEAR_EN 1
#define MSK32dHubCmd2D_CLEAR_EN 0x00000001
///////////////////////////////////////////////////////////
#define RA_dHubCmd2D_HDR 0x0010
///////////////////////////////////////////////////////////
typedef struct SIE_dHubCmd2D {
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_MEM_addr(r32) _BFGET_(r32,31, 0)
#define SET32dHubCmd2D_MEM_addr(r32,v) _BFSET_(r32,31, 0,v)
#define w32dHubCmd2D_MEM {\
UNSG32 uMEM_addr : 32;\
}
union { UNSG32 u32dHubCmd2D_MEM;
struct w32dHubCmd2D_MEM;
};
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_DESC_stride(r32) _BFGET_(r32,15, 0)
#define SET32dHubCmd2D_DESC_stride(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubCmd2D_DESC_stride(r16) _BFGET_(r16,15, 0)
#define SET16dHubCmd2D_DESC_stride(r16,v) _BFSET_(r16,15, 0,v)
#define GET32dHubCmd2D_DESC_numLine(r32) _BFGET_(r32,28,16)
#define SET32dHubCmd2D_DESC_numLine(r32,v) _BFSET_(r32,28,16,v)
#define GET16dHubCmd2D_DESC_numLine(r16) _BFGET_(r16,12, 0)
#define SET16dHubCmd2D_DESC_numLine(r16,v) _BFSET_(r16,12, 0,v)
#define GET32dHubCmd2D_DESC_hdrLoop(r32) _BFGET_(r32,30,29)
#define SET32dHubCmd2D_DESC_hdrLoop(r32,v) _BFSET_(r32,30,29,v)
#define GET16dHubCmd2D_DESC_hdrLoop(r16) _BFGET_(r16,14,13)
#define SET16dHubCmd2D_DESC_hdrLoop(r16,v) _BFSET_(r16,14,13,v)
#define GET32dHubCmd2D_DESC_interrupt(r32) _BFGET_(r32,31,31)
#define SET32dHubCmd2D_DESC_interrupt(r32,v) _BFSET_(r32,31,31,v)
#define GET16dHubCmd2D_DESC_interrupt(r16) _BFGET_(r16,15,15)
#define SET16dHubCmd2D_DESC_interrupt(r16,v) _BFSET_(r16,15,15,v)
#define w32dHubCmd2D_DESC {\
UNSG32 uDESC_stride : 16;\
UNSG32 uDESC_numLine : 13;\
UNSG32 uDESC_hdrLoop : 2;\
UNSG32 uDESC_interrupt : 1;\
}
union { UNSG32 u32dHubCmd2D_DESC;
struct w32dHubCmd2D_DESC;
};
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_START_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubCmd2D_START_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubCmd2D_START_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubCmd2D_START_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubCmd2D_START {\
UNSG32 uSTART_EN : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32dHubCmd2D_START;
struct w32dHubCmd2D_START;
};
///////////////////////////////////////////////////////////
#define GET32dHubCmd2D_CLEAR_EN(r32) _BFGET_(r32, 0, 0)
#define SET32dHubCmd2D_CLEAR_EN(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16dHubCmd2D_CLEAR_EN(r16) _BFGET_(r16, 0, 0)
#define SET16dHubCmd2D_CLEAR_EN(r16,v) _BFSET_(r16, 0, 0,v)
#define w32dHubCmd2D_CLEAR {\
UNSG32 uCLEAR_EN : 1;\
UNSG32 RSVDxC_b1 : 31;\
}
union { UNSG32 u32dHubCmd2D_CLEAR;
struct w32dHubCmd2D_CLEAR;
};
///////////////////////////////////////////////////////////
SIE_dHubCmdHDR ie_HDR[4];
///////////////////////////////////////////////////////////
} SIE_dHubCmd2D;
typedef union T32dHubCmd2D_MEM
{ UNSG32 u32;
struct w32dHubCmd2D_MEM;
} T32dHubCmd2D_MEM;
typedef union T32dHubCmd2D_DESC
{ UNSG32 u32;
struct w32dHubCmd2D_DESC;
} T32dHubCmd2D_DESC;
typedef union T32dHubCmd2D_START
{ UNSG32 u32;
struct w32dHubCmd2D_START;
} T32dHubCmd2D_START;
typedef union T32dHubCmd2D_CLEAR
{ UNSG32 u32;
struct w32dHubCmd2D_CLEAR;
} T32dHubCmd2D_CLEAR;
///////////////////////////////////////////////////////////
typedef union TdHubCmd2D_MEM
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_MEM;
};
} TdHubCmd2D_MEM;
typedef union TdHubCmd2D_DESC
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_DESC;
};
} TdHubCmd2D_DESC;
typedef union TdHubCmd2D_START
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_START;
};
} TdHubCmd2D_START;
typedef union TdHubCmd2D_CLEAR
{ UNSG32 u32[1];
struct {
struct w32dHubCmd2D_CLEAR;
};
} TdHubCmd2D_CLEAR;
///////////////////////////////////////////////////////////
SIGN32 dHubCmd2D_drvrd(SIE_dHubCmd2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubCmd2D_drvwr(SIE_dHubCmd2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubCmd2D_reset(SIE_dHubCmd2D *p);
SIGN32 dHubCmd2D_cmp (SIE_dHubCmd2D *p, SIE_dHubCmd2D *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubCmd2D_check(p,pie,pfx,hLOG) dHubCmd2D_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubCmd2D_print(p, pfx,hLOG) dHubCmd2D_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubCmd2D
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubQuery (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 RESP (R-)
/// %unsigned 16 ST
/// ###
/// * Dhub channel state machine status.
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubQuery
#define h_dHubQuery (){}
#define RA_dHubQuery_RESP 0x0000
#define BA_dHubQuery_RESP_ST 0x0000
#define B16dHubQuery_RESP_ST 0x0000
#define LSb32dHubQuery_RESP_ST 0
#define LSb16dHubQuery_RESP_ST 0
#define bdHubQuery_RESP_ST 16
#define MSK32dHubQuery_RESP_ST 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_dHubQuery {
///////////////////////////////////////////////////////////
#define GET32dHubQuery_RESP_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubQuery_RESP_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubQuery_RESP_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubQuery_RESP_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubQuery_RESP {\
UNSG32 uRESP_ST : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32dHubQuery_RESP;
struct w32dHubQuery_RESP;
};
///////////////////////////////////////////////////////////
} SIE_dHubQuery;
typedef union T32dHubQuery_RESP
{ UNSG32 u32;
struct w32dHubQuery_RESP;
} T32dHubQuery_RESP;
///////////////////////////////////////////////////////////
typedef union TdHubQuery_RESP
{ UNSG32 u32[1];
struct {
struct w32dHubQuery_RESP;
};
} TdHubQuery_RESP;
///////////////////////////////////////////////////////////
SIGN32 dHubQuery_drvrd(SIE_dHubQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubQuery_drvwr(SIE_dHubQuery *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubQuery_reset(SIE_dHubQuery *p);
SIGN32 dHubQuery_cmp (SIE_dHubQuery *p, SIE_dHubQuery *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubQuery_check(p,pie,pfx,hLOG) dHubQuery_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubQuery_print(p, pfx,hLOG) dHubQuery_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubQuery
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dHubReg2D biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 dHub
/// $dHubReg dHub REG
/// @ 0x00D00 ARR (P)
/// # 0x00D00 Cmd2D
/// $dHubCmd2D Cmd2D REG [16]
/// ###
/// * Up-to 16 2D channels.
/// * 2D Channel[N] is connected to dHub.Channel[N] command queue, that is, dHub.HBO.Channel[2N]
/// * Note: Number of 2D channels could be less than dHub channels (rest of are 1D only)
/// ###
/// @ 0x00F00 BUSY (R-)
/// %unsigned 16 ST
/// ###
/// * Per channel status
/// * 0: no ongoing command is being processed
/// * 1: channel controller is busy
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00F04 (W-)
/// # # Stuffing bytes...
/// %% 480
/// @ 0x00F40 (P)
/// # 0x00F40 CH_ST
/// $dHubQuery CH_ST MEM [16]
/// ###
/// * end dHubReg2D
/// ###
/// @ 0x00F80 (W-)
/// # # Stuffing bytes...
/// %% 1024
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4096B, bits: 6274b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dHubReg2D
#define h_dHubReg2D (){}
#define RA_dHubReg2D_dHub 0x0000
///////////////////////////////////////////////////////////
#define RA_dHubReg2D_ARR 0x0D00
#define RA_dHubReg2D_Cmd2D 0x0D00
///////////////////////////////////////////////////////////
#define RA_dHubReg2D_BUSY 0x0F00
#define BA_dHubReg2D_BUSY_ST 0x0F00
#define B16dHubReg2D_BUSY_ST 0x0F00
#define LSb32dHubReg2D_BUSY_ST 0
#define LSb16dHubReg2D_BUSY_ST 0
#define bdHubReg2D_BUSY_ST 16
#define MSK32dHubReg2D_BUSY_ST 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dHubReg2D_CH_ST 0x0F40
///////////////////////////////////////////////////////////
typedef struct SIE_dHubReg2D {
///////////////////////////////////////////////////////////
SIE_dHubReg ie_dHub;
///////////////////////////////////////////////////////////
SIE_dHubCmd2D ie_Cmd2D[16];
///////////////////////////////////////////////////////////
#define GET32dHubReg2D_BUSY_ST(r32) _BFGET_(r32,15, 0)
#define SET32dHubReg2D_BUSY_ST(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dHubReg2D_BUSY_ST(r16) _BFGET_(r16,15, 0)
#define SET16dHubReg2D_BUSY_ST(r16,v) _BFSET_(r16,15, 0,v)
#define w32dHubReg2D_BUSY {\
UNSG32 uBUSY_ST : 16;\
UNSG32 RSVDxF00_b16 : 16;\
}
union { UNSG32 u32dHubReg2D_BUSY;
struct w32dHubReg2D_BUSY;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxF04 [60];
///////////////////////////////////////////////////////////
SIE_dHubQuery ie_CH_ST[16];
///////////////////////////////////////////////////////////
UNSG8 RSVDxF80 [128];
///////////////////////////////////////////////////////////
} SIE_dHubReg2D;
typedef union T32dHubReg2D_BUSY
{ UNSG32 u32;
struct w32dHubReg2D_BUSY;
} T32dHubReg2D_BUSY;
///////////////////////////////////////////////////////////
typedef union TdHubReg2D_BUSY
{ UNSG32 u32[1];
struct {
struct w32dHubReg2D_BUSY;
};
} TdHubReg2D_BUSY;
///////////////////////////////////////////////////////////
SIGN32 dHubReg2D_drvrd(SIE_dHubReg2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dHubReg2D_drvwr(SIE_dHubReg2D *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dHubReg2D_reset(SIE_dHubReg2D *p);
SIGN32 dHubReg2D_cmp (SIE_dHubReg2D *p, SIE_dHubReg2D *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dHubReg2D_check(p,pie,pfx,hLOG) dHubReg2D_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dHubReg2D_print(p, pfx,hLOG) dHubReg2D_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dHubReg2D
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DSmsg biu (4,4)
/// ###
/// * Data Streamer message format
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 count
/// ###
/// * number of bytes to transfer, the starting address is byte aligned.
/// ###
/// %unsigned 1 NOS
/// ###
/// * No outstanding
/// * 1: this command will not be executed until the completion of all the previous command.
/// * 0: This command can be executed without checking the previous command completion status.
/// ###
/// %unsigned 1 dir
/// : m2h 0x0
/// ###
/// * Data transfer from external memory to HBO
/// ###
/// : h2m 0x1
/// ###
/// * Data transfer from HBO to external memory
/// ###
/// %unsigned 1 intr
/// ###
/// * Setting to 1 forces Data Streamer to raise interrupt after command completion
/// ###
/// %unsigned 16 hboAdr
/// ###
/// * HBO byte address for data transfer
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 32 memAdr
/// ###
/// * Memory address equivalent to DDR addr [31:0];
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DSmsg
#define h_DSmsg (){}
#define BA_DSmsg_count 0x0000
#define B16DSmsg_count 0x0000
#define LSb32DSmsg_count 0
#define LSb16DSmsg_count 0
#define bDSmsg_count 13
#define MSK32DSmsg_count 0x00001FFF
#define BA_DSmsg_NOS 0x0001
#define B16DSmsg_NOS 0x0000
#define LSb32DSmsg_NOS 13
#define LSb16DSmsg_NOS 13
#define bDSmsg_NOS 1
#define MSK32DSmsg_NOS 0x00002000
#define BA_DSmsg_dir 0x0001
#define B16DSmsg_dir 0x0000
#define LSb32DSmsg_dir 14
#define LSb16DSmsg_dir 14
#define bDSmsg_dir 1
#define MSK32DSmsg_dir 0x00004000
#define DSmsg_dir_m2h 0x0
#define DSmsg_dir_h2m 0x1
#define BA_DSmsg_intr 0x0001
#define B16DSmsg_intr 0x0000
#define LSb32DSmsg_intr 15
#define LSb16DSmsg_intr 15
#define bDSmsg_intr 1
#define MSK32DSmsg_intr 0x00008000
#define BA_DSmsg_hboAdr 0x0002
#define B16DSmsg_hboAdr 0x0002
#define LSb32DSmsg_hboAdr 16
#define LSb16DSmsg_hboAdr 0
#define bDSmsg_hboAdr 16
#define MSK32DSmsg_hboAdr 0xFFFF0000
///////////////////////////////////////////////////////////
#define BA_DSmsg_memAdr 0x0004
#define B16DSmsg_memAdr 0x0004
#define LSb32DSmsg_memAdr 0
#define LSb16DSmsg_memAdr 0
#define bDSmsg_memAdr 32
#define MSK32DSmsg_memAdr 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_DSmsg {
///////////////////////////////////////////////////////////
#define GET32DSmsg_count(r32) _BFGET_(r32,12, 0)
#define SET32DSmsg_count(r32,v) _BFSET_(r32,12, 0,v)
#define GET16DSmsg_count(r16) _BFGET_(r16,12, 0)
#define SET16DSmsg_count(r16,v) _BFSET_(r16,12, 0,v)
#define GET32DSmsg_NOS(r32) _BFGET_(r32,13,13)
#define SET32DSmsg_NOS(r32,v) _BFSET_(r32,13,13,v)
#define GET16DSmsg_NOS(r16) _BFGET_(r16,13,13)
#define SET16DSmsg_NOS(r16,v) _BFSET_(r16,13,13,v)
#define GET32DSmsg_dir(r32) _BFGET_(r32,14,14)
#define SET32DSmsg_dir(r32,v) _BFSET_(r32,14,14,v)
#define GET16DSmsg_dir(r16) _BFGET_(r16,14,14)
#define SET16DSmsg_dir(r16,v) _BFSET_(r16,14,14,v)
#define GET32DSmsg_intr(r32) _BFGET_(r32,15,15)
#define SET32DSmsg_intr(r32,v) _BFSET_(r32,15,15,v)
#define GET16DSmsg_intr(r16) _BFGET_(r16,15,15)
#define SET16DSmsg_intr(r16,v) _BFSET_(r16,15,15,v)
#define GET32DSmsg_hboAdr(r32) _BFGET_(r32,31,16)
#define SET32DSmsg_hboAdr(r32,v) _BFSET_(r32,31,16,v)
#define GET16DSmsg_hboAdr(r16) _BFGET_(r16,15, 0)
#define SET16DSmsg_hboAdr(r16,v) _BFSET_(r16,15, 0,v)
UNSG32 u_count : 13;
UNSG32 u_NOS : 1;
UNSG32 u_dir : 1;
UNSG32 u_intr : 1;
UNSG32 u_hboAdr : 16;
///////////////////////////////////////////////////////////
#define GET32DSmsg_memAdr(r32) _BFGET_(r32,31, 0)
#define SET32DSmsg_memAdr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_memAdr : 32;
///////////////////////////////////////////////////////////
} SIE_DSmsg;
///////////////////////////////////////////////////////////
SIGN32 DSmsg_drvrd(SIE_DSmsg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DSmsg_drvwr(SIE_DSmsg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DSmsg_reset(SIE_DSmsg *p);
SIGN32 DSmsg_cmp (SIE_DSmsg *p, SIE_DSmsg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DSmsg_check(p,pie,pfx,hLOG) DSmsg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DSmsg_print(p, pfx,hLOG) DSmsg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DSmsg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE dsCh biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 retID (P)
/// %unsigned 16 addr 0x0
/// ###
/// * The HBO address of the memory location at which the retired command ID is stored
/// * Note : the addr should be 64-bit aligned. Nor the RTL implementation will always put the 16-bit ID to lower 16-bit of the DTCM entry.
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00004 initID (P)
/// %unsigned 16 Val 0x0
/// ###
/// * Initial retire id value
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_dsCh
#define h_dsCh (){}
#define RA_dsCh_retID 0x0000
#define BA_dsCh_retID_addr 0x0000
#define B16dsCh_retID_addr 0x0000
#define LSb32dsCh_retID_addr 0
#define LSb16dsCh_retID_addr 0
#define bdsCh_retID_addr 16
#define MSK32dsCh_retID_addr 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_dsCh_initID 0x0004
#define BA_dsCh_initID_Val 0x0004
#define B16dsCh_initID_Val 0x0004
#define LSb32dsCh_initID_Val 0
#define LSb16dsCh_initID_Val 0
#define bdsCh_initID_Val 16
#define MSK32dsCh_initID_Val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_dsCh {
///////////////////////////////////////////////////////////
#define GET32dsCh_retID_addr(r32) _BFGET_(r32,15, 0)
#define SET32dsCh_retID_addr(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dsCh_retID_addr(r16) _BFGET_(r16,15, 0)
#define SET16dsCh_retID_addr(r16,v) _BFSET_(r16,15, 0,v)
#define w32dsCh_retID {\
UNSG32 uretID_addr : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32dsCh_retID;
struct w32dsCh_retID;
};
///////////////////////////////////////////////////////////
#define GET32dsCh_initID_Val(r32) _BFGET_(r32,15, 0)
#define SET32dsCh_initID_Val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16dsCh_initID_Val(r16) _BFGET_(r16,15, 0)
#define SET16dsCh_initID_Val(r16,v) _BFSET_(r16,15, 0,v)
#define w32dsCh_initID {\
UNSG32 uinitID_Val : 16;\
UNSG32 RSVDx4_b16 : 16;\
}
union { UNSG32 u32dsCh_initID;
struct w32dsCh_initID;
};
///////////////////////////////////////////////////////////
} SIE_dsCh;
typedef union T32dsCh_retID
{ UNSG32 u32;
struct w32dsCh_retID;
} T32dsCh_retID;
typedef union T32dsCh_initID
{ UNSG32 u32;
struct w32dsCh_initID;
} T32dsCh_initID;
///////////////////////////////////////////////////////////
typedef union TdsCh_retID
{ UNSG32 u32[1];
struct {
struct w32dsCh_retID;
};
} TdsCh_retID;
typedef union TdsCh_initID
{ UNSG32 u32[1];
struct {
struct w32dsCh_initID;
};
} TdsCh_initID;
///////////////////////////////////////////////////////////
SIGN32 dsCh_drvrd(SIE_dsCh *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 dsCh_drvwr(SIE_dsCh *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void dsCh_reset(SIE_dsCh *p);
SIGN32 dsCh_cmp (SIE_dsCh *p, SIE_dsCh *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define dsCh_check(p,pie,pfx,hLOG) dsCh_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define dsCh_print(p, pfx,hLOG) dsCh_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: dsCh
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DataStreamer biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 dsCh (P)
/// # 0x00000 dsCh
/// $dsCh dsCh REG [4]
/// ###
/// * The command that was just finished by Data Streamer generated interrupt; write 1 to clear
/// ###
/// @ 0x00020 intr (WOC-)
/// %unsigned 1 st_0i
/// %unsigned 1 st_1i
/// %unsigned 1 st_2i
/// %unsigned 1 st_3i
/// ###
/// * Interrupt status
/// ###
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 36B, bits: 132b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DataStreamer
#define h_DataStreamer (){}
#define RA_DataStreamer_dsCh 0x0000
///////////////////////////////////////////////////////////
#define RA_DataStreamer_intr 0x0020
#define BA_DataStreamer_intr_st_0i 0x0020
#define B16DataStreamer_intr_st_0i 0x0020
#define LSb32DataStreamer_intr_st_0i 0
#define LSb16DataStreamer_intr_st_0i 0
#define bDataStreamer_intr_st_0i 1
#define MSK32DataStreamer_intr_st_0i 0x00000001
#define BA_DataStreamer_intr_st_1i 0x0020
#define B16DataStreamer_intr_st_1i 0x0020
#define LSb32DataStreamer_intr_st_1i 1
#define LSb16DataStreamer_intr_st_1i 1
#define bDataStreamer_intr_st_1i 1
#define MSK32DataStreamer_intr_st_1i 0x00000002
#define BA_DataStreamer_intr_st_2i 0x0020
#define B16DataStreamer_intr_st_2i 0x0020
#define LSb32DataStreamer_intr_st_2i 2
#define LSb16DataStreamer_intr_st_2i 2
#define bDataStreamer_intr_st_2i 1
#define MSK32DataStreamer_intr_st_2i 0x00000004
#define BA_DataStreamer_intr_st_3i 0x0020
#define B16DataStreamer_intr_st_3i 0x0020
#define LSb32DataStreamer_intr_st_3i 3
#define LSb16DataStreamer_intr_st_3i 3
#define bDataStreamer_intr_st_3i 1
#define MSK32DataStreamer_intr_st_3i 0x00000008
///////////////////////////////////////////////////////////
typedef struct SIE_DataStreamer {
///////////////////////////////////////////////////////////
SIE_dsCh ie_dsCh[4];
///////////////////////////////////////////////////////////
#define GET32DataStreamer_intr_st_0i(r32) _BFGET_(r32, 0, 0)
#define SET32DataStreamer_intr_st_0i(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DataStreamer_intr_st_0i(r16) _BFGET_(r16, 0, 0)
#define SET16DataStreamer_intr_st_0i(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32DataStreamer_intr_st_1i(r32) _BFGET_(r32, 1, 1)
#define SET32DataStreamer_intr_st_1i(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16DataStreamer_intr_st_1i(r16) _BFGET_(r16, 1, 1)
#define SET16DataStreamer_intr_st_1i(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32DataStreamer_intr_st_2i(r32) _BFGET_(r32, 2, 2)
#define SET32DataStreamer_intr_st_2i(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16DataStreamer_intr_st_2i(r16) _BFGET_(r16, 2, 2)
#define SET16DataStreamer_intr_st_2i(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32DataStreamer_intr_st_3i(r32) _BFGET_(r32, 3, 3)
#define SET32DataStreamer_intr_st_3i(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16DataStreamer_intr_st_3i(r16) _BFGET_(r16, 3, 3)
#define SET16DataStreamer_intr_st_3i(r16,v) _BFSET_(r16, 3, 3,v)
#define w32DataStreamer_intr {\
UNSG32 uintr_st_0i : 1;\
UNSG32 uintr_st_1i : 1;\
UNSG32 uintr_st_2i : 1;\
UNSG32 uintr_st_3i : 1;\
UNSG32 RSVDx20_b4 : 28;\
}
union { UNSG32 u32DataStreamer_intr;
struct w32DataStreamer_intr;
};
///////////////////////////////////////////////////////////
} SIE_DataStreamer;
typedef union T32DataStreamer_intr
{ UNSG32 u32;
struct w32DataStreamer_intr;
} T32DataStreamer_intr;
///////////////////////////////////////////////////////////
typedef union TDataStreamer_intr
{ UNSG32 u32[1];
struct {
struct w32DataStreamer_intr;
};
} TDataStreamer_intr;
///////////////////////////////////////////////////////////
SIGN32 DataStreamer_drvrd(SIE_DataStreamer *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DataStreamer_drvwr(SIE_DataStreamer *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DataStreamer_reset(SIE_DataStreamer *p);
SIGN32 DataStreamer_cmp (SIE_DataStreamer *p, SIE_DataStreamer *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DataStreamer_check(p,pie,pfx,hLOG) DataStreamer_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DataStreamer_print(p, pfx,hLOG) DataStreamer_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DataStreamer
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ALU64CMD (4,4)
/// ###
/// * 16-bit + 6-bit parameters for A64CMD
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 par (W-)
/// %unsigned 16 rS
/// ###
/// * rS register for A64CMD
/// ###
/// %unsigned 6 q6
/// ###
/// * q6 parameter for A64CMD
/// * end ALU64CMD
/// ###
/// %% 10 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 22b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ALU64CMD
#define h_ALU64CMD (){}
#define RA_ALU64CMD_par 0x0000
#define BA_ALU64CMD_par_rS 0x0000
#define B16ALU64CMD_par_rS 0x0000
#define LSb32ALU64CMD_par_rS 0
#define LSb16ALU64CMD_par_rS 0
#define bALU64CMD_par_rS 16
#define MSK32ALU64CMD_par_rS 0x0000FFFF
#define BA_ALU64CMD_par_q6 0x0002
#define B16ALU64CMD_par_q6 0x0002
#define LSb32ALU64CMD_par_q6 16
#define LSb16ALU64CMD_par_q6 0
#define bALU64CMD_par_q6 6
#define MSK32ALU64CMD_par_q6 0x003F0000
///////////////////////////////////////////////////////////
typedef struct SIE_ALU64CMD {
///////////////////////////////////////////////////////////
#define GET32ALU64CMD_par_rS(r32) _BFGET_(r32,15, 0)
#define SET32ALU64CMD_par_rS(r32,v) _BFSET_(r32,15, 0,v)
#define GET16ALU64CMD_par_rS(r16) _BFGET_(r16,15, 0)
#define SET16ALU64CMD_par_rS(r16,v) _BFSET_(r16,15, 0,v)
#define GET32ALU64CMD_par_q6(r32) _BFGET_(r32,21,16)
#define SET32ALU64CMD_par_q6(r32,v) _BFSET_(r32,21,16,v)
#define GET16ALU64CMD_par_q6(r16) _BFGET_(r16, 5, 0)
#define SET16ALU64CMD_par_q6(r16,v) _BFSET_(r16, 5, 0,v)
#define w32ALU64CMD_par {\
UNSG32 upar_rS : 16;\
UNSG32 upar_q6 : 6;\
UNSG32 RSVDx0_b22 : 10;\
}
union { UNSG32 u32ALU64CMD_par;
struct w32ALU64CMD_par;
};
///////////////////////////////////////////////////////////
} SIE_ALU64CMD;
typedef union T32ALU64CMD_par
{ UNSG32 u32;
struct w32ALU64CMD_par;
} T32ALU64CMD_par;
///////////////////////////////////////////////////////////
typedef union TALU64CMD_par
{ UNSG32 u32[1];
struct {
struct w32ALU64CMD_par;
};
} TALU64CMD_par;
///////////////////////////////////////////////////////////
SIGN32 ALU64CMD_drvrd(SIE_ALU64CMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ALU64CMD_drvwr(SIE_ALU64CMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ALU64CMD_reset(SIE_ALU64CMD *p);
SIGN32 ALU64CMD_cmp (SIE_ALU64CMD *p, SIE_ALU64CMD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ALU64CMD_check(p,pie,pfx,hLOG) ALU64CMD_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ALU64CMD_print(p, pfx,hLOG) ALU64CMD_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ALU64CMD
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE A64CmdAll (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ext (P)
/// # 0x00000 ext
/// $ALU64CMD ext REG [256]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 1024B, bits: 5632b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_A64CmdAll
#define h_A64CmdAll (){}
#define RA_A64CmdAll_ext 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_A64CmdAll {
///////////////////////////////////////////////////////////
SIE_ALU64CMD ie_ext[256];
///////////////////////////////////////////////////////////
} SIE_A64CmdAll;
///////////////////////////////////////////////////////////
SIGN32 A64CmdAll_drvrd(SIE_A64CmdAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 A64CmdAll_drvwr(SIE_A64CmdAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void A64CmdAll_reset(SIE_A64CmdAll *p);
SIGN32 A64CmdAll_cmp (SIE_A64CmdAll *p, SIE_A64CmdAll *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define A64CmdAll_check(p,pie,pfx,hLOG) A64CmdAll_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define A64CmdAll_print(p, pfx,hLOG) A64CmdAll_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: A64CmdAll
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ALU64DAT (4,4)
/// ###
/// * 64-bit return data from ALU64 extensions
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 low (R-)
/// %unsigned 32 val
/// ###
/// * Lower 32-bit of the ALU64 return value; read triggers ALU64 extension pop
/// ###
/// @ 0x00004 high (R-)
/// %unsigned 32 val
/// ###
/// * Higher 32-bit of the ALU64 return value
/// * end ALU64DAT
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ALU64DAT
#define h_ALU64DAT (){}
#define RA_ALU64DAT_low 0x0000
#define BA_ALU64DAT_low_val 0x0000
#define B16ALU64DAT_low_val 0x0000
#define LSb32ALU64DAT_low_val 0
#define LSb16ALU64DAT_low_val 0
#define bALU64DAT_low_val 32
#define MSK32ALU64DAT_low_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_ALU64DAT_high 0x0004
#define BA_ALU64DAT_high_val 0x0004
#define B16ALU64DAT_high_val 0x0004
#define LSb32ALU64DAT_high_val 0
#define LSb16ALU64DAT_high_val 0
#define bALU64DAT_high_val 32
#define MSK32ALU64DAT_high_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_ALU64DAT {
///////////////////////////////////////////////////////////
#define GET32ALU64DAT_low_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64DAT_low_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64DAT_low {\
UNSG32 ulow_val : 32;\
}
union { UNSG32 u32ALU64DAT_low;
struct w32ALU64DAT_low;
};
///////////////////////////////////////////////////////////
#define GET32ALU64DAT_high_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64DAT_high_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64DAT_high {\
UNSG32 uhigh_val : 32;\
}
union { UNSG32 u32ALU64DAT_high;
struct w32ALU64DAT_high;
};
///////////////////////////////////////////////////////////
} SIE_ALU64DAT;
typedef union T32ALU64DAT_low
{ UNSG32 u32;
struct w32ALU64DAT_low;
} T32ALU64DAT_low;
typedef union T32ALU64DAT_high
{ UNSG32 u32;
struct w32ALU64DAT_high;
} T32ALU64DAT_high;
///////////////////////////////////////////////////////////
typedef union TALU64DAT_low
{ UNSG32 u32[1];
struct {
struct w32ALU64DAT_low;
};
} TALU64DAT_low;
typedef union TALU64DAT_high
{ UNSG32 u32[1];
struct {
struct w32ALU64DAT_high;
};
} TALU64DAT_high;
///////////////////////////////////////////////////////////
SIGN32 ALU64DAT_drvrd(SIE_ALU64DAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ALU64DAT_drvwr(SIE_ALU64DAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ALU64DAT_reset(SIE_ALU64DAT *p);
SIGN32 ALU64DAT_cmp (SIE_ALU64DAT *p, SIE_ALU64DAT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ALU64DAT_check(p,pie,pfx,hLOG) ALU64DAT_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ALU64DAT_print(p, pfx,hLOG) ALU64DAT_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ALU64DAT
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE A64DatAll (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ext (P)
/// # 0x00000 ext
/// $ALU64DAT ext REG [256]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 2048B, bits: 16384b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_A64DatAll
#define h_A64DatAll (){}
#define RA_A64DatAll_ext 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_A64DatAll {
///////////////////////////////////////////////////////////
SIE_ALU64DAT ie_ext[256];
///////////////////////////////////////////////////////////
} SIE_A64DatAll;
///////////////////////////////////////////////////////////
SIGN32 A64DatAll_drvrd(SIE_A64DatAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 A64DatAll_drvwr(SIE_A64DatAll *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void A64DatAll_reset(SIE_A64DatAll *p);
SIGN32 A64DatAll_cmp (SIE_A64DatAll *p, SIE_A64DatAll *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define A64DatAll_check(p,pie,pfx,hLOG) A64DatAll_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define A64DatAll_print(p, pfx,hLOG) A64DatAll_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: A64DatAll
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ALU64 biu (4,4)
/// ###
/// * Registers ports for CPU to access FIGO ALU64 extensions
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 xT_l (P)
/// %unsigned 32 val
/// ###
/// * Higher 32-bit of the FIGO xT register
/// ###
/// @ 0x00004 xT_h (P)
/// %unsigned 32 val
/// ###
/// * Lower 32-bit of the FIGO xT register
/// ###
/// @ 0x00008 X2Q (RW-)
/// %unsigned 6 adr
/// ###
/// * Write triggers a transfer from {xt_H, xt_L} to RF64 selected by the address
/// ###
/// %% 26 # Stuffing bits...
/// @ 0x0000C PopParam (P)
/// %unsigned 16 rS
/// ###
/// * rS register for A64LD
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00010 (W-)
/// # # Stuffing bytes...
/// %% 8064
/// @ 0x00400 Push (P)
/// # 0x00400 a64CmdAll
/// $A64CmdAll a64CmdAll MEM
/// ###
/// * Write triggers A64CMD
/// ###
/// @ 0x00800 Pop (P)
/// # 0x00800 a64DatAll
/// $A64DatAll a64DatAll MEM
/// ###
/// * Read triggers A64LD
/// * ALU64 interface
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4096B, bits: 150b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ALU64
#define h_ALU64 (){}
#define RA_ALU64_xT_l 0x0000
#define BA_ALU64_xT_l_val 0x0000
#define B16ALU64_xT_l_val 0x0000
#define LSb32ALU64_xT_l_val 0
#define LSb16ALU64_xT_l_val 0
#define bALU64_xT_l_val 32
#define MSK32ALU64_xT_l_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_ALU64_xT_h 0x0004
#define BA_ALU64_xT_h_val 0x0004
#define B16ALU64_xT_h_val 0x0004
#define LSb32ALU64_xT_h_val 0
#define LSb16ALU64_xT_h_val 0
#define bALU64_xT_h_val 32
#define MSK32ALU64_xT_h_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_ALU64_X2Q 0x0008
#define BA_ALU64_X2Q_adr 0x0008
#define B16ALU64_X2Q_adr 0x0008
#define LSb32ALU64_X2Q_adr 0
#define LSb16ALU64_X2Q_adr 0
#define bALU64_X2Q_adr 6
#define MSK32ALU64_X2Q_adr 0x0000003F
///////////////////////////////////////////////////////////
#define RA_ALU64_PopParam 0x000C
#define BA_ALU64_PopParam_rS 0x000C
#define B16ALU64_PopParam_rS 0x000C
#define LSb32ALU64_PopParam_rS 0
#define LSb16ALU64_PopParam_rS 0
#define bALU64_PopParam_rS 16
#define MSK32ALU64_PopParam_rS 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_ALU64_Push 0x0400
#define RA_ALU64_a64CmdAll 0x0400
///////////////////////////////////////////////////////////
#define RA_ALU64_Pop 0x0800
#define RA_ALU64_a64DatAll 0x0800
///////////////////////////////////////////////////////////
typedef struct SIE_ALU64 {
///////////////////////////////////////////////////////////
#define GET32ALU64_xT_l_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64_xT_l_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64_xT_l {\
UNSG32 uxT_l_val : 32;\
}
union { UNSG32 u32ALU64_xT_l;
struct w32ALU64_xT_l;
};
///////////////////////////////////////////////////////////
#define GET32ALU64_xT_h_val(r32) _BFGET_(r32,31, 0)
#define SET32ALU64_xT_h_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32ALU64_xT_h {\
UNSG32 uxT_h_val : 32;\
}
union { UNSG32 u32ALU64_xT_h;
struct w32ALU64_xT_h;
};
///////////////////////////////////////////////////////////
#define GET32ALU64_X2Q_adr(r32) _BFGET_(r32, 5, 0)
#define SET32ALU64_X2Q_adr(r32,v) _BFSET_(r32, 5, 0,v)
#define GET16ALU64_X2Q_adr(r16) _BFGET_(r16, 5, 0)
#define SET16ALU64_X2Q_adr(r16,v) _BFSET_(r16, 5, 0,v)
#define w32ALU64_X2Q {\
UNSG32 uX2Q_adr : 6;\
UNSG32 RSVDx8_b6 : 26;\
}
union { UNSG32 u32ALU64_X2Q;
struct w32ALU64_X2Q;
};
///////////////////////////////////////////////////////////
#define GET32ALU64_PopParam_rS(r32) _BFGET_(r32,15, 0)
#define SET32ALU64_PopParam_rS(r32,v) _BFSET_(r32,15, 0,v)
#define GET16ALU64_PopParam_rS(r16) _BFGET_(r16,15, 0)
#define SET16ALU64_PopParam_rS(r16,v) _BFSET_(r16,15, 0,v)
#define w32ALU64_PopParam {\
UNSG32 uPopParam_rS : 16;\
UNSG32 RSVDxC_b16 : 16;\
}
union { UNSG32 u32ALU64_PopParam;
struct w32ALU64_PopParam;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx10 [1008];
///////////////////////////////////////////////////////////
SIE_A64CmdAll ie_a64CmdAll;
///////////////////////////////////////////////////////////
SIE_A64DatAll ie_a64DatAll;
///////////////////////////////////////////////////////////
} SIE_ALU64;
typedef union T32ALU64_xT_l
{ UNSG32 u32;
struct w32ALU64_xT_l;
} T32ALU64_xT_l;
typedef union T32ALU64_xT_h
{ UNSG32 u32;
struct w32ALU64_xT_h;
} T32ALU64_xT_h;
typedef union T32ALU64_X2Q
{ UNSG32 u32;
struct w32ALU64_X2Q;
} T32ALU64_X2Q;
typedef union T32ALU64_PopParam
{ UNSG32 u32;
struct w32ALU64_PopParam;
} T32ALU64_PopParam;
///////////////////////////////////////////////////////////
typedef union TALU64_xT_l
{ UNSG32 u32[1];
struct {
struct w32ALU64_xT_l;
};
} TALU64_xT_l;
typedef union TALU64_xT_h
{ UNSG32 u32[1];
struct {
struct w32ALU64_xT_h;
};
} TALU64_xT_h;
typedef union TALU64_X2Q
{ UNSG32 u32[1];
struct {
struct w32ALU64_X2Q;
};
} TALU64_X2Q;
typedef union TALU64_PopParam
{ UNSG32 u32[1];
struct {
struct w32ALU64_PopParam;
};
} TALU64_PopParam;
///////////////////////////////////////////////////////////
SIGN32 ALU64_drvrd(SIE_ALU64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ALU64_drvwr(SIE_ALU64 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ALU64_reset(SIE_ALU64 *p);
SIGN32 ALU64_cmp (SIE_ALU64 *p, SIE_ALU64 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ALU64_check(p,pie,pfx,hLOG) ALU64_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ALU64_print(p, pfx,hLOG) ALU64_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ALU64
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoTraceBuf biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (P)
/// %unsigned 32 val
/// ###
/// * Register window for the trace buffer
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoTraceBuf
#define h_FigoTraceBuf (){}
#define RA_FigoTraceBuf_entry 0x0000
#define BA_FigoTraceBuf_entry_val 0x0000
#define B16FigoTraceBuf_entry_val 0x0000
#define LSb32FigoTraceBuf_entry_val 0
#define LSb16FigoTraceBuf_entry_val 0
#define bFigoTraceBuf_entry_val 32
#define MSK32FigoTraceBuf_entry_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoTraceBuf {
///////////////////////////////////////////////////////////
#define GET32FigoTraceBuf_entry_val(r32) _BFGET_(r32,31, 0)
#define SET32FigoTraceBuf_entry_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoTraceBuf_entry {\
UNSG32 uentry_val : 32;\
}
union { UNSG32 u32FigoTraceBuf_entry;
struct w32FigoTraceBuf_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoTraceBuf;
typedef union T32FigoTraceBuf_entry
{ UNSG32 u32;
struct w32FigoTraceBuf_entry;
} T32FigoTraceBuf_entry;
///////////////////////////////////////////////////////////
typedef union TFigoTraceBuf_entry
{ UNSG32 u32[1];
struct {
struct w32FigoTraceBuf_entry;
};
} TFigoTraceBuf_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoTraceBuf_drvrd(SIE_FigoTraceBuf *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoTraceBuf_drvwr(SIE_FigoTraceBuf *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoTraceBuf_reset(SIE_FigoTraceBuf *p);
SIGN32 FigoTraceBuf_cmp (SIE_FigoTraceBuf *p, SIE_FigoTraceBuf *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoTraceBuf_check(p,pie,pfx,hLOG) FigoTraceBuf_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoTraceBuf_print(p, pfx,hLOG) FigoTraceBuf_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoTraceBuf
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoReg16 biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (P)
/// %unsigned 16 val
/// ###
/// * Register window for the trace buffer
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoReg16
#define h_FigoReg16 (){}
#define RA_FigoReg16_entry 0x0000
#define BA_FigoReg16_entry_val 0x0000
#define B16FigoReg16_entry_val 0x0000
#define LSb32FigoReg16_entry_val 0
#define LSb16FigoReg16_entry_val 0
#define bFigoReg16_entry_val 16
#define MSK32FigoReg16_entry_val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoReg16 {
///////////////////////////////////////////////////////////
#define GET32FigoReg16_entry_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg16_entry_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg16_entry_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg16_entry_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg16_entry {\
UNSG32 uentry_val : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32FigoReg16_entry;
struct w32FigoReg16_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoReg16;
typedef union T32FigoReg16_entry
{ UNSG32 u32;
struct w32FigoReg16_entry;
} T32FigoReg16_entry;
///////////////////////////////////////////////////////////
typedef union TFigoReg16_entry
{ UNSG32 u32[1];
struct {
struct w32FigoReg16_entry;
};
} TFigoReg16_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoReg16_drvrd(SIE_FigoReg16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoReg16_drvwr(SIE_FigoReg16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoReg16_reset(SIE_FigoReg16 *p);
SIGN32 FigoReg16_cmp (SIE_FigoReg16 *p, SIE_FigoReg16 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoReg16_check(p,pie,pfx,hLOG) FigoReg16_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoReg16_print(p, pfx,hLOG) FigoReg16_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoReg16
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoRF16Reg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (RW)
/// %unsigned 16 val 0x0
/// ###
/// * Register window for the RF16 access in debug mode
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoRF16Reg
#define h_FigoRF16Reg (){}
#define RA_FigoRF16Reg_entry 0x0000
#define BA_FigoRF16Reg_entry_val 0x0000
#define B16FigoRF16Reg_entry_val 0x0000
#define LSb32FigoRF16Reg_entry_val 0
#define LSb16FigoRF16Reg_entry_val 0
#define bFigoRF16Reg_entry_val 16
#define MSK32FigoRF16Reg_entry_val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoRF16Reg {
///////////////////////////////////////////////////////////
#define GET32FigoRF16Reg_entry_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoRF16Reg_entry_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoRF16Reg_entry_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoRF16Reg_entry_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoRF16Reg_entry {\
UNSG32 uentry_val : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32FigoRF16Reg_entry;
struct w32FigoRF16Reg_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoRF16Reg;
typedef union T32FigoRF16Reg_entry
{ UNSG32 u32;
struct w32FigoRF16Reg_entry;
} T32FigoRF16Reg_entry;
///////////////////////////////////////////////////////////
typedef union TFigoRF16Reg_entry
{ UNSG32 u32[1];
struct {
struct w32FigoRF16Reg_entry;
};
} TFigoRF16Reg_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoRF16Reg_drvrd(SIE_FigoRF16Reg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoRF16Reg_drvwr(SIE_FigoRF16Reg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoRF16Reg_reset(SIE_FigoRF16Reg *p);
SIGN32 FigoRF16Reg_cmp (SIE_FigoRF16Reg *p, SIE_FigoRF16Reg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoRF16Reg_check(p,pie,pfx,hLOG) FigoRF16Reg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoRF16Reg_print(p, pfx,hLOG) FigoRF16Reg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoRF16Reg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoMem16 (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (RW-)
/// %unsigned 16 val
/// ###
/// * Register window for the Jump Stack access in debug mode
/// ###
/// %% 16 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 16b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoMem16
#define h_FigoMem16 (){}
#define RA_FigoMem16_entry 0x0000
#define BA_FigoMem16_entry_val 0x0000
#define B16FigoMem16_entry_val 0x0000
#define LSb32FigoMem16_entry_val 0
#define LSb16FigoMem16_entry_val 0
#define bFigoMem16_entry_val 16
#define MSK32FigoMem16_entry_val 0x0000FFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoMem16 {
///////////////////////////////////////////////////////////
#define GET32FigoMem16_entry_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoMem16_entry_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoMem16_entry_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoMem16_entry_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoMem16_entry {\
UNSG32 uentry_val : 16;\
UNSG32 RSVDx0_b16 : 16;\
}
union { UNSG32 u32FigoMem16_entry;
struct w32FigoMem16_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoMem16;
typedef union T32FigoMem16_entry
{ UNSG32 u32;
struct w32FigoMem16_entry;
} T32FigoMem16_entry;
///////////////////////////////////////////////////////////
typedef union TFigoMem16_entry
{ UNSG32 u32[1];
struct {
struct w32FigoMem16_entry;
};
} TFigoMem16_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoMem16_drvrd(SIE_FigoMem16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoMem16_drvwr(SIE_FigoMem16 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoMem16_reset(SIE_FigoMem16 *p);
SIGN32 FigoMem16_cmp (SIE_FigoMem16 *p, SIE_FigoMem16 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoMem16_check(p,pie,pfx,hLOG) FigoMem16_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoMem16_print(p, pfx,hLOG) FigoMem16_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoMem16
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoMem32 (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 entry (RW-)
/// %unsigned 32 val
/// ###
/// * Register window for the Jump Stack access in debug mode
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoMem32
#define h_FigoMem32 (){}
#define RA_FigoMem32_entry 0x0000
#define BA_FigoMem32_entry_val 0x0000
#define B16FigoMem32_entry_val 0x0000
#define LSb32FigoMem32_entry_val 0
#define LSb16FigoMem32_entry_val 0
#define bFigoMem32_entry_val 32
#define MSK32FigoMem32_entry_val 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoMem32 {
///////////////////////////////////////////////////////////
#define GET32FigoMem32_entry_val(r32) _BFGET_(r32,31, 0)
#define SET32FigoMem32_entry_val(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoMem32_entry {\
UNSG32 uentry_val : 32;\
}
union { UNSG32 u32FigoMem32_entry;
struct w32FigoMem32_entry;
};
///////////////////////////////////////////////////////////
} SIE_FigoMem32;
typedef union T32FigoMem32_entry
{ UNSG32 u32;
struct w32FigoMem32_entry;
} T32FigoMem32_entry;
///////////////////////////////////////////////////////////
typedef union TFigoMem32_entry
{ UNSG32 u32[1];
struct {
struct w32FigoMem32_entry;
};
} TFigoMem32_entry;
///////////////////////////////////////////////////////////
SIGN32 FigoMem32_drvrd(SIE_FigoMem32 *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoMem32_drvwr(SIE_FigoMem32 *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoMem32_reset(SIE_FigoMem32 *p);
SIGN32 FigoMem32_cmp (SIE_FigoMem32 *p, SIE_FigoMem32 *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoMem32_check(p,pie,pfx,hLOG) FigoMem32_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoMem32_print(p, pfx,hLOG) FigoMem32_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoMem32
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoDebug biu (4,4)
/// ###
/// * FIGO debug mode related registers and signals
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 figoDbg (RW-)
/// ###
/// * Puts FIGO in debug mode
/// ###
/// %unsigned 1 on 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00004 figoDbgMode (P)
/// ###
/// * Determines FIGO's behavior in debug mode
/// ###
/// %unsigned 2 mode 0x0
/// : stop 0x0
/// ###
/// * FIGO flushes and stalls its pipeline
/// ###
/// : step 0x1
/// ###
/// * FIGO executes one instruction at a time. Repeat to execute the next instruction.
/// ###
/// : slow_run 0x2
/// ###
/// * FIGO inserts sufficient bubbles between each instruction to bypass all forwarding logic
/// ###
/// : fast_run 0x3
/// ###
/// * FIGO resumes full-speed operation. Feature has been disabled due to timing impact.
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00008 figoDbgModeStatus (R-)
/// ###
/// * Similar to figoDbgMode, but read-only. Shows the actual status of FIGO, as it may be different from what is set in figoDbgMode.
/// ###
/// %unsigned 2 mode 0x0
/// : stop 0x0
/// : step 0x1
/// : slow_run 0x2
/// : fast_run 0x3
/// ###
/// * Same enumerations
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x0000C figoDbgTrigInMask (P)
/// ###
/// * 4 mask bits for trigger-in signals from up to 4 other FIGOs hitting breakpoints.
/// ###
/// %unsigned 4 on 0xF
/// ###
/// * On by default, all trigger-ins are blocked.
/// ###
/// %% 28 # Stuffing bits...
/// @ 0x00010 (W-)
/// # # Stuffing bytes...
/// %% 384
/// @ 0x00040 figoDbgRF16 (RW-)
/// ###
/// * BIU access to RF16
/// ###
/// # 0x00040 rf16
/// $FigoMem16 rf16 MEM [16]
/// ###
/// * Register mapping
/// * x0 = {d0,c0,b0,a0} = MEM[3:0]
/// * x1 = {d1,c1,b1,a1} = MEM[7:4]
/// * x2 = {d2,c2,b2,a2} = MEM[11:8]
/// * x3 = {d3,c3,b3,a3} = MEM[15:12]
/// ###
/// @ 0x00080 figoDbgRB (RW-)
/// ###
/// * BIU access to RB register
/// ###
/// %unsigned 16 rb 0x0
/// %% 16 # Stuffing bits...
/// @ 0x00084 figoDbgPCAtFetch (R-)
/// ###
/// * BIU access to PC register at Fetch stage
/// ###
/// %unsigned 16 pc 0x0
/// %% 16 # Stuffing bits...
/// @ 0x00088 (W-)
/// # # Stuffing bytes...
/// %% 64
/// @ 0x00090 figoDbgJumpStack (RW-)
/// ###
/// * BIU access to jump stack
/// ###
/// # 0x00090 stack
/// $FigoMem32 stack MEM [4]
/// ###
/// * Register mapping
/// * MEM[0] = {branchPos[0],jumpDest[0]}
/// * MEM[1] = {branchPos[1],jumpDest[1]}
/// * MEM[2] = {branchPos[2],jumpDest[2]}
/// * MEM[3] = {branchPos[3],jumpDest[3]}
/// ###
/// @ 0x000A0 figoDbgStackDepth (R-)
/// ###
/// * BIU access to number of current jump stack entries
/// ###
/// %unsigned 5 depth 0x0
/// ###
/// * Values are one-hot. Following actual stack pointer implementation inside FIGO so that no additional logic is required.
/// * 00001 = 0 valid entries (stack empty)
/// * 00010 = 1 valid entry
/// * 00100 = 2 valid entries
/// * 01000 = 3 valid entries
/// * 10000 = 4 valid entries (stack full)
/// ###
/// %% 27 # Stuffing bits...
/// @ 0x000A4 figoDbgFlags (R-)
/// ###
/// * BIU access to flags register
/// ###
/// %unsigned 16 flags 0x0
/// ###
/// * flags[15:0] = {LSj, Lj, GSj, Gj, LS, L, GS, G, 1, 0, Cj, Zj, V, N, C, Z}
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x000A8 figoDbgBreak (WOC-)
/// ###
/// * Bit that indicates FIGO entered debug mode due to breakpoint
/// ###
/// %unsigned 1 up 0x0
/// ###
/// * Write one to clear
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x000AC figoDbgBkBitWen (P)
/// ###
/// * Enable bit to allow breakpoint bits to be written into ITCM by BIU.
/// ###
/// %unsigned 1 en 0x0
/// ###
/// * Additional enable bit to safeguard against accidentally writing ones into the breakpoint fields of the ITCM.
/// * Register window for the trace buffer
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x000B0 (W-)
/// # # Stuffing bytes...
/// %% 128
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 192B, bits: 128b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoDebug
#define h_FigoDebug (){}
#define RA_FigoDebug_figoDbg 0x0000
#define BA_FigoDebug_figoDbg_on 0x0000
#define B16FigoDebug_figoDbg_on 0x0000
#define LSb32FigoDebug_figoDbg_on 0
#define LSb16FigoDebug_figoDbg_on 0
#define bFigoDebug_figoDbg_on 1
#define MSK32FigoDebug_figoDbg_on 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgMode 0x0004
#define BA_FigoDebug_figoDbgMode_mode 0x0004
#define B16FigoDebug_figoDbgMode_mode 0x0004
#define LSb32FigoDebug_figoDbgMode_mode 0
#define LSb16FigoDebug_figoDbgMode_mode 0
#define bFigoDebug_figoDbgMode_mode 2
#define MSK32FigoDebug_figoDbgMode_mode 0x00000003
#define FigoDebug_figoDbgMode_mode_stop 0x0
#define FigoDebug_figoDbgMode_mode_step 0x1
#define FigoDebug_figoDbgMode_mode_slow_run 0x2
#define FigoDebug_figoDbgMode_mode_fast_run 0x3
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgModeStatus 0x0008
#define BA_FigoDebug_figoDbgModeStatus_mode 0x0008
#define B16FigoDebug_figoDbgModeStatus_mode 0x0008
#define LSb32FigoDebug_figoDbgModeStatus_mode 0
#define LSb16FigoDebug_figoDbgModeStatus_mode 0
#define bFigoDebug_figoDbgModeStatus_mode 2
#define MSK32FigoDebug_figoDbgModeStatus_mode 0x00000003
#define FigoDebug_figoDbgModeStatus_mode_stop 0x0
#define FigoDebug_figoDbgModeStatus_mode_step 0x1
#define FigoDebug_figoDbgModeStatus_mode_slow_run 0x2
#define FigoDebug_figoDbgModeStatus_mode_fast_run 0x3
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgTrigInMask 0x000C
#define BA_FigoDebug_figoDbgTrigInMask_on 0x000C
#define B16FigoDebug_figoDbgTrigInMask_on 0x000C
#define LSb32FigoDebug_figoDbgTrigInMask_on 0
#define LSb16FigoDebug_figoDbgTrigInMask_on 0
#define bFigoDebug_figoDbgTrigInMask_on 4
#define MSK32FigoDebug_figoDbgTrigInMask_on 0x0000000F
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgRF16 0x0040
#define RA_FigoDebug_rf16 0x0040
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgRB 0x0080
#define BA_FigoDebug_figoDbgRB_rb 0x0080
#define B16FigoDebug_figoDbgRB_rb 0x0080
#define LSb32FigoDebug_figoDbgRB_rb 0
#define LSb16FigoDebug_figoDbgRB_rb 0
#define bFigoDebug_figoDbgRB_rb 16
#define MSK32FigoDebug_figoDbgRB_rb 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgPCAtFetch 0x0084
#define BA_FigoDebug_figoDbgPCAtFetch_pc 0x0084
#define B16FigoDebug_figoDbgPCAtFetch_pc 0x0084
#define LSb32FigoDebug_figoDbgPCAtFetch_pc 0
#define LSb16FigoDebug_figoDbgPCAtFetch_pc 0
#define bFigoDebug_figoDbgPCAtFetch_pc 16
#define MSK32FigoDebug_figoDbgPCAtFetch_pc 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgJumpStack 0x0090
#define RA_FigoDebug_stack 0x0090
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgStackDepth 0x00A0
#define BA_FigoDebug_figoDbgStackDepth_depth 0x00A0
#define B16FigoDebug_figoDbgStackDepth_depth 0x00A0
#define LSb32FigoDebug_figoDbgStackDepth_depth 0
#define LSb16FigoDebug_figoDbgStackDepth_depth 0
#define bFigoDebug_figoDbgStackDepth_depth 5
#define MSK32FigoDebug_figoDbgStackDepth_depth 0x0000001F
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgFlags 0x00A4
#define BA_FigoDebug_figoDbgFlags_flags 0x00A4
#define B16FigoDebug_figoDbgFlags_flags 0x00A4
#define LSb32FigoDebug_figoDbgFlags_flags 0
#define LSb16FigoDebug_figoDbgFlags_flags 0
#define bFigoDebug_figoDbgFlags_flags 16
#define MSK32FigoDebug_figoDbgFlags_flags 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgBreak 0x00A8
#define BA_FigoDebug_figoDbgBreak_up 0x00A8
#define B16FigoDebug_figoDbgBreak_up 0x00A8
#define LSb32FigoDebug_figoDbgBreak_up 0
#define LSb16FigoDebug_figoDbgBreak_up 0
#define bFigoDebug_figoDbgBreak_up 1
#define MSK32FigoDebug_figoDbgBreak_up 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoDebug_figoDbgBkBitWen 0x00AC
#define BA_FigoDebug_figoDbgBkBitWen_en 0x00AC
#define B16FigoDebug_figoDbgBkBitWen_en 0x00AC
#define LSb32FigoDebug_figoDbgBkBitWen_en 0
#define LSb16FigoDebug_figoDbgBkBitWen_en 0
#define bFigoDebug_figoDbgBkBitWen_en 1
#define MSK32FigoDebug_figoDbgBkBitWen_en 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_FigoDebug {
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbg_on(r32) _BFGET_(r32, 0, 0)
#define SET32FigoDebug_figoDbg_on(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoDebug_figoDbg_on(r16) _BFGET_(r16, 0, 0)
#define SET16FigoDebug_figoDbg_on(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoDebug_figoDbg {\
UNSG32 ufigoDbg_on : 1;\
UNSG32 RSVDx0_b1 : 31;\
}
union { UNSG32 u32FigoDebug_figoDbg;
struct w32FigoDebug_figoDbg;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgMode_mode(r32) _BFGET_(r32, 1, 0)
#define SET32FigoDebug_figoDbgMode_mode(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16FigoDebug_figoDbgMode_mode(r16) _BFGET_(r16, 1, 0)
#define SET16FigoDebug_figoDbgMode_mode(r16,v) _BFSET_(r16, 1, 0,v)
#define w32FigoDebug_figoDbgMode {\
UNSG32 ufigoDbgMode_mode : 2;\
UNSG32 RSVDx4_b2 : 30;\
}
union { UNSG32 u32FigoDebug_figoDbgMode;
struct w32FigoDebug_figoDbgMode;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgModeStatus_mode(r32) _BFGET_(r32, 1, 0)
#define SET32FigoDebug_figoDbgModeStatus_mode(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16FigoDebug_figoDbgModeStatus_mode(r16) _BFGET_(r16, 1, 0)
#define SET16FigoDebug_figoDbgModeStatus_mode(r16,v) _BFSET_(r16, 1, 0,v)
#define w32FigoDebug_figoDbgModeStatus {\
UNSG32 ufigoDbgModeStatus_mode : 2;\
UNSG32 RSVDx8_b2 : 30;\
}
union { UNSG32 u32FigoDebug_figoDbgModeStatus;
struct w32FigoDebug_figoDbgModeStatus;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgTrigInMask_on(r32) _BFGET_(r32, 3, 0)
#define SET32FigoDebug_figoDbgTrigInMask_on(r32,v) _BFSET_(r32, 3, 0,v)
#define GET16FigoDebug_figoDbgTrigInMask_on(r16) _BFGET_(r16, 3, 0)
#define SET16FigoDebug_figoDbgTrigInMask_on(r16,v) _BFSET_(r16, 3, 0,v)
#define w32FigoDebug_figoDbgTrigInMask {\
UNSG32 ufigoDbgTrigInMask_on : 4;\
UNSG32 RSVDxC_b4 : 28;\
}
union { UNSG32 u32FigoDebug_figoDbgTrigInMask;
struct w32FigoDebug_figoDbgTrigInMask;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx10 [48];
///////////////////////////////////////////////////////////
SIE_FigoMem16 ie_rf16[16];
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgRB_rb(r32) _BFGET_(r32,15, 0)
#define SET32FigoDebug_figoDbgRB_rb(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoDebug_figoDbgRB_rb(r16) _BFGET_(r16,15, 0)
#define SET16FigoDebug_figoDbgRB_rb(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoDebug_figoDbgRB {\
UNSG32 ufigoDbgRB_rb : 16;\
UNSG32 RSVDx80_b16 : 16;\
}
union { UNSG32 u32FigoDebug_figoDbgRB;
struct w32FigoDebug_figoDbgRB;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgPCAtFetch_pc(r32) _BFGET_(r32,15, 0)
#define SET32FigoDebug_figoDbgPCAtFetch_pc(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoDebug_figoDbgPCAtFetch_pc(r16) _BFGET_(r16,15, 0)
#define SET16FigoDebug_figoDbgPCAtFetch_pc(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoDebug_figoDbgPCAtFetch {\
UNSG32 ufigoDbgPCAtFetch_pc : 16;\
UNSG32 RSVDx84_b16 : 16;\
}
union { UNSG32 u32FigoDebug_figoDbgPCAtFetch;
struct w32FigoDebug_figoDbgPCAtFetch;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx88 [8];
///////////////////////////////////////////////////////////
SIE_FigoMem32 ie_stack[4];
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgStackDepth_depth(r32) _BFGET_(r32, 4, 0)
#define SET32FigoDebug_figoDbgStackDepth_depth(r32,v) _BFSET_(r32, 4, 0,v)
#define GET16FigoDebug_figoDbgStackDepth_depth(r16) _BFGET_(r16, 4, 0)
#define SET16FigoDebug_figoDbgStackDepth_depth(r16,v) _BFSET_(r16, 4, 0,v)
#define w32FigoDebug_figoDbgStackDepth {\
UNSG32 ufigoDbgStackDepth_depth : 5;\
UNSG32 RSVDxA0_b5 : 27;\
}
union { UNSG32 u32FigoDebug_figoDbgStackDepth;
struct w32FigoDebug_figoDbgStackDepth;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgFlags_flags(r32) _BFGET_(r32,15, 0)
#define SET32FigoDebug_figoDbgFlags_flags(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoDebug_figoDbgFlags_flags(r16) _BFGET_(r16,15, 0)
#define SET16FigoDebug_figoDbgFlags_flags(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoDebug_figoDbgFlags {\
UNSG32 ufigoDbgFlags_flags : 16;\
UNSG32 RSVDxA4_b16 : 16;\
}
union { UNSG32 u32FigoDebug_figoDbgFlags;
struct w32FigoDebug_figoDbgFlags;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgBreak_up(r32) _BFGET_(r32, 0, 0)
#define SET32FigoDebug_figoDbgBreak_up(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoDebug_figoDbgBreak_up(r16) _BFGET_(r16, 0, 0)
#define SET16FigoDebug_figoDbgBreak_up(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoDebug_figoDbgBreak {\
UNSG32 ufigoDbgBreak_up : 1;\
UNSG32 RSVDxA8_b1 : 31;\
}
union { UNSG32 u32FigoDebug_figoDbgBreak;
struct w32FigoDebug_figoDbgBreak;
};
///////////////////////////////////////////////////////////
#define GET32FigoDebug_figoDbgBkBitWen_en(r32) _BFGET_(r32, 0, 0)
#define SET32FigoDebug_figoDbgBkBitWen_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoDebug_figoDbgBkBitWen_en(r16) _BFGET_(r16, 0, 0)
#define SET16FigoDebug_figoDbgBkBitWen_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoDebug_figoDbgBkBitWen {\
UNSG32 ufigoDbgBkBitWen_en : 1;\
UNSG32 RSVDxAC_b1 : 31;\
}
union { UNSG32 u32FigoDebug_figoDbgBkBitWen;
struct w32FigoDebug_figoDbgBkBitWen;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxB0 [16];
///////////////////////////////////////////////////////////
} SIE_FigoDebug;
typedef union T32FigoDebug_figoDbg
{ UNSG32 u32;
struct w32FigoDebug_figoDbg;
} T32FigoDebug_figoDbg;
typedef union T32FigoDebug_figoDbgMode
{ UNSG32 u32;
struct w32FigoDebug_figoDbgMode;
} T32FigoDebug_figoDbgMode;
typedef union T32FigoDebug_figoDbgModeStatus
{ UNSG32 u32;
struct w32FigoDebug_figoDbgModeStatus;
} T32FigoDebug_figoDbgModeStatus;
typedef union T32FigoDebug_figoDbgTrigInMask
{ UNSG32 u32;
struct w32FigoDebug_figoDbgTrigInMask;
} T32FigoDebug_figoDbgTrigInMask;
typedef union T32FigoDebug_figoDbgRB
{ UNSG32 u32;
struct w32FigoDebug_figoDbgRB;
} T32FigoDebug_figoDbgRB;
typedef union T32FigoDebug_figoDbgPCAtFetch
{ UNSG32 u32;
struct w32FigoDebug_figoDbgPCAtFetch;
} T32FigoDebug_figoDbgPCAtFetch;
typedef union T32FigoDebug_figoDbgStackDepth
{ UNSG32 u32;
struct w32FigoDebug_figoDbgStackDepth;
} T32FigoDebug_figoDbgStackDepth;
typedef union T32FigoDebug_figoDbgFlags
{ UNSG32 u32;
struct w32FigoDebug_figoDbgFlags;
} T32FigoDebug_figoDbgFlags;
typedef union T32FigoDebug_figoDbgBreak
{ UNSG32 u32;
struct w32FigoDebug_figoDbgBreak;
} T32FigoDebug_figoDbgBreak;
typedef union T32FigoDebug_figoDbgBkBitWen
{ UNSG32 u32;
struct w32FigoDebug_figoDbgBkBitWen;
} T32FigoDebug_figoDbgBkBitWen;
///////////////////////////////////////////////////////////
typedef union TFigoDebug_figoDbg
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbg;
};
} TFigoDebug_figoDbg;
typedef union TFigoDebug_figoDbgMode
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgMode;
};
} TFigoDebug_figoDbgMode;
typedef union TFigoDebug_figoDbgModeStatus
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgModeStatus;
};
} TFigoDebug_figoDbgModeStatus;
typedef union TFigoDebug_figoDbgTrigInMask
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgTrigInMask;
};
} TFigoDebug_figoDbgTrigInMask;
typedef union TFigoDebug_figoDbgRB
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgRB;
};
} TFigoDebug_figoDbgRB;
typedef union TFigoDebug_figoDbgPCAtFetch
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgPCAtFetch;
};
} TFigoDebug_figoDbgPCAtFetch;
typedef union TFigoDebug_figoDbgStackDepth
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgStackDepth;
};
} TFigoDebug_figoDbgStackDepth;
typedef union TFigoDebug_figoDbgFlags
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgFlags;
};
} TFigoDebug_figoDbgFlags;
typedef union TFigoDebug_figoDbgBreak
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgBreak;
};
} TFigoDebug_figoDbgBreak;
typedef union TFigoDebug_figoDbgBkBitWen
{ UNSG32 u32[1];
struct {
struct w32FigoDebug_figoDbgBkBitWen;
};
} TFigoDebug_figoDbgBkBitWen;
///////////////////////////////////////////////////////////
SIGN32 FigoDebug_drvrd(SIE_FigoDebug *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoDebug_drvwr(SIE_FigoDebug *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoDebug_reset(SIE_FigoDebug *p);
SIGN32 FigoDebug_cmp (SIE_FigoDebug *p, SIE_FigoDebug *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoDebug_check(p,pie,pfx,hLOG) FigoDebug_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoDebug_print(p, pfx,hLOG) FigoDebug_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoDebug
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoReg biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 figoCtrl (P)
/// %unsigned 16 pcStartLoc 0x0
/// %unsigned 1 tBufMode 0x0
/// : freeRun 0x0
/// ###
/// * Trace buffer operating as ring buffer
/// ###
/// : fifoMode 0x1
/// ###
/// * Trace buffer operating as FIFO; FIGO stalls when full
/// ###
/// %% 15 # Stuffing bits...
/// @ 0x00004 figoID (R-)
/// ###
/// * Processor ID, unique for each FIGO
/// ###
/// %unsigned 16 ID 0x0
/// ###
/// * Processor ID. Specified in FIGO baseline subsystem configuration file.
/// ###
/// %unsigned 16 REV 0x0
/// ###
/// * Revision ID. Hard-coded in FIGO core RTL.
/// ###
/// @ 0x00008 figoMaxAdr (P)
/// ###
/// * Max address for ITCM and DTCM, used to detect addr out-of-bound
/// ###
/// %unsigned 16 itcm 0xFFFF
/// %unsigned 16 dtcm 0xFFFF
/// @ 0x0000C figoFlags (WOC-)
/// ###
/// * Exception flags; FIGO halts when unmasked exception happens; write one to clear
/// ###
/// %unsigned 1 itcmAdrOOB 0x0
/// ###
/// * ITCM address > figoMaxAdr.itcm
/// ###
/// %unsigned 1 dtcmAdrOOB 0x0
/// ###
/// * DTCM address > figoMaxAdr.dtcm
/// ###
/// %unsigned 1 divideBy0 0x0
/// ###
/// * MDU divide by 0 detected
/// ###
/// %unsigned 1 traceBufFull 0x0
/// ###
/// * Trace buffer is full. Only valid when figoCtrl.tBufMode = fifoMode
/// ###
/// %unsigned 1 illegalIns 0x0
/// ###
/// * Illegal instruction detected at ID stage
/// ###
/// %unsigned 1 ALU64Overflow 0x0
/// ###
/// * One of the ALU64 extensions asserted a command push overflow.
/// ###
/// %unsigned 1 JTInvdPush 0x0
/// ###
/// * Detected a jump table push when it's already full.
/// ###
/// %% 25 # Stuffing bits...
/// @ 0x00010 figoFlagsMask (P)
/// ###
/// * Mask bits for FIGO exception flags. Does not block exception flags from asserting, instead, it prevents FIGO from halting when the masked exception occurs.
/// ###
/// %unsigned 1 itcmAdrOOBMask 0x0
/// %unsigned 1 dtcmAdrOOBMask 0x0
/// %unsigned 1 divideBy0Mask 0x0
/// %unsigned 1 traceBufFullMask 0x0
/// %unsigned 1 illegalInsMask 0x0
/// %unsigned 1 ALU64OverflowMask 0x0
/// %unsigned 1 JTInvdPushMask 0x0
/// %% 25 # Stuffing bits...
/// @ 0x00014 figoLastPC (R-)
/// ###
/// * Last PC value before exception occurred
/// ###
/// %unsigned 16 val 0x0
/// %% 16 # Stuffing bits...
/// @ 0x00018 figoCurrPC (R-)
/// # 0x00018 pc
/// $FigoReg16 pc MEM
/// ###
/// * Current PC value @ ID stage
/// ###
/// @ 0x0001C figoTraceBuf (RW-)
/// # 0x0001C tbuf
/// $FigoTraceBuf tbuf MEM
/// ###
/// * Register window for the trace buffer
/// ###
/// @ 0x00020 figoIntr (W-)
/// ###
/// * Special register for FIGO to raise interrupt to CPU via vPro semaphore; write to raise interrupt; no status
/// ###
/// %unsigned 1 up 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00024 figoIntrLvl (WOC-)
/// ###
/// * Special register to record that interrupt has occurred; to be used as level interrupt; cleared by writing 1
/// ###
/// %unsigned 1 st 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00028 figoRstn (RW-)
/// ###
/// * Special register to stop / reset FIGO execution; write 1 to release FIGO, write 0 to reset FIGO (sticky)
/// ###
/// %unsigned 1 up 0x0
/// %% 31 # Stuffing bits...
/// @ 0x0002C figoCnt (RW-)
/// ###
/// * Controls the FIGO counter behavior
/// ###
/// %unsigned 1 en 0x0
/// %% 31 # Stuffing bits...
/// @ 0x00030 figoCntClr (W-)
/// ###
/// * Clear FIGO counters; write 1 to clear specific counters
/// ###
/// %unsigned 1 run
/// %unsigned 1 stall
/// %% 30 # Stuffing bits...
/// @ 0x00034 figoRun (R-)
/// %unsigned 32 Cnt 0x0
/// @ 0x00038 figoStall (R-)
/// %unsigned 32 Cnt 0x0
/// @ 0x0003C (W-)
/// # # Stuffing bytes...
/// %% 15904
/// @ 0x00800 ALU64 (P)
/// # 0x00800 alu64
/// $ALU64 alu64 REG
/// ###
/// * **DONT_EXPAND_BELOW**
/// * ALU64 extensions access via AHB
/// ###
/// @ 0x01800 FIGODBG (P)
/// # 0x01800 debug
/// $FigoDebug debug REG
/// ###
/// * **DONT_EXPAND_BELOW**
/// * Debug mode related registers
/// ###
/// @ 0x018C0 (W-)
/// # # Stuffing bytes...
/// %% 14848
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8192B, bits: 523b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoReg
#define h_FigoReg (){}
#define RA_FigoReg_figoCtrl 0x0000
#define BA_FigoReg_figoCtrl_pcStartLoc 0x0000
#define B16FigoReg_figoCtrl_pcStartLoc 0x0000
#define LSb32FigoReg_figoCtrl_pcStartLoc 0
#define LSb16FigoReg_figoCtrl_pcStartLoc 0
#define bFigoReg_figoCtrl_pcStartLoc 16
#define MSK32FigoReg_figoCtrl_pcStartLoc 0x0000FFFF
#define BA_FigoReg_figoCtrl_tBufMode 0x0002
#define B16FigoReg_figoCtrl_tBufMode 0x0002
#define LSb32FigoReg_figoCtrl_tBufMode 16
#define LSb16FigoReg_figoCtrl_tBufMode 0
#define bFigoReg_figoCtrl_tBufMode 1
#define MSK32FigoReg_figoCtrl_tBufMode 0x00010000
#define FigoReg_figoCtrl_tBufMode_freeRun 0x0
#define FigoReg_figoCtrl_tBufMode_fifoMode 0x1
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoID 0x0004
#define BA_FigoReg_figoID_ID 0x0004
#define B16FigoReg_figoID_ID 0x0004
#define LSb32FigoReg_figoID_ID 0
#define LSb16FigoReg_figoID_ID 0
#define bFigoReg_figoID_ID 16
#define MSK32FigoReg_figoID_ID 0x0000FFFF
#define BA_FigoReg_figoID_REV 0x0006
#define B16FigoReg_figoID_REV 0x0006
#define LSb32FigoReg_figoID_REV 16
#define LSb16FigoReg_figoID_REV 0
#define bFigoReg_figoID_REV 16
#define MSK32FigoReg_figoID_REV 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoMaxAdr 0x0008
#define BA_FigoReg_figoMaxAdr_itcm 0x0008
#define B16FigoReg_figoMaxAdr_itcm 0x0008
#define LSb32FigoReg_figoMaxAdr_itcm 0
#define LSb16FigoReg_figoMaxAdr_itcm 0
#define bFigoReg_figoMaxAdr_itcm 16
#define MSK32FigoReg_figoMaxAdr_itcm 0x0000FFFF
#define BA_FigoReg_figoMaxAdr_dtcm 0x000A
#define B16FigoReg_figoMaxAdr_dtcm 0x000A
#define LSb32FigoReg_figoMaxAdr_dtcm 16
#define LSb16FigoReg_figoMaxAdr_dtcm 0
#define bFigoReg_figoMaxAdr_dtcm 16
#define MSK32FigoReg_figoMaxAdr_dtcm 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoFlags 0x000C
#define BA_FigoReg_figoFlags_itcmAdrOOB 0x000C
#define B16FigoReg_figoFlags_itcmAdrOOB 0x000C
#define LSb32FigoReg_figoFlags_itcmAdrOOB 0
#define LSb16FigoReg_figoFlags_itcmAdrOOB 0
#define bFigoReg_figoFlags_itcmAdrOOB 1
#define MSK32FigoReg_figoFlags_itcmAdrOOB 0x00000001
#define BA_FigoReg_figoFlags_dtcmAdrOOB 0x000C
#define B16FigoReg_figoFlags_dtcmAdrOOB 0x000C
#define LSb32FigoReg_figoFlags_dtcmAdrOOB 1
#define LSb16FigoReg_figoFlags_dtcmAdrOOB 1
#define bFigoReg_figoFlags_dtcmAdrOOB 1
#define MSK32FigoReg_figoFlags_dtcmAdrOOB 0x00000002
#define BA_FigoReg_figoFlags_divideBy0 0x000C
#define B16FigoReg_figoFlags_divideBy0 0x000C
#define LSb32FigoReg_figoFlags_divideBy0 2
#define LSb16FigoReg_figoFlags_divideBy0 2
#define bFigoReg_figoFlags_divideBy0 1
#define MSK32FigoReg_figoFlags_divideBy0 0x00000004
#define BA_FigoReg_figoFlags_traceBufFull 0x000C
#define B16FigoReg_figoFlags_traceBufFull 0x000C
#define LSb32FigoReg_figoFlags_traceBufFull 3
#define LSb16FigoReg_figoFlags_traceBufFull 3
#define bFigoReg_figoFlags_traceBufFull 1
#define MSK32FigoReg_figoFlags_traceBufFull 0x00000008
#define BA_FigoReg_figoFlags_illegalIns 0x000C
#define B16FigoReg_figoFlags_illegalIns 0x000C
#define LSb32FigoReg_figoFlags_illegalIns 4
#define LSb16FigoReg_figoFlags_illegalIns 4
#define bFigoReg_figoFlags_illegalIns 1
#define MSK32FigoReg_figoFlags_illegalIns 0x00000010
#define BA_FigoReg_figoFlags_ALU64Overflow 0x000C
#define B16FigoReg_figoFlags_ALU64Overflow 0x000C
#define LSb32FigoReg_figoFlags_ALU64Overflow 5
#define LSb16FigoReg_figoFlags_ALU64Overflow 5
#define bFigoReg_figoFlags_ALU64Overflow 1
#define MSK32FigoReg_figoFlags_ALU64Overflow 0x00000020
#define BA_FigoReg_figoFlags_JTInvdPush 0x000C
#define B16FigoReg_figoFlags_JTInvdPush 0x000C
#define LSb32FigoReg_figoFlags_JTInvdPush 6
#define LSb16FigoReg_figoFlags_JTInvdPush 6
#define bFigoReg_figoFlags_JTInvdPush 1
#define MSK32FigoReg_figoFlags_JTInvdPush 0x00000040
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoFlagsMask 0x0010
#define BA_FigoReg_figoFlagsMask_itcmAdrOOBMask 0x0010
#define B16FigoReg_figoFlagsMask_itcmAdrOOBMask 0x0010
#define LSb32FigoReg_figoFlagsMask_itcmAdrOOBMask 0
#define LSb16FigoReg_figoFlagsMask_itcmAdrOOBMask 0
#define bFigoReg_figoFlagsMask_itcmAdrOOBMask 1
#define MSK32FigoReg_figoFlagsMask_itcmAdrOOBMask 0x00000001
#define BA_FigoReg_figoFlagsMask_dtcmAdrOOBMask 0x0010
#define B16FigoReg_figoFlagsMask_dtcmAdrOOBMask 0x0010
#define LSb32FigoReg_figoFlagsMask_dtcmAdrOOBMask 1
#define LSb16FigoReg_figoFlagsMask_dtcmAdrOOBMask 1
#define bFigoReg_figoFlagsMask_dtcmAdrOOBMask 1
#define MSK32FigoReg_figoFlagsMask_dtcmAdrOOBMask 0x00000002
#define BA_FigoReg_figoFlagsMask_divideBy0Mask 0x0010
#define B16FigoReg_figoFlagsMask_divideBy0Mask 0x0010
#define LSb32FigoReg_figoFlagsMask_divideBy0Mask 2
#define LSb16FigoReg_figoFlagsMask_divideBy0Mask 2
#define bFigoReg_figoFlagsMask_divideBy0Mask 1
#define MSK32FigoReg_figoFlagsMask_divideBy0Mask 0x00000004
#define BA_FigoReg_figoFlagsMask_traceBufFullMask 0x0010
#define B16FigoReg_figoFlagsMask_traceBufFullMask 0x0010
#define LSb32FigoReg_figoFlagsMask_traceBufFullMask 3
#define LSb16FigoReg_figoFlagsMask_traceBufFullMask 3
#define bFigoReg_figoFlagsMask_traceBufFullMask 1
#define MSK32FigoReg_figoFlagsMask_traceBufFullMask 0x00000008
#define BA_FigoReg_figoFlagsMask_illegalInsMask 0x0010
#define B16FigoReg_figoFlagsMask_illegalInsMask 0x0010
#define LSb32FigoReg_figoFlagsMask_illegalInsMask 4
#define LSb16FigoReg_figoFlagsMask_illegalInsMask 4
#define bFigoReg_figoFlagsMask_illegalInsMask 1
#define MSK32FigoReg_figoFlagsMask_illegalInsMask 0x00000010
#define BA_FigoReg_figoFlagsMask_ALU64OverflowMask 0x0010
#define B16FigoReg_figoFlagsMask_ALU64OverflowMask 0x0010
#define LSb32FigoReg_figoFlagsMask_ALU64OverflowMask 5
#define LSb16FigoReg_figoFlagsMask_ALU64OverflowMask 5
#define bFigoReg_figoFlagsMask_ALU64OverflowMask 1
#define MSK32FigoReg_figoFlagsMask_ALU64OverflowMask 0x00000020
#define BA_FigoReg_figoFlagsMask_JTInvdPushMask 0x0010
#define B16FigoReg_figoFlagsMask_JTInvdPushMask 0x0010
#define LSb32FigoReg_figoFlagsMask_JTInvdPushMask 6
#define LSb16FigoReg_figoFlagsMask_JTInvdPushMask 6
#define bFigoReg_figoFlagsMask_JTInvdPushMask 1
#define MSK32FigoReg_figoFlagsMask_JTInvdPushMask 0x00000040
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoLastPC 0x0014
#define BA_FigoReg_figoLastPC_val 0x0014
#define B16FigoReg_figoLastPC_val 0x0014
#define LSb32FigoReg_figoLastPC_val 0
#define LSb16FigoReg_figoLastPC_val 0
#define bFigoReg_figoLastPC_val 16
#define MSK32FigoReg_figoLastPC_val 0x0000FFFF
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoCurrPC 0x0018
#define RA_FigoReg_pc 0x0018
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoTraceBuf 0x001C
#define RA_FigoReg_tbuf 0x001C
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoIntr 0x0020
#define BA_FigoReg_figoIntr_up 0x0020
#define B16FigoReg_figoIntr_up 0x0020
#define LSb32FigoReg_figoIntr_up 0
#define LSb16FigoReg_figoIntr_up 0
#define bFigoReg_figoIntr_up 1
#define MSK32FigoReg_figoIntr_up 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoIntrLvl 0x0024
#define BA_FigoReg_figoIntrLvl_st 0x0024
#define B16FigoReg_figoIntrLvl_st 0x0024
#define LSb32FigoReg_figoIntrLvl_st 0
#define LSb16FigoReg_figoIntrLvl_st 0
#define bFigoReg_figoIntrLvl_st 1
#define MSK32FigoReg_figoIntrLvl_st 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoRstn 0x0028
#define BA_FigoReg_figoRstn_up 0x0028
#define B16FigoReg_figoRstn_up 0x0028
#define LSb32FigoReg_figoRstn_up 0
#define LSb16FigoReg_figoRstn_up 0
#define bFigoReg_figoRstn_up 1
#define MSK32FigoReg_figoRstn_up 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoCnt 0x002C
#define BA_FigoReg_figoCnt_en 0x002C
#define B16FigoReg_figoCnt_en 0x002C
#define LSb32FigoReg_figoCnt_en 0
#define LSb16FigoReg_figoCnt_en 0
#define bFigoReg_figoCnt_en 1
#define MSK32FigoReg_figoCnt_en 0x00000001
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoCntClr 0x0030
#define BA_FigoReg_figoCntClr_run 0x0030
#define B16FigoReg_figoCntClr_run 0x0030
#define LSb32FigoReg_figoCntClr_run 0
#define LSb16FigoReg_figoCntClr_run 0
#define bFigoReg_figoCntClr_run 1
#define MSK32FigoReg_figoCntClr_run 0x00000001
#define BA_FigoReg_figoCntClr_stall 0x0030
#define B16FigoReg_figoCntClr_stall 0x0030
#define LSb32FigoReg_figoCntClr_stall 1
#define LSb16FigoReg_figoCntClr_stall 1
#define bFigoReg_figoCntClr_stall 1
#define MSK32FigoReg_figoCntClr_stall 0x00000002
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoRun 0x0034
#define BA_FigoReg_figoRun_Cnt 0x0034
#define B16FigoReg_figoRun_Cnt 0x0034
#define LSb32FigoReg_figoRun_Cnt 0
#define LSb16FigoReg_figoRun_Cnt 0
#define bFigoReg_figoRun_Cnt 32
#define MSK32FigoReg_figoRun_Cnt 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_FigoReg_figoStall 0x0038
#define BA_FigoReg_figoStall_Cnt 0x0038
#define B16FigoReg_figoStall_Cnt 0x0038
#define LSb32FigoReg_figoStall_Cnt 0
#define LSb16FigoReg_figoStall_Cnt 0
#define bFigoReg_figoStall_Cnt 32
#define MSK32FigoReg_figoStall_Cnt 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_FigoReg_ALU64 0x0800
#define RA_FigoReg_alu64 0x0800
///////////////////////////////////////////////////////////
#define RA_FigoReg_FIGODBG 0x1800
#define RA_FigoReg_debug 0x1800
///////////////////////////////////////////////////////////
typedef struct SIE_FigoReg {
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoCtrl_pcStartLoc(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoCtrl_pcStartLoc(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoCtrl_pcStartLoc(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoCtrl_pcStartLoc(r16,v) _BFSET_(r16,15, 0,v)
#define GET32FigoReg_figoCtrl_tBufMode(r32) _BFGET_(r32,16,16)
#define SET32FigoReg_figoCtrl_tBufMode(r32,v) _BFSET_(r32,16,16,v)
#define GET16FigoReg_figoCtrl_tBufMode(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoCtrl_tBufMode(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoCtrl {\
UNSG32 ufigoCtrl_pcStartLoc : 16;\
UNSG32 ufigoCtrl_tBufMode : 1;\
UNSG32 RSVDx0_b17 : 15;\
}
union { UNSG32 u32FigoReg_figoCtrl;
struct w32FigoReg_figoCtrl;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoID_ID(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoID_ID(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoID_ID(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoID_ID(r16,v) _BFSET_(r16,15, 0,v)
#define GET32FigoReg_figoID_REV(r32) _BFGET_(r32,31,16)
#define SET32FigoReg_figoID_REV(r32,v) _BFSET_(r32,31,16,v)
#define GET16FigoReg_figoID_REV(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoID_REV(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg_figoID {\
UNSG32 ufigoID_ID : 16;\
UNSG32 ufigoID_REV : 16;\
}
union { UNSG32 u32FigoReg_figoID;
struct w32FigoReg_figoID;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoMaxAdr_itcm(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoMaxAdr_itcm(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoMaxAdr_itcm(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoMaxAdr_itcm(r16,v) _BFSET_(r16,15, 0,v)
#define GET32FigoReg_figoMaxAdr_dtcm(r32) _BFGET_(r32,31,16)
#define SET32FigoReg_figoMaxAdr_dtcm(r32,v) _BFSET_(r32,31,16,v)
#define GET16FigoReg_figoMaxAdr_dtcm(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoMaxAdr_dtcm(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg_figoMaxAdr {\
UNSG32 ufigoMaxAdr_itcm : 16;\
UNSG32 ufigoMaxAdr_dtcm : 16;\
}
union { UNSG32 u32FigoReg_figoMaxAdr;
struct w32FigoReg_figoMaxAdr;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoFlags_itcmAdrOOB(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoFlags_itcmAdrOOB(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoFlags_itcmAdrOOB(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoFlags_itcmAdrOOB(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FigoReg_figoFlags_dtcmAdrOOB(r32) _BFGET_(r32, 1, 1)
#define SET32FigoReg_figoFlags_dtcmAdrOOB(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FigoReg_figoFlags_dtcmAdrOOB(r16) _BFGET_(r16, 1, 1)
#define SET16FigoReg_figoFlags_dtcmAdrOOB(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32FigoReg_figoFlags_divideBy0(r32) _BFGET_(r32, 2, 2)
#define SET32FigoReg_figoFlags_divideBy0(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16FigoReg_figoFlags_divideBy0(r16) _BFGET_(r16, 2, 2)
#define SET16FigoReg_figoFlags_divideBy0(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32FigoReg_figoFlags_traceBufFull(r32) _BFGET_(r32, 3, 3)
#define SET32FigoReg_figoFlags_traceBufFull(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16FigoReg_figoFlags_traceBufFull(r16) _BFGET_(r16, 3, 3)
#define SET16FigoReg_figoFlags_traceBufFull(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32FigoReg_figoFlags_illegalIns(r32) _BFGET_(r32, 4, 4)
#define SET32FigoReg_figoFlags_illegalIns(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16FigoReg_figoFlags_illegalIns(r16) _BFGET_(r16, 4, 4)
#define SET16FigoReg_figoFlags_illegalIns(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32FigoReg_figoFlags_ALU64Overflow(r32) _BFGET_(r32, 5, 5)
#define SET32FigoReg_figoFlags_ALU64Overflow(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16FigoReg_figoFlags_ALU64Overflow(r16) _BFGET_(r16, 5, 5)
#define SET16FigoReg_figoFlags_ALU64Overflow(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32FigoReg_figoFlags_JTInvdPush(r32) _BFGET_(r32, 6, 6)
#define SET32FigoReg_figoFlags_JTInvdPush(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16FigoReg_figoFlags_JTInvdPush(r16) _BFGET_(r16, 6, 6)
#define SET16FigoReg_figoFlags_JTInvdPush(r16,v) _BFSET_(r16, 6, 6,v)
#define w32FigoReg_figoFlags {\
UNSG32 ufigoFlags_itcmAdrOOB : 1;\
UNSG32 ufigoFlags_dtcmAdrOOB : 1;\
UNSG32 ufigoFlags_divideBy0 : 1;\
UNSG32 ufigoFlags_traceBufFull : 1;\
UNSG32 ufigoFlags_illegalIns : 1;\
UNSG32 ufigoFlags_ALU64Overflow : 1;\
UNSG32 ufigoFlags_JTInvdPush : 1;\
UNSG32 RSVDxC_b7 : 25;\
}
union { UNSG32 u32FigoReg_figoFlags;
struct w32FigoReg_figoFlags;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoFlagsMask_itcmAdrOOBMask(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoFlagsMask_itcmAdrOOBMask(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoFlagsMask_itcmAdrOOBMask(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoFlagsMask_itcmAdrOOBMask(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FigoReg_figoFlagsMask_dtcmAdrOOBMask(r32) _BFGET_(r32, 1, 1)
#define SET32FigoReg_figoFlagsMask_dtcmAdrOOBMask(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FigoReg_figoFlagsMask_dtcmAdrOOBMask(r16) _BFGET_(r16, 1, 1)
#define SET16FigoReg_figoFlagsMask_dtcmAdrOOBMask(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32FigoReg_figoFlagsMask_divideBy0Mask(r32) _BFGET_(r32, 2, 2)
#define SET32FigoReg_figoFlagsMask_divideBy0Mask(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16FigoReg_figoFlagsMask_divideBy0Mask(r16) _BFGET_(r16, 2, 2)
#define SET16FigoReg_figoFlagsMask_divideBy0Mask(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32FigoReg_figoFlagsMask_traceBufFullMask(r32) _BFGET_(r32, 3, 3)
#define SET32FigoReg_figoFlagsMask_traceBufFullMask(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16FigoReg_figoFlagsMask_traceBufFullMask(r16) _BFGET_(r16, 3, 3)
#define SET16FigoReg_figoFlagsMask_traceBufFullMask(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32FigoReg_figoFlagsMask_illegalInsMask(r32) _BFGET_(r32, 4, 4)
#define SET32FigoReg_figoFlagsMask_illegalInsMask(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16FigoReg_figoFlagsMask_illegalInsMask(r16) _BFGET_(r16, 4, 4)
#define SET16FigoReg_figoFlagsMask_illegalInsMask(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32FigoReg_figoFlagsMask_ALU64OverflowMask(r32) _BFGET_(r32, 5, 5)
#define SET32FigoReg_figoFlagsMask_ALU64OverflowMask(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16FigoReg_figoFlagsMask_ALU64OverflowMask(r16) _BFGET_(r16, 5, 5)
#define SET16FigoReg_figoFlagsMask_ALU64OverflowMask(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32FigoReg_figoFlagsMask_JTInvdPushMask(r32) _BFGET_(r32, 6, 6)
#define SET32FigoReg_figoFlagsMask_JTInvdPushMask(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16FigoReg_figoFlagsMask_JTInvdPushMask(r16) _BFGET_(r16, 6, 6)
#define SET16FigoReg_figoFlagsMask_JTInvdPushMask(r16,v) _BFSET_(r16, 6, 6,v)
#define w32FigoReg_figoFlagsMask {\
UNSG32 ufigoFlagsMask_itcmAdrOOBMask : 1;\
UNSG32 ufigoFlagsMask_dtcmAdrOOBMask : 1;\
UNSG32 ufigoFlagsMask_divideBy0Mask : 1;\
UNSG32 ufigoFlagsMask_traceBufFullMask : 1;\
UNSG32 ufigoFlagsMask_illegalInsMask : 1;\
UNSG32 ufigoFlagsMask_ALU64OverflowMask : 1;\
UNSG32 ufigoFlagsMask_JTInvdPushMask : 1;\
UNSG32 RSVDx10_b7 : 25;\
}
union { UNSG32 u32FigoReg_figoFlagsMask;
struct w32FigoReg_figoFlagsMask;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoLastPC_val(r32) _BFGET_(r32,15, 0)
#define SET32FigoReg_figoLastPC_val(r32,v) _BFSET_(r32,15, 0,v)
#define GET16FigoReg_figoLastPC_val(r16) _BFGET_(r16,15, 0)
#define SET16FigoReg_figoLastPC_val(r16,v) _BFSET_(r16,15, 0,v)
#define w32FigoReg_figoLastPC {\
UNSG32 ufigoLastPC_val : 16;\
UNSG32 RSVDx14_b16 : 16;\
}
union { UNSG32 u32FigoReg_figoLastPC;
struct w32FigoReg_figoLastPC;
};
///////////////////////////////////////////////////////////
SIE_FigoReg16 ie_pc;
///////////////////////////////////////////////////////////
SIE_FigoTraceBuf ie_tbuf;
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoIntr_up(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoIntr_up(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoIntr_up(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoIntr_up(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoIntr {\
UNSG32 ufigoIntr_up : 1;\
UNSG32 RSVDx20_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoIntr;
struct w32FigoReg_figoIntr;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoIntrLvl_st(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoIntrLvl_st(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoIntrLvl_st(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoIntrLvl_st(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoIntrLvl {\
UNSG32 ufigoIntrLvl_st : 1;\
UNSG32 RSVDx24_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoIntrLvl;
struct w32FigoReg_figoIntrLvl;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoRstn_up(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoRstn_up(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoRstn_up(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoRstn_up(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoRstn {\
UNSG32 ufigoRstn_up : 1;\
UNSG32 RSVDx28_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoRstn;
struct w32FigoReg_figoRstn;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoCnt_en(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoCnt_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoCnt_en(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoCnt_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32FigoReg_figoCnt {\
UNSG32 ufigoCnt_en : 1;\
UNSG32 RSVDx2C_b1 : 31;\
}
union { UNSG32 u32FigoReg_figoCnt;
struct w32FigoReg_figoCnt;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoCntClr_run(r32) _BFGET_(r32, 0, 0)
#define SET32FigoReg_figoCntClr_run(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FigoReg_figoCntClr_run(r16) _BFGET_(r16, 0, 0)
#define SET16FigoReg_figoCntClr_run(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FigoReg_figoCntClr_stall(r32) _BFGET_(r32, 1, 1)
#define SET32FigoReg_figoCntClr_stall(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FigoReg_figoCntClr_stall(r16) _BFGET_(r16, 1, 1)
#define SET16FigoReg_figoCntClr_stall(r16,v) _BFSET_(r16, 1, 1,v)
#define w32FigoReg_figoCntClr {\
UNSG32 ufigoCntClr_run : 1;\
UNSG32 ufigoCntClr_stall : 1;\
UNSG32 RSVDx30_b2 : 30;\
}
union { UNSG32 u32FigoReg_figoCntClr;
struct w32FigoReg_figoCntClr;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoRun_Cnt(r32) _BFGET_(r32,31, 0)
#define SET32FigoReg_figoRun_Cnt(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoReg_figoRun {\
UNSG32 ufigoRun_Cnt : 32;\
}
union { UNSG32 u32FigoReg_figoRun;
struct w32FigoReg_figoRun;
};
///////////////////////////////////////////////////////////
#define GET32FigoReg_figoStall_Cnt(r32) _BFGET_(r32,31, 0)
#define SET32FigoReg_figoStall_Cnt(r32,v) _BFSET_(r32,31, 0,v)
#define w32FigoReg_figoStall {\
UNSG32 ufigoStall_Cnt : 32;\
}
union { UNSG32 u32FigoReg_figoStall;
struct w32FigoReg_figoStall;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx3C [1988];
///////////////////////////////////////////////////////////
SIE_ALU64 ie_alu64;
///////////////////////////////////////////////////////////
SIE_FigoDebug ie_debug;
///////////////////////////////////////////////////////////
UNSG8 RSVDx18C0 [1856];
///////////////////////////////////////////////////////////
} SIE_FigoReg;
typedef union T32FigoReg_figoCtrl
{ UNSG32 u32;
struct w32FigoReg_figoCtrl;
} T32FigoReg_figoCtrl;
typedef union T32FigoReg_figoID
{ UNSG32 u32;
struct w32FigoReg_figoID;
} T32FigoReg_figoID;
typedef union T32FigoReg_figoMaxAdr
{ UNSG32 u32;
struct w32FigoReg_figoMaxAdr;
} T32FigoReg_figoMaxAdr;
typedef union T32FigoReg_figoFlags
{ UNSG32 u32;
struct w32FigoReg_figoFlags;
} T32FigoReg_figoFlags;
typedef union T32FigoReg_figoFlagsMask
{ UNSG32 u32;
struct w32FigoReg_figoFlagsMask;
} T32FigoReg_figoFlagsMask;
typedef union T32FigoReg_figoLastPC
{ UNSG32 u32;
struct w32FigoReg_figoLastPC;
} T32FigoReg_figoLastPC;
typedef union T32FigoReg_figoIntr
{ UNSG32 u32;
struct w32FigoReg_figoIntr;
} T32FigoReg_figoIntr;
typedef union T32FigoReg_figoIntrLvl
{ UNSG32 u32;
struct w32FigoReg_figoIntrLvl;
} T32FigoReg_figoIntrLvl;
typedef union T32FigoReg_figoRstn
{ UNSG32 u32;
struct w32FigoReg_figoRstn;
} T32FigoReg_figoRstn;
typedef union T32FigoReg_figoCnt
{ UNSG32 u32;
struct w32FigoReg_figoCnt;
} T32FigoReg_figoCnt;
typedef union T32FigoReg_figoCntClr
{ UNSG32 u32;
struct w32FigoReg_figoCntClr;
} T32FigoReg_figoCntClr;
typedef union T32FigoReg_figoRun
{ UNSG32 u32;
struct w32FigoReg_figoRun;
} T32FigoReg_figoRun;
typedef union T32FigoReg_figoStall
{ UNSG32 u32;
struct w32FigoReg_figoStall;
} T32FigoReg_figoStall;
///////////////////////////////////////////////////////////
typedef union TFigoReg_figoCtrl
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoCtrl;
};
} TFigoReg_figoCtrl;
typedef union TFigoReg_figoID
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoID;
};
} TFigoReg_figoID;
typedef union TFigoReg_figoMaxAdr
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoMaxAdr;
};
} TFigoReg_figoMaxAdr;
typedef union TFigoReg_figoFlags
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoFlags;
};
} TFigoReg_figoFlags;
typedef union TFigoReg_figoFlagsMask
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoFlagsMask;
};
} TFigoReg_figoFlagsMask;
typedef union TFigoReg_figoLastPC
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoLastPC;
};
} TFigoReg_figoLastPC;
typedef union TFigoReg_figoIntr
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoIntr;
};
} TFigoReg_figoIntr;
typedef union TFigoReg_figoIntrLvl
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoIntrLvl;
};
} TFigoReg_figoIntrLvl;
typedef union TFigoReg_figoRstn
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoRstn;
};
} TFigoReg_figoRstn;
typedef union TFigoReg_figoCnt
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoCnt;
};
} TFigoReg_figoCnt;
typedef union TFigoReg_figoCntClr
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoCntClr;
};
} TFigoReg_figoCntClr;
typedef union TFigoReg_figoRun
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoRun;
};
} TFigoReg_figoRun;
typedef union TFigoReg_figoStall
{ UNSG32 u32[1];
struct {
struct w32FigoReg_figoStall;
};
} TFigoReg_figoStall;
///////////////////////////////////////////////////////////
SIGN32 FigoReg_drvrd(SIE_FigoReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoReg_drvwr(SIE_FigoReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoReg_reset(SIE_FigoReg *p);
SIGN32 FigoReg_cmp (SIE_FigoReg *p, SIE_FigoReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoReg_check(p,pie,pfx,hLOG) FigoReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoReg_print(p, pfx,hLOG) FigoReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoInst (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW)
/// ###
/// * Instruction opcode, 24-bit word
/// ###
/// %unsigned 24 opcode 0x0
/// %% 8 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 24b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoInst
#define h_FigoInst (){}
#define BA_FigoInst_opcode 0x0000
#define B16FigoInst_opcode 0x0000
#define LSb32FigoInst_opcode 0
#define LSb16FigoInst_opcode 0
#define bFigoInst_opcode 24
#define MSK32FigoInst_opcode 0x00FFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoInst {
///////////////////////////////////////////////////////////
#define GET32FigoInst_opcode(r32) _BFGET_(r32,23, 0)
#define SET32FigoInst_opcode(r32,v) _BFSET_(r32,23, 0,v)
UNSG32 u_opcode : 24;
UNSG32 RSVDx0_b24 : 8;
///////////////////////////////////////////////////////////
} SIE_FigoInst;
///////////////////////////////////////////////////////////
SIGN32 FigoInst_drvrd(SIE_FigoInst *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoInst_drvwr(SIE_FigoInst *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoInst_reset(SIE_FigoInst *p);
SIGN32 FigoInst_cmp (SIE_FigoInst *p, SIE_FigoInst *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoInst_check(p,pie,pfx,hLOG) FigoInst_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoInst_print(p, pfx,hLOG) FigoInst_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoInst
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ITCM (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 figoItcm (P)
/// # 0x00000 inst
/// $FigoInst inst REG [2048]
/// ###
/// * Instruction memory, 8K word each maximum
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8192B, bits: 49152b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ITCM
#define h_ITCM (){}
#define RA_ITCM_figoItcm 0x0000
#define RA_ITCM_inst 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_ITCM {
///////////////////////////////////////////////////////////
SIE_FigoInst ie_inst[2048];
///////////////////////////////////////////////////////////
} SIE_ITCM;
///////////////////////////////////////////////////////////
SIGN32 ITCM_drvrd(SIE_ITCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ITCM_drvwr(SIE_ITCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ITCM_reset(SIE_ITCM *p);
SIGN32 ITCM_cmp (SIE_ITCM *p, SIE_ITCM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ITCM_check(p,pie,pfx,hLOG) ITCM_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ITCM_print(p, pfx,hLOG) ITCM_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ITCM
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoData (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW)
/// ###
/// * 32-bit data
/// ###
/// %unsigned 32 data_0i
/// %unsigned 32 data_1i
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoData
#define h_FigoData (){}
#define BA_FigoData_data_0i 0x0000
#define B16FigoData_data_0i 0x0000
#define LSb32FigoData_data_0i 0
#define LSb16FigoData_data_0i 0
#define bFigoData_data_0i 32
#define MSK32FigoData_data_0i 0xFFFFFFFF
#define BA_FigoData_data_1i 0x0004
#define B16FigoData_data_1i 0x0004
#define LSb32FigoData_data_1i 0
#define LSb16FigoData_data_1i 0
#define bFigoData_data_1i 32
#define MSK32FigoData_data_1i 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_FigoData {
///////////////////////////////////////////////////////////
#define GET32FigoData_data_0i(r32) _BFGET_(r32,31, 0)
#define SET32FigoData_data_0i(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data_0i : 32;
///////////////////////////////////////////////////////////
#define GET32FigoData_data_1i(r32) _BFGET_(r32,31, 0)
#define SET32FigoData_data_1i(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data_1i : 32;
///////////////////////////////////////////////////////////
} SIE_FigoData;
///////////////////////////////////////////////////////////
SIGN32 FigoData_drvrd(SIE_FigoData *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoData_drvwr(SIE_FigoData *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoData_reset(SIE_FigoData *p);
SIGN32 FigoData_cmp (SIE_FigoData *p, SIE_FigoData *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoData_check(p,pie,pfx,hLOG) FigoData_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoData_print(p, pfx,hLOG) FigoData_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoData
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoSys biu (4,4)
/// ###
/// * FigoSys registers
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 HBO0 (P)
/// # 0x00000 hbo0
/// $HBO hbo0 REG
/// ###
/// * **DONT_EXPAND_BELOW** HBO IP
/// ###
/// @ 0x00700 HBO1 (P)
/// # 0x00700 hbo1
/// $HBO hbo1 REG
/// ###
/// * **DONT_EXPAND_BELOW** HBO IP
/// ###
/// @ 0x00E00 (W-)
/// # # Stuffing bytes...
/// %% 4096
/// @ 0x01000 FIGO0 (P)
/// # 0x01000 figo0
/// $FigoReg figo0 REG
/// @ 0x03000 FIGO1 (P)
/// # 0x03000 figo1
/// $FigoReg figo1 REG
/// @ 0x05000 DS (P)
/// # 0x05000 ds
/// $DataStreamer ds REG
/// @ 0x05024 (W-)
/// # # Stuffing bytes...
/// %% 16096
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 22528B, bits: 5018b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoSys
#define h_FigoSys (){}
#define RA_FigoSys_HBO0 0x0000
#define RA_FigoSys_hbo0 0x0000
///////////////////////////////////////////////////////////
#define RA_FigoSys_HBO1 0x0700
#define RA_FigoSys_hbo1 0x0700
///////////////////////////////////////////////////////////
#define RA_FigoSys_FIGO0 0x1000
#define RA_FigoSys_figo0 0x1000
///////////////////////////////////////////////////////////
#define RA_FigoSys_FIGO1 0x3000
#define RA_FigoSys_figo1 0x3000
///////////////////////////////////////////////////////////
#define RA_FigoSys_DS 0x5000
#define RA_FigoSys_ds 0x5000
///////////////////////////////////////////////////////////
typedef struct SIE_FigoSys {
///////////////////////////////////////////////////////////
SIE_HBO ie_hbo0;
///////////////////////////////////////////////////////////
SIE_HBO ie_hbo1;
///////////////////////////////////////////////////////////
UNSG8 RSVDxE00 [512];
///////////////////////////////////////////////////////////
SIE_FigoReg ie_figo0;
///////////////////////////////////////////////////////////
SIE_FigoReg ie_figo1;
///////////////////////////////////////////////////////////
SIE_DataStreamer ie_ds;
///////////////////////////////////////////////////////////
UNSG8 RSVDx5024 [2012];
///////////////////////////////////////////////////////////
} SIE_FigoSys;
///////////////////////////////////////////////////////////
SIGN32 FigoSys_drvrd(SIE_FigoSys *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoSys_drvwr(SIE_FigoSys *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoSys_reset(SIE_FigoSys *p);
SIGN32 FigoSys_cmp (SIE_FigoSys *p, SIE_FigoSys *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoSys_check(p,pie,pfx,hLOG) FigoSys_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoSys_print(p, pfx,hLOG) FigoSys_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoSys
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FigoSysBasic biu (4,4)
/// ###
/// * FigoSys registers
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 HBO0 (P)
/// # 0x00000 hbo0
/// $HBO hbo0 REG
/// @ 0x00700 (W-)
/// # # Stuffing bytes...
/// %% 2048
/// @ 0x00800 FIGO0 (P)
/// # 0x00800 figo0
/// $FigoReg figo0 REG
/// @ 0x02800 DS (P)
/// # 0x02800 ds
/// $DataStreamer ds REG
/// @ 0x02824 (W-)
/// # # Stuffing bytes...
/// %% 16096
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12288B, bits: 2575b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FigoSysBasic
#define h_FigoSysBasic (){}
#define RA_FigoSysBasic_HBO0 0x0000
#define RA_FigoSysBasic_hbo0 0x0000
///////////////////////////////////////////////////////////
#define RA_FigoSysBasic_FIGO0 0x0800
#define RA_FigoSysBasic_figo0 0x0800
///////////////////////////////////////////////////////////
#define RA_FigoSysBasic_DS 0x2800
#define RA_FigoSysBasic_ds 0x2800
///////////////////////////////////////////////////////////
typedef struct SIE_FigoSysBasic {
///////////////////////////////////////////////////////////
SIE_HBO ie_hbo0;
///////////////////////////////////////////////////////////
UNSG8 RSVDx700 [256];
///////////////////////////////////////////////////////////
SIE_FigoReg ie_figo0;
///////////////////////////////////////////////////////////
SIE_DataStreamer ie_ds;
///////////////////////////////////////////////////////////
UNSG8 RSVDx2824 [2012];
///////////////////////////////////////////////////////////
} SIE_FigoSysBasic;
///////////////////////////////////////////////////////////
SIGN32 FigoSysBasic_drvrd(SIE_FigoSysBasic *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FigoSysBasic_drvwr(SIE_FigoSysBasic *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FigoSysBasic_reset(SIE_FigoSysBasic *p);
SIGN32 FigoSysBasic_cmp (SIE_FigoSysBasic *p, SIE_FigoSysBasic *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FigoSysBasic_check(p,pie,pfx,hLOG) FigoSysBasic_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FigoSysBasic_print(p, pfx,hLOG) FigoSysBasic_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FigoSysBasic
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE PIDWord (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 N 0x0
/// ###
/// * value to match
/// * DV-FR-CNR
/// ###
/// %unsigned 8 LTSID
/// ###
/// * local TSID for opencable
/// ###
/// %unsigned 1 FLT 0x0
/// ###
/// * indicates packets matching this ID is for PSI
/// * DV-FR-CNR
/// ###
/// %unsigned 1 V 0x0
/// ###
/// * 1 = enable this PID match ;
/// * DV-FR-CNR
/// ###
/// %unsigned 1 STCSEL 0x0
/// ###
/// * To select the clock source of STC. 0 for VCLK0, 1 for VCLK1.
/// * DV-FR-CNR
/// ###
/// %% 8 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 24b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_PIDWord
#define h_PIDWord (){}
#define BA_PIDWord_N 0x0000
#define B16PIDWord_N 0x0000
#define LSb32PIDWord_N 0
#define LSb16PIDWord_N 0
#define bPIDWord_N 13
#define MSK32PIDWord_N 0x00001FFF
#define BA_PIDWord_LTSID 0x0001
#define B16PIDWord_LTSID 0x0000
#define LSb32PIDWord_LTSID 13
#define LSb16PIDWord_LTSID 13
#define bPIDWord_LTSID 8
#define MSK32PIDWord_LTSID 0x001FE000
#define BA_PIDWord_FLT 0x0002
#define B16PIDWord_FLT 0x0002
#define LSb32PIDWord_FLT 21
#define LSb16PIDWord_FLT 5
#define bPIDWord_FLT 1
#define MSK32PIDWord_FLT 0x00200000
#define BA_PIDWord_V 0x0002
#define B16PIDWord_V 0x0002
#define LSb32PIDWord_V 22
#define LSb16PIDWord_V 6
#define bPIDWord_V 1
#define MSK32PIDWord_V 0x00400000
#define BA_PIDWord_STCSEL 0x0002
#define B16PIDWord_STCSEL 0x0002
#define LSb32PIDWord_STCSEL 23
#define LSb16PIDWord_STCSEL 7
#define bPIDWord_STCSEL 1
#define MSK32PIDWord_STCSEL 0x00800000
///////////////////////////////////////////////////////////
typedef struct SIE_PIDWord {
///////////////////////////////////////////////////////////
#define GET32PIDWord_N(r32) _BFGET_(r32,12, 0)
#define SET32PIDWord_N(r32,v) _BFSET_(r32,12, 0,v)
#define GET16PIDWord_N(r16) _BFGET_(r16,12, 0)
#define SET16PIDWord_N(r16,v) _BFSET_(r16,12, 0,v)
#define GET32PIDWord_LTSID(r32) _BFGET_(r32,20,13)
#define SET32PIDWord_LTSID(r32,v) _BFSET_(r32,20,13,v)
#define GET32PIDWord_FLT(r32) _BFGET_(r32,21,21)
#define SET32PIDWord_FLT(r32,v) _BFSET_(r32,21,21,v)
#define GET16PIDWord_FLT(r16) _BFGET_(r16, 5, 5)
#define SET16PIDWord_FLT(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32PIDWord_V(r32) _BFGET_(r32,22,22)
#define SET32PIDWord_V(r32,v) _BFSET_(r32,22,22,v)
#define GET16PIDWord_V(r16) _BFGET_(r16, 6, 6)
#define SET16PIDWord_V(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32PIDWord_STCSEL(r32) _BFGET_(r32,23,23)
#define SET32PIDWord_STCSEL(r32,v) _BFSET_(r32,23,23,v)
#define GET16PIDWord_STCSEL(r16) _BFGET_(r16, 7, 7)
#define SET16PIDWord_STCSEL(r16,v) _BFSET_(r16, 7, 7,v)
UNSG32 u_N : 13;
UNSG32 u_LTSID : 8;
UNSG32 u_FLT : 1;
UNSG32 u_V : 1;
UNSG32 u_STCSEL : 1;
UNSG32 RSVDx0_b24 : 8;
///////////////////////////////////////////////////////////
} SIE_PIDWord;
///////////////////////////////////////////////////////////
SIGN32 PIDWord_drvrd(SIE_PIDWord *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 PIDWord_drvwr(SIE_PIDWord *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void PIDWord_reset(SIE_PIDWord *p);
SIGN32 PIDWord_cmp (SIE_PIDWord *p, SIE_PIDWord *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define PIDWord_check(p,pie,pfx,hLOG) PIDWord_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define PIDWord_print(p, pfx,hLOG) PIDWord_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: PIDWord
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE PID biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 PID
/// $PIDWord PID REG [32]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 128B, bits: 768b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_PID
#define h_PID (){}
#define RA_PID_PID 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_PID {
///////////////////////////////////////////////////////////
SIE_PIDWord ie_PID[32];
///////////////////////////////////////////////////////////
} SIE_PID;
///////////////////////////////////////////////////////////
SIGN32 PID_drvrd(SIE_PID *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 PID_drvwr(SIE_PID *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void PID_reset(SIE_PID *p);
SIGN32 PID_cmp (SIE_PID *p, SIE_PID *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define PID_check(p,pie,pfx,hLOG) PID_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define PID_print(p, pfx,hLOG) PID_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: PID
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSCmd biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 PID 0x0
/// %unsigned 2 TSID 0x0
/// %unsigned 1 cascade 0x0
/// ###
/// * 1: indicates this packet needs to go through a cascaded section filter
/// ###
/// %unsigned 5 PIDIDX 0x0
/// %unsigned 1 TSERR 0x0
/// %unsigned 1 MATCH
/// ###
/// * not used in TSC, will be set by section filter
/// ###
/// %unsigned 7 FLTID 0x0
/// ###
/// * indicates the ID of matched section filter ; when multiple section filter are linked, the FLTID for last section filter is returned
/// ###
/// %% 2 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 30b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSCmd
#define h_TSCmd (){}
#define BA_TSCmd_PID 0x0000
#define B16TSCmd_PID 0x0000
#define LSb32TSCmd_PID 0
#define LSb16TSCmd_PID 0
#define bTSCmd_PID 13
#define MSK32TSCmd_PID 0x00001FFF
#define BA_TSCmd_TSID 0x0001
#define B16TSCmd_TSID 0x0000
#define LSb32TSCmd_TSID 13
#define LSb16TSCmd_TSID 13
#define bTSCmd_TSID 2
#define MSK32TSCmd_TSID 0x00006000
#define BA_TSCmd_cascade 0x0001
#define B16TSCmd_cascade 0x0000
#define LSb32TSCmd_cascade 15
#define LSb16TSCmd_cascade 15
#define bTSCmd_cascade 1
#define MSK32TSCmd_cascade 0x00008000
#define BA_TSCmd_PIDIDX 0x0002
#define B16TSCmd_PIDIDX 0x0002
#define LSb32TSCmd_PIDIDX 16
#define LSb16TSCmd_PIDIDX 0
#define bTSCmd_PIDIDX 5
#define MSK32TSCmd_PIDIDX 0x001F0000
#define BA_TSCmd_TSERR 0x0002
#define B16TSCmd_TSERR 0x0002
#define LSb32TSCmd_TSERR 21
#define LSb16TSCmd_TSERR 5
#define bTSCmd_TSERR 1
#define MSK32TSCmd_TSERR 0x00200000
#define BA_TSCmd_MATCH 0x0002
#define B16TSCmd_MATCH 0x0002
#define LSb32TSCmd_MATCH 22
#define LSb16TSCmd_MATCH 6
#define bTSCmd_MATCH 1
#define MSK32TSCmd_MATCH 0x00400000
#define BA_TSCmd_FLTID 0x0002
#define B16TSCmd_FLTID 0x0002
#define LSb32TSCmd_FLTID 23
#define LSb16TSCmd_FLTID 7
#define bTSCmd_FLTID 7
#define MSK32TSCmd_FLTID 0x3F800000
///////////////////////////////////////////////////////////
typedef struct SIE_TSCmd {
///////////////////////////////////////////////////////////
#define GET32TSCmd_PID(r32) _BFGET_(r32,12, 0)
#define SET32TSCmd_PID(r32,v) _BFSET_(r32,12, 0,v)
#define GET16TSCmd_PID(r16) _BFGET_(r16,12, 0)
#define SET16TSCmd_PID(r16,v) _BFSET_(r16,12, 0,v)
#define GET32TSCmd_TSID(r32) _BFGET_(r32,14,13)
#define SET32TSCmd_TSID(r32,v) _BFSET_(r32,14,13,v)
#define GET16TSCmd_TSID(r16) _BFGET_(r16,14,13)
#define SET16TSCmd_TSID(r16,v) _BFSET_(r16,14,13,v)
#define GET32TSCmd_cascade(r32) _BFGET_(r32,15,15)
#define SET32TSCmd_cascade(r32,v) _BFSET_(r32,15,15,v)
#define GET16TSCmd_cascade(r16) _BFGET_(r16,15,15)
#define SET16TSCmd_cascade(r16,v) _BFSET_(r16,15,15,v)
#define GET32TSCmd_PIDIDX(r32) _BFGET_(r32,20,16)
#define SET32TSCmd_PIDIDX(r32,v) _BFSET_(r32,20,16,v)
#define GET16TSCmd_PIDIDX(r16) _BFGET_(r16, 4, 0)
#define SET16TSCmd_PIDIDX(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32TSCmd_TSERR(r32) _BFGET_(r32,21,21)
#define SET32TSCmd_TSERR(r32,v) _BFSET_(r32,21,21,v)
#define GET16TSCmd_TSERR(r16) _BFGET_(r16, 5, 5)
#define SET16TSCmd_TSERR(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32TSCmd_MATCH(r32) _BFGET_(r32,22,22)
#define SET32TSCmd_MATCH(r32,v) _BFSET_(r32,22,22,v)
#define GET16TSCmd_MATCH(r16) _BFGET_(r16, 6, 6)
#define SET16TSCmd_MATCH(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32TSCmd_FLTID(r32) _BFGET_(r32,29,23)
#define SET32TSCmd_FLTID(r32,v) _BFSET_(r32,29,23,v)
#define GET16TSCmd_FLTID(r16) _BFGET_(r16,13, 7)
#define SET16TSCmd_FLTID(r16,v) _BFSET_(r16,13, 7,v)
UNSG32 u_PID : 13;
UNSG32 u_TSID : 2;
UNSG32 u_cascade : 1;
UNSG32 u_PIDIDX : 5;
UNSG32 u_TSERR : 1;
UNSG32 u_MATCH : 1;
UNSG32 u_FLTID : 7;
UNSG32 RSVDx0_b30 : 2;
///////////////////////////////////////////////////////////
} SIE_TSCmd;
///////////////////////////////////////////////////////////
SIGN32 TSCmd_drvrd(SIE_TSCmd *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSCmd_drvwr(SIE_TSCmd *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSCmd_reset(SIE_TSCmd *p);
SIGN32 TSCmd_cmp (SIE_TSCmd *p, SIE_TSCmd *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSCmd_check(p,pie,pfx,hLOG) TSCmd_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSCmd_print(p, pfx,hLOG) TSCmd_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSCmd
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSCmdTSC biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 PID 0x0
/// %unsigned 2 TSID 0x0
/// %unsigned 1 PUS 0x0
/// ###
/// * 1: indicates this packet have payload_unit_start =1
/// ###
/// %unsigned 5 PIDIDX 0x0
/// %unsigned 1 TSERR 0x0
/// ###
/// * value of TSTAMPL and TSTAMPH will only valid when TSERR =0 ; when TSERR =1, TSTAMPL will content error information.
/// ###
/// %unsigned 10 TSTAMPL
/// ###
/// * low 10 bits of timestamp,
/// ###
/// %unsigned 32 TSTAMPH 0x0
/// ###
/// * high 32 bit of timestamp
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSCmdTSC
#define h_TSCmdTSC (){}
#define BA_TSCmdTSC_PID 0x0000
#define B16TSCmdTSC_PID 0x0000
#define LSb32TSCmdTSC_PID 0
#define LSb16TSCmdTSC_PID 0
#define bTSCmdTSC_PID 13
#define MSK32TSCmdTSC_PID 0x00001FFF
#define BA_TSCmdTSC_TSID 0x0001
#define B16TSCmdTSC_TSID 0x0000
#define LSb32TSCmdTSC_TSID 13
#define LSb16TSCmdTSC_TSID 13
#define bTSCmdTSC_TSID 2
#define MSK32TSCmdTSC_TSID 0x00006000
#define BA_TSCmdTSC_PUS 0x0001
#define B16TSCmdTSC_PUS 0x0000
#define LSb32TSCmdTSC_PUS 15
#define LSb16TSCmdTSC_PUS 15
#define bTSCmdTSC_PUS 1
#define MSK32TSCmdTSC_PUS 0x00008000
#define BA_TSCmdTSC_PIDIDX 0x0002
#define B16TSCmdTSC_PIDIDX 0x0002
#define LSb32TSCmdTSC_PIDIDX 16
#define LSb16TSCmdTSC_PIDIDX 0
#define bTSCmdTSC_PIDIDX 5
#define MSK32TSCmdTSC_PIDIDX 0x001F0000
#define BA_TSCmdTSC_TSERR 0x0002
#define B16TSCmdTSC_TSERR 0x0002
#define LSb32TSCmdTSC_TSERR 21
#define LSb16TSCmdTSC_TSERR 5
#define bTSCmdTSC_TSERR 1
#define MSK32TSCmdTSC_TSERR 0x00200000
#define BA_TSCmdTSC_TSTAMPL 0x0002
#define B16TSCmdTSC_TSTAMPL 0x0002
#define LSb32TSCmdTSC_TSTAMPL 22
#define LSb16TSCmdTSC_TSTAMPL 6
#define bTSCmdTSC_TSTAMPL 10
#define MSK32TSCmdTSC_TSTAMPL 0xFFC00000
#define BA_TSCmdTSC_TSTAMPH 0x0004
#define B16TSCmdTSC_TSTAMPH 0x0004
#define LSb32TSCmdTSC_TSTAMPH 0
#define LSb16TSCmdTSC_TSTAMPH 0
#define bTSCmdTSC_TSTAMPH 32
#define MSK32TSCmdTSC_TSTAMPH 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_TSCmdTSC {
///////////////////////////////////////////////////////////
#define GET32TSCmdTSC_PID(r32) _BFGET_(r32,12, 0)
#define SET32TSCmdTSC_PID(r32,v) _BFSET_(r32,12, 0,v)
#define GET16TSCmdTSC_PID(r16) _BFGET_(r16,12, 0)
#define SET16TSCmdTSC_PID(r16,v) _BFSET_(r16,12, 0,v)
#define GET32TSCmdTSC_TSID(r32) _BFGET_(r32,14,13)
#define SET32TSCmdTSC_TSID(r32,v) _BFSET_(r32,14,13,v)
#define GET16TSCmdTSC_TSID(r16) _BFGET_(r16,14,13)
#define SET16TSCmdTSC_TSID(r16,v) _BFSET_(r16,14,13,v)
#define GET32TSCmdTSC_PUS(r32) _BFGET_(r32,15,15)
#define SET32TSCmdTSC_PUS(r32,v) _BFSET_(r32,15,15,v)
#define GET16TSCmdTSC_PUS(r16) _BFGET_(r16,15,15)
#define SET16TSCmdTSC_PUS(r16,v) _BFSET_(r16,15,15,v)
#define GET32TSCmdTSC_PIDIDX(r32) _BFGET_(r32,20,16)
#define SET32TSCmdTSC_PIDIDX(r32,v) _BFSET_(r32,20,16,v)
#define GET16TSCmdTSC_PIDIDX(r16) _BFGET_(r16, 4, 0)
#define SET16TSCmdTSC_PIDIDX(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32TSCmdTSC_TSERR(r32) _BFGET_(r32,21,21)
#define SET32TSCmdTSC_TSERR(r32,v) _BFSET_(r32,21,21,v)
#define GET16TSCmdTSC_TSERR(r16) _BFGET_(r16, 5, 5)
#define SET16TSCmdTSC_TSERR(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32TSCmdTSC_TSTAMPL(r32) _BFGET_(r32,31,22)
#define SET32TSCmdTSC_TSTAMPL(r32,v) _BFSET_(r32,31,22,v)
#define GET16TSCmdTSC_TSTAMPL(r16) _BFGET_(r16,15, 6)
#define SET16TSCmdTSC_TSTAMPL(r16,v) _BFSET_(r16,15, 6,v)
UNSG32 u_PID : 13;
UNSG32 u_TSID : 2;
UNSG32 u_PUS : 1;
UNSG32 u_PIDIDX : 5;
UNSG32 u_TSERR : 1;
UNSG32 u_TSTAMPL : 10;
///////////////////////////////////////////////////////////
#define GET32TSCmdTSC_TSTAMPH(r32) _BFGET_(r32,31, 0)
#define SET32TSCmdTSC_TSTAMPH(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_TSTAMPH : 32;
///////////////////////////////////////////////////////////
} SIE_TSCmdTSC;
///////////////////////////////////////////////////////////
SIGN32 TSCmdTSC_drvrd(SIE_TSCmdTSC *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSCmdTSC_drvwr(SIE_TSCmdTSC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSCmdTSC_reset(SIE_TSCmdTSC *p);
SIGN32 TSCmdTSC_cmp (SIE_TSCmdTSC *p, SIE_TSCmdTSC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSCmdTSC_check(p,pie,pfx,hLOG) TSCmdTSC_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSCmdTSC_print(p, pfx,hLOG) TSCmdTSC_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSCmdTSC
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSCmdTSCERR biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 PID 0x0
/// %unsigned 2 TSID 0x0
/// %unsigned 1 PUS 0x0
/// ###
/// * 1: indicates this packet have payload_unit_start =1
/// ###
/// %unsigned 5 PIDIDX 0x0
/// %unsigned 1 TSERR 0x0
/// ###
/// * value of TSTAMPL and TSTAMPH will only valid when TSERR =0 ; when TSERR =1, TSTAMPL will content error information.
/// ###
/// %unsigned 1 COR
/// ###
/// * packet have uncorrectable error
/// ###
/// %unsigned 1 SYNC
/// ###
/// * sync word is not as defined
/// ###
/// %unsigned 1 INCMPLT
/// ###
/// * a TS Sync happened before packet finishes
/// ###
/// %unsigned 1 OVERFLOW
/// ###
/// * overflow happened during the capture of the packet
/// ###
/// %% 6 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 26b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSCmdTSCERR
#define h_TSCmdTSCERR (){}
#define BA_TSCmdTSCERR_PID 0x0000
#define B16TSCmdTSCERR_PID 0x0000
#define LSb32TSCmdTSCERR_PID 0
#define LSb16TSCmdTSCERR_PID 0
#define bTSCmdTSCERR_PID 13
#define MSK32TSCmdTSCERR_PID 0x00001FFF
#define BA_TSCmdTSCERR_TSID 0x0001
#define B16TSCmdTSCERR_TSID 0x0000
#define LSb32TSCmdTSCERR_TSID 13
#define LSb16TSCmdTSCERR_TSID 13
#define bTSCmdTSCERR_TSID 2
#define MSK32TSCmdTSCERR_TSID 0x00006000
#define BA_TSCmdTSCERR_PUS 0x0001
#define B16TSCmdTSCERR_PUS 0x0000
#define LSb32TSCmdTSCERR_PUS 15
#define LSb16TSCmdTSCERR_PUS 15
#define bTSCmdTSCERR_PUS 1
#define MSK32TSCmdTSCERR_PUS 0x00008000
#define BA_TSCmdTSCERR_PIDIDX 0x0002
#define B16TSCmdTSCERR_PIDIDX 0x0002
#define LSb32TSCmdTSCERR_PIDIDX 16
#define LSb16TSCmdTSCERR_PIDIDX 0
#define bTSCmdTSCERR_PIDIDX 5
#define MSK32TSCmdTSCERR_PIDIDX 0x001F0000
#define BA_TSCmdTSCERR_TSERR 0x0002
#define B16TSCmdTSCERR_TSERR 0x0002
#define LSb32TSCmdTSCERR_TSERR 21
#define LSb16TSCmdTSCERR_TSERR 5
#define bTSCmdTSCERR_TSERR 1
#define MSK32TSCmdTSCERR_TSERR 0x00200000
#define BA_TSCmdTSCERR_COR 0x0002
#define B16TSCmdTSCERR_COR 0x0002
#define LSb32TSCmdTSCERR_COR 22
#define LSb16TSCmdTSCERR_COR 6
#define bTSCmdTSCERR_COR 1
#define MSK32TSCmdTSCERR_COR 0x00400000
#define BA_TSCmdTSCERR_SYNC 0x0002
#define B16TSCmdTSCERR_SYNC 0x0002
#define LSb32TSCmdTSCERR_SYNC 23
#define LSb16TSCmdTSCERR_SYNC 7
#define bTSCmdTSCERR_SYNC 1
#define MSK32TSCmdTSCERR_SYNC 0x00800000
#define BA_TSCmdTSCERR_INCMPLT 0x0003
#define B16TSCmdTSCERR_INCMPLT 0x0002
#define LSb32TSCmdTSCERR_INCMPLT 24
#define LSb16TSCmdTSCERR_INCMPLT 8
#define bTSCmdTSCERR_INCMPLT 1
#define MSK32TSCmdTSCERR_INCMPLT 0x01000000
#define BA_TSCmdTSCERR_OVERFLOW 0x0003
#define B16TSCmdTSCERR_OVERFLOW 0x0002
#define LSb32TSCmdTSCERR_OVERFLOW 25
#define LSb16TSCmdTSCERR_OVERFLOW 9
#define bTSCmdTSCERR_OVERFLOW 1
#define MSK32TSCmdTSCERR_OVERFLOW 0x02000000
///////////////////////////////////////////////////////////
typedef struct SIE_TSCmdTSCERR {
///////////////////////////////////////////////////////////
#define GET32TSCmdTSCERR_PID(r32) _BFGET_(r32,12, 0)
#define SET32TSCmdTSCERR_PID(r32,v) _BFSET_(r32,12, 0,v)
#define GET16TSCmdTSCERR_PID(r16) _BFGET_(r16,12, 0)
#define SET16TSCmdTSCERR_PID(r16,v) _BFSET_(r16,12, 0,v)
#define GET32TSCmdTSCERR_TSID(r32) _BFGET_(r32,14,13)
#define SET32TSCmdTSCERR_TSID(r32,v) _BFSET_(r32,14,13,v)
#define GET16TSCmdTSCERR_TSID(r16) _BFGET_(r16,14,13)
#define SET16TSCmdTSCERR_TSID(r16,v) _BFSET_(r16,14,13,v)
#define GET32TSCmdTSCERR_PUS(r32) _BFGET_(r32,15,15)
#define SET32TSCmdTSCERR_PUS(r32,v) _BFSET_(r32,15,15,v)
#define GET16TSCmdTSCERR_PUS(r16) _BFGET_(r16,15,15)
#define SET16TSCmdTSCERR_PUS(r16,v) _BFSET_(r16,15,15,v)
#define GET32TSCmdTSCERR_PIDIDX(r32) _BFGET_(r32,20,16)
#define SET32TSCmdTSCERR_PIDIDX(r32,v) _BFSET_(r32,20,16,v)
#define GET16TSCmdTSCERR_PIDIDX(r16) _BFGET_(r16, 4, 0)
#define SET16TSCmdTSCERR_PIDIDX(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32TSCmdTSCERR_TSERR(r32) _BFGET_(r32,21,21)
#define SET32TSCmdTSCERR_TSERR(r32,v) _BFSET_(r32,21,21,v)
#define GET16TSCmdTSCERR_TSERR(r16) _BFGET_(r16, 5, 5)
#define SET16TSCmdTSCERR_TSERR(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32TSCmdTSCERR_COR(r32) _BFGET_(r32,22,22)
#define SET32TSCmdTSCERR_COR(r32,v) _BFSET_(r32,22,22,v)
#define GET16TSCmdTSCERR_COR(r16) _BFGET_(r16, 6, 6)
#define SET16TSCmdTSCERR_COR(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32TSCmdTSCERR_SYNC(r32) _BFGET_(r32,23,23)
#define SET32TSCmdTSCERR_SYNC(r32,v) _BFSET_(r32,23,23,v)
#define GET16TSCmdTSCERR_SYNC(r16) _BFGET_(r16, 7, 7)
#define SET16TSCmdTSCERR_SYNC(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32TSCmdTSCERR_INCMPLT(r32) _BFGET_(r32,24,24)
#define SET32TSCmdTSCERR_INCMPLT(r32,v) _BFSET_(r32,24,24,v)
#define GET16TSCmdTSCERR_INCMPLT(r16) _BFGET_(r16, 8, 8)
#define SET16TSCmdTSCERR_INCMPLT(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32TSCmdTSCERR_OVERFLOW(r32) _BFGET_(r32,25,25)
#define SET32TSCmdTSCERR_OVERFLOW(r32,v) _BFSET_(r32,25,25,v)
#define GET16TSCmdTSCERR_OVERFLOW(r16) _BFGET_(r16, 9, 9)
#define SET16TSCmdTSCERR_OVERFLOW(r16,v) _BFSET_(r16, 9, 9,v)
UNSG32 u_PID : 13;
UNSG32 u_TSID : 2;
UNSG32 u_PUS : 1;
UNSG32 u_PIDIDX : 5;
UNSG32 u_TSERR : 1;
UNSG32 u_COR : 1;
UNSG32 u_SYNC : 1;
UNSG32 u_INCMPLT : 1;
UNSG32 u_OVERFLOW : 1;
UNSG32 RSVDx0_b26 : 6;
///////////////////////////////////////////////////////////
} SIE_TSCmdTSCERR;
///////////////////////////////////////////////////////////
SIGN32 TSCmdTSCERR_drvrd(SIE_TSCmdTSCERR *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSCmdTSCERR_drvwr(SIE_TSCmdTSCERR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSCmdTSCERR_reset(SIE_TSCmdTSCERR *p);
SIGN32 TSCmdTSCERR_cmp (SIE_TSCmdTSCERR *p, SIE_TSCmdTSCERR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSCmdTSCERR_check(p,pie,pfx,hLOG) TSCmdTSCERR_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSCmdTSCERR_print(p, pfx,hLOG) TSCmdTSCERR_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSCmdTSCERR
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE MCARDHDR biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 8 LTSID 0x0
/// ###
/// * local TS id for openCable M-Card,
/// * refer to cableCARD2.0 sepc, this field not exist in when tsc.CFG.mcard=0 ,
/// ###
/// %unsigned 8 RES1 0x0
/// ###
/// * Mcard reserved byte 1, refer to cableCARD2.0 spec
/// ###
/// %unsigned 16 HOSTres 0x0
/// ###
/// * reserved field to be set by Host , refer to cableCARD2.0 specification
/// ###
/// %unsigned 32 LTS 0x0
/// ###
/// * local timestamp for opencable M-Card, this field not exist in when tsc.CFG.mcard=0
/// ###
/// %unsigned 16 CABLECARDRES 0x0
/// ###
/// * field reserved to use by card, refer to cableCARD2.0 spec
/// ###
/// %unsigned 8 RES2 0x0
/// ###
/// * Mcard resverved byte 2, refer to cableCARD2.0 spec
/// ###
/// %unsigned 8 CRC 0x0
/// ###
/// * CRC for the 11bytes mcard preheader,
/// * CRC-8= x8+x7+x6+x4+x2+1
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12B, bits: 96b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_MCARDHDR
#define h_MCARDHDR (){}
#define BA_MCARDHDR_LTSID 0x0000
#define B16MCARDHDR_LTSID 0x0000
#define LSb32MCARDHDR_LTSID 0
#define LSb16MCARDHDR_LTSID 0
#define bMCARDHDR_LTSID 8
#define MSK32MCARDHDR_LTSID 0x000000FF
#define BA_MCARDHDR_RES1 0x0001
#define B16MCARDHDR_RES1 0x0000
#define LSb32MCARDHDR_RES1 8
#define LSb16MCARDHDR_RES1 8
#define bMCARDHDR_RES1 8
#define MSK32MCARDHDR_RES1 0x0000FF00
#define BA_MCARDHDR_HOSTres 0x0002
#define B16MCARDHDR_HOSTres 0x0002
#define LSb32MCARDHDR_HOSTres 16
#define LSb16MCARDHDR_HOSTres 0
#define bMCARDHDR_HOSTres 16
#define MSK32MCARDHDR_HOSTres 0xFFFF0000
#define BA_MCARDHDR_LTS 0x0004
#define B16MCARDHDR_LTS 0x0004
#define LSb32MCARDHDR_LTS 0
#define LSb16MCARDHDR_LTS 0
#define bMCARDHDR_LTS 32
#define MSK32MCARDHDR_LTS 0xFFFFFFFF
#define BA_MCARDHDR_CABLECARDRES 0x0008
#define B16MCARDHDR_CABLECARDRES 0x0008
#define LSb32MCARDHDR_CABLECARDRES 0
#define LSb16MCARDHDR_CABLECARDRES 0
#define bMCARDHDR_CABLECARDRES 16
#define MSK32MCARDHDR_CABLECARDRES 0x0000FFFF
#define BA_MCARDHDR_RES2 0x000A
#define B16MCARDHDR_RES2 0x000A
#define LSb32MCARDHDR_RES2 16
#define LSb16MCARDHDR_RES2 0
#define bMCARDHDR_RES2 8
#define MSK32MCARDHDR_RES2 0x00FF0000
#define BA_MCARDHDR_CRC 0x000B
#define B16MCARDHDR_CRC 0x000A
#define LSb32MCARDHDR_CRC 24
#define LSb16MCARDHDR_CRC 8
#define bMCARDHDR_CRC 8
#define MSK32MCARDHDR_CRC 0xFF000000
///////////////////////////////////////////////////////////
typedef struct SIE_MCARDHDR {
///////////////////////////////////////////////////////////
#define GET32MCARDHDR_LTSID(r32) _BFGET_(r32, 7, 0)
#define SET32MCARDHDR_LTSID(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16MCARDHDR_LTSID(r16) _BFGET_(r16, 7, 0)
#define SET16MCARDHDR_LTSID(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32MCARDHDR_RES1(r32) _BFGET_(r32,15, 8)
#define SET32MCARDHDR_RES1(r32,v) _BFSET_(r32,15, 8,v)
#define GET16MCARDHDR_RES1(r16) _BFGET_(r16,15, 8)
#define SET16MCARDHDR_RES1(r16,v) _BFSET_(r16,15, 8,v)
#define GET32MCARDHDR_HOSTres(r32) _BFGET_(r32,31,16)
#define SET32MCARDHDR_HOSTres(r32,v) _BFSET_(r32,31,16,v)
#define GET16MCARDHDR_HOSTres(r16) _BFGET_(r16,15, 0)
#define SET16MCARDHDR_HOSTres(r16,v) _BFSET_(r16,15, 0,v)
UNSG32 u_LTSID : 8;
UNSG32 u_RES1 : 8;
UNSG32 u_HOSTres : 16;
///////////////////////////////////////////////////////////
#define GET32MCARDHDR_LTS(r32) _BFGET_(r32,31, 0)
#define SET32MCARDHDR_LTS(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_LTS : 32;
///////////////////////////////////////////////////////////
#define GET32MCARDHDR_CABLECARDRES(r32) _BFGET_(r32,15, 0)
#define SET32MCARDHDR_CABLECARDRES(r32,v) _BFSET_(r32,15, 0,v)
#define GET16MCARDHDR_CABLECARDRES(r16) _BFGET_(r16,15, 0)
#define SET16MCARDHDR_CABLECARDRES(r16,v) _BFSET_(r16,15, 0,v)
#define GET32MCARDHDR_RES2(r32) _BFGET_(r32,23,16)
#define SET32MCARDHDR_RES2(r32,v) _BFSET_(r32,23,16,v)
#define GET16MCARDHDR_RES2(r16) _BFGET_(r16, 7, 0)
#define SET16MCARDHDR_RES2(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32MCARDHDR_CRC(r32) _BFGET_(r32,31,24)
#define SET32MCARDHDR_CRC(r32,v) _BFSET_(r32,31,24,v)
#define GET16MCARDHDR_CRC(r16) _BFGET_(r16,15, 8)
#define SET16MCARDHDR_CRC(r16,v) _BFSET_(r16,15, 8,v)
UNSG32 u_CABLECARDRES : 16;
UNSG32 u_RES2 : 8;
UNSG32 u_CRC : 8;
///////////////////////////////////////////////////////////
} SIE_MCARDHDR;
///////////////////////////////////////////////////////////
SIGN32 MCARDHDR_drvrd(SIE_MCARDHDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 MCARDHDR_drvwr(SIE_MCARDHDR *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void MCARDHDR_reset(SIE_MCARDHDR *p);
SIGN32 MCARDHDR_cmp (SIE_MCARDHDR *p, SIE_MCARDHDR *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define MCARDHDR_check(p,pie,pfx,hLOG) MCARDHDR_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define MCARDHDR_print(p, pfx,hLOG) MCARDHDR_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: MCARDHDR
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSC biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (P)
/// %unsigned 31 STCINITH 0x0
/// ###
/// * DV-FR-CNR
/// ###
/// %unsigned 1 STCSEL 0x0
/// ###
/// * Obsolete, replaced by PIDWord.STCSEL
/// * DV-FR-CR
/// ###
/// # 0x00004 CFG1
/// %unsigned 32 STCINITL 0x0
/// ###
/// * DV-FR-CNR
/// ###
/// # 0x00008 CFG2
/// %unsigned 1 STCLOAD 0x0
/// ###
/// * write 1'b1 means load {STCINITH,STCINITL} to STC counter 1, write 1'b0 means load to STC counter 0
/// * DV-FCR
/// ###
/// %unsigned 3 PORTSEL 0x0
/// ###
/// * 3'b1xx: from TSOFifo0
/// * 3'b1xx: from TSOFifo1
/// * 3'b0b1b0: from TSI port {b1,b0}
/// * DV-FCR
/// ###
/// %unsigned 4 LATPHASE 0x0
/// ###
/// * DV-FR-CR ( TCQ from 0 to
/// * 0.8 tsClk cycle)
/// ###
/// %unsigned 1 SERIAL 0x0
/// ###
/// * 0: parallel mode 1: serial mode
/// * DV-FCR
/// ###
/// %unsigned 8 PACKSIZE 0xBB
/// ###
/// * packet size -1
/// * DV-FR-CNR(150-250)
/// ###
/// %unsigned 8 PIDOFFSET 0xB
/// ###
/// * pidoffset -1
/// * DV-FR-CNR(1-4)
/// ###
/// %% 7 # Stuffing bits...
/// # 0x0000C CFG3
/// %unsigned 8 PCROFFSET 0xC
/// ###
/// * pcr offset -1
/// * DV-FR-CNR(5-64)
/// ###
/// %unsigned 16 SYNCTHD 0x0
/// ###
/// * DV-FR-CNR(1-100 when SYNCOPT=auto)
/// ###
/// %unsigned 2 SYNCOPT 0x0
/// ###
/// * 2'b1x: auto
/// * 2'b00: no capture
/// * 2'b01: capture
/// * DV-FC
/// ###
/// %% 6 # Stuffing bits...
/// # 0x00010 CFG4
/// %unsigned 8 SYNCBYTE 0x47
/// %unsigned 1 USESYNCBYTE 0x1
/// ###
/// * when this bit is set to 1, tsc will only capture the ts packets with sync byte equals to TSC.CFG.SYNCBYTE;
/// * when this bit is set to 0, tsc will capture the T/S packet when detects sync signal on interface, it will set the sync error bit in TSCmd when if sync byte in T/S packets is not equal to TSC.CFG.SYNCBYTE
/// ###
/// %unsigned 1 MCARD 0x0
/// ###
/// * 1: enable mcard model for opencable
/// ###
/// %unsigned 1 BYPASS 0x0
/// ###
/// * 1: disable PID filtering, capture all the packets from the port
/// ###
/// %% 21 # Stuffing bits...
/// @ 0x00014 STS (R-)
/// %unsigned 16 SYNCCNT 0x0
/// %% 16 # Stuffing bits...
/// # 0x00018 STS1
/// %unsigned 32 HDRCNT 0x0
/// ###
/// * processed headers
/// ###
/// # 0x0001C STS2
/// %unsigned 32 RESERVED 0x0
/// @ 0x00020 (P)
/// # 0x00020 PID
/// $PID PID REG
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 160B, bits: 974b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSC
#define h_TSC (){}
#define RA_TSC_CFG 0x0000
#define BA_TSC_CFG_STCINITH 0x0000
#define B16TSC_CFG_STCINITH 0x0000
#define LSb32TSC_CFG_STCINITH 0
#define LSb16TSC_CFG_STCINITH 0
#define bTSC_CFG_STCINITH 31
#define MSK32TSC_CFG_STCINITH 0x7FFFFFFF
#define BA_TSC_CFG_STCSEL 0x0003
#define B16TSC_CFG_STCSEL 0x0002
#define LSb32TSC_CFG_STCSEL 31
#define LSb16TSC_CFG_STCSEL 15
#define bTSC_CFG_STCSEL 1
#define MSK32TSC_CFG_STCSEL 0x80000000
#define RA_TSC_CFG1 0x0004
#define BA_TSC_CFG_STCINITL 0x0004
#define B16TSC_CFG_STCINITL 0x0004
#define LSb32TSC_CFG_STCINITL 0
#define LSb16TSC_CFG_STCINITL 0
#define bTSC_CFG_STCINITL 32
#define MSK32TSC_CFG_STCINITL 0xFFFFFFFF
#define RA_TSC_CFG2 0x0008
#define BA_TSC_CFG_STCLOAD 0x0008
#define B16TSC_CFG_STCLOAD 0x0008
#define LSb32TSC_CFG_STCLOAD 0
#define LSb16TSC_CFG_STCLOAD 0
#define bTSC_CFG_STCLOAD 1
#define MSK32TSC_CFG_STCLOAD 0x00000001
#define BA_TSC_CFG_PORTSEL 0x0008
#define B16TSC_CFG_PORTSEL 0x0008
#define LSb32TSC_CFG_PORTSEL 1
#define LSb16TSC_CFG_PORTSEL 1
#define bTSC_CFG_PORTSEL 3
#define MSK32TSC_CFG_PORTSEL 0x0000000E
#define BA_TSC_CFG_LATPHASE 0x0008
#define B16TSC_CFG_LATPHASE 0x0008
#define LSb32TSC_CFG_LATPHASE 4
#define LSb16TSC_CFG_LATPHASE 4
#define bTSC_CFG_LATPHASE 4
#define MSK32TSC_CFG_LATPHASE 0x000000F0
#define BA_TSC_CFG_SERIAL 0x0009
#define B16TSC_CFG_SERIAL 0x0008
#define LSb32TSC_CFG_SERIAL 8
#define LSb16TSC_CFG_SERIAL 8
#define bTSC_CFG_SERIAL 1
#define MSK32TSC_CFG_SERIAL 0x00000100
#define BA_TSC_CFG_PACKSIZE 0x0009
#define B16TSC_CFG_PACKSIZE 0x0008
#define LSb32TSC_CFG_PACKSIZE 9
#define LSb16TSC_CFG_PACKSIZE 9
#define bTSC_CFG_PACKSIZE 8
#define MSK32TSC_CFG_PACKSIZE 0x0001FE00
#define BA_TSC_CFG_PIDOFFSET 0x000A
#define B16TSC_CFG_PIDOFFSET 0x000A
#define LSb32TSC_CFG_PIDOFFSET 17
#define LSb16TSC_CFG_PIDOFFSET 1
#define bTSC_CFG_PIDOFFSET 8
#define MSK32TSC_CFG_PIDOFFSET 0x01FE0000
#define RA_TSC_CFG3 0x000C
#define BA_TSC_CFG_PCROFFSET 0x000C
#define B16TSC_CFG_PCROFFSET 0x000C
#define LSb32TSC_CFG_PCROFFSET 0
#define LSb16TSC_CFG_PCROFFSET 0
#define bTSC_CFG_PCROFFSET 8
#define MSK32TSC_CFG_PCROFFSET 0x000000FF
#define BA_TSC_CFG_SYNCTHD 0x000D
#define B16TSC_CFG_SYNCTHD 0x000C
#define LSb32TSC_CFG_SYNCTHD 8
#define LSb16TSC_CFG_SYNCTHD 8
#define bTSC_CFG_SYNCTHD 16
#define MSK32TSC_CFG_SYNCTHD 0x00FFFF00
#define BA_TSC_CFG_SYNCOPT 0x000F
#define B16TSC_CFG_SYNCOPT 0x000E
#define LSb32TSC_CFG_SYNCOPT 24
#define LSb16TSC_CFG_SYNCOPT 8
#define bTSC_CFG_SYNCOPT 2
#define MSK32TSC_CFG_SYNCOPT 0x03000000
#define RA_TSC_CFG4 0x0010
#define BA_TSC_CFG_SYNCBYTE 0x0010
#define B16TSC_CFG_SYNCBYTE 0x0010
#define LSb32TSC_CFG_SYNCBYTE 0
#define LSb16TSC_CFG_SYNCBYTE 0
#define bTSC_CFG_SYNCBYTE 8
#define MSK32TSC_CFG_SYNCBYTE 0x000000FF
#define BA_TSC_CFG_USESYNCBYTE 0x0011
#define B16TSC_CFG_USESYNCBYTE 0x0010
#define LSb32TSC_CFG_USESYNCBYTE 8
#define LSb16TSC_CFG_USESYNCBYTE 8
#define bTSC_CFG_USESYNCBYTE 1
#define MSK32TSC_CFG_USESYNCBYTE 0x00000100
#define BA_TSC_CFG_MCARD 0x0011
#define B16TSC_CFG_MCARD 0x0010
#define LSb32TSC_CFG_MCARD 9
#define LSb16TSC_CFG_MCARD 9
#define bTSC_CFG_MCARD 1
#define MSK32TSC_CFG_MCARD 0x00000200
#define BA_TSC_CFG_BYPASS 0x0011
#define B16TSC_CFG_BYPASS 0x0010
#define LSb32TSC_CFG_BYPASS 10
#define LSb16TSC_CFG_BYPASS 10
#define bTSC_CFG_BYPASS 1
#define MSK32TSC_CFG_BYPASS 0x00000400
///////////////////////////////////////////////////////////
#define RA_TSC_STS 0x0014
#define BA_TSC_STS_SYNCCNT 0x0014
#define B16TSC_STS_SYNCCNT 0x0014
#define LSb32TSC_STS_SYNCCNT 0
#define LSb16TSC_STS_SYNCCNT 0
#define bTSC_STS_SYNCCNT 16
#define MSK32TSC_STS_SYNCCNT 0x0000FFFF
#define RA_TSC_STS1 0x0018
#define BA_TSC_STS_HDRCNT 0x0018
#define B16TSC_STS_HDRCNT 0x0018
#define LSb32TSC_STS_HDRCNT 0
#define LSb16TSC_STS_HDRCNT 0
#define bTSC_STS_HDRCNT 32
#define MSK32TSC_STS_HDRCNT 0xFFFFFFFF
#define RA_TSC_STS2 0x001C
#define BA_TSC_STS_RESERVED 0x001C
#define B16TSC_STS_RESERVED 0x001C
#define LSb32TSC_STS_RESERVED 0
#define LSb16TSC_STS_RESERVED 0
#define bTSC_STS_RESERVED 32
#define MSK32TSC_STS_RESERVED 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_TSC_PID 0x0020
///////////////////////////////////////////////////////////
typedef struct SIE_TSC {
///////////////////////////////////////////////////////////
#define GET32TSC_CFG_STCINITH(r32) _BFGET_(r32,30, 0)
#define SET32TSC_CFG_STCINITH(r32,v) _BFSET_(r32,30, 0,v)
#define GET32TSC_CFG_STCSEL(r32) _BFGET_(r32,31,31)
#define SET32TSC_CFG_STCSEL(r32,v) _BFSET_(r32,31,31,v)
#define GET16TSC_CFG_STCSEL(r16) _BFGET_(r16,15,15)
#define SET16TSC_CFG_STCSEL(r16,v) _BFSET_(r16,15,15,v)
#define w32TSC_CFG {\
UNSG32 uCFG_STCINITH : 31;\
UNSG32 uCFG_STCSEL : 1;\
}
union { UNSG32 u32TSC_CFG;
struct w32TSC_CFG;
};
#define GET32TSC_CFG_STCINITL(r32) _BFGET_(r32,31, 0)
#define SET32TSC_CFG_STCINITL(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSC_CFG1 {\
UNSG32 uCFG_STCINITL : 32;\
}
union { UNSG32 u32TSC_CFG1;
struct w32TSC_CFG1;
};
#define GET32TSC_CFG_STCLOAD(r32) _BFGET_(r32, 0, 0)
#define SET32TSC_CFG_STCLOAD(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16TSC_CFG_STCLOAD(r16) _BFGET_(r16, 0, 0)
#define SET16TSC_CFG_STCLOAD(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32TSC_CFG_PORTSEL(r32) _BFGET_(r32, 3, 1)
#define SET32TSC_CFG_PORTSEL(r32,v) _BFSET_(r32, 3, 1,v)
#define GET16TSC_CFG_PORTSEL(r16) _BFGET_(r16, 3, 1)
#define SET16TSC_CFG_PORTSEL(r16,v) _BFSET_(r16, 3, 1,v)
#define GET32TSC_CFG_LATPHASE(r32) _BFGET_(r32, 7, 4)
#define SET32TSC_CFG_LATPHASE(r32,v) _BFSET_(r32, 7, 4,v)
#define GET16TSC_CFG_LATPHASE(r16) _BFGET_(r16, 7, 4)
#define SET16TSC_CFG_LATPHASE(r16,v) _BFSET_(r16, 7, 4,v)
#define GET32TSC_CFG_SERIAL(r32) _BFGET_(r32, 8, 8)
#define SET32TSC_CFG_SERIAL(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16TSC_CFG_SERIAL(r16) _BFGET_(r16, 8, 8)
#define SET16TSC_CFG_SERIAL(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32TSC_CFG_PACKSIZE(r32) _BFGET_(r32,16, 9)
#define SET32TSC_CFG_PACKSIZE(r32,v) _BFSET_(r32,16, 9,v)
#define GET32TSC_CFG_PIDOFFSET(r32) _BFGET_(r32,24,17)
#define SET32TSC_CFG_PIDOFFSET(r32,v) _BFSET_(r32,24,17,v)
#define GET16TSC_CFG_PIDOFFSET(r16) _BFGET_(r16, 8, 1)
#define SET16TSC_CFG_PIDOFFSET(r16,v) _BFSET_(r16, 8, 1,v)
#define w32TSC_CFG2 {\
UNSG32 uCFG_STCLOAD : 1;\
UNSG32 uCFG_PORTSEL : 3;\
UNSG32 uCFG_LATPHASE : 4;\
UNSG32 uCFG_SERIAL : 1;\
UNSG32 uCFG_PACKSIZE : 8;\
UNSG32 uCFG_PIDOFFSET : 8;\
UNSG32 RSVDx8_b25 : 7;\
}
union { UNSG32 u32TSC_CFG2;
struct w32TSC_CFG2;
};
#define GET32TSC_CFG_PCROFFSET(r32) _BFGET_(r32, 7, 0)
#define SET32TSC_CFG_PCROFFSET(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16TSC_CFG_PCROFFSET(r16) _BFGET_(r16, 7, 0)
#define SET16TSC_CFG_PCROFFSET(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32TSC_CFG_SYNCTHD(r32) _BFGET_(r32,23, 8)
#define SET32TSC_CFG_SYNCTHD(r32,v) _BFSET_(r32,23, 8,v)
#define GET32TSC_CFG_SYNCOPT(r32) _BFGET_(r32,25,24)
#define SET32TSC_CFG_SYNCOPT(r32,v) _BFSET_(r32,25,24,v)
#define GET16TSC_CFG_SYNCOPT(r16) _BFGET_(r16, 9, 8)
#define SET16TSC_CFG_SYNCOPT(r16,v) _BFSET_(r16, 9, 8,v)
#define w32TSC_CFG3 {\
UNSG32 uCFG_PCROFFSET : 8;\
UNSG32 uCFG_SYNCTHD : 16;\
UNSG32 uCFG_SYNCOPT : 2;\
UNSG32 RSVDxC_b26 : 6;\
}
union { UNSG32 u32TSC_CFG3;
struct w32TSC_CFG3;
};
#define GET32TSC_CFG_SYNCBYTE(r32) _BFGET_(r32, 7, 0)
#define SET32TSC_CFG_SYNCBYTE(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16TSC_CFG_SYNCBYTE(r16) _BFGET_(r16, 7, 0)
#define SET16TSC_CFG_SYNCBYTE(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32TSC_CFG_USESYNCBYTE(r32) _BFGET_(r32, 8, 8)
#define SET32TSC_CFG_USESYNCBYTE(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16TSC_CFG_USESYNCBYTE(r16) _BFGET_(r16, 8, 8)
#define SET16TSC_CFG_USESYNCBYTE(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32TSC_CFG_MCARD(r32) _BFGET_(r32, 9, 9)
#define SET32TSC_CFG_MCARD(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16TSC_CFG_MCARD(r16) _BFGET_(r16, 9, 9)
#define SET16TSC_CFG_MCARD(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32TSC_CFG_BYPASS(r32) _BFGET_(r32,10,10)
#define SET32TSC_CFG_BYPASS(r32,v) _BFSET_(r32,10,10,v)
#define GET16TSC_CFG_BYPASS(r16) _BFGET_(r16,10,10)
#define SET16TSC_CFG_BYPASS(r16,v) _BFSET_(r16,10,10,v)
#define w32TSC_CFG4 {\
UNSG32 uCFG_SYNCBYTE : 8;\
UNSG32 uCFG_USESYNCBYTE : 1;\
UNSG32 uCFG_MCARD : 1;\
UNSG32 uCFG_BYPASS : 1;\
UNSG32 RSVDx10_b11 : 21;\
}
union { UNSG32 u32TSC_CFG4;
struct w32TSC_CFG4;
};
///////////////////////////////////////////////////////////
#define GET32TSC_STS_SYNCCNT(r32) _BFGET_(r32,15, 0)
#define SET32TSC_STS_SYNCCNT(r32,v) _BFSET_(r32,15, 0,v)
#define GET16TSC_STS_SYNCCNT(r16) _BFGET_(r16,15, 0)
#define SET16TSC_STS_SYNCCNT(r16,v) _BFSET_(r16,15, 0,v)
#define w32TSC_STS {\
UNSG32 uSTS_SYNCCNT : 16;\
UNSG32 RSVDx14_b16 : 16;\
}
union { UNSG32 u32TSC_STS;
struct w32TSC_STS;
};
#define GET32TSC_STS_HDRCNT(r32) _BFGET_(r32,31, 0)
#define SET32TSC_STS_HDRCNT(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSC_STS1 {\
UNSG32 uSTS_HDRCNT : 32;\
}
union { UNSG32 u32TSC_STS1;
struct w32TSC_STS1;
};
#define GET32TSC_STS_RESERVED(r32) _BFGET_(r32,31, 0)
#define SET32TSC_STS_RESERVED(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSC_STS2 {\
UNSG32 uSTS_RESERVED : 32;\
}
union { UNSG32 u32TSC_STS2;
struct w32TSC_STS2;
};
///////////////////////////////////////////////////////////
SIE_PID ie_PID;
///////////////////////////////////////////////////////////
} SIE_TSC;
typedef union T32TSC_CFG
{ UNSG32 u32;
struct w32TSC_CFG;
} T32TSC_CFG;
typedef union T32TSC_CFG1
{ UNSG32 u32;
struct w32TSC_CFG1;
} T32TSC_CFG1;
typedef union T32TSC_CFG2
{ UNSG32 u32;
struct w32TSC_CFG2;
} T32TSC_CFG2;
typedef union T32TSC_CFG3
{ UNSG32 u32;
struct w32TSC_CFG3;
} T32TSC_CFG3;
typedef union T32TSC_CFG4
{ UNSG32 u32;
struct w32TSC_CFG4;
} T32TSC_CFG4;
typedef union T32TSC_STS
{ UNSG32 u32;
struct w32TSC_STS;
} T32TSC_STS;
typedef union T32TSC_STS1
{ UNSG32 u32;
struct w32TSC_STS1;
} T32TSC_STS1;
typedef union T32TSC_STS2
{ UNSG32 u32;
struct w32TSC_STS2;
} T32TSC_STS2;
///////////////////////////////////////////////////////////
typedef union TTSC_CFG
{ UNSG32 u32[5];
struct {
struct w32TSC_CFG;
struct w32TSC_CFG1;
struct w32TSC_CFG2;
struct w32TSC_CFG3;
struct w32TSC_CFG4;
};
} TTSC_CFG;
typedef union TTSC_STS
{ UNSG32 u32[3];
struct {
struct w32TSC_STS;
struct w32TSC_STS1;
struct w32TSC_STS2;
};
} TTSC_STS;
///////////////////////////////////////////////////////////
SIGN32 TSC_drvrd(SIE_TSC *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSC_drvwr(SIE_TSC *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSC_reset(SIE_TSC *p);
SIGN32 TSC_cmp (SIE_TSC *p, SIE_TSC *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSC_check(p,pie,pfx,hLOG) TSC_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSC_print(p, pfx,hLOG) TSC_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSC
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSCmdF biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 13 PID 0x0
/// %unsigned 2 TSID 0x0
/// %unsigned 8 TID 0x0
/// %unsigned 1 MATCH 0x0
/// ###
/// * not used in TSC, will be set by section filter
/// ###
/// %unsigned 7 FLTID 0x0
/// ###
/// * indicates the ID of matched section filter ID
/// ###
/// %% 1 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 31b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSCmdF
#define h_TSCmdF (){}
#define BA_TSCmdF_PID 0x0000
#define B16TSCmdF_PID 0x0000
#define LSb32TSCmdF_PID 0
#define LSb16TSCmdF_PID 0
#define bTSCmdF_PID 13
#define MSK32TSCmdF_PID 0x00001FFF
#define BA_TSCmdF_TSID 0x0001
#define B16TSCmdF_TSID 0x0000
#define LSb32TSCmdF_TSID 13
#define LSb16TSCmdF_TSID 13
#define bTSCmdF_TSID 2
#define MSK32TSCmdF_TSID 0x00006000
#define BA_TSCmdF_TID 0x0001
#define B16TSCmdF_TID 0x0000
#define LSb32TSCmdF_TID 15
#define LSb16TSCmdF_TID 15
#define bTSCmdF_TID 8
#define MSK32TSCmdF_TID 0x007F8000
#define BA_TSCmdF_MATCH 0x0002
#define B16TSCmdF_MATCH 0x0002
#define LSb32TSCmdF_MATCH 23
#define LSb16TSCmdF_MATCH 7
#define bTSCmdF_MATCH 1
#define MSK32TSCmdF_MATCH 0x00800000
#define BA_TSCmdF_FLTID 0x0003
#define B16TSCmdF_FLTID 0x0002
#define LSb32TSCmdF_FLTID 24
#define LSb16TSCmdF_FLTID 8
#define bTSCmdF_FLTID 7
#define MSK32TSCmdF_FLTID 0x7F000000
///////////////////////////////////////////////////////////
typedef struct SIE_TSCmdF {
///////////////////////////////////////////////////////////
#define GET32TSCmdF_PID(r32) _BFGET_(r32,12, 0)
#define SET32TSCmdF_PID(r32,v) _BFSET_(r32,12, 0,v)
#define GET16TSCmdF_PID(r16) _BFGET_(r16,12, 0)
#define SET16TSCmdF_PID(r16,v) _BFSET_(r16,12, 0,v)
#define GET32TSCmdF_TSID(r32) _BFGET_(r32,14,13)
#define SET32TSCmdF_TSID(r32,v) _BFSET_(r32,14,13,v)
#define GET16TSCmdF_TSID(r16) _BFGET_(r16,14,13)
#define SET16TSCmdF_TSID(r16,v) _BFSET_(r16,14,13,v)
#define GET32TSCmdF_TID(r32) _BFGET_(r32,22,15)
#define SET32TSCmdF_TID(r32,v) _BFSET_(r32,22,15,v)
#define GET32TSCmdF_MATCH(r32) _BFGET_(r32,23,23)
#define SET32TSCmdF_MATCH(r32,v) _BFSET_(r32,23,23,v)
#define GET16TSCmdF_MATCH(r16) _BFGET_(r16, 7, 7)
#define SET16TSCmdF_MATCH(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32TSCmdF_FLTID(r32) _BFGET_(r32,30,24)
#define SET32TSCmdF_FLTID(r32,v) _BFSET_(r32,30,24,v)
#define GET16TSCmdF_FLTID(r16) _BFGET_(r16,14, 8)
#define SET16TSCmdF_FLTID(r16,v) _BFSET_(r16,14, 8,v)
UNSG32 u_PID : 13;
UNSG32 u_TSID : 2;
UNSG32 u_TID : 8;
UNSG32 u_MATCH : 1;
UNSG32 u_FLTID : 7;
UNSG32 RSVDx0_b31 : 1;
///////////////////////////////////////////////////////////
} SIE_TSCmdF;
///////////////////////////////////////////////////////////
SIGN32 TSCmdF_drvrd(SIE_TSCmdF *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSCmdF_drvwr(SIE_TSCmdF *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSCmdF_reset(SIE_TSCmdF *p);
SIGN32 TSCmdF_cmp (SIE_TSCmdF *p, SIE_TSCmdF *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSCmdF_check(p,pie,pfx,hLOG) TSCmdF_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSCmdF_print(p, pfx,hLOG) TSCmdF_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSCmdF
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SFCONTROL biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ENB (RW)
/// %unsigned 32 RULE31 0x0
/// ###
/// * bit31...bit0 enables section filter 31, ...0;
/// * if a section filter is one-shot mode, it's corresponding bit will be cleared after a match
/// ###
/// # 0x00004 ENB1
/// %unsigned 32 RULE63 0x0
/// # 0x00008 ENB2
/// %unsigned 32 RULE95 0x0
/// # 0x0000C ENB3
/// %unsigned 32 RULE127 0x0
/// @ 0x00010 RESET (P)
/// %unsigned 1 ALL 0x0
/// ###
/// * This bit will reset the section filter match engine
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00014 STATUS (R-)
/// %unsigned 16 RULEADDR 0x0
/// ###
/// * current section filter rule pointer
/// ###
/// %unsigned 8 FLTID 0x0
/// ###
/// * current section filter ID the engine is matching on
/// ###
/// %unsigned 8 RESERVED 0x0
/// ###
/// * Internal Debug only, reflects the filter machine status
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 24B, bits: 161b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SFCONTROL
#define h_SFCONTROL (){}
#define RA_SFCONTROL_ENB 0x0000
#define BA_SFCONTROL_ENB_RULE31 0x0000
#define B16SFCONTROL_ENB_RULE31 0x0000
#define LSb32SFCONTROL_ENB_RULE31 0
#define LSb16SFCONTROL_ENB_RULE31 0
#define bSFCONTROL_ENB_RULE31 32
#define MSK32SFCONTROL_ENB_RULE31 0xFFFFFFFF
#define RA_SFCONTROL_ENB1 0x0004
#define BA_SFCONTROL_ENB_RULE63 0x0004
#define B16SFCONTROL_ENB_RULE63 0x0004
#define LSb32SFCONTROL_ENB_RULE63 0
#define LSb16SFCONTROL_ENB_RULE63 0
#define bSFCONTROL_ENB_RULE63 32
#define MSK32SFCONTROL_ENB_RULE63 0xFFFFFFFF
#define RA_SFCONTROL_ENB2 0x0008
#define BA_SFCONTROL_ENB_RULE95 0x0008
#define B16SFCONTROL_ENB_RULE95 0x0008
#define LSb32SFCONTROL_ENB_RULE95 0
#define LSb16SFCONTROL_ENB_RULE95 0
#define bSFCONTROL_ENB_RULE95 32
#define MSK32SFCONTROL_ENB_RULE95 0xFFFFFFFF
#define RA_SFCONTROL_ENB3 0x000C
#define BA_SFCONTROL_ENB_RULE127 0x000C
#define B16SFCONTROL_ENB_RULE127 0x000C
#define LSb32SFCONTROL_ENB_RULE127 0
#define LSb16SFCONTROL_ENB_RULE127 0
#define bSFCONTROL_ENB_RULE127 32
#define MSK32SFCONTROL_ENB_RULE127 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_SFCONTROL_RESET 0x0010
#define BA_SFCONTROL_RESET_ALL 0x0010
#define B16SFCONTROL_RESET_ALL 0x0010
#define LSb32SFCONTROL_RESET_ALL 0
#define LSb16SFCONTROL_RESET_ALL 0
#define bSFCONTROL_RESET_ALL 1
#define MSK32SFCONTROL_RESET_ALL 0x00000001
///////////////////////////////////////////////////////////
#define RA_SFCONTROL_STATUS 0x0014
#define BA_SFCONTROL_STATUS_RULEADDR 0x0014
#define B16SFCONTROL_STATUS_RULEADDR 0x0014
#define LSb32SFCONTROL_STATUS_RULEADDR 0
#define LSb16SFCONTROL_STATUS_RULEADDR 0
#define bSFCONTROL_STATUS_RULEADDR 16
#define MSK32SFCONTROL_STATUS_RULEADDR 0x0000FFFF
#define BA_SFCONTROL_STATUS_FLTID 0x0016
#define B16SFCONTROL_STATUS_FLTID 0x0016
#define LSb32SFCONTROL_STATUS_FLTID 16
#define LSb16SFCONTROL_STATUS_FLTID 0
#define bSFCONTROL_STATUS_FLTID 8
#define MSK32SFCONTROL_STATUS_FLTID 0x00FF0000
#define BA_SFCONTROL_STATUS_RESERVED 0x0017
#define B16SFCONTROL_STATUS_RESERVED 0x0016
#define LSb32SFCONTROL_STATUS_RESERVED 24
#define LSb16SFCONTROL_STATUS_RESERVED 8
#define bSFCONTROL_STATUS_RESERVED 8
#define MSK32SFCONTROL_STATUS_RESERVED 0xFF000000
///////////////////////////////////////////////////////////
typedef struct SIE_SFCONTROL {
///////////////////////////////////////////////////////////
#define GET32SFCONTROL_ENB_RULE31(r32) _BFGET_(r32,31, 0)
#define SET32SFCONTROL_ENB_RULE31(r32,v) _BFSET_(r32,31, 0,v)
#define w32SFCONTROL_ENB {\
UNSG32 uENB_RULE31 : 32;\
}
union { UNSG32 u32SFCONTROL_ENB;
struct w32SFCONTROL_ENB;
};
#define GET32SFCONTROL_ENB_RULE63(r32) _BFGET_(r32,31, 0)
#define SET32SFCONTROL_ENB_RULE63(r32,v) _BFSET_(r32,31, 0,v)
#define w32SFCONTROL_ENB1 {\
UNSG32 uENB_RULE63 : 32;\
}
union { UNSG32 u32SFCONTROL_ENB1;
struct w32SFCONTROL_ENB1;
};
#define GET32SFCONTROL_ENB_RULE95(r32) _BFGET_(r32,31, 0)
#define SET32SFCONTROL_ENB_RULE95(r32,v) _BFSET_(r32,31, 0,v)
#define w32SFCONTROL_ENB2 {\
UNSG32 uENB_RULE95 : 32;\
}
union { UNSG32 u32SFCONTROL_ENB2;
struct w32SFCONTROL_ENB2;
};
#define GET32SFCONTROL_ENB_RULE127(r32) _BFGET_(r32,31, 0)
#define SET32SFCONTROL_ENB_RULE127(r32,v) _BFSET_(r32,31, 0,v)
#define w32SFCONTROL_ENB3 {\
UNSG32 uENB_RULE127 : 32;\
}
union { UNSG32 u32SFCONTROL_ENB3;
struct w32SFCONTROL_ENB3;
};
///////////////////////////////////////////////////////////
#define GET32SFCONTROL_RESET_ALL(r32) _BFGET_(r32, 0, 0)
#define SET32SFCONTROL_RESET_ALL(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SFCONTROL_RESET_ALL(r16) _BFGET_(r16, 0, 0)
#define SET16SFCONTROL_RESET_ALL(r16,v) _BFSET_(r16, 0, 0,v)
#define w32SFCONTROL_RESET {\
UNSG32 uRESET_ALL : 1;\
UNSG32 RSVDx10_b1 : 31;\
}
union { UNSG32 u32SFCONTROL_RESET;
struct w32SFCONTROL_RESET;
};
///////////////////////////////////////////////////////////
#define GET32SFCONTROL_STATUS_RULEADDR(r32) _BFGET_(r32,15, 0)
#define SET32SFCONTROL_STATUS_RULEADDR(r32,v) _BFSET_(r32,15, 0,v)
#define GET16SFCONTROL_STATUS_RULEADDR(r16) _BFGET_(r16,15, 0)
#define SET16SFCONTROL_STATUS_RULEADDR(r16,v) _BFSET_(r16,15, 0,v)
#define GET32SFCONTROL_STATUS_FLTID(r32) _BFGET_(r32,23,16)
#define SET32SFCONTROL_STATUS_FLTID(r32,v) _BFSET_(r32,23,16,v)
#define GET16SFCONTROL_STATUS_FLTID(r16) _BFGET_(r16, 7, 0)
#define SET16SFCONTROL_STATUS_FLTID(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32SFCONTROL_STATUS_RESERVED(r32) _BFGET_(r32,31,24)
#define SET32SFCONTROL_STATUS_RESERVED(r32,v) _BFSET_(r32,31,24,v)
#define GET16SFCONTROL_STATUS_RESERVED(r16) _BFGET_(r16,15, 8)
#define SET16SFCONTROL_STATUS_RESERVED(r16,v) _BFSET_(r16,15, 8,v)
#define w32SFCONTROL_STATUS {\
UNSG32 uSTATUS_RULEADDR : 16;\
UNSG32 uSTATUS_FLTID : 8;\
UNSG32 uSTATUS_RESERVED : 8;\
}
union { UNSG32 u32SFCONTROL_STATUS;
struct w32SFCONTROL_STATUS;
};
///////////////////////////////////////////////////////////
} SIE_SFCONTROL;
typedef union T32SFCONTROL_ENB
{ UNSG32 u32;
struct w32SFCONTROL_ENB;
} T32SFCONTROL_ENB;
typedef union T32SFCONTROL_ENB1
{ UNSG32 u32;
struct w32SFCONTROL_ENB1;
} T32SFCONTROL_ENB1;
typedef union T32SFCONTROL_ENB2
{ UNSG32 u32;
struct w32SFCONTROL_ENB2;
} T32SFCONTROL_ENB2;
typedef union T32SFCONTROL_ENB3
{ UNSG32 u32;
struct w32SFCONTROL_ENB3;
} T32SFCONTROL_ENB3;
typedef union T32SFCONTROL_RESET
{ UNSG32 u32;
struct w32SFCONTROL_RESET;
} T32SFCONTROL_RESET;
typedef union T32SFCONTROL_STATUS
{ UNSG32 u32;
struct w32SFCONTROL_STATUS;
} T32SFCONTROL_STATUS;
///////////////////////////////////////////////////////////
typedef union TSFCONTROL_ENB
{ UNSG32 u32[4];
struct {
struct w32SFCONTROL_ENB;
struct w32SFCONTROL_ENB1;
struct w32SFCONTROL_ENB2;
struct w32SFCONTROL_ENB3;
};
} TSFCONTROL_ENB;
typedef union TSFCONTROL_RESET
{ UNSG32 u32[1];
struct {
struct w32SFCONTROL_RESET;
};
} TSFCONTROL_RESET;
typedef union TSFCONTROL_STATUS
{ UNSG32 u32[1];
struct {
struct w32SFCONTROL_STATUS;
};
} TSFCONTROL_STATUS;
///////////////////////////////////////////////////////////
SIGN32 SFCONTROL_drvrd(SIE_SFCONTROL *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SFCONTROL_drvwr(SIE_SFCONTROL *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SFCONTROL_reset(SIE_SFCONTROL *p);
SIGN32 SFCONTROL_cmp (SIE_SFCONTROL *p, SIE_SFCONTROL *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SFCONTROL_check(p,pie,pfx,hLOG) SFCONTROL_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SFCONTROL_print(p, pfx,hLOG) SFCONTROL_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SFCONTROL
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FILTER (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 HDR0 (P)
/// %unsigned 1 ONESHOT 0x0
/// ###
/// * enable one shot filtering.
/// * One shot mode means a rule will be automatically disabled after a match. The enable bit should be automatically cleared to 0. To enable it again, CPU need to write 1 to it.
/// ###
/// %unsigned 1 PIDCHECKEN 0x0
/// ###
/// * match {TSID, PID} before section filter
/// ###
/// %unsigned 1 TIDCHECKEN 0x0
/// ###
/// * match the TID before section filter
/// ###
/// %unsigned 11 RULEID 0x0
/// ###
/// * pointer to the next RULE
/// ###
/// %% 18 # Stuffing bits...
/// @ 0x00004 HDR1 (P)
/// %unsigned 15 EXTPID 0x0
/// ###
/// * This bit field is used to match with the incoming
/// * TSCmdTSC.{TSID,PID}, section filter will only active when EXTPID matches
/// * DV-FR-CNR(PID from 0 to 0x1fff, TSID from 0,1,2,3}
/// ###
/// %unsigned 1 RESERVED
/// %unsigned 8 TID 0x0
/// ###
/// * table ID to be matched
/// ###
/// %% 8 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 38b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FILTER
#define h_FILTER (){}
#define RA_FILTER_HDR0 0x0000
#define BA_FILTER_HDR0_ONESHOT 0x0000
#define B16FILTER_HDR0_ONESHOT 0x0000
#define LSb32FILTER_HDR0_ONESHOT 0
#define LSb16FILTER_HDR0_ONESHOT 0
#define bFILTER_HDR0_ONESHOT 1
#define MSK32FILTER_HDR0_ONESHOT 0x00000001
#define BA_FILTER_HDR0_PIDCHECKEN 0x0000
#define B16FILTER_HDR0_PIDCHECKEN 0x0000
#define LSb32FILTER_HDR0_PIDCHECKEN 1
#define LSb16FILTER_HDR0_PIDCHECKEN 1
#define bFILTER_HDR0_PIDCHECKEN 1
#define MSK32FILTER_HDR0_PIDCHECKEN 0x00000002
#define BA_FILTER_HDR0_TIDCHECKEN 0x0000
#define B16FILTER_HDR0_TIDCHECKEN 0x0000
#define LSb32FILTER_HDR0_TIDCHECKEN 2
#define LSb16FILTER_HDR0_TIDCHECKEN 2
#define bFILTER_HDR0_TIDCHECKEN 1
#define MSK32FILTER_HDR0_TIDCHECKEN 0x00000004
#define BA_FILTER_HDR0_RULEID 0x0000
#define B16FILTER_HDR0_RULEID 0x0000
#define LSb32FILTER_HDR0_RULEID 3
#define LSb16FILTER_HDR0_RULEID 3
#define bFILTER_HDR0_RULEID 11
#define MSK32FILTER_HDR0_RULEID 0x00003FF8
///////////////////////////////////////////////////////////
#define RA_FILTER_HDR1 0x0004
#define BA_FILTER_HDR1_EXTPID 0x0004
#define B16FILTER_HDR1_EXTPID 0x0004
#define LSb32FILTER_HDR1_EXTPID 0
#define LSb16FILTER_HDR1_EXTPID 0
#define bFILTER_HDR1_EXTPID 15
#define MSK32FILTER_HDR1_EXTPID 0x00007FFF
#define BA_FILTER_HDR1_RESERVED 0x0005
#define B16FILTER_HDR1_RESERVED 0x0004
#define LSb32FILTER_HDR1_RESERVED 15
#define LSb16FILTER_HDR1_RESERVED 15
#define bFILTER_HDR1_RESERVED 1
#define MSK32FILTER_HDR1_RESERVED 0x00008000
#define BA_FILTER_HDR1_TID 0x0006
#define B16FILTER_HDR1_TID 0x0006
#define LSb32FILTER_HDR1_TID 16
#define LSb16FILTER_HDR1_TID 0
#define bFILTER_HDR1_TID 8
#define MSK32FILTER_HDR1_TID 0x00FF0000
///////////////////////////////////////////////////////////
typedef struct SIE_FILTER {
///////////////////////////////////////////////////////////
#define GET32FILTER_HDR0_ONESHOT(r32) _BFGET_(r32, 0, 0)
#define SET32FILTER_HDR0_ONESHOT(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16FILTER_HDR0_ONESHOT(r16) _BFGET_(r16, 0, 0)
#define SET16FILTER_HDR0_ONESHOT(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32FILTER_HDR0_PIDCHECKEN(r32) _BFGET_(r32, 1, 1)
#define SET32FILTER_HDR0_PIDCHECKEN(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16FILTER_HDR0_PIDCHECKEN(r16) _BFGET_(r16, 1, 1)
#define SET16FILTER_HDR0_PIDCHECKEN(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32FILTER_HDR0_TIDCHECKEN(r32) _BFGET_(r32, 2, 2)
#define SET32FILTER_HDR0_TIDCHECKEN(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16FILTER_HDR0_TIDCHECKEN(r16) _BFGET_(r16, 2, 2)
#define SET16FILTER_HDR0_TIDCHECKEN(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32FILTER_HDR0_RULEID(r32) _BFGET_(r32,13, 3)
#define SET32FILTER_HDR0_RULEID(r32,v) _BFSET_(r32,13, 3,v)
#define GET16FILTER_HDR0_RULEID(r16) _BFGET_(r16,13, 3)
#define SET16FILTER_HDR0_RULEID(r16,v) _BFSET_(r16,13, 3,v)
#define w32FILTER_HDR0 {\
UNSG32 uHDR0_ONESHOT : 1;\
UNSG32 uHDR0_PIDCHECKEN : 1;\
UNSG32 uHDR0_TIDCHECKEN : 1;\
UNSG32 uHDR0_RULEID : 11;\
UNSG32 RSVDx0_b14 : 18;\
}
union { UNSG32 u32FILTER_HDR0;
struct w32FILTER_HDR0;
};
///////////////////////////////////////////////////////////
#define GET32FILTER_HDR1_EXTPID(r32) _BFGET_(r32,14, 0)
#define SET32FILTER_HDR1_EXTPID(r32,v) _BFSET_(r32,14, 0,v)
#define GET16FILTER_HDR1_EXTPID(r16) _BFGET_(r16,14, 0)
#define SET16FILTER_HDR1_EXTPID(r16,v) _BFSET_(r16,14, 0,v)
#define GET32FILTER_HDR1_RESERVED(r32) _BFGET_(r32,15,15)
#define SET32FILTER_HDR1_RESERVED(r32,v) _BFSET_(r32,15,15,v)
#define GET16FILTER_HDR1_RESERVED(r16) _BFGET_(r16,15,15)
#define SET16FILTER_HDR1_RESERVED(r16,v) _BFSET_(r16,15,15,v)
#define GET32FILTER_HDR1_TID(r32) _BFGET_(r32,23,16)
#define SET32FILTER_HDR1_TID(r32,v) _BFSET_(r32,23,16,v)
#define GET16FILTER_HDR1_TID(r16) _BFGET_(r16, 7, 0)
#define SET16FILTER_HDR1_TID(r16,v) _BFSET_(r16, 7, 0,v)
#define w32FILTER_HDR1 {\
UNSG32 uHDR1_EXTPID : 15;\
UNSG32 uHDR1_RESERVED : 1;\
UNSG32 uHDR1_TID : 8;\
UNSG32 RSVDx4_b24 : 8;\
}
union { UNSG32 u32FILTER_HDR1;
struct w32FILTER_HDR1;
};
///////////////////////////////////////////////////////////
} SIE_FILTER;
typedef union T32FILTER_HDR0
{ UNSG32 u32;
struct w32FILTER_HDR0;
} T32FILTER_HDR0;
typedef union T32FILTER_HDR1
{ UNSG32 u32;
struct w32FILTER_HDR1;
} T32FILTER_HDR1;
///////////////////////////////////////////////////////////
typedef union TFILTER_HDR0
{ UNSG32 u32[1];
struct {
struct w32FILTER_HDR0;
};
} TFILTER_HDR0;
typedef union TFILTER_HDR1
{ UNSG32 u32[1];
struct {
struct w32FILTER_HDR1;
};
} TFILTER_HDR1;
///////////////////////////////////////////////////////////
SIGN32 FILTER_drvrd(SIE_FILTER *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FILTER_drvwr(SIE_FILTER *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FILTER_reset(SIE_FILTER *p);
SIGN32 FILTER_cmp (SIE_FILTER *p, SIE_FILTER *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FILTER_check(p,pie,pfx,hLOG) FILTER_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FILTER_print(p, pfx,hLOG) FILTER_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FILTER
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE RULE (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CTRL (P)
/// %unsigned 5 BYTEOFFSET
/// ###
/// * byte offset into the section data the exact and range match is applied to
/// ###
/// %unsigned 3 BITOFFSET
/// ###
/// * bit offset within first byte the range comparison is applied, this field is ignored when MODE!=RANGE
/// ###
/// %unsigned 1 STOPONMISS
/// %unsigned 1 LAST
/// %unsigned 11 NXT
/// %unsigned 2 MODE
/// : INRANGE 0x0
/// : OUTRANGE 0x1
/// : PMATCH 0x2
/// : NMATCH 0x3
/// %unsigned 4 LEN
/// ###
/// * if mode = RANGE, this field is ignored ;
/// * else, it indicates the number of bit-mask/pattern pair in current rule
/// ###
/// %% 5 # Stuffing bits...
/// @ 0x00004 MINMASK (P)
/// %unsigned 32 VALUE
/// @ 0x00008 MAXCOEFF1DW (P)
/// %unsigned 32 VALUE
/// @ 0x0000C MAXCOEFF2DW (P)
/// %unsigned 32 VALUE
/// @ 0x00010 MAXCOEFF3DW (P)
/// %unsigned 32 VALUE
/// @ 0x00014 MAXCOEFF4DW (P)
/// %unsigned 32 VALUE
/// @ 0x00018 MAXCOEFF5DW (P)
/// %unsigned 32 VALUE
/// @ 0x0001C MAXCOEFF6DW (P)
/// %unsigned 32 VALUE
/// @ 0x00020 MAXCOEFF7DW (P)
/// %unsigned 32 VALUE
/// @ 0x00024 MAXCOEFF8DW (P)
/// %unsigned 32 VALUE
/// @ 0x00028 MAXCOEFF9DW (P)
/// %unsigned 32 VALUE
/// @ 0x0002C MAXCOEFF10DW (P)
/// %unsigned 32 VALUE
/// @ 0x00030 MAXCOEFF11DW (P)
/// %unsigned 32 VALUE
/// @ 0x00034 MAXCOEFF12DW (P)
/// %unsigned 32 VALUE
/// @ 0x00038 MAXCOEFF13DW (P)
/// %unsigned 32 VALUE
/// @ 0x0003C MAXCOEFF14DW (P)
/// %unsigned 32 VALUE
/// @ 0x00040 MAXCOEFF15DW (P)
/// %unsigned 32 VALUE
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 68B, bits: 539b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_RULE
#define h_RULE (){}
#define RA_RULE_CTRL 0x0000
#define BA_RULE_CTRL_BYTEOFFSET 0x0000
#define B16RULE_CTRL_BYTEOFFSET 0x0000
#define LSb32RULE_CTRL_BYTEOFFSET 0
#define LSb16RULE_CTRL_BYTEOFFSET 0
#define bRULE_CTRL_BYTEOFFSET 5
#define MSK32RULE_CTRL_BYTEOFFSET 0x0000001F
#define BA_RULE_CTRL_BITOFFSET 0x0000
#define B16RULE_CTRL_BITOFFSET 0x0000
#define LSb32RULE_CTRL_BITOFFSET 5
#define LSb16RULE_CTRL_BITOFFSET 5
#define bRULE_CTRL_BITOFFSET 3
#define MSK32RULE_CTRL_BITOFFSET 0x000000E0
#define BA_RULE_CTRL_STOPONMISS 0x0001
#define B16RULE_CTRL_STOPONMISS 0x0000
#define LSb32RULE_CTRL_STOPONMISS 8
#define LSb16RULE_CTRL_STOPONMISS 8
#define bRULE_CTRL_STOPONMISS 1
#define MSK32RULE_CTRL_STOPONMISS 0x00000100
#define BA_RULE_CTRL_LAST 0x0001
#define B16RULE_CTRL_LAST 0x0000
#define LSb32RULE_CTRL_LAST 9
#define LSb16RULE_CTRL_LAST 9
#define bRULE_CTRL_LAST 1
#define MSK32RULE_CTRL_LAST 0x00000200
#define BA_RULE_CTRL_NXT 0x0001
#define B16RULE_CTRL_NXT 0x0000
#define LSb32RULE_CTRL_NXT 10
#define LSb16RULE_CTRL_NXT 10
#define bRULE_CTRL_NXT 11
#define MSK32RULE_CTRL_NXT 0x001FFC00
#define BA_RULE_CTRL_MODE 0x0002
#define B16RULE_CTRL_MODE 0x0002
#define LSb32RULE_CTRL_MODE 21
#define LSb16RULE_CTRL_MODE 5
#define bRULE_CTRL_MODE 2
#define MSK32RULE_CTRL_MODE 0x00600000
#define RULE_CTRL_MODE_INRANGE 0x0
#define RULE_CTRL_MODE_OUTRANGE 0x1
#define RULE_CTRL_MODE_PMATCH 0x2
#define RULE_CTRL_MODE_NMATCH 0x3
#define BA_RULE_CTRL_LEN 0x0002
#define B16RULE_CTRL_LEN 0x0002
#define LSb32RULE_CTRL_LEN 23
#define LSb16RULE_CTRL_LEN 7
#define bRULE_CTRL_LEN 4
#define MSK32RULE_CTRL_LEN 0x07800000
///////////////////////////////////////////////////////////
#define RA_RULE_MINMASK 0x0004
#define BA_RULE_MINMASK_VALUE 0x0004
#define B16RULE_MINMASK_VALUE 0x0004
#define LSb32RULE_MINMASK_VALUE 0
#define LSb16RULE_MINMASK_VALUE 0
#define bRULE_MINMASK_VALUE 32
#define MSK32RULE_MINMASK_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF1DW 0x0008
#define BA_RULE_MAXCOEFF1DW_VALUE 0x0008
#define B16RULE_MAXCOEFF1DW_VALUE 0x0008
#define LSb32RULE_MAXCOEFF1DW_VALUE 0
#define LSb16RULE_MAXCOEFF1DW_VALUE 0
#define bRULE_MAXCOEFF1DW_VALUE 32
#define MSK32RULE_MAXCOEFF1DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF2DW 0x000C
#define BA_RULE_MAXCOEFF2DW_VALUE 0x000C
#define B16RULE_MAXCOEFF2DW_VALUE 0x000C
#define LSb32RULE_MAXCOEFF2DW_VALUE 0
#define LSb16RULE_MAXCOEFF2DW_VALUE 0
#define bRULE_MAXCOEFF2DW_VALUE 32
#define MSK32RULE_MAXCOEFF2DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF3DW 0x0010
#define BA_RULE_MAXCOEFF3DW_VALUE 0x0010
#define B16RULE_MAXCOEFF3DW_VALUE 0x0010
#define LSb32RULE_MAXCOEFF3DW_VALUE 0
#define LSb16RULE_MAXCOEFF3DW_VALUE 0
#define bRULE_MAXCOEFF3DW_VALUE 32
#define MSK32RULE_MAXCOEFF3DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF4DW 0x0014
#define BA_RULE_MAXCOEFF4DW_VALUE 0x0014
#define B16RULE_MAXCOEFF4DW_VALUE 0x0014
#define LSb32RULE_MAXCOEFF4DW_VALUE 0
#define LSb16RULE_MAXCOEFF4DW_VALUE 0
#define bRULE_MAXCOEFF4DW_VALUE 32
#define MSK32RULE_MAXCOEFF4DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF5DW 0x0018
#define BA_RULE_MAXCOEFF5DW_VALUE 0x0018
#define B16RULE_MAXCOEFF5DW_VALUE 0x0018
#define LSb32RULE_MAXCOEFF5DW_VALUE 0
#define LSb16RULE_MAXCOEFF5DW_VALUE 0
#define bRULE_MAXCOEFF5DW_VALUE 32
#define MSK32RULE_MAXCOEFF5DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF6DW 0x001C
#define BA_RULE_MAXCOEFF6DW_VALUE 0x001C
#define B16RULE_MAXCOEFF6DW_VALUE 0x001C
#define LSb32RULE_MAXCOEFF6DW_VALUE 0
#define LSb16RULE_MAXCOEFF6DW_VALUE 0
#define bRULE_MAXCOEFF6DW_VALUE 32
#define MSK32RULE_MAXCOEFF6DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF7DW 0x0020
#define BA_RULE_MAXCOEFF7DW_VALUE 0x0020
#define B16RULE_MAXCOEFF7DW_VALUE 0x0020
#define LSb32RULE_MAXCOEFF7DW_VALUE 0
#define LSb16RULE_MAXCOEFF7DW_VALUE 0
#define bRULE_MAXCOEFF7DW_VALUE 32
#define MSK32RULE_MAXCOEFF7DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF8DW 0x0024
#define BA_RULE_MAXCOEFF8DW_VALUE 0x0024
#define B16RULE_MAXCOEFF8DW_VALUE 0x0024
#define LSb32RULE_MAXCOEFF8DW_VALUE 0
#define LSb16RULE_MAXCOEFF8DW_VALUE 0
#define bRULE_MAXCOEFF8DW_VALUE 32
#define MSK32RULE_MAXCOEFF8DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF9DW 0x0028
#define BA_RULE_MAXCOEFF9DW_VALUE 0x0028
#define B16RULE_MAXCOEFF9DW_VALUE 0x0028
#define LSb32RULE_MAXCOEFF9DW_VALUE 0
#define LSb16RULE_MAXCOEFF9DW_VALUE 0
#define bRULE_MAXCOEFF9DW_VALUE 32
#define MSK32RULE_MAXCOEFF9DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF10DW 0x002C
#define BA_RULE_MAXCOEFF10DW_VALUE 0x002C
#define B16RULE_MAXCOEFF10DW_VALUE 0x002C
#define LSb32RULE_MAXCOEFF10DW_VALUE 0
#define LSb16RULE_MAXCOEFF10DW_VALUE 0
#define bRULE_MAXCOEFF10DW_VALUE 32
#define MSK32RULE_MAXCOEFF10DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF11DW 0x0030
#define BA_RULE_MAXCOEFF11DW_VALUE 0x0030
#define B16RULE_MAXCOEFF11DW_VALUE 0x0030
#define LSb32RULE_MAXCOEFF11DW_VALUE 0
#define LSb16RULE_MAXCOEFF11DW_VALUE 0
#define bRULE_MAXCOEFF11DW_VALUE 32
#define MSK32RULE_MAXCOEFF11DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF12DW 0x0034
#define BA_RULE_MAXCOEFF12DW_VALUE 0x0034
#define B16RULE_MAXCOEFF12DW_VALUE 0x0034
#define LSb32RULE_MAXCOEFF12DW_VALUE 0
#define LSb16RULE_MAXCOEFF12DW_VALUE 0
#define bRULE_MAXCOEFF12DW_VALUE 32
#define MSK32RULE_MAXCOEFF12DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF13DW 0x0038
#define BA_RULE_MAXCOEFF13DW_VALUE 0x0038
#define B16RULE_MAXCOEFF13DW_VALUE 0x0038
#define LSb32RULE_MAXCOEFF13DW_VALUE 0
#define LSb16RULE_MAXCOEFF13DW_VALUE 0
#define bRULE_MAXCOEFF13DW_VALUE 32
#define MSK32RULE_MAXCOEFF13DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF14DW 0x003C
#define BA_RULE_MAXCOEFF14DW_VALUE 0x003C
#define B16RULE_MAXCOEFF14DW_VALUE 0x003C
#define LSb32RULE_MAXCOEFF14DW_VALUE 0
#define LSb16RULE_MAXCOEFF14DW_VALUE 0
#define bRULE_MAXCOEFF14DW_VALUE 32
#define MSK32RULE_MAXCOEFF14DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_RULE_MAXCOEFF15DW 0x0040
#define BA_RULE_MAXCOEFF15DW_VALUE 0x0040
#define B16RULE_MAXCOEFF15DW_VALUE 0x0040
#define LSb32RULE_MAXCOEFF15DW_VALUE 0
#define LSb16RULE_MAXCOEFF15DW_VALUE 0
#define bRULE_MAXCOEFF15DW_VALUE 32
#define MSK32RULE_MAXCOEFF15DW_VALUE 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_RULE {
///////////////////////////////////////////////////////////
#define GET32RULE_CTRL_BYTEOFFSET(r32) _BFGET_(r32, 4, 0)
#define SET32RULE_CTRL_BYTEOFFSET(r32,v) _BFSET_(r32, 4, 0,v)
#define GET16RULE_CTRL_BYTEOFFSET(r16) _BFGET_(r16, 4, 0)
#define SET16RULE_CTRL_BYTEOFFSET(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32RULE_CTRL_BITOFFSET(r32) _BFGET_(r32, 7, 5)
#define SET32RULE_CTRL_BITOFFSET(r32,v) _BFSET_(r32, 7, 5,v)
#define GET16RULE_CTRL_BITOFFSET(r16) _BFGET_(r16, 7, 5)
#define SET16RULE_CTRL_BITOFFSET(r16,v) _BFSET_(r16, 7, 5,v)
#define GET32RULE_CTRL_STOPONMISS(r32) _BFGET_(r32, 8, 8)
#define SET32RULE_CTRL_STOPONMISS(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16RULE_CTRL_STOPONMISS(r16) _BFGET_(r16, 8, 8)
#define SET16RULE_CTRL_STOPONMISS(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32RULE_CTRL_LAST(r32) _BFGET_(r32, 9, 9)
#define SET32RULE_CTRL_LAST(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16RULE_CTRL_LAST(r16) _BFGET_(r16, 9, 9)
#define SET16RULE_CTRL_LAST(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32RULE_CTRL_NXT(r32) _BFGET_(r32,20,10)
#define SET32RULE_CTRL_NXT(r32,v) _BFSET_(r32,20,10,v)
#define GET32RULE_CTRL_MODE(r32) _BFGET_(r32,22,21)
#define SET32RULE_CTRL_MODE(r32,v) _BFSET_(r32,22,21,v)
#define GET16RULE_CTRL_MODE(r16) _BFGET_(r16, 6, 5)
#define SET16RULE_CTRL_MODE(r16,v) _BFSET_(r16, 6, 5,v)
#define GET32RULE_CTRL_LEN(r32) _BFGET_(r32,26,23)
#define SET32RULE_CTRL_LEN(r32,v) _BFSET_(r32,26,23,v)
#define GET16RULE_CTRL_LEN(r16) _BFGET_(r16,10, 7)
#define SET16RULE_CTRL_LEN(r16,v) _BFSET_(r16,10, 7,v)
#define w32RULE_CTRL {\
UNSG32 uCTRL_BYTEOFFSET : 5;\
UNSG32 uCTRL_BITOFFSET : 3;\
UNSG32 uCTRL_STOPONMISS : 1;\
UNSG32 uCTRL_LAST : 1;\
UNSG32 uCTRL_NXT : 11;\
UNSG32 uCTRL_MODE : 2;\
UNSG32 uCTRL_LEN : 4;\
UNSG32 RSVDx0_b27 : 5;\
}
union { UNSG32 u32RULE_CTRL;
struct w32RULE_CTRL;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MINMASK_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MINMASK_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MINMASK {\
UNSG32 uMINMASK_VALUE : 32;\
}
union { UNSG32 u32RULE_MINMASK;
struct w32RULE_MINMASK;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF1DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF1DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF1DW {\
UNSG32 uMAXCOEFF1DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF1DW;
struct w32RULE_MAXCOEFF1DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF2DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF2DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF2DW {\
UNSG32 uMAXCOEFF2DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF2DW;
struct w32RULE_MAXCOEFF2DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF3DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF3DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF3DW {\
UNSG32 uMAXCOEFF3DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF3DW;
struct w32RULE_MAXCOEFF3DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF4DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF4DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF4DW {\
UNSG32 uMAXCOEFF4DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF4DW;
struct w32RULE_MAXCOEFF4DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF5DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF5DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF5DW {\
UNSG32 uMAXCOEFF5DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF5DW;
struct w32RULE_MAXCOEFF5DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF6DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF6DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF6DW {\
UNSG32 uMAXCOEFF6DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF6DW;
struct w32RULE_MAXCOEFF6DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF7DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF7DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF7DW {\
UNSG32 uMAXCOEFF7DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF7DW;
struct w32RULE_MAXCOEFF7DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF8DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF8DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF8DW {\
UNSG32 uMAXCOEFF8DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF8DW;
struct w32RULE_MAXCOEFF8DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF9DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF9DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF9DW {\
UNSG32 uMAXCOEFF9DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF9DW;
struct w32RULE_MAXCOEFF9DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF10DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF10DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF10DW {\
UNSG32 uMAXCOEFF10DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF10DW;
struct w32RULE_MAXCOEFF10DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF11DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF11DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF11DW {\
UNSG32 uMAXCOEFF11DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF11DW;
struct w32RULE_MAXCOEFF11DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF12DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF12DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF12DW {\
UNSG32 uMAXCOEFF12DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF12DW;
struct w32RULE_MAXCOEFF12DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF13DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF13DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF13DW {\
UNSG32 uMAXCOEFF13DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF13DW;
struct w32RULE_MAXCOEFF13DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF14DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF14DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF14DW {\
UNSG32 uMAXCOEFF14DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF14DW;
struct w32RULE_MAXCOEFF14DW;
};
///////////////////////////////////////////////////////////
#define GET32RULE_MAXCOEFF15DW_VALUE(r32) _BFGET_(r32,31, 0)
#define SET32RULE_MAXCOEFF15DW_VALUE(r32,v) _BFSET_(r32,31, 0,v)
#define w32RULE_MAXCOEFF15DW {\
UNSG32 uMAXCOEFF15DW_VALUE : 32;\
}
union { UNSG32 u32RULE_MAXCOEFF15DW;
struct w32RULE_MAXCOEFF15DW;
};
///////////////////////////////////////////////////////////
} SIE_RULE;
typedef union T32RULE_CTRL
{ UNSG32 u32;
struct w32RULE_CTRL;
} T32RULE_CTRL;
typedef union T32RULE_MINMASK
{ UNSG32 u32;
struct w32RULE_MINMASK;
} T32RULE_MINMASK;
typedef union T32RULE_MAXCOEFF1DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF1DW;
} T32RULE_MAXCOEFF1DW;
typedef union T32RULE_MAXCOEFF2DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF2DW;
} T32RULE_MAXCOEFF2DW;
typedef union T32RULE_MAXCOEFF3DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF3DW;
} T32RULE_MAXCOEFF3DW;
typedef union T32RULE_MAXCOEFF4DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF4DW;
} T32RULE_MAXCOEFF4DW;
typedef union T32RULE_MAXCOEFF5DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF5DW;
} T32RULE_MAXCOEFF5DW;
typedef union T32RULE_MAXCOEFF6DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF6DW;
} T32RULE_MAXCOEFF6DW;
typedef union T32RULE_MAXCOEFF7DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF7DW;
} T32RULE_MAXCOEFF7DW;
typedef union T32RULE_MAXCOEFF8DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF8DW;
} T32RULE_MAXCOEFF8DW;
typedef union T32RULE_MAXCOEFF9DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF9DW;
} T32RULE_MAXCOEFF9DW;
typedef union T32RULE_MAXCOEFF10DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF10DW;
} T32RULE_MAXCOEFF10DW;
typedef union T32RULE_MAXCOEFF11DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF11DW;
} T32RULE_MAXCOEFF11DW;
typedef union T32RULE_MAXCOEFF12DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF12DW;
} T32RULE_MAXCOEFF12DW;
typedef union T32RULE_MAXCOEFF13DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF13DW;
} T32RULE_MAXCOEFF13DW;
typedef union T32RULE_MAXCOEFF14DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF14DW;
} T32RULE_MAXCOEFF14DW;
typedef union T32RULE_MAXCOEFF15DW
{ UNSG32 u32;
struct w32RULE_MAXCOEFF15DW;
} T32RULE_MAXCOEFF15DW;
///////////////////////////////////////////////////////////
typedef union TRULE_CTRL
{ UNSG32 u32[1];
struct {
struct w32RULE_CTRL;
};
} TRULE_CTRL;
typedef union TRULE_MINMASK
{ UNSG32 u32[1];
struct {
struct w32RULE_MINMASK;
};
} TRULE_MINMASK;
typedef union TRULE_MAXCOEFF1DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF1DW;
};
} TRULE_MAXCOEFF1DW;
typedef union TRULE_MAXCOEFF2DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF2DW;
};
} TRULE_MAXCOEFF2DW;
typedef union TRULE_MAXCOEFF3DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF3DW;
};
} TRULE_MAXCOEFF3DW;
typedef union TRULE_MAXCOEFF4DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF4DW;
};
} TRULE_MAXCOEFF4DW;
typedef union TRULE_MAXCOEFF5DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF5DW;
};
} TRULE_MAXCOEFF5DW;
typedef union TRULE_MAXCOEFF6DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF6DW;
};
} TRULE_MAXCOEFF6DW;
typedef union TRULE_MAXCOEFF7DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF7DW;
};
} TRULE_MAXCOEFF7DW;
typedef union TRULE_MAXCOEFF8DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF8DW;
};
} TRULE_MAXCOEFF8DW;
typedef union TRULE_MAXCOEFF9DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF9DW;
};
} TRULE_MAXCOEFF9DW;
typedef union TRULE_MAXCOEFF10DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF10DW;
};
} TRULE_MAXCOEFF10DW;
typedef union TRULE_MAXCOEFF11DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF11DW;
};
} TRULE_MAXCOEFF11DW;
typedef union TRULE_MAXCOEFF12DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF12DW;
};
} TRULE_MAXCOEFF12DW;
typedef union TRULE_MAXCOEFF13DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF13DW;
};
} TRULE_MAXCOEFF13DW;
typedef union TRULE_MAXCOEFF14DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF14DW;
};
} TRULE_MAXCOEFF14DW;
typedef union TRULE_MAXCOEFF15DW
{ UNSG32 u32[1];
struct {
struct w32RULE_MAXCOEFF15DW;
};
} TRULE_MAXCOEFF15DW;
///////////////////////////////////////////////////////////
SIGN32 RULE_drvrd(SIE_RULE *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 RULE_drvwr(SIE_RULE *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void RULE_reset(SIE_RULE *p);
SIGN32 RULE_cmp (SIE_RULE *p, SIE_RULE *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define RULE_check(p,pie,pfx,hLOG) RULE_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define RULE_print(p, pfx,hLOG) RULE_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: RULE
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE RAM1WORD (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 32 word
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_RAM1WORD
#define h_RAM1WORD (){}
#define BA_RAM1WORD_word 0x0000
#define B16RAM1WORD_word 0x0000
#define LSb32RAM1WORD_word 0
#define LSb16RAM1WORD_word 0
#define bRAM1WORD_word 32
#define MSK32RAM1WORD_word 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_RAM1WORD {
///////////////////////////////////////////////////////////
#define GET32RAM1WORD_word(r32) _BFGET_(r32,31, 0)
#define SET32RAM1WORD_word(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_word : 32;
///////////////////////////////////////////////////////////
} SIE_RAM1WORD;
///////////////////////////////////////////////////////////
SIGN32 RAM1WORD_drvrd(SIE_RAM1WORD *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 RAM1WORD_drvwr(SIE_RAM1WORD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void RAM1WORD_reset(SIE_RAM1WORD *p);
SIGN32 RAM1WORD_cmp (SIE_RAM1WORD *p, SIE_RAM1WORD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define RAM1WORD_check(p,pie,pfx,hLOG) RAM1WORD_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define RAM1WORD_print(p, pfx,hLOG) RAM1WORD_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: RAM1WORD
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SFRAM (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 word
/// $RAM1WORD word REG [2048]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8192B, bits: 65536b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SFRAM
#define h_SFRAM (){}
#define RA_SFRAM_word 0x0000
///////////////////////////////////////////////////////////
typedef struct SIE_SFRAM {
///////////////////////////////////////////////////////////
SIE_RAM1WORD ie_word[2048];
///////////////////////////////////////////////////////////
} SIE_SFRAM;
///////////////////////////////////////////////////////////
SIGN32 SFRAM_drvrd(SIE_SFRAM *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SFRAM_drvwr(SIE_SFRAM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SFRAM_reset(SIE_SFRAM *p);
SIGN32 SFRAM_cmp (SIE_SFRAM *p, SIE_SFRAM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SFRAM_check(p,pie,pfx,hLOG) SFRAM_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SFRAM_print(p, pfx,hLOG) SFRAM_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SFRAM
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE OTP biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW)
/// %unsigned 4 test 0x5
/// %unsigned 1 rstb 0x1
/// %unsigned 1 csb 0x1
/// %unsigned 1 pgmb 0x1
/// %unsigned 1 sclk 0x0
/// %unsigned 1 load 0x1
/// %unsigned 1 pdwn 0x0
/// %unsigned 13 addr 0x0
/// ###
/// * select the OTP cells to be programmed; only 0~2699 are valid numbers
/// ###
/// %unsigned 8 crcchk 0x0
/// %% 1 # Stuffing bits...
/// @ 0x00004 (RW)
/// %unsigned 1 progseqcode 0x0
/// %unsigned 1 progseqcodeclk 0x0
/// %% 30 # Stuffing bits...
/// @ 0x00008 (R-)
/// %unsigned 32 data0 0x1
/// %unsigned 32 data1 0x1
/// %unsigned 2 data2 0x1
/// %unsigned 1 security 0x1
/// %unsigned 1 rddone 0x0
/// ###
/// * please refer to OTP Macro Document regarding to definition and programming timing about these bits.
/// ###
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 20B, bits: 101b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_OTP
#define h_OTP (){}
#define BA_OTP_test 0x0000
#define B16OTP_test 0x0000
#define LSb32OTP_test 0
#define LSb16OTP_test 0
#define bOTP_test 4
#define MSK32OTP_test 0x0000000F
#define BA_OTP_rstb 0x0000
#define B16OTP_rstb 0x0000
#define LSb32OTP_rstb 4
#define LSb16OTP_rstb 4
#define bOTP_rstb 1
#define MSK32OTP_rstb 0x00000010
#define BA_OTP_csb 0x0000
#define B16OTP_csb 0x0000
#define LSb32OTP_csb 5
#define LSb16OTP_csb 5
#define bOTP_csb 1
#define MSK32OTP_csb 0x00000020
#define BA_OTP_pgmb 0x0000
#define B16OTP_pgmb 0x0000
#define LSb32OTP_pgmb 6
#define LSb16OTP_pgmb 6
#define bOTP_pgmb 1
#define MSK32OTP_pgmb 0x00000040
#define BA_OTP_sclk 0x0000
#define B16OTP_sclk 0x0000
#define LSb32OTP_sclk 7
#define LSb16OTP_sclk 7
#define bOTP_sclk 1
#define MSK32OTP_sclk 0x00000080
#define BA_OTP_load 0x0001
#define B16OTP_load 0x0000
#define LSb32OTP_load 8
#define LSb16OTP_load 8
#define bOTP_load 1
#define MSK32OTP_load 0x00000100
#define BA_OTP_pdwn 0x0001
#define B16OTP_pdwn 0x0000
#define LSb32OTP_pdwn 9
#define LSb16OTP_pdwn 9
#define bOTP_pdwn 1
#define MSK32OTP_pdwn 0x00000200
#define BA_OTP_addr 0x0001
#define B16OTP_addr 0x0000
#define LSb32OTP_addr 10
#define LSb16OTP_addr 10
#define bOTP_addr 13
#define MSK32OTP_addr 0x007FFC00
#define BA_OTP_crcchk 0x0002
#define B16OTP_crcchk 0x0002
#define LSb32OTP_crcchk 23
#define LSb16OTP_crcchk 7
#define bOTP_crcchk 8
#define MSK32OTP_crcchk 0x7F800000
///////////////////////////////////////////////////////////
#define BA_OTP_progseqcode 0x0004
#define B16OTP_progseqcode 0x0004
#define LSb32OTP_progseqcode 0
#define LSb16OTP_progseqcode 0
#define bOTP_progseqcode 1
#define MSK32OTP_progseqcode 0x00000001
#define BA_OTP_progseqcodeclk 0x0004
#define B16OTP_progseqcodeclk 0x0004
#define LSb32OTP_progseqcodeclk 1
#define LSb16OTP_progseqcodeclk 1
#define bOTP_progseqcodeclk 1
#define MSK32OTP_progseqcodeclk 0x00000002
///////////////////////////////////////////////////////////
#define BA_OTP_data0 0x0008
#define B16OTP_data0 0x0008
#define LSb32OTP_data0 0
#define LSb16OTP_data0 0
#define bOTP_data0 32
#define MSK32OTP_data0 0xFFFFFFFF
#define BA_OTP_data1 0x000C
#define B16OTP_data1 0x000C
#define LSb32OTP_data1 0
#define LSb16OTP_data1 0
#define bOTP_data1 32
#define MSK32OTP_data1 0xFFFFFFFF
#define BA_OTP_data2 0x0010
#define B16OTP_data2 0x0010
#define LSb32OTP_data2 0
#define LSb16OTP_data2 0
#define bOTP_data2 2
#define MSK32OTP_data2 0x00000003
#define BA_OTP_security 0x0010
#define B16OTP_security 0x0010
#define LSb32OTP_security 2
#define LSb16OTP_security 2
#define bOTP_security 1
#define MSK32OTP_security 0x00000004
#define BA_OTP_rddone 0x0010
#define B16OTP_rddone 0x0010
#define LSb32OTP_rddone 3
#define LSb16OTP_rddone 3
#define bOTP_rddone 1
#define MSK32OTP_rddone 0x00000008
///////////////////////////////////////////////////////////
typedef struct SIE_OTP {
///////////////////////////////////////////////////////////
#define GET32OTP_test(r32) _BFGET_(r32, 3, 0)
#define SET32OTP_test(r32,v) _BFSET_(r32, 3, 0,v)
#define GET16OTP_test(r16) _BFGET_(r16, 3, 0)
#define SET16OTP_test(r16,v) _BFSET_(r16, 3, 0,v)
#define GET32OTP_rstb(r32) _BFGET_(r32, 4, 4)
#define SET32OTP_rstb(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16OTP_rstb(r16) _BFGET_(r16, 4, 4)
#define SET16OTP_rstb(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32OTP_csb(r32) _BFGET_(r32, 5, 5)
#define SET32OTP_csb(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16OTP_csb(r16) _BFGET_(r16, 5, 5)
#define SET16OTP_csb(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32OTP_pgmb(r32) _BFGET_(r32, 6, 6)
#define SET32OTP_pgmb(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16OTP_pgmb(r16) _BFGET_(r16, 6, 6)
#define SET16OTP_pgmb(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32OTP_sclk(r32) _BFGET_(r32, 7, 7)
#define SET32OTP_sclk(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16OTP_sclk(r16) _BFGET_(r16, 7, 7)
#define SET16OTP_sclk(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32OTP_load(r32) _BFGET_(r32, 8, 8)
#define SET32OTP_load(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16OTP_load(r16) _BFGET_(r16, 8, 8)
#define SET16OTP_load(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32OTP_pdwn(r32) _BFGET_(r32, 9, 9)
#define SET32OTP_pdwn(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16OTP_pdwn(r16) _BFGET_(r16, 9, 9)
#define SET16OTP_pdwn(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32OTP_addr(r32) _BFGET_(r32,22,10)
#define SET32OTP_addr(r32,v) _BFSET_(r32,22,10,v)
#define GET32OTP_crcchk(r32) _BFGET_(r32,30,23)
#define SET32OTP_crcchk(r32,v) _BFSET_(r32,30,23,v)
#define GET16OTP_crcchk(r16) _BFGET_(r16,14, 7)
#define SET16OTP_crcchk(r16,v) _BFSET_(r16,14, 7,v)
UNSG32 u_test : 4;
UNSG32 u_rstb : 1;
UNSG32 u_csb : 1;
UNSG32 u_pgmb : 1;
UNSG32 u_sclk : 1;
UNSG32 u_load : 1;
UNSG32 u_pdwn : 1;
UNSG32 u_addr : 13;
UNSG32 u_crcchk : 8;
UNSG32 RSVDx0_b31 : 1;
///////////////////////////////////////////////////////////
#define GET32OTP_progseqcode(r32) _BFGET_(r32, 0, 0)
#define SET32OTP_progseqcode(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16OTP_progseqcode(r16) _BFGET_(r16, 0, 0)
#define SET16OTP_progseqcode(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32OTP_progseqcodeclk(r32) _BFGET_(r32, 1, 1)
#define SET32OTP_progseqcodeclk(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16OTP_progseqcodeclk(r16) _BFGET_(r16, 1, 1)
#define SET16OTP_progseqcodeclk(r16,v) _BFSET_(r16, 1, 1,v)
UNSG32 u_progseqcode : 1;
UNSG32 u_progseqcodeclk : 1;
UNSG32 RSVDx4_b2 : 30;
///////////////////////////////////////////////////////////
#define GET32OTP_data0(r32) _BFGET_(r32,31, 0)
#define SET32OTP_data0(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data0 : 32;
///////////////////////////////////////////////////////////
#define GET32OTP_data1(r32) _BFGET_(r32,31, 0)
#define SET32OTP_data1(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data1 : 32;
///////////////////////////////////////////////////////////
#define GET32OTP_data2(r32) _BFGET_(r32, 1, 0)
#define SET32OTP_data2(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16OTP_data2(r16) _BFGET_(r16, 1, 0)
#define SET16OTP_data2(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32OTP_security(r32) _BFGET_(r32, 2, 2)
#define SET32OTP_security(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16OTP_security(r16) _BFGET_(r16, 2, 2)
#define SET16OTP_security(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32OTP_rddone(r32) _BFGET_(r32, 3, 3)
#define SET32OTP_rddone(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16OTP_rddone(r16) _BFGET_(r16, 3, 3)
#define SET16OTP_rddone(r16,v) _BFSET_(r16, 3, 3,v)
UNSG32 u_data2 : 2;
UNSG32 u_security : 1;
UNSG32 u_rddone : 1;
UNSG32 RSVDx10_b4 : 28;
///////////////////////////////////////////////////////////
} SIE_OTP;
///////////////////////////////////////////////////////////
SIGN32 OTP_drvrd(SIE_OTP *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 OTP_drvwr(SIE_OTP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void OTP_reset(SIE_OTP *p);
SIGN32 OTP_cmp (SIE_OTP *p, SIE_OTP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define OTP_check(p,pie,pfx,hLOG) OTP_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define OTP_print(p, pfx,hLOG) OTP_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: OTP
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE RNG biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 8 rate 0x1
/// ###
/// * RNG bitrate = 12.5 * rate Kbps; this is assuming the system clock is @400MHz.
/// ###
/// %unsigned 1 crc 0x1
/// ###
/// * 1: enable CRC
/// * 0: disable CRC for testing; this will expose the raw random bits sampled
/// ###
/// %unsigned 1 oscEnb 0x0
/// ###
/// * 1: enable the internal ring oscillator;
/// * 0: disable the internal ring oscillator. When internal ring oscillator is disabled, another external PLL clock source will be used instead.
/// ###
/// %% 22 # Stuffing bits...
/// @ 0x00004 (RW-)
/// %unsigned 1 ready 0x0
/// ###
/// * H/W indicates random data ready by set ready to 1
/// * S/W write 0 to it after read the random data
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00008 (R-)
/// %unsigned 32 data 0x0
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12B, bits: 43b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_RNG
#define h_RNG (){}
#define BA_RNG_rate 0x0000
#define B16RNG_rate 0x0000
#define LSb32RNG_rate 0
#define LSb16RNG_rate 0
#define bRNG_rate 8
#define MSK32RNG_rate 0x000000FF
#define BA_RNG_crc 0x0001
#define B16RNG_crc 0x0000
#define LSb32RNG_crc 8
#define LSb16RNG_crc 8
#define bRNG_crc 1
#define MSK32RNG_crc 0x00000100
#define BA_RNG_oscEnb 0x0001
#define B16RNG_oscEnb 0x0000
#define LSb32RNG_oscEnb 9
#define LSb16RNG_oscEnb 9
#define bRNG_oscEnb 1
#define MSK32RNG_oscEnb 0x00000200
///////////////////////////////////////////////////////////
#define BA_RNG_ready 0x0004
#define B16RNG_ready 0x0004
#define LSb32RNG_ready 0
#define LSb16RNG_ready 0
#define bRNG_ready 1
#define MSK32RNG_ready 0x00000001
///////////////////////////////////////////////////////////
#define BA_RNG_data 0x0008
#define B16RNG_data 0x0008
#define LSb32RNG_data 0
#define LSb16RNG_data 0
#define bRNG_data 32
#define MSK32RNG_data 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_RNG {
///////////////////////////////////////////////////////////
#define GET32RNG_rate(r32) _BFGET_(r32, 7, 0)
#define SET32RNG_rate(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16RNG_rate(r16) _BFGET_(r16, 7, 0)
#define SET16RNG_rate(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32RNG_crc(r32) _BFGET_(r32, 8, 8)
#define SET32RNG_crc(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16RNG_crc(r16) _BFGET_(r16, 8, 8)
#define SET16RNG_crc(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32RNG_oscEnb(r32) _BFGET_(r32, 9, 9)
#define SET32RNG_oscEnb(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16RNG_oscEnb(r16) _BFGET_(r16, 9, 9)
#define SET16RNG_oscEnb(r16,v) _BFSET_(r16, 9, 9,v)
UNSG32 u_rate : 8;
UNSG32 u_crc : 1;
UNSG32 u_oscEnb : 1;
UNSG32 RSVDx0_b10 : 22;
///////////////////////////////////////////////////////////
#define GET32RNG_ready(r32) _BFGET_(r32, 0, 0)
#define SET32RNG_ready(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16RNG_ready(r16) _BFGET_(r16, 0, 0)
#define SET16RNG_ready(r16,v) _BFSET_(r16, 0, 0,v)
UNSG32 u_ready : 1;
UNSG32 RSVDx4_b1 : 31;
///////////////////////////////////////////////////////////
#define GET32RNG_data(r32) _BFGET_(r32,31, 0)
#define SET32RNG_data(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data : 32;
///////////////////////////////////////////////////////////
} SIE_RNG;
///////////////////////////////////////////////////////////
SIGN32 RNG_drvrd(SIE_RNG *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 RNG_drvwr(SIE_RNG *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void RNG_reset(SIE_RNG *p);
SIGN32 RNG_cmp (SIE_RNG *p, SIE_RNG *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define RNG_check(p,pie,pfx,hLOG) RNG_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define RNG_print(p, pfx,hLOG) RNG_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: RNG
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SECHF_ENTRY (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P-)
/// %unsigned 2 flag 0x0
/// : DISABLED 0x0
/// ###
/// * This entry is disabled
/// ###
/// : RO 0x1
/// ###
/// * The entry indicate a BIU register space range which is ready only for ARM
/// ###
/// : WO 0x2
/// ###
/// * The entry indicate a BIU register space range which is write only for ARM
/// ###
/// : RW 0x3
/// ###
/// * The entry indicate a BIU register space range which can be read and written by ARM
/// ###
/// %unsigned 14 reserved
/// ###
/// * Reserved bits
/// ###
/// %unsigned 16 regSize 0x0
/// ###
/// * The size of the register spaces in bytes to be configured
/// ###
/// @ 0x00004 (RW-)
/// %unsigned 32 regAddr 0x0
/// ###
/// * Start offset of the register spaces within the secure processor BIU to be configured
/// * 0
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SECHF_ENTRY
#define h_SECHF_ENTRY (){}
#define BA_SECHF_ENTRY_flag 0x0000
#define B16SECHF_ENTRY_flag 0x0000
#define LSb32SECHF_ENTRY_flag 0
#define LSb16SECHF_ENTRY_flag 0
#define bSECHF_ENTRY_flag 2
#define MSK32SECHF_ENTRY_flag 0x00000003
#define SECHF_ENTRY_flag_DISABLED 0x0
#define SECHF_ENTRY_flag_RO 0x1
#define SECHF_ENTRY_flag_WO 0x2
#define SECHF_ENTRY_flag_RW 0x3
#define BA_SECHF_ENTRY_reserved 0x0000
#define B16SECHF_ENTRY_reserved 0x0000
#define LSb32SECHF_ENTRY_reserved 2
#define LSb16SECHF_ENTRY_reserved 2
#define bSECHF_ENTRY_reserved 14
#define MSK32SECHF_ENTRY_reserved 0x0000FFFC
#define BA_SECHF_ENTRY_regSize 0x0002
#define B16SECHF_ENTRY_regSize 0x0002
#define LSb32SECHF_ENTRY_regSize 16
#define LSb16SECHF_ENTRY_regSize 0
#define bSECHF_ENTRY_regSize 16
#define MSK32SECHF_ENTRY_regSize 0xFFFF0000
///////////////////////////////////////////////////////////
#define BA_SECHF_ENTRY_regAddr 0x0004
#define B16SECHF_ENTRY_regAddr 0x0004
#define LSb32SECHF_ENTRY_regAddr 0
#define LSb16SECHF_ENTRY_regAddr 0
#define bSECHF_ENTRY_regAddr 32
#define MSK32SECHF_ENTRY_regAddr 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_SECHF_ENTRY {
///////////////////////////////////////////////////////////
#define GET32SECHF_ENTRY_flag(r32) _BFGET_(r32, 1, 0)
#define SET32SECHF_ENTRY_flag(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16SECHF_ENTRY_flag(r16) _BFGET_(r16, 1, 0)
#define SET16SECHF_ENTRY_flag(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32SECHF_ENTRY_reserved(r32) _BFGET_(r32,15, 2)
#define SET32SECHF_ENTRY_reserved(r32,v) _BFSET_(r32,15, 2,v)
#define GET16SECHF_ENTRY_reserved(r16) _BFGET_(r16,15, 2)
#define SET16SECHF_ENTRY_reserved(r16,v) _BFSET_(r16,15, 2,v)
#define GET32SECHF_ENTRY_regSize(r32) _BFGET_(r32,31,16)
#define SET32SECHF_ENTRY_regSize(r32,v) _BFSET_(r32,31,16,v)
#define GET16SECHF_ENTRY_regSize(r16) _BFGET_(r16,15, 0)
#define SET16SECHF_ENTRY_regSize(r16,v) _BFSET_(r16,15, 0,v)
UNSG32 u_flag : 2;
UNSG32 u_reserved : 14;
UNSG32 u_regSize : 16;
///////////////////////////////////////////////////////////
#define GET32SECHF_ENTRY_regAddr(r32) _BFGET_(r32,31, 0)
#define SET32SECHF_ENTRY_regAddr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_regAddr : 32;
///////////////////////////////////////////////////////////
} SIE_SECHF_ENTRY;
///////////////////////////////////////////////////////////
SIGN32 SECHF_ENTRY_drvrd(SIE_SECHF_ENTRY *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SECHF_ENTRY_drvwr(SIE_SECHF_ENTRY *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SECHF_ENTRY_reset(SIE_SECHF_ENTRY *p);
SIGN32 SECHF_ENTRY_cmp (SIE_SECHF_ENTRY *p, SIE_SECHF_ENTRY *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SECHF_ENTRY_check(p,pie,pfx,hLOG) SECHF_ENTRY_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SECHF_ENTRY_print(p, pfx,hLOG) SECHF_ENTRY_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SECHF_ENTRY
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SECHF biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 secEntries
/// $SECHF_ENTRY secEntries REG [8]
/// ###
/// * The entries to define accessible range of the secure processor of the BIU
/// ###
/// @ 0x00040 (RW)
/// %unsigned 32 counter 0x0
/// ###
/// * Number of times that the firewall successfully block the illegal access from AHB.
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 68B, bits: 544b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SECHF
#define h_SECHF (){}
#define RA_SECHF_secEntries 0x0000
///////////////////////////////////////////////////////////
#define BA_SECHF_counter 0x0040
#define B16SECHF_counter 0x0040
#define LSb32SECHF_counter 0
#define LSb16SECHF_counter 0
#define bSECHF_counter 32
#define MSK32SECHF_counter 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_SECHF {
///////////////////////////////////////////////////////////
SIE_SECHF_ENTRY ie_secEntries[8];
///////////////////////////////////////////////////////////
#define GET32SECHF_counter(r32) _BFGET_(r32,31, 0)
#define SET32SECHF_counter(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_counter : 32;
///////////////////////////////////////////////////////////
} SIE_SECHF;
///////////////////////////////////////////////////////////
SIGN32 SECHF_drvrd(SIE_SECHF *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SECHF_drvwr(SIE_SECHF *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SECHF_reset(SIE_SECHF *p);
SIGN32 SECHF_cmp (SIE_SECHF *p, SIE_SECHF *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SECHF_check(p,pie,pfx,hLOG) SECHF_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SECHF_print(p, pfx,hLOG) SECHF_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SECHF
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE JTAGCTL biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW-)
/// %unsigned 3 EN 0x0
/// ###
/// * 0 to disable Jtag
/// * 1 to enable Jtag
/// * EN[0] is used to control cpu0
/// * EN[1] is used to control cpu1
/// * EN[2] is used to control VPRO
/// ###
/// %% 29 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 3b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_JTAGCTL
#define h_JTAGCTL (){}
#define BA_JTAGCTL_EN 0x0000
#define B16JTAGCTL_EN 0x0000
#define LSb32JTAGCTL_EN 0
#define LSb16JTAGCTL_EN 0
#define bJTAGCTL_EN 3
#define MSK32JTAGCTL_EN 0x00000007
///////////////////////////////////////////////////////////
typedef struct SIE_JTAGCTL {
///////////////////////////////////////////////////////////
#define GET32JTAGCTL_EN(r32) _BFGET_(r32, 2, 0)
#define SET32JTAGCTL_EN(r32,v) _BFSET_(r32, 2, 0,v)
#define GET16JTAGCTL_EN(r16) _BFGET_(r16, 2, 0)
#define SET16JTAGCTL_EN(r16,v) _BFSET_(r16, 2, 0,v)
UNSG32 u_EN : 3;
UNSG32 RSVDx0_b3 : 29;
///////////////////////////////////////////////////////////
} SIE_JTAGCTL;
///////////////////////////////////////////////////////////
SIGN32 JTAGCTL_drvrd(SIE_JTAGCTL *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 JTAGCTL_drvwr(SIE_JTAGCTL *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void JTAGCTL_reset(SIE_JTAGCTL *p);
SIGN32 JTAGCTL_cmp (SIE_JTAGCTL *p, SIE_JTAGCTL *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define JTAGCTL_check(p,pie,pfx,hLOG) JTAGCTL_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define JTAGCTL_print(p, pfx,hLOG) JTAGCTL_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: JTAGCTL
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE SECSTATUS biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 CFG (RW-)
/// %unsigned 2 flag 0x0
/// : DISABLED 0x0
/// ###
/// * The secure processor is not valid so far
/// ###
/// : ENABLED 0x1
/// ###
/// * The secure processor is valid now
/// ###
/// : FAILED 0x2
/// ###
/// * The secure processor failed to check the hardware status. The error code is given by errCode. Whenever this flag is specified by 'FAILED', a fatal hardware defection is detected by FIGO. All the BIU firewall will be disabled by ARM.
/// ###
/// %unsigned 14 Reserved
/// %unsigned 16 errCode
/// ###
/// * If flag is FAILED, this field will indicate the error NO
/// ###
/// @ 0x00004 SECLEV (RW-)
/// %unsigned 1 en 0x0
/// ###
/// * Flag to indicate whether the security level bits are available or not.
/// ###
/// %unsigned 15 dat 0x0
/// ###
/// * Current security level bits specified by ARM
/// ###
/// %% 16 # Stuffing bits...
/// @ 0x00008 ENG_EN (R-)
/// %unsigned 1 en
/// ###
/// * Flag to indicate that this is a testing chip and the firewall is always off.
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0000C OTPCRC (RW-)
/// %unsigned 32 region0 0x1234567
/// ###
/// * CRC result of OPT content in region 0
/// ###
/// # 0x00010 OTPCRC1
/// %unsigned 32 region1 0x89ABCDEF
/// ###
/// * CRC result of OPT content in region 1
/// ###
/// @ 0x00014 OTPINFO (RW-)
/// ###
/// * Generic registers used to store OTP unsecured information.
/// ###
/// %unsigned 32 DW0 0xA0000000
/// # 0x00018 OTPINFO1
/// %unsigned 32 DW1 0xA0000004
/// # 0x0001C OTPINFO2
/// %unsigned 32 DW2 0xA0000008
/// # 0x00020 OTPINFO3
/// %unsigned 32 DW3 0xA000000C
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 36B, bits: 241b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_SECSTATUS
#define h_SECSTATUS (){}
#define RA_SECSTATUS_CFG 0x0000
#define BA_SECSTATUS_CFG_flag 0x0000
#define B16SECSTATUS_CFG_flag 0x0000
#define LSb32SECSTATUS_CFG_flag 0
#define LSb16SECSTATUS_CFG_flag 0
#define bSECSTATUS_CFG_flag 2
#define MSK32SECSTATUS_CFG_flag 0x00000003
#define SECSTATUS_CFG_flag_DISABLED 0x0
#define SECSTATUS_CFG_flag_ENABLED 0x1
#define SECSTATUS_CFG_flag_FAILED 0x2
#define BA_SECSTATUS_CFG_Reserved 0x0000
#define B16SECSTATUS_CFG_Reserved 0x0000
#define LSb32SECSTATUS_CFG_Reserved 2
#define LSb16SECSTATUS_CFG_Reserved 2
#define bSECSTATUS_CFG_Reserved 14
#define MSK32SECSTATUS_CFG_Reserved 0x0000FFFC
#define BA_SECSTATUS_CFG_errCode 0x0002
#define B16SECSTATUS_CFG_errCode 0x0002
#define LSb32SECSTATUS_CFG_errCode 16
#define LSb16SECSTATUS_CFG_errCode 0
#define bSECSTATUS_CFG_errCode 16
#define MSK32SECSTATUS_CFG_errCode 0xFFFF0000
///////////////////////////////////////////////////////////
#define RA_SECSTATUS_SECLEV 0x0004
#define BA_SECSTATUS_SECLEV_en 0x0004
#define B16SECSTATUS_SECLEV_en 0x0004
#define LSb32SECSTATUS_SECLEV_en 0
#define LSb16SECSTATUS_SECLEV_en 0
#define bSECSTATUS_SECLEV_en 1
#define MSK32SECSTATUS_SECLEV_en 0x00000001
#define BA_SECSTATUS_SECLEV_dat 0x0004
#define B16SECSTATUS_SECLEV_dat 0x0004
#define LSb32SECSTATUS_SECLEV_dat 1
#define LSb16SECSTATUS_SECLEV_dat 1
#define bSECSTATUS_SECLEV_dat 15
#define MSK32SECSTATUS_SECLEV_dat 0x0000FFFE
///////////////////////////////////////////////////////////
#define RA_SECSTATUS_ENG_EN 0x0008
#define BA_SECSTATUS_ENG_EN_en 0x0008
#define B16SECSTATUS_ENG_EN_en 0x0008
#define LSb32SECSTATUS_ENG_EN_en 0
#define LSb16SECSTATUS_ENG_EN_en 0
#define bSECSTATUS_ENG_EN_en 1
#define MSK32SECSTATUS_ENG_EN_en 0x00000001
///////////////////////////////////////////////////////////
#define RA_SECSTATUS_OTPCRC 0x000C
#define BA_SECSTATUS_OTPCRC_region0 0x000C
#define B16SECSTATUS_OTPCRC_region0 0x000C
#define LSb32SECSTATUS_OTPCRC_region0 0
#define LSb16SECSTATUS_OTPCRC_region0 0
#define bSECSTATUS_OTPCRC_region0 32
#define MSK32SECSTATUS_OTPCRC_region0 0xFFFFFFFF
#define RA_SECSTATUS_OTPCRC1 0x0010
#define BA_SECSTATUS_OTPCRC_region1 0x0010
#define B16SECSTATUS_OTPCRC_region1 0x0010
#define LSb32SECSTATUS_OTPCRC_region1 0
#define LSb16SECSTATUS_OTPCRC_region1 0
#define bSECSTATUS_OTPCRC_region1 32
#define MSK32SECSTATUS_OTPCRC_region1 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_SECSTATUS_OTPINFO 0x0014
#define BA_SECSTATUS_OTPINFO_DW0 0x0014
#define B16SECSTATUS_OTPINFO_DW0 0x0014
#define LSb32SECSTATUS_OTPINFO_DW0 0
#define LSb16SECSTATUS_OTPINFO_DW0 0
#define bSECSTATUS_OTPINFO_DW0 32
#define MSK32SECSTATUS_OTPINFO_DW0 0xFFFFFFFF
#define RA_SECSTATUS_OTPINFO1 0x0018
#define BA_SECSTATUS_OTPINFO_DW1 0x0018
#define B16SECSTATUS_OTPINFO_DW1 0x0018
#define LSb32SECSTATUS_OTPINFO_DW1 0
#define LSb16SECSTATUS_OTPINFO_DW1 0
#define bSECSTATUS_OTPINFO_DW1 32
#define MSK32SECSTATUS_OTPINFO_DW1 0xFFFFFFFF
#define RA_SECSTATUS_OTPINFO2 0x001C
#define BA_SECSTATUS_OTPINFO_DW2 0x001C
#define B16SECSTATUS_OTPINFO_DW2 0x001C
#define LSb32SECSTATUS_OTPINFO_DW2 0
#define LSb16SECSTATUS_OTPINFO_DW2 0
#define bSECSTATUS_OTPINFO_DW2 32
#define MSK32SECSTATUS_OTPINFO_DW2 0xFFFFFFFF
#define RA_SECSTATUS_OTPINFO3 0x0020
#define BA_SECSTATUS_OTPINFO_DW3 0x0020
#define B16SECSTATUS_OTPINFO_DW3 0x0020
#define LSb32SECSTATUS_OTPINFO_DW3 0
#define LSb16SECSTATUS_OTPINFO_DW3 0
#define bSECSTATUS_OTPINFO_DW3 32
#define MSK32SECSTATUS_OTPINFO_DW3 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_SECSTATUS {
///////////////////////////////////////////////////////////
#define GET32SECSTATUS_CFG_flag(r32) _BFGET_(r32, 1, 0)
#define SET32SECSTATUS_CFG_flag(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16SECSTATUS_CFG_flag(r16) _BFGET_(r16, 1, 0)
#define SET16SECSTATUS_CFG_flag(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32SECSTATUS_CFG_Reserved(r32) _BFGET_(r32,15, 2)
#define SET32SECSTATUS_CFG_Reserved(r32,v) _BFSET_(r32,15, 2,v)
#define GET16SECSTATUS_CFG_Reserved(r16) _BFGET_(r16,15, 2)
#define SET16SECSTATUS_CFG_Reserved(r16,v) _BFSET_(r16,15, 2,v)
#define GET32SECSTATUS_CFG_errCode(r32) _BFGET_(r32,31,16)
#define SET32SECSTATUS_CFG_errCode(r32,v) _BFSET_(r32,31,16,v)
#define GET16SECSTATUS_CFG_errCode(r16) _BFGET_(r16,15, 0)
#define SET16SECSTATUS_CFG_errCode(r16,v) _BFSET_(r16,15, 0,v)
#define w32SECSTATUS_CFG {\
UNSG32 uCFG_flag : 2;\
UNSG32 uCFG_Reserved : 14;\
UNSG32 uCFG_errCode : 16;\
}
union { UNSG32 u32SECSTATUS_CFG;
struct w32SECSTATUS_CFG;
};
///////////////////////////////////////////////////////////
#define GET32SECSTATUS_SECLEV_en(r32) _BFGET_(r32, 0, 0)
#define SET32SECSTATUS_SECLEV_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SECSTATUS_SECLEV_en(r16) _BFGET_(r16, 0, 0)
#define SET16SECSTATUS_SECLEV_en(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32SECSTATUS_SECLEV_dat(r32) _BFGET_(r32,15, 1)
#define SET32SECSTATUS_SECLEV_dat(r32,v) _BFSET_(r32,15, 1,v)
#define GET16SECSTATUS_SECLEV_dat(r16) _BFGET_(r16,15, 1)
#define SET16SECSTATUS_SECLEV_dat(r16,v) _BFSET_(r16,15, 1,v)
#define w32SECSTATUS_SECLEV {\
UNSG32 uSECLEV_en : 1;\
UNSG32 uSECLEV_dat : 15;\
UNSG32 RSVDx4_b16 : 16;\
}
union { UNSG32 u32SECSTATUS_SECLEV;
struct w32SECSTATUS_SECLEV;
};
///////////////////////////////////////////////////////////
#define GET32SECSTATUS_ENG_EN_en(r32) _BFGET_(r32, 0, 0)
#define SET32SECSTATUS_ENG_EN_en(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16SECSTATUS_ENG_EN_en(r16) _BFGET_(r16, 0, 0)
#define SET16SECSTATUS_ENG_EN_en(r16,v) _BFSET_(r16, 0, 0,v)
#define w32SECSTATUS_ENG_EN {\
UNSG32 uENG_EN_en : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32SECSTATUS_ENG_EN;
struct w32SECSTATUS_ENG_EN;
};
///////////////////////////////////////////////////////////
#define GET32SECSTATUS_OTPCRC_region0(r32) _BFGET_(r32,31, 0)
#define SET32SECSTATUS_OTPCRC_region0(r32,v) _BFSET_(r32,31, 0,v)
#define w32SECSTATUS_OTPCRC {\
UNSG32 uOTPCRC_region0 : 32;\
}
union { UNSG32 u32SECSTATUS_OTPCRC;
struct w32SECSTATUS_OTPCRC;
};
#define GET32SECSTATUS_OTPCRC_region1(r32) _BFGET_(r32,31, 0)
#define SET32SECSTATUS_OTPCRC_region1(r32,v) _BFSET_(r32,31, 0,v)
#define w32SECSTATUS_OTPCRC1 {\
UNSG32 uOTPCRC_region1 : 32;\
}
union { UNSG32 u32SECSTATUS_OTPCRC1;
struct w32SECSTATUS_OTPCRC1;
};
///////////////////////////////////////////////////////////
#define GET32SECSTATUS_OTPINFO_DW0(r32) _BFGET_(r32,31, 0)
#define SET32SECSTATUS_OTPINFO_DW0(r32,v) _BFSET_(r32,31, 0,v)
#define w32SECSTATUS_OTPINFO {\
UNSG32 uOTPINFO_DW0 : 32;\
}
union { UNSG32 u32SECSTATUS_OTPINFO;
struct w32SECSTATUS_OTPINFO;
};
#define GET32SECSTATUS_OTPINFO_DW1(r32) _BFGET_(r32,31, 0)
#define SET32SECSTATUS_OTPINFO_DW1(r32,v) _BFSET_(r32,31, 0,v)
#define w32SECSTATUS_OTPINFO1 {\
UNSG32 uOTPINFO_DW1 : 32;\
}
union { UNSG32 u32SECSTATUS_OTPINFO1;
struct w32SECSTATUS_OTPINFO1;
};
#define GET32SECSTATUS_OTPINFO_DW2(r32) _BFGET_(r32,31, 0)
#define SET32SECSTATUS_OTPINFO_DW2(r32,v) _BFSET_(r32,31, 0,v)
#define w32SECSTATUS_OTPINFO2 {\
UNSG32 uOTPINFO_DW2 : 32;\
}
union { UNSG32 u32SECSTATUS_OTPINFO2;
struct w32SECSTATUS_OTPINFO2;
};
#define GET32SECSTATUS_OTPINFO_DW3(r32) _BFGET_(r32,31, 0)
#define SET32SECSTATUS_OTPINFO_DW3(r32,v) _BFSET_(r32,31, 0,v)
#define w32SECSTATUS_OTPINFO3 {\
UNSG32 uOTPINFO_DW3 : 32;\
}
union { UNSG32 u32SECSTATUS_OTPINFO3;
struct w32SECSTATUS_OTPINFO3;
};
///////////////////////////////////////////////////////////
} SIE_SECSTATUS;
typedef union T32SECSTATUS_CFG
{ UNSG32 u32;
struct w32SECSTATUS_CFG;
} T32SECSTATUS_CFG;
typedef union T32SECSTATUS_SECLEV
{ UNSG32 u32;
struct w32SECSTATUS_SECLEV;
} T32SECSTATUS_SECLEV;
typedef union T32SECSTATUS_ENG_EN
{ UNSG32 u32;
struct w32SECSTATUS_ENG_EN;
} T32SECSTATUS_ENG_EN;
typedef union T32SECSTATUS_OTPCRC
{ UNSG32 u32;
struct w32SECSTATUS_OTPCRC;
} T32SECSTATUS_OTPCRC;
typedef union T32SECSTATUS_OTPCRC1
{ UNSG32 u32;
struct w32SECSTATUS_OTPCRC1;
} T32SECSTATUS_OTPCRC1;
typedef union T32SECSTATUS_OTPINFO
{ UNSG32 u32;
struct w32SECSTATUS_OTPINFO;
} T32SECSTATUS_OTPINFO;
typedef union T32SECSTATUS_OTPINFO1
{ UNSG32 u32;
struct w32SECSTATUS_OTPINFO1;
} T32SECSTATUS_OTPINFO1;
typedef union T32SECSTATUS_OTPINFO2
{ UNSG32 u32;
struct w32SECSTATUS_OTPINFO2;
} T32SECSTATUS_OTPINFO2;
typedef union T32SECSTATUS_OTPINFO3
{ UNSG32 u32;
struct w32SECSTATUS_OTPINFO3;
} T32SECSTATUS_OTPINFO3;
///////////////////////////////////////////////////////////
typedef union TSECSTATUS_CFG
{ UNSG32 u32[1];
struct {
struct w32SECSTATUS_CFG;
};
} TSECSTATUS_CFG;
typedef union TSECSTATUS_SECLEV
{ UNSG32 u32[1];
struct {
struct w32SECSTATUS_SECLEV;
};
} TSECSTATUS_SECLEV;
typedef union TSECSTATUS_ENG_EN
{ UNSG32 u32[1];
struct {
struct w32SECSTATUS_ENG_EN;
};
} TSECSTATUS_ENG_EN;
typedef union TSECSTATUS_OTPCRC
{ UNSG32 u32[2];
struct {
struct w32SECSTATUS_OTPCRC;
struct w32SECSTATUS_OTPCRC1;
};
} TSECSTATUS_OTPCRC;
typedef union TSECSTATUS_OTPINFO
{ UNSG32 u32[4];
struct {
struct w32SECSTATUS_OTPINFO;
struct w32SECSTATUS_OTPINFO1;
struct w32SECSTATUS_OTPINFO2;
struct w32SECSTATUS_OTPINFO3;
};
} TSECSTATUS_OTPINFO;
///////////////////////////////////////////////////////////
SIGN32 SECSTATUS_drvrd(SIE_SECSTATUS *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 SECSTATUS_drvwr(SIE_SECSTATUS *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void SECSTATUS_reset(SIE_SECSTATUS *p);
SIGN32 SECSTATUS_cmp (SIE_SECSTATUS *p, SIE_SECSTATUS *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define SECSTATUS_check(p,pie,pfx,hLOG) SECSTATUS_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define SECSTATUS_print(p, pfx,hLOG) SECSTATUS_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: SECSTATUS
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DRMA64CTL biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 1 s0selLUT 0x0
/// ###
/// * 0: RF, 1: {LUT1:LUT0}
/// ###
/// %unsigned 1 s1selLUT 0x0
/// ###
/// * 0:RF, 1: LUT
/// ###
/// %unsigned 2 s1LUTsrc
/// ###
/// * select 1 of 4 LUT data
/// * 0: {LUT1,0}
/// * 1:{LUT0,1}
/// * 2:{LUT3,2}
/// * 3:{LUT2,3}
/// ###
/// %unsigned 8 OPC 0x0
/// : RESERVED 0x0
/// : XORQ 0x1
/// : ORQ 0x2
/// : ANDQ 0x3
/// : PUNPCKL8 0x4
/// : PUNPCKH8 0x5
/// : SWPQ32 0x6
/// : ROLQ32_1 0x7
/// : ROLQ32_2 0x8
/// : DESIP 0x9
/// : DESKIP 0xA
/// : DESDFIP 0xB
/// : DESKP 0xC
/// : XORDESDP 0xD
/// : LSRXORQ32_1 0xE
/// : LSRXORQ32_3 0xF
/// : ROLXORQ32_8 0x10
/// : PUNPCKH16 0x11
/// : PUNPCKL32 0x12
/// : PUNPCKH32 0x13
/// : ROLXORQ32_9 0x14
/// : ROLXORQ32_16 0x15
/// : ROLXORQ32_22 0x16
/// : ROLXORQ32_30 0x17
/// : LSRXORQ32_7 0x18
/// : LSRXORQ32_8 0x19
/// : RORQ28_1 0x1A
/// : RORQ28_2 0x1B
/// : RORQ56_17 0x1C
/// : ROLQ32_3 0x1D
/// : ROLXORQ32_4 0x1E
/// : SLQ32_24 0x1F
/// : AESTS 0x20
/// : ROLQ32_5 0x21
/// : MP2CRC 0x22
/// ###
/// * MPEG-2 CRC, generation function:
/// * x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 +x5 +x4 +x2 +x +1
/// ###
/// : ROLQ32_30 0x23
/// : C2PERM 0x24
/// : ADDQ32 0x25
/// : SUBQ32 0x26
/// : MULQ32L 0x27
/// : MULQ32H 0x28
/// : ADDQ64C1 0x29
/// : SUBQ64C1 0x2A
/// : ADDQ64C2 0x2B
/// : SUBQ64C2 0x2C
/// : PLUTXOR32H 0x48
/// : PLUTXOR32L 0x40
/// : LUTXOR32_0 0x41
/// : LUTXOR32_1 0x42
/// : LUTXOR32_2 0x43
/// : LUTXOR32_3 0x44
/// %unsigned 8 latency 0x0
/// ###
/// * latency of current instruction
/// ###
/// %unsigned 1 WB 0x0
/// ###
/// * write back enable
/// ###
/// %unsigned 1 LUTASelP16 0x0
/// ###
/// * 0: from S1
/// * 1: from p16
/// ###
/// %unsigned 4 LUTWE 0x0
/// ###
/// * write enable for LUT
/// ###
/// %unsigned 3 MCPSEL 0x0
/// ###
/// * selects which multi-cycle path for ALU64 Data
/// ###
/// %% 3 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 29b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DRMA64CTL
#define h_DRMA64CTL (){}
#define BA_DRMA64CTL_s0selLUT 0x0000
#define B16DRMA64CTL_s0selLUT 0x0000
#define LSb32DRMA64CTL_s0selLUT 0
#define LSb16DRMA64CTL_s0selLUT 0
#define bDRMA64CTL_s0selLUT 1
#define MSK32DRMA64CTL_s0selLUT 0x00000001
#define BA_DRMA64CTL_s1selLUT 0x0000
#define B16DRMA64CTL_s1selLUT 0x0000
#define LSb32DRMA64CTL_s1selLUT 1
#define LSb16DRMA64CTL_s1selLUT 1
#define bDRMA64CTL_s1selLUT 1
#define MSK32DRMA64CTL_s1selLUT 0x00000002
#define BA_DRMA64CTL_s1LUTsrc 0x0000
#define B16DRMA64CTL_s1LUTsrc 0x0000
#define LSb32DRMA64CTL_s1LUTsrc 2
#define LSb16DRMA64CTL_s1LUTsrc 2
#define bDRMA64CTL_s1LUTsrc 2
#define MSK32DRMA64CTL_s1LUTsrc 0x0000000C
#define BA_DRMA64CTL_OPC 0x0000
#define B16DRMA64CTL_OPC 0x0000
#define LSb32DRMA64CTL_OPC 4
#define LSb16DRMA64CTL_OPC 4
#define bDRMA64CTL_OPC 8
#define MSK32DRMA64CTL_OPC 0x00000FF0
#define DRMA64CTL_OPC_RESERVED 0x0
#define DRMA64CTL_OPC_XORQ 0x1
#define DRMA64CTL_OPC_ORQ 0x2
#define DRMA64CTL_OPC_ANDQ 0x3
#define DRMA64CTL_OPC_PUNPCKL8 0x4
#define DRMA64CTL_OPC_PUNPCKH8 0x5
#define DRMA64CTL_OPC_SWPQ32 0x6
#define DRMA64CTL_OPC_ROLQ32_1 0x7
#define DRMA64CTL_OPC_ROLQ32_2 0x8
#define DRMA64CTL_OPC_DESIP 0x9
#define DRMA64CTL_OPC_DESKIP 0xA
#define DRMA64CTL_OPC_DESDFIP 0xB
#define DRMA64CTL_OPC_DESKP 0xC
#define DRMA64CTL_OPC_XORDESDP 0xD
#define DRMA64CTL_OPC_LSRXORQ32_1 0xE
#define DRMA64CTL_OPC_LSRXORQ32_3 0xF
#define DRMA64CTL_OPC_ROLXORQ32_8 0x10
#define DRMA64CTL_OPC_PUNPCKH16 0x11
#define DRMA64CTL_OPC_PUNPCKL32 0x12
#define DRMA64CTL_OPC_PUNPCKH32 0x13
#define DRMA64CTL_OPC_ROLXORQ32_9 0x14
#define DRMA64CTL_OPC_ROLXORQ32_16 0x15
#define DRMA64CTL_OPC_ROLXORQ32_22 0x16
#define DRMA64CTL_OPC_ROLXORQ32_30 0x17
#define DRMA64CTL_OPC_LSRXORQ32_7 0x18
#define DRMA64CTL_OPC_LSRXORQ32_8 0x19
#define DRMA64CTL_OPC_RORQ28_1 0x1A
#define DRMA64CTL_OPC_RORQ28_2 0x1B
#define DRMA64CTL_OPC_RORQ56_17 0x1C
#define DRMA64CTL_OPC_ROLQ32_3 0x1D
#define DRMA64CTL_OPC_ROLXORQ32_4 0x1E
#define DRMA64CTL_OPC_SLQ32_24 0x1F
#define DRMA64CTL_OPC_AESTS 0x20
#define DRMA64CTL_OPC_ROLQ32_5 0x21
#define DRMA64CTL_OPC_MP2CRC 0x22
#define DRMA64CTL_OPC_ROLQ32_30 0x23
#define DRMA64CTL_OPC_C2PERM 0x24
#define DRMA64CTL_OPC_ADDQ32 0x25
#define DRMA64CTL_OPC_SUBQ32 0x26
#define DRMA64CTL_OPC_MULQ32L 0x27
#define DRMA64CTL_OPC_MULQ32H 0x28
#define DRMA64CTL_OPC_ADDQ64C1 0x29
#define DRMA64CTL_OPC_SUBQ64C1 0x2A
#define DRMA64CTL_OPC_ADDQ64C2 0x2B
#define DRMA64CTL_OPC_SUBQ64C2 0x2C
#define DRMA64CTL_OPC_PLUTXOR32H 0x48
#define DRMA64CTL_OPC_PLUTXOR32L 0x40
#define DRMA64CTL_OPC_LUTXOR32_0 0x41
#define DRMA64CTL_OPC_LUTXOR32_1 0x42
#define DRMA64CTL_OPC_LUTXOR32_2 0x43
#define DRMA64CTL_OPC_LUTXOR32_3 0x44
#define BA_DRMA64CTL_latency 0x0001
#define B16DRMA64CTL_latency 0x0000
#define LSb32DRMA64CTL_latency 12
#define LSb16DRMA64CTL_latency 12
#define bDRMA64CTL_latency 8
#define MSK32DRMA64CTL_latency 0x000FF000
#define BA_DRMA64CTL_WB 0x0002
#define B16DRMA64CTL_WB 0x0002
#define LSb32DRMA64CTL_WB 20
#define LSb16DRMA64CTL_WB 4
#define bDRMA64CTL_WB 1
#define MSK32DRMA64CTL_WB 0x00100000
#define BA_DRMA64CTL_LUTASelP16 0x0002
#define B16DRMA64CTL_LUTASelP16 0x0002
#define LSb32DRMA64CTL_LUTASelP16 21
#define LSb16DRMA64CTL_LUTASelP16 5
#define bDRMA64CTL_LUTASelP16 1
#define MSK32DRMA64CTL_LUTASelP16 0x00200000
#define BA_DRMA64CTL_LUTWE 0x0002
#define B16DRMA64CTL_LUTWE 0x0002
#define LSb32DRMA64CTL_LUTWE 22
#define LSb16DRMA64CTL_LUTWE 6
#define bDRMA64CTL_LUTWE 4
#define MSK32DRMA64CTL_LUTWE 0x03C00000
#define BA_DRMA64CTL_MCPSEL 0x0003
#define B16DRMA64CTL_MCPSEL 0x0002
#define LSb32DRMA64CTL_MCPSEL 26
#define LSb16DRMA64CTL_MCPSEL 10
#define bDRMA64CTL_MCPSEL 3
#define MSK32DRMA64CTL_MCPSEL 0x1C000000
///////////////////////////////////////////////////////////
typedef struct SIE_DRMA64CTL {
///////////////////////////////////////////////////////////
#define GET32DRMA64CTL_s0selLUT(r32) _BFGET_(r32, 0, 0)
#define SET32DRMA64CTL_s0selLUT(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DRMA64CTL_s0selLUT(r16) _BFGET_(r16, 0, 0)
#define SET16DRMA64CTL_s0selLUT(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32DRMA64CTL_s1selLUT(r32) _BFGET_(r32, 1, 1)
#define SET32DRMA64CTL_s1selLUT(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16DRMA64CTL_s1selLUT(r16) _BFGET_(r16, 1, 1)
#define SET16DRMA64CTL_s1selLUT(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32DRMA64CTL_s1LUTsrc(r32) _BFGET_(r32, 3, 2)
#define SET32DRMA64CTL_s1LUTsrc(r32,v) _BFSET_(r32, 3, 2,v)
#define GET16DRMA64CTL_s1LUTsrc(r16) _BFGET_(r16, 3, 2)
#define SET16DRMA64CTL_s1LUTsrc(r16,v) _BFSET_(r16, 3, 2,v)
#define GET32DRMA64CTL_OPC(r32) _BFGET_(r32,11, 4)
#define SET32DRMA64CTL_OPC(r32,v) _BFSET_(r32,11, 4,v)
#define GET16DRMA64CTL_OPC(r16) _BFGET_(r16,11, 4)
#define SET16DRMA64CTL_OPC(r16,v) _BFSET_(r16,11, 4,v)
#define GET32DRMA64CTL_latency(r32) _BFGET_(r32,19,12)
#define SET32DRMA64CTL_latency(r32,v) _BFSET_(r32,19,12,v)
#define GET32DRMA64CTL_WB(r32) _BFGET_(r32,20,20)
#define SET32DRMA64CTL_WB(r32,v) _BFSET_(r32,20,20,v)
#define GET16DRMA64CTL_WB(r16) _BFGET_(r16, 4, 4)
#define SET16DRMA64CTL_WB(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32DRMA64CTL_LUTASelP16(r32) _BFGET_(r32,21,21)
#define SET32DRMA64CTL_LUTASelP16(r32,v) _BFSET_(r32,21,21,v)
#define GET16DRMA64CTL_LUTASelP16(r16) _BFGET_(r16, 5, 5)
#define SET16DRMA64CTL_LUTASelP16(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32DRMA64CTL_LUTWE(r32) _BFGET_(r32,25,22)
#define SET32DRMA64CTL_LUTWE(r32,v) _BFSET_(r32,25,22,v)
#define GET16DRMA64CTL_LUTWE(r16) _BFGET_(r16, 9, 6)
#define SET16DRMA64CTL_LUTWE(r16,v) _BFSET_(r16, 9, 6,v)
#define GET32DRMA64CTL_MCPSEL(r32) _BFGET_(r32,28,26)
#define SET32DRMA64CTL_MCPSEL(r32,v) _BFSET_(r32,28,26,v)
#define GET16DRMA64CTL_MCPSEL(r16) _BFGET_(r16,12,10)
#define SET16DRMA64CTL_MCPSEL(r16,v) _BFSET_(r16,12,10,v)
UNSG32 u_s0selLUT : 1;
UNSG32 u_s1selLUT : 1;
UNSG32 u_s1LUTsrc : 2;
UNSG32 u_OPC : 8;
UNSG32 u_latency : 8;
UNSG32 u_WB : 1;
UNSG32 u_LUTASelP16 : 1;
UNSG32 u_LUTWE : 4;
UNSG32 u_MCPSEL : 3;
UNSG32 RSVDx0_b29 : 3;
///////////////////////////////////////////////////////////
} SIE_DRMA64CTL;
///////////////////////////////////////////////////////////
SIGN32 DRMA64CTL_drvrd(SIE_DRMA64CTL *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DRMA64CTL_drvwr(SIE_DRMA64CTL *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DRMA64CTL_reset(SIE_DRMA64CTL *p);
SIGN32 DRMA64CTL_cmp (SIE_DRMA64CTL *p, SIE_DRMA64CTL *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DRMA64CTL_check(p,pie,pfx,hLOG) DRMA64CTL_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DRMA64CTL_print(p, pfx,hLOG) DRMA64CTL_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DRMA64CTL
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE a64Par biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 4 s0 0x0
/// ###
/// * address for source operand 0
/// * 4
/// * s1
/// * 0
/// * address for source operand 1
/// * 4
/// * s2
/// * 0
/// * for DRM A64 Instructions, operand2 is not used, this field is used for SIMD pipeline enable & table address base
/// * S2[1:0] = tableAddress[9:8];
/// * S2[3:2]=0: SIMD pipeline 1 enbled
/// * S2[3:2]=1: SIMD pipeline 2 enbled
/// * S2[3:2]=2: SIMD pipeline 3 enbled
/// * S2[3:2]=3: SIMD pipeline 4 enbled
/// * Currently only SIMP pipeline 1 and 2 are implemented
/// * 4
/// * d0
/// * 0
/// * address for destination operand 1
/// ###
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 4b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_a64Par
#define h_a64Par (){}
#define BA_a64Par_s0 0x0000
#define B16a64Par_s0 0x0000
#define LSb32a64Par_s0 0
#define LSb16a64Par_s0 0
#define ba64Par_s0 4
#define MSK32a64Par_s0 0x0000000F
///////////////////////////////////////////////////////////
typedef struct SIE_a64Par {
///////////////////////////////////////////////////////////
#define GET32a64Par_s0(r32) _BFGET_(r32, 3, 0)
#define SET32a64Par_s0(r32,v) _BFSET_(r32, 3, 0,v)
#define GET16a64Par_s0(r16) _BFGET_(r16, 3, 0)
#define SET16a64Par_s0(r16,v) _BFSET_(r16, 3, 0,v)
UNSG32 u_s0 : 4;
UNSG32 RSVDx0_b4 : 28;
///////////////////////////////////////////////////////////
} SIE_a64Par;
///////////////////////////////////////////////////////////
SIGN32 a64Par_drvrd(SIE_a64Par *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 a64Par_drvwr(SIE_a64Par *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void a64Par_reset(SIE_a64Par *p);
SIGN32 a64Par_cmp (SIE_a64Par *p, SIE_a64Par *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define a64Par_check(p,pie,pfx,hLOG) a64Par_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define a64Par_print(p, pfx,hLOG) a64Par_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: a64Par
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DRMPUSHID biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 2 OP 0x0
/// : PUSH 0x0
/// : RSV 0x1
/// : TBINIT 0x2
/// : EXE0 0x3
/// %unsigned 4 OPCSEL
/// ###
/// * for Exec instruction, which byte of the cmd64(“xT” register) to select as the opcode for the DRM instruction
/// * for TBINIT instruction, this is the write enable to 4 table SRAM3, 2, 1, 0
/// ###
/// %% 26 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 6b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DRMPUSHID
#define h_DRMPUSHID (){}
#define BA_DRMPUSHID_OP 0x0000
#define B16DRMPUSHID_OP 0x0000
#define LSb32DRMPUSHID_OP 0
#define LSb16DRMPUSHID_OP 0
#define bDRMPUSHID_OP 2
#define MSK32DRMPUSHID_OP 0x00000003
#define DRMPUSHID_OP_PUSH 0x0
#define DRMPUSHID_OP_RSV 0x1
#define DRMPUSHID_OP_TBINIT 0x2
#define DRMPUSHID_OP_EXE0 0x3
#define BA_DRMPUSHID_OPCSEL 0x0000
#define B16DRMPUSHID_OPCSEL 0x0000
#define LSb32DRMPUSHID_OPCSEL 2
#define LSb16DRMPUSHID_OPCSEL 2
#define bDRMPUSHID_OPCSEL 4
#define MSK32DRMPUSHID_OPCSEL 0x0000003C
///////////////////////////////////////////////////////////
typedef struct SIE_DRMPUSHID {
///////////////////////////////////////////////////////////
#define GET32DRMPUSHID_OP(r32) _BFGET_(r32, 1, 0)
#define SET32DRMPUSHID_OP(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16DRMPUSHID_OP(r16) _BFGET_(r16, 1, 0)
#define SET16DRMPUSHID_OP(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32DRMPUSHID_OPCSEL(r32) _BFGET_(r32, 5, 2)
#define SET32DRMPUSHID_OPCSEL(r32,v) _BFSET_(r32, 5, 2,v)
#define GET16DRMPUSHID_OPCSEL(r16) _BFGET_(r16, 5, 2)
#define SET16DRMPUSHID_OPCSEL(r16,v) _BFSET_(r16, 5, 2,v)
UNSG32 u_OP : 2;
UNSG32 u_OPCSEL : 4;
UNSG32 RSVDx0_b6 : 26;
///////////////////////////////////////////////////////////
} SIE_DRMPUSHID;
///////////////////////////////////////////////////////////
SIGN32 DRMPUSHID_drvrd(SIE_DRMPUSHID *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DRMPUSHID_drvwr(SIE_DRMPUSHID *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DRMPUSHID_reset(SIE_DRMPUSHID *p);
SIGN32 DRMPUSHID_cmp (SIE_DRMPUSHID *p, SIE_DRMPUSHID *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DRMPUSHID_check(p,pie,pfx,hLOG) DRMPUSHID_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DRMPUSHID_print(p, pfx,hLOG) DRMPUSHID_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DRMPUSHID
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE INT (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 ie (P)
/// %unsigned 32 bits 0x0
/// ###
/// * mask bits for interrupt enable
/// ###
/// : ISRC_TEST 0x1F
/// : ISRC_RNG 0x0
/// @ 0x00004 is (RW)
/// %unsigned 32 bits 0x0
/// ###
/// * IS[31]: test interrupt, indicates the interrupt is triggered by setting the it bit
/// * IS[0]: RNG interrupt, indicates the RNG data is ready
/// * IS[1]: Figo interrupt; relays the interrupt from the Figo system
/// ###
/// @ 0x00008 it (P)
/// %unsigned 1 bits 0x0
/// ###
/// * test bit, write 1 to this bit will trigger dmx interrupt and the IS[31] bit will be set
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12B, bits: 65b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_INT
#define h_INT (){}
#define RA_INT_ie 0x0000
#define BA_INT_ie_bits 0x0000
#define B16INT_ie_bits 0x0000
#define LSb32INT_ie_bits 0
#define LSb16INT_ie_bits 0
#define bINT_ie_bits 32
#define MSK32INT_ie_bits 0xFFFFFFFF
#define INT_ie_bits_ISRC_TEST 0x1F
#define INT_ie_bits_ISRC_RNG 0x0
///////////////////////////////////////////////////////////
#define RA_INT_is 0x0004
#define BA_INT_is_bits 0x0004
#define B16INT_is_bits 0x0004
#define LSb32INT_is_bits 0
#define LSb16INT_is_bits 0
#define bINT_is_bits 32
#define MSK32INT_is_bits 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_INT_it 0x0008
#define BA_INT_it_bits 0x0008
#define B16INT_it_bits 0x0008
#define LSb32INT_it_bits 0
#define LSb16INT_it_bits 0
#define bINT_it_bits 1
#define MSK32INT_it_bits 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_INT {
///////////////////////////////////////////////////////////
#define GET32INT_ie_bits(r32) _BFGET_(r32,31, 0)
#define SET32INT_ie_bits(r32,v) _BFSET_(r32,31, 0,v)
#define w32INT_ie {\
UNSG32 uie_bits : 32;\
}
union { UNSG32 u32INT_ie;
struct w32INT_ie;
};
///////////////////////////////////////////////////////////
#define GET32INT_is_bits(r32) _BFGET_(r32,31, 0)
#define SET32INT_is_bits(r32,v) _BFSET_(r32,31, 0,v)
#define w32INT_is {\
UNSG32 uis_bits : 32;\
}
union { UNSG32 u32INT_is;
struct w32INT_is;
};
///////////////////////////////////////////////////////////
#define GET32INT_it_bits(r32) _BFGET_(r32, 0, 0)
#define SET32INT_it_bits(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16INT_it_bits(r16) _BFGET_(r16, 0, 0)
#define SET16INT_it_bits(r16,v) _BFSET_(r16, 0, 0,v)
#define w32INT_it {\
UNSG32 uit_bits : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32INT_it;
struct w32INT_it;
};
///////////////////////////////////////////////////////////
} SIE_INT;
typedef union T32INT_ie
{ UNSG32 u32;
struct w32INT_ie;
} T32INT_ie;
typedef union T32INT_is
{ UNSG32 u32;
struct w32INT_is;
} T32INT_is;
typedef union T32INT_it
{ UNSG32 u32;
struct w32INT_it;
} T32INT_it;
///////////////////////////////////////////////////////////
typedef union TINT_ie
{ UNSG32 u32[1];
struct {
struct w32INT_ie;
};
} TINT_ie;
typedef union TINT_is
{ UNSG32 u32[1];
struct {
struct w32INT_is;
};
} TINT_is;
typedef union TINT_it
{ UNSG32 u32[1];
struct {
struct w32INT_it;
};
} TINT_it;
///////////////////////////////////////////////////////////
SIGN32 INT_drvrd(SIE_INT *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 INT_drvwr(SIE_INT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void INT_reset(SIE_INT *p);
SIGN32 INT_cmp (SIE_INT *p, SIE_INT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define INT_check(p,pie,pfx,hLOG) INT_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define INT_print(p, pfx,hLOG) INT_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: INT
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DRM biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 DTCM (P)
/// # 0x00000 dtcm
/// $FigoData dtcm MEM [4096]
/// @ 0x08000 (P)
/// # 0x08000 figoSys
/// $FigoSysBasic figoSys REG
/// @ 0x0B000 AHBFW (P)
/// # 0x0B000 ahbFw
/// $SECHF_ENTRY ahbFw REG [8]
/// @ 0x0B040 JTAGEN (P)
/// # 0x0B040 jtag
/// $JTAGCTL jtag REG
/// @ 0x0B044 (W-)
/// # # Stuffing bytes...
/// %% 32224
/// @ 0x0C000 RNG (P)
/// # 0x0C000 rng
/// $RNG rng REG
/// @ 0x0C00C OTP (P)
/// # 0x0C00C otp
/// $OTP otp REG
/// @ 0x0C020 INT (P)
/// # 0x0C020 int
/// $INT int REG
/// @ 0x0C02C (W-)
/// # # Stuffing bytes...
/// %% 130720
/// @ 0x10000 ITCM (P)
/// # 0x10000 itcm
/// $FigoInst itcm MEM [4096]
/// @ 0x14000 (W-)
/// # # Stuffing bytes...
/// %% 131072
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 98304B, bits: 3363b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DRM
#define h_DRM (){}
#define RA_DRM_DTCM 0x0000
#define RA_DRM_dtcm 0x0000
///////////////////////////////////////////////////////////
#define RA_DRM_figoSys 0x8000
///////////////////////////////////////////////////////////
#define RA_DRM_AHBFW 0xB000
#define RA_DRM_ahbFw 0xB000
///////////////////////////////////////////////////////////
#define RA_DRM_JTAGEN 0xB040
#define RA_DRM_jtag 0xB040
///////////////////////////////////////////////////////////
#define RA_DRM_RNG 0xC000
#define RA_DRM_rng 0xC000
///////////////////////////////////////////////////////////
#define RA_DRM_OTP 0xC00C
#define RA_DRM_otp 0xC00C
///////////////////////////////////////////////////////////
#define RA_DRM_INT 0xC020
#define RA_DRM_int 0xC020
///////////////////////////////////////////////////////////
#define RA_DRM_ITCM 0x10000
#define RA_DRM_itcm 0x10000
///////////////////////////////////////////////////////////
typedef struct SIE_DRM {
///////////////////////////////////////////////////////////
SIE_FigoData ie_dtcm[4096];
///////////////////////////////////////////////////////////
SIE_FigoSysBasic ie_figoSys;
///////////////////////////////////////////////////////////
SIE_SECHF_ENTRY ie_ahbFw[8];
///////////////////////////////////////////////////////////
SIE_JTAGCTL ie_jtag;
///////////////////////////////////////////////////////////
UNSG8 RSVDxB044 [4028];
///////////////////////////////////////////////////////////
SIE_RNG ie_rng;
///////////////////////////////////////////////////////////
SIE_OTP ie_otp;
///////////////////////////////////////////////////////////
SIE_INT ie_int;
///////////////////////////////////////////////////////////
UNSG8 RSVDxC02C [16340];
///////////////////////////////////////////////////////////
SIE_FigoInst ie_itcm[4096];
///////////////////////////////////////////////////////////
UNSG8 RSVDx14000 [16384];
///////////////////////////////////////////////////////////
} SIE_DRM;
///////////////////////////////////////////////////////////
SIGN32 DRM_drvrd(SIE_DRM *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DRM_drvwr(SIE_DRM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DRM_reset(SIE_DRM *p);
SIGN32 DRM_cmp (SIE_DRM *p, SIE_DRM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DRM_check(p,pie,pfx,hLOG) DRM_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DRM_print(p, pfx,hLOG) DRM_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DRM
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DRMDMX_FIFOMAP (4,4)
/// # # ----------------------------------------------------------
/// : CHN_TSP0 0x0
/// : CHN_TSP1 0x1
/// : CHN_TSP2 0x2
/// : CHN_TSP3 0x3
/// : CHN_TSCMD 0x4
/// : CHN_DS0 0x5
/// : CHN_SFCMDQ 0x6
/// : CHN_SFEVENT 0x7
/// : CHN_TSO0 0x8
/// : TSCP0 0x0
/// : TSCP0SIZE 0x40
/// : TSCP1 0x40
/// : TSCP1SIZE 0x40
/// : TSCP2 0x80
/// : TSCP2SIZE 0x40
/// : TSCP3 0xC0
/// : TSCP3SIZE 0x40
/// : TSCMD 0x100
/// : TSCMDSIZE 0x10
/// : DS 0x110
/// : DSSIZE 0x10
/// : SFEVENTQ 0x1A0
/// : SFEVENTQSIZE 0x20
/// : SFCMDQ 0x1E0
/// : SFCMDQSIZE 0x10
/// : TSO0 0x1F0
/// : TSO0SIZE 0x10
/// @ 0x00000 fifomap (R-)
/// %unsigned 32 dummy 0x0
/// ###
/// * TSO0
/// * TSO0SIZE
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DRMDMX_FIFOMAP
#define h_DRMDMX_FIFOMAP (){}
#define DRMDMX_FIFOMAP_CHN_TSP0 0x0
#define DRMDMX_FIFOMAP_CHN_TSP1 0x1
#define DRMDMX_FIFOMAP_CHN_TSP2 0x2
#define DRMDMX_FIFOMAP_CHN_TSP3 0x3
#define DRMDMX_FIFOMAP_CHN_TSCMD 0x4
#define DRMDMX_FIFOMAP_CHN_DS0 0x5
#define DRMDMX_FIFOMAP_CHN_SFCMDQ 0x6
#define DRMDMX_FIFOMAP_CHN_SFEVENT 0x7
#define DRMDMX_FIFOMAP_CHN_TSO0 0x8
#define DRMDMX_FIFOMAP_TSCP0 0x0
#define DRMDMX_FIFOMAP_TSCP0SIZE 0x40
#define DRMDMX_FIFOMAP_TSCP1 0x40
#define DRMDMX_FIFOMAP_TSCP1SIZE 0x40
#define DRMDMX_FIFOMAP_TSCP2 0x80
#define DRMDMX_FIFOMAP_TSCP2SIZE 0x40
#define DRMDMX_FIFOMAP_TSCP3 0xC0
#define DRMDMX_FIFOMAP_TSCP3SIZE 0x40
#define DRMDMX_FIFOMAP_TSCMD 0x100
#define DRMDMX_FIFOMAP_TSCMDSIZE 0x10
#define DRMDMX_FIFOMAP_DS 0x110
#define DRMDMX_FIFOMAP_DSSIZE 0x10
#define DRMDMX_FIFOMAP_SFEVENTQ 0x1A0
#define DRMDMX_FIFOMAP_SFEVENTQSIZE 0x20
#define DRMDMX_FIFOMAP_SFCMDQ 0x1E0
#define DRMDMX_FIFOMAP_SFCMDQSIZE 0x10
#define DRMDMX_FIFOMAP_TSO0 0x1F0
#define DRMDMX_FIFOMAP_TSO0SIZE 0x10
///////////////////////////////////////////////////////////
#define RA_DRMDMX_FIFOMAP_fifomap 0x0000
#define BA_DRMDMX_FIFOMAP_fifomap_dummy 0x0000
#define B16DRMDMX_FIFOMAP_fifomap_dummy 0x0000
#define LSb32DRMDMX_FIFOMAP_fifomap_dummy 0
#define LSb16DRMDMX_FIFOMAP_fifomap_dummy 0
#define bDRMDMX_FIFOMAP_fifomap_dummy 32
#define MSK32DRMDMX_FIFOMAP_fifomap_dummy 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_DRMDMX_FIFOMAP {
///////////////////////////////////////////////////////////
#define GET32DRMDMX_FIFOMAP_fifomap_dummy(r32) _BFGET_(r32,31, 0)
#define SET32DRMDMX_FIFOMAP_fifomap_dummy(r32,v) _BFSET_(r32,31, 0,v)
#define w32DRMDMX_FIFOMAP_fifomap {\
UNSG32 ufifomap_dummy : 32;\
}
union { UNSG32 u32DRMDMX_FIFOMAP_fifomap;
struct w32DRMDMX_FIFOMAP_fifomap;
};
///////////////////////////////////////////////////////////
} SIE_DRMDMX_FIFOMAP;
typedef union T32DRMDMX_FIFOMAP_fifomap
{ UNSG32 u32;
struct w32DRMDMX_FIFOMAP_fifomap;
} T32DRMDMX_FIFOMAP_fifomap;
///////////////////////////////////////////////////////////
typedef union TDRMDMX_FIFOMAP_fifomap
{ UNSG32 u32[1];
struct {
struct w32DRMDMX_FIFOMAP_fifomap;
};
} TDRMDMX_FIFOMAP_fifomap;
///////////////////////////////////////////////////////////
SIGN32 DRMDMX_FIFOMAP_drvrd(SIE_DRMDMX_FIFOMAP *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DRMDMX_FIFOMAP_drvwr(SIE_DRMDMX_FIFOMAP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DRMDMX_FIFOMAP_reset(SIE_DRMDMX_FIFOMAP *p);
SIGN32 DRMDMX_FIFOMAP_cmp (SIE_DRMDMX_FIFOMAP *p, SIE_DRMDMX_FIFOMAP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DRMDMX_FIFOMAP_check(p,pie,pfx,hLOG) DRMDMX_FIFOMAP_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DRMDMX_FIFOMAP_print(p, pfx,hLOG) DRMDMX_FIFOMAP_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DRMDMX_FIFOMAP
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FIGODTCMMAP biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 ram
/// $FigoData ram MEM [2048]
/// @ 0x04000 (P)
/// # 0x04000 rom0
/// $FigoData rom0 MEM [512]
/// @ 0x05000 (P)
/// # 0x05000 rom1
/// $FigoData rom1 MEM [480]
/// @ 0x06000 (W-)
/// # # Stuffing bytes...
/// %% 65536
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 32768B, bits: 96b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FIGODTCMMAP
#define h_FIGODTCMMAP (){}
#define RA_FIGODTCMMAP_ram 0x0000
///////////////////////////////////////////////////////////
#define RA_FIGODTCMMAP_rom0 0x4000
///////////////////////////////////////////////////////////
#define RA_FIGODTCMMAP_rom1 0x5000
///////////////////////////////////////////////////////////
typedef struct SIE_FIGODTCMMAP {
///////////////////////////////////////////////////////////
SIE_FigoData ie_ram[2048];
///////////////////////////////////////////////////////////
SIE_FigoData ie_rom0[512];
///////////////////////////////////////////////////////////
SIE_FigoData ie_rom1[480];
UNSG8 RSVD_rom1 [256];
///////////////////////////////////////////////////////////
UNSG8 RSVDx6000 [8192];
///////////////////////////////////////////////////////////
} SIE_FIGODTCMMAP;
///////////////////////////////////////////////////////////
SIGN32 FIGODTCMMAP_drvrd(SIE_FIGODTCMMAP *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FIGODTCMMAP_drvwr(SIE_FIGODTCMMAP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FIGODTCMMAP_reset(SIE_FIGODTCMMAP *p);
SIGN32 FIGODTCMMAP_cmp (SIE_FIGODTCMMAP *p, SIE_FIGODTCMMAP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FIGODTCMMAP_check(p,pie,pfx,hLOG) FIGODTCMMAP_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FIGODTCMMAP_print(p, pfx,hLOG) FIGODTCMMAP_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FIGODTCMMAP
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE FIGOITCMMAP biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 ram
/// $FigoInst ram MEM [4096]
/// @ 0x04000 (W-)
/// # # Stuffing bytes...
/// %% 131072
/// @ 0x08000 (P)
/// # 0x08000 rom
/// $FigoInst rom MEM [8192]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 65536B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_FIGOITCMMAP
#define h_FIGOITCMMAP (){}
#define RA_FIGOITCMMAP_ram 0x0000
///////////////////////////////////////////////////////////
#define RA_FIGOITCMMAP_rom 0x8000
///////////////////////////////////////////////////////////
typedef struct SIE_FIGOITCMMAP {
///////////////////////////////////////////////////////////
SIE_FigoInst ie_ram[4096];
///////////////////////////////////////////////////////////
UNSG8 RSVDx4000 [16384];
///////////////////////////////////////////////////////////
SIE_FigoInst ie_rom[8192];
///////////////////////////////////////////////////////////
} SIE_FIGOITCMMAP;
///////////////////////////////////////////////////////////
SIGN32 FIGOITCMMAP_drvrd(SIE_FIGOITCMMAP *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 FIGOITCMMAP_drvwr(SIE_FIGOITCMMAP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void FIGOITCMMAP_reset(SIE_FIGOITCMMAP *p);
SIGN32 FIGOITCMMAP_cmp (SIE_FIGOITCMMAP *p, SIE_FIGOITCMMAP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define FIGOITCMMAP_check(p,pie,pfx,hLOG) FIGOITCMMAP_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define FIGOITCMMAP_print(p, pfx,hLOG) FIGOITCMMAP_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: FIGOITCMMAP
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DrmDmxDviReg (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 control (P)
/// %unsigned 1 enable 0x0
/// ###
/// * 1: normal operation
/// * 0: reset the block
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00004 dvi_cfg (P)
/// %unsigned 1 yc_interleaved 0x0
/// ###
/// * 1: Y can C channel are interleaved (8-bit input)
/// * 0: Y and C channel are separated (16-bit input)
/// ###
/// %unsigned 1 use_sav 0x1
/// ###
/// * 1: Use the embedded SAV to detect the start of an active line; HSYNC, VSYNC and FID signals are ignored.
/// * 0: Use the HSYNC signal to detect the start of an active line
/// ###
/// %unsigned 1 swap_data_in 0x0
/// ###
/// * 1: Swap the two bytes of DviData
/// * 0: no swapping
/// ###
/// %unsigned 1 swap_data2mem 0x0
/// ###
/// * 1: Swap every two bytes of the data saved to DTCM
/// * 0: no swapping
/// ###
/// %unsigned 1 clock_polarity 0x0
/// ###
/// * 1: latch DVI signals at the positive edge of DVI clock
/// * 0: latch DVI signals at the negative edge of DVI clock
/// ###
/// %unsigned 1 hsync_polarity 0x1
/// ###
/// * 1: DVI HSYNC signal is active high
/// * 0: DVI HSYNC signal is active low
/// * only used when use_sav is 0
/// ###
/// %unsigned 1 vsync_polarity 0x1
/// ###
/// * 1: DVI VSYNC signal is active high
/// * 0: DVI VSYNC signal is active low
/// * only used when use_sav is 0
/// ###
/// %unsigned 1 fid_polarity 0x1
/// ###
/// * 1: DVI FID signal is active high
/// * 0: DVI FID signal is active low
/// * only used when use_sav is 0
/// ###
/// %unsigned 8 reserved0 0x0
/// %unsigned 13 sample_per_active_line 0x780
/// ###
/// * Number of YC pairs per active line.
/// * This number must be a multiple of 4.
/// ###
/// %unsigned 3 reserved1 0x0
/// @ 0x00008 status (RW)
/// %unsigned 1 overflow 0x0
/// ###
/// * Hardware will set this bit to one when overflow happens. Once set, only firmware can clear it.
/// * Overflow happens when HBO FIFO is full. DVI module will drop the incoming DVI data when overflow happens. It will keep the integrity of data line in HBO FIFO. It is possible that some lines are entirely missed during the overflow period. In that case, FIGO firmware needs to re-sync to frame/field boundary.
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12B, bits: 34b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DrmDmxDviReg
#define h_DrmDmxDviReg (){}
#define RA_DrmDmxDviReg_control 0x0000
#define BA_DrmDmxDviReg_control_enable 0x0000
#define B16DrmDmxDviReg_control_enable 0x0000
#define LSb32DrmDmxDviReg_control_enable 0
#define LSb16DrmDmxDviReg_control_enable 0
#define bDrmDmxDviReg_control_enable 1
#define MSK32DrmDmxDviReg_control_enable 0x00000001
///////////////////////////////////////////////////////////
#define RA_DrmDmxDviReg_dvi_cfg 0x0004
#define BA_DrmDmxDviReg_dvi_cfg_yc_interleaved 0x0004
#define B16DrmDmxDviReg_dvi_cfg_yc_interleaved 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_yc_interleaved 0
#define LSb16DrmDmxDviReg_dvi_cfg_yc_interleaved 0
#define bDrmDmxDviReg_dvi_cfg_yc_interleaved 1
#define MSK32DrmDmxDviReg_dvi_cfg_yc_interleaved 0x00000001
#define BA_DrmDmxDviReg_dvi_cfg_use_sav 0x0004
#define B16DrmDmxDviReg_dvi_cfg_use_sav 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_use_sav 1
#define LSb16DrmDmxDviReg_dvi_cfg_use_sav 1
#define bDrmDmxDviReg_dvi_cfg_use_sav 1
#define MSK32DrmDmxDviReg_dvi_cfg_use_sav 0x00000002
#define BA_DrmDmxDviReg_dvi_cfg_swap_data_in 0x0004
#define B16DrmDmxDviReg_dvi_cfg_swap_data_in 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_swap_data_in 2
#define LSb16DrmDmxDviReg_dvi_cfg_swap_data_in 2
#define bDrmDmxDviReg_dvi_cfg_swap_data_in 1
#define MSK32DrmDmxDviReg_dvi_cfg_swap_data_in 0x00000004
#define BA_DrmDmxDviReg_dvi_cfg_swap_data2mem 0x0004
#define B16DrmDmxDviReg_dvi_cfg_swap_data2mem 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_swap_data2mem 3
#define LSb16DrmDmxDviReg_dvi_cfg_swap_data2mem 3
#define bDrmDmxDviReg_dvi_cfg_swap_data2mem 1
#define MSK32DrmDmxDviReg_dvi_cfg_swap_data2mem 0x00000008
#define BA_DrmDmxDviReg_dvi_cfg_clock_polarity 0x0004
#define B16DrmDmxDviReg_dvi_cfg_clock_polarity 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_clock_polarity 4
#define LSb16DrmDmxDviReg_dvi_cfg_clock_polarity 4
#define bDrmDmxDviReg_dvi_cfg_clock_polarity 1
#define MSK32DrmDmxDviReg_dvi_cfg_clock_polarity 0x00000010
#define BA_DrmDmxDviReg_dvi_cfg_hsync_polarity 0x0004
#define B16DrmDmxDviReg_dvi_cfg_hsync_polarity 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_hsync_polarity 5
#define LSb16DrmDmxDviReg_dvi_cfg_hsync_polarity 5
#define bDrmDmxDviReg_dvi_cfg_hsync_polarity 1
#define MSK32DrmDmxDviReg_dvi_cfg_hsync_polarity 0x00000020
#define BA_DrmDmxDviReg_dvi_cfg_vsync_polarity 0x0004
#define B16DrmDmxDviReg_dvi_cfg_vsync_polarity 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_vsync_polarity 6
#define LSb16DrmDmxDviReg_dvi_cfg_vsync_polarity 6
#define bDrmDmxDviReg_dvi_cfg_vsync_polarity 1
#define MSK32DrmDmxDviReg_dvi_cfg_vsync_polarity 0x00000040
#define BA_DrmDmxDviReg_dvi_cfg_fid_polarity 0x0004
#define B16DrmDmxDviReg_dvi_cfg_fid_polarity 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_fid_polarity 7
#define LSb16DrmDmxDviReg_dvi_cfg_fid_polarity 7
#define bDrmDmxDviReg_dvi_cfg_fid_polarity 1
#define MSK32DrmDmxDviReg_dvi_cfg_fid_polarity 0x00000080
#define BA_DrmDmxDviReg_dvi_cfg_reserved0 0x0005
#define B16DrmDmxDviReg_dvi_cfg_reserved0 0x0004
#define LSb32DrmDmxDviReg_dvi_cfg_reserved0 8
#define LSb16DrmDmxDviReg_dvi_cfg_reserved0 8
#define bDrmDmxDviReg_dvi_cfg_reserved0 8
#define MSK32DrmDmxDviReg_dvi_cfg_reserved0 0x0000FF00
#define BA_DrmDmxDviReg_dvi_cfg_sample_per_active_line 0x0006
#define B16DrmDmxDviReg_dvi_cfg_sample_per_active_line 0x0006
#define LSb32DrmDmxDviReg_dvi_cfg_sample_per_active_line 16
#define LSb16DrmDmxDviReg_dvi_cfg_sample_per_active_line 0
#define bDrmDmxDviReg_dvi_cfg_sample_per_active_line 13
#define MSK32DrmDmxDviReg_dvi_cfg_sample_per_active_line 0x1FFF0000
#define BA_DrmDmxDviReg_dvi_cfg_reserved1 0x0007
#define B16DrmDmxDviReg_dvi_cfg_reserved1 0x0006
#define LSb32DrmDmxDviReg_dvi_cfg_reserved1 29
#define LSb16DrmDmxDviReg_dvi_cfg_reserved1 13
#define bDrmDmxDviReg_dvi_cfg_reserved1 3
#define MSK32DrmDmxDviReg_dvi_cfg_reserved1 0xE0000000
///////////////////////////////////////////////////////////
#define RA_DrmDmxDviReg_status 0x0008
#define BA_DrmDmxDviReg_status_overflow 0x0008
#define B16DrmDmxDviReg_status_overflow 0x0008
#define LSb32DrmDmxDviReg_status_overflow 0
#define LSb16DrmDmxDviReg_status_overflow 0
#define bDrmDmxDviReg_status_overflow 1
#define MSK32DrmDmxDviReg_status_overflow 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_DrmDmxDviReg {
///////////////////////////////////////////////////////////
#define GET32DrmDmxDviReg_control_enable(r32) _BFGET_(r32, 0, 0)
#define SET32DrmDmxDviReg_control_enable(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DrmDmxDviReg_control_enable(r16) _BFGET_(r16, 0, 0)
#define SET16DrmDmxDviReg_control_enable(r16,v) _BFSET_(r16, 0, 0,v)
#define w32DrmDmxDviReg_control {\
UNSG32 ucontrol_enable : 1;\
UNSG32 RSVDx0_b1 : 31;\
}
union { UNSG32 u32DrmDmxDviReg_control;
struct w32DrmDmxDviReg_control;
};
///////////////////////////////////////////////////////////
#define GET32DrmDmxDviReg_dvi_cfg_yc_interleaved(r32) _BFGET_(r32, 0, 0)
#define SET32DrmDmxDviReg_dvi_cfg_yc_interleaved(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DrmDmxDviReg_dvi_cfg_yc_interleaved(r16) _BFGET_(r16, 0, 0)
#define SET16DrmDmxDviReg_dvi_cfg_yc_interleaved(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32DrmDmxDviReg_dvi_cfg_use_sav(r32) _BFGET_(r32, 1, 1)
#define SET32DrmDmxDviReg_dvi_cfg_use_sav(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16DrmDmxDviReg_dvi_cfg_use_sav(r16) _BFGET_(r16, 1, 1)
#define SET16DrmDmxDviReg_dvi_cfg_use_sav(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32DrmDmxDviReg_dvi_cfg_swap_data_in(r32) _BFGET_(r32, 2, 2)
#define SET32DrmDmxDviReg_dvi_cfg_swap_data_in(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16DrmDmxDviReg_dvi_cfg_swap_data_in(r16) _BFGET_(r16, 2, 2)
#define SET16DrmDmxDviReg_dvi_cfg_swap_data_in(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32DrmDmxDviReg_dvi_cfg_swap_data2mem(r32) _BFGET_(r32, 3, 3)
#define SET32DrmDmxDviReg_dvi_cfg_swap_data2mem(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16DrmDmxDviReg_dvi_cfg_swap_data2mem(r16) _BFGET_(r16, 3, 3)
#define SET16DrmDmxDviReg_dvi_cfg_swap_data2mem(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32DrmDmxDviReg_dvi_cfg_clock_polarity(r32) _BFGET_(r32, 4, 4)
#define SET32DrmDmxDviReg_dvi_cfg_clock_polarity(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16DrmDmxDviReg_dvi_cfg_clock_polarity(r16) _BFGET_(r16, 4, 4)
#define SET16DrmDmxDviReg_dvi_cfg_clock_polarity(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32DrmDmxDviReg_dvi_cfg_hsync_polarity(r32) _BFGET_(r32, 5, 5)
#define SET32DrmDmxDviReg_dvi_cfg_hsync_polarity(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16DrmDmxDviReg_dvi_cfg_hsync_polarity(r16) _BFGET_(r16, 5, 5)
#define SET16DrmDmxDviReg_dvi_cfg_hsync_polarity(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32DrmDmxDviReg_dvi_cfg_vsync_polarity(r32) _BFGET_(r32, 6, 6)
#define SET32DrmDmxDviReg_dvi_cfg_vsync_polarity(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16DrmDmxDviReg_dvi_cfg_vsync_polarity(r16) _BFGET_(r16, 6, 6)
#define SET16DrmDmxDviReg_dvi_cfg_vsync_polarity(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32DrmDmxDviReg_dvi_cfg_fid_polarity(r32) _BFGET_(r32, 7, 7)
#define SET32DrmDmxDviReg_dvi_cfg_fid_polarity(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16DrmDmxDviReg_dvi_cfg_fid_polarity(r16) _BFGET_(r16, 7, 7)
#define SET16DrmDmxDviReg_dvi_cfg_fid_polarity(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32DrmDmxDviReg_dvi_cfg_reserved0(r32) _BFGET_(r32,15, 8)
#define SET32DrmDmxDviReg_dvi_cfg_reserved0(r32,v) _BFSET_(r32,15, 8,v)
#define GET16DrmDmxDviReg_dvi_cfg_reserved0(r16) _BFGET_(r16,15, 8)
#define SET16DrmDmxDviReg_dvi_cfg_reserved0(r16,v) _BFSET_(r16,15, 8,v)
#define GET32DrmDmxDviReg_dvi_cfg_sample_per_active_line(r32) _BFGET_(r32,28,16)
#define SET32DrmDmxDviReg_dvi_cfg_sample_per_active_line(r32,v) _BFSET_(r32,28,16,v)
#define GET16DrmDmxDviReg_dvi_cfg_sample_per_active_line(r16) _BFGET_(r16,12, 0)
#define SET16DrmDmxDviReg_dvi_cfg_sample_per_active_line(r16,v) _BFSET_(r16,12, 0,v)
#define GET32DrmDmxDviReg_dvi_cfg_reserved1(r32) _BFGET_(r32,31,29)
#define SET32DrmDmxDviReg_dvi_cfg_reserved1(r32,v) _BFSET_(r32,31,29,v)
#define GET16DrmDmxDviReg_dvi_cfg_reserved1(r16) _BFGET_(r16,15,13)
#define SET16DrmDmxDviReg_dvi_cfg_reserved1(r16,v) _BFSET_(r16,15,13,v)
#define w32DrmDmxDviReg_dvi_cfg {\
UNSG32 udvi_cfg_yc_interleaved : 1;\
UNSG32 udvi_cfg_use_sav : 1;\
UNSG32 udvi_cfg_swap_data_in : 1;\
UNSG32 udvi_cfg_swap_data2mem : 1;\
UNSG32 udvi_cfg_clock_polarity : 1;\
UNSG32 udvi_cfg_hsync_polarity : 1;\
UNSG32 udvi_cfg_vsync_polarity : 1;\
UNSG32 udvi_cfg_fid_polarity : 1;\
UNSG32 udvi_cfg_reserved0 : 8;\
UNSG32 udvi_cfg_sample_per_active_line : 13;\
UNSG32 udvi_cfg_reserved1 : 3;\
}
union { UNSG32 u32DrmDmxDviReg_dvi_cfg;
struct w32DrmDmxDviReg_dvi_cfg;
};
///////////////////////////////////////////////////////////
#define GET32DrmDmxDviReg_status_overflow(r32) _BFGET_(r32, 0, 0)
#define SET32DrmDmxDviReg_status_overflow(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DrmDmxDviReg_status_overflow(r16) _BFGET_(r16, 0, 0)
#define SET16DrmDmxDviReg_status_overflow(r16,v) _BFSET_(r16, 0, 0,v)
#define w32DrmDmxDviReg_status {\
UNSG32 ustatus_overflow : 1;\
UNSG32 RSVDx8_b1 : 31;\
}
union { UNSG32 u32DrmDmxDviReg_status;
struct w32DrmDmxDviReg_status;
};
///////////////////////////////////////////////////////////
} SIE_DrmDmxDviReg;
typedef union T32DrmDmxDviReg_control
{ UNSG32 u32;
struct w32DrmDmxDviReg_control;
} T32DrmDmxDviReg_control;
typedef union T32DrmDmxDviReg_dvi_cfg
{ UNSG32 u32;
struct w32DrmDmxDviReg_dvi_cfg;
} T32DrmDmxDviReg_dvi_cfg;
typedef union T32DrmDmxDviReg_status
{ UNSG32 u32;
struct w32DrmDmxDviReg_status;
} T32DrmDmxDviReg_status;
///////////////////////////////////////////////////////////
typedef union TDrmDmxDviReg_control
{ UNSG32 u32[1];
struct {
struct w32DrmDmxDviReg_control;
};
} TDrmDmxDviReg_control;
typedef union TDrmDmxDviReg_dvi_cfg
{ UNSG32 u32[1];
struct {
struct w32DrmDmxDviReg_dvi_cfg;
};
} TDrmDmxDviReg_dvi_cfg;
typedef union TDrmDmxDviReg_status
{ UNSG32 u32[1];
struct {
struct w32DrmDmxDviReg_status;
};
} TDrmDmxDviReg_status;
///////////////////////////////////////////////////////////
SIGN32 DrmDmxDviReg_drvrd(SIE_DrmDmxDviReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DrmDmxDviReg_drvwr(SIE_DrmDmxDviReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DrmDmxDviReg_reset(SIE_DrmDmxDviReg *p);
SIGN32 DrmDmxDviReg_cmp (SIE_DrmDmxDviReg *p, SIE_DrmDmxDviReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DrmDmxDviReg_check(p,pie,pfx,hLOG) DrmDmxDviReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DrmDmxDviReg_print(p, pfx,hLOG) DrmDmxDviReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DrmDmxDviReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE VMETA_CTL (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (RW-)
/// %unsigned 1 OTP_DISABLE_MPEG2_DEC 0x0
/// ###
/// * 1: Disable MPEG2 Decoder
/// * 0: Enable MPEG2 Decoder
/// ###
/// %unsigned 1 OTP_DISABLE_ENC 0x0
/// ###
/// * 1: Disable all encoders (H.264/H.263/MPEG4/JPEG)
/// * 0: Enable all encoders
/// ###
/// %% 30 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 2b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_VMETA_CTL
#define h_VMETA_CTL (){}
#define BA_VMETA_CTL_OTP_DISABLE_MPEG2_DEC 0x0000
#define B16VMETA_CTL_OTP_DISABLE_MPEG2_DEC 0x0000
#define LSb32VMETA_CTL_OTP_DISABLE_MPEG2_DEC 0
#define LSb16VMETA_CTL_OTP_DISABLE_MPEG2_DEC 0
#define bVMETA_CTL_OTP_DISABLE_MPEG2_DEC 1
#define MSK32VMETA_CTL_OTP_DISABLE_MPEG2_DEC 0x00000001
#define BA_VMETA_CTL_OTP_DISABLE_ENC 0x0000
#define B16VMETA_CTL_OTP_DISABLE_ENC 0x0000
#define LSb32VMETA_CTL_OTP_DISABLE_ENC 1
#define LSb16VMETA_CTL_OTP_DISABLE_ENC 1
#define bVMETA_CTL_OTP_DISABLE_ENC 1
#define MSK32VMETA_CTL_OTP_DISABLE_ENC 0x00000002
///////////////////////////////////////////////////////////
typedef struct SIE_VMETA_CTL {
///////////////////////////////////////////////////////////
#define GET32VMETA_CTL_OTP_DISABLE_MPEG2_DEC(r32) _BFGET_(r32, 0, 0)
#define SET32VMETA_CTL_OTP_DISABLE_MPEG2_DEC(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16VMETA_CTL_OTP_DISABLE_MPEG2_DEC(r16) _BFGET_(r16, 0, 0)
#define SET16VMETA_CTL_OTP_DISABLE_MPEG2_DEC(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32VMETA_CTL_OTP_DISABLE_ENC(r32) _BFGET_(r32, 1, 1)
#define SET32VMETA_CTL_OTP_DISABLE_ENC(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16VMETA_CTL_OTP_DISABLE_ENC(r16) _BFGET_(r16, 1, 1)
#define SET16VMETA_CTL_OTP_DISABLE_ENC(r16,v) _BFSET_(r16, 1, 1,v)
UNSG32 u_OTP_DISABLE_MPEG2_DEC : 1;
UNSG32 u_OTP_DISABLE_ENC : 1;
UNSG32 RSVDx0_b2 : 30;
///////////////////////////////////////////////////////////
} SIE_VMETA_CTL;
///////////////////////////////////////////////////////////
SIGN32 VMETA_CTL_drvrd(SIE_VMETA_CTL *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 VMETA_CTL_drvwr(SIE_VMETA_CTL *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void VMETA_CTL_reset(SIE_VMETA_CTL *p);
SIGN32 VMETA_CTL_cmp (SIE_VMETA_CTL *p, SIE_VMETA_CTL *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define VMETA_CTL_check(p,pie,pfx,hLOG) VMETA_CTL_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define VMETA_CTL_print(p, pfx,hLOG) VMETA_CTL_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: VMETA_CTL
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE DRMDMX biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 DTCM (P)
/// # 0x00000 dtcm
/// $FigoData dtcm MEM [3072]
/// @ 0x08000 (P)
/// # 0x08000 figoSys
/// $FigoSys figoSys REG
/// @ 0x0D800 AHBFW (P)
/// # 0x0D800 ahbFw
/// $SECHF_ENTRY ahbFw REG [8]
/// @ 0x0D840 AHBFW_CNT (RW-)
/// %unsigned 32 counter 0x0
/// @ 0x0D844 JTAGEN (P)
/// # 0x0D844 jtag
/// $JTAGCTL jtag REG
/// @ 0x0D848 SECSAT (P)
/// # 0x0D848 secStatus
/// $SECSTATUS secStatus REG
/// @ 0x0D86C OTP (P)
/// # 0x0D86C otp
/// $OTP otp REG
/// @ 0x0D880 RNG (P)
/// # 0x0D880 rng
/// $RNG rng REG
/// @ 0x0D88C it (P)
/// %unsigned 1 bits 0x0
/// ###
/// * test bit, write 1 to this bit will trigger dmx interrupt
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x0D890 ie (P)
/// %unsigned 32 bits 0x0
/// @ 0x0D894 is (R-)
/// %unsigned 32 bits 0x0
/// ###
/// * TBD
/// ###
/// @ 0x0D898 (W-)
/// # # Stuffing bytes...
/// %% 15168
/// @ 0x0E000 SECTION (P)
/// # 0x0E000 section
/// $SFRAM section MEM
/// @ 0x10000 (P)
/// # 0x10000 tsc0
/// $TSC tsc0 REG
/// @ 0x100A0 (P)
/// # 0x100A0 tsc1
/// $TSC tsc1 REG
/// @ 0x10140 (P)
/// # 0x10140 tsc2
/// $TSC tsc2 REG
/// @ 0x101E0 (P)
/// # 0x101E0 tsc3
/// $TSC tsc3 REG
/// @ 0x10280 SFCONTROL (P)
/// # 0x10280 sfc
/// $SFCONTROL sfc REG
/// @ 0x10298 (P)
/// # 0x10298 dvi
/// $DrmDmxDviReg dvi REG
/// @ 0x102A4 VMETA_CTL (P)
/// # 0x102A4 vMeta
/// $VMETA_CTL vMeta REG
/// @ 0x102A8 (W-)
/// # # Stuffing bytes...
/// %% 27328
/// @ 0x11000 (P)
/// # 0x11000 TspKeyTbl
/// $RAM1WORD TspKeyTbl MEM [1024]
/// @ 0x12000 (W-)
/// # # Stuffing bytes...
/// %% 458752
/// @ 0x20000 ITCM (P)
/// # 0x20000 itcm
/// $FigoInst itcm MEM [16384]
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 196608B, bits: 10236b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_DRMDMX
#define h_DRMDMX (){}
#define RA_DRMDMX_DTCM 0x0000
#define RA_DRMDMX_dtcm 0x0000
///////////////////////////////////////////////////////////
#define RA_DRMDMX_figoSys 0x8000
///////////////////////////////////////////////////////////
#define RA_DRMDMX_AHBFW 0xD800
#define RA_DRMDMX_ahbFw 0xD800
///////////////////////////////////////////////////////////
#define RA_DRMDMX_AHBFW_CNT 0xD840
#define BA_DRMDMX_AHBFW_CNT_counter 0xD840
#define B16DRMDMX_AHBFW_CNT_counter 0xD840
#define LSb32DRMDMX_AHBFW_CNT_counter 0
#define LSb16DRMDMX_AHBFW_CNT_counter 0
#define bDRMDMX_AHBFW_CNT_counter 32
#define MSK32DRMDMX_AHBFW_CNT_counter 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_DRMDMX_JTAGEN 0xD844
#define RA_DRMDMX_jtag 0xD844
///////////////////////////////////////////////////////////
#define RA_DRMDMX_SECSAT 0xD848
#define RA_DRMDMX_secStatus 0xD848
///////////////////////////////////////////////////////////
#define RA_DRMDMX_OTP 0xD86C
#define RA_DRMDMX_otp 0xD86C
///////////////////////////////////////////////////////////
#define RA_DRMDMX_RNG 0xD880
#define RA_DRMDMX_rng 0xD880
///////////////////////////////////////////////////////////
#define RA_DRMDMX_it 0xD88C
#define BA_DRMDMX_it_bits 0xD88C
#define B16DRMDMX_it_bits 0xD88C
#define LSb32DRMDMX_it_bits 0
#define LSb16DRMDMX_it_bits 0
#define bDRMDMX_it_bits 1
#define MSK32DRMDMX_it_bits 0x00000001
///////////////////////////////////////////////////////////
#define RA_DRMDMX_ie 0xD890
#define BA_DRMDMX_ie_bits 0xD890
#define B16DRMDMX_ie_bits 0xD890
#define LSb32DRMDMX_ie_bits 0
#define LSb16DRMDMX_ie_bits 0
#define bDRMDMX_ie_bits 32
#define MSK32DRMDMX_ie_bits 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_DRMDMX_is 0xD894
#define BA_DRMDMX_is_bits 0xD894
#define B16DRMDMX_is_bits 0xD894
#define LSb32DRMDMX_is_bits 0
#define LSb16DRMDMX_is_bits 0
#define bDRMDMX_is_bits 32
#define MSK32DRMDMX_is_bits 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_DRMDMX_SECTION 0xE000
#define RA_DRMDMX_section 0xE000
///////////////////////////////////////////////////////////
#define RA_DRMDMX_tsc0 0x10000
///////////////////////////////////////////////////////////
#define RA_DRMDMX_tsc1 0x100A0
///////////////////////////////////////////////////////////
#define RA_DRMDMX_tsc2 0x10140
///////////////////////////////////////////////////////////
#define RA_DRMDMX_tsc3 0x101E0
///////////////////////////////////////////////////////////
#define RA_DRMDMX_SFCONTROL 0x10280
#define RA_DRMDMX_sfc 0x10280
///////////////////////////////////////////////////////////
#define RA_DRMDMX_dvi 0x10298
///////////////////////////////////////////////////////////
#define RA_DRMDMX_VMETA_CTL 0x102A4
#define RA_DRMDMX_vMeta 0x102A4
///////////////////////////////////////////////////////////
#define RA_DRMDMX_TspKeyTbl 0x11000
///////////////////////////////////////////////////////////
#define RA_DRMDMX_ITCM 0x20000
#define RA_DRMDMX_itcm 0x20000
///////////////////////////////////////////////////////////
typedef struct SIE_DRMDMX {
///////////////////////////////////////////////////////////
SIE_FigoData ie_dtcm[3072];
UNSG8 RSVD_dtcm [8192];
///////////////////////////////////////////////////////////
SIE_FigoSys ie_figoSys;
///////////////////////////////////////////////////////////
SIE_SECHF_ENTRY ie_ahbFw[8];
///////////////////////////////////////////////////////////
#define GET32DRMDMX_AHBFW_CNT_counter(r32) _BFGET_(r32,31, 0)
#define SET32DRMDMX_AHBFW_CNT_counter(r32,v) _BFSET_(r32,31, 0,v)
#define w32DRMDMX_AHBFW_CNT {\
UNSG32 uAHBFW_CNT_counter : 32;\
}
union { UNSG32 u32DRMDMX_AHBFW_CNT;
struct w32DRMDMX_AHBFW_CNT;
};
///////////////////////////////////////////////////////////
SIE_JTAGCTL ie_jtag;
///////////////////////////////////////////////////////////
SIE_SECSTATUS ie_secStatus;
///////////////////////////////////////////////////////////
SIE_OTP ie_otp;
///////////////////////////////////////////////////////////
SIE_RNG ie_rng;
///////////////////////////////////////////////////////////
#define GET32DRMDMX_it_bits(r32) _BFGET_(r32, 0, 0)
#define SET32DRMDMX_it_bits(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16DRMDMX_it_bits(r16) _BFGET_(r16, 0, 0)
#define SET16DRMDMX_it_bits(r16,v) _BFSET_(r16, 0, 0,v)
#define w32DRMDMX_it {\
UNSG32 uit_bits : 1;\
UNSG32 RSVDxD88C_b1 : 31;\
}
union { UNSG32 u32DRMDMX_it;
struct w32DRMDMX_it;
};
///////////////////////////////////////////////////////////
#define GET32DRMDMX_ie_bits(r32) _BFGET_(r32,31, 0)
#define SET32DRMDMX_ie_bits(r32,v) _BFSET_(r32,31, 0,v)
#define w32DRMDMX_ie {\
UNSG32 uie_bits : 32;\
}
union { UNSG32 u32DRMDMX_ie;
struct w32DRMDMX_ie;
};
///////////////////////////////////////////////////////////
#define GET32DRMDMX_is_bits(r32) _BFGET_(r32,31, 0)
#define SET32DRMDMX_is_bits(r32,v) _BFSET_(r32,31, 0,v)
#define w32DRMDMX_is {\
UNSG32 uis_bits : 32;\
}
union { UNSG32 u32DRMDMX_is;
struct w32DRMDMX_is;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDxD898 [1896];
///////////////////////////////////////////////////////////
SIE_SFRAM ie_section;
///////////////////////////////////////////////////////////
SIE_TSC ie_tsc0;
///////////////////////////////////////////////////////////
SIE_TSC ie_tsc1;
///////////////////////////////////////////////////////////
SIE_TSC ie_tsc2;
///////////////////////////////////////////////////////////
SIE_TSC ie_tsc3;
///////////////////////////////////////////////////////////
SIE_SFCONTROL ie_sfc;
///////////////////////////////////////////////////////////
SIE_DrmDmxDviReg ie_dvi;
///////////////////////////////////////////////////////////
SIE_VMETA_CTL ie_vMeta;
///////////////////////////////////////////////////////////
UNSG8 RSVDx102A8 [3416];
///////////////////////////////////////////////////////////
SIE_RAM1WORD ie_TspKeyTbl[1024];
///////////////////////////////////////////////////////////
UNSG8 RSVDx12000 [57344];
///////////////////////////////////////////////////////////
SIE_FigoInst ie_itcm[16384];
///////////////////////////////////////////////////////////
} SIE_DRMDMX;
typedef union T32DRMDMX_AHBFW_CNT
{ UNSG32 u32;
struct w32DRMDMX_AHBFW_CNT;
} T32DRMDMX_AHBFW_CNT;
typedef union T32DRMDMX_it
{ UNSG32 u32;
struct w32DRMDMX_it;
} T32DRMDMX_it;
typedef union T32DRMDMX_ie
{ UNSG32 u32;
struct w32DRMDMX_ie;
} T32DRMDMX_ie;
typedef union T32DRMDMX_is
{ UNSG32 u32;
struct w32DRMDMX_is;
} T32DRMDMX_is;
///////////////////////////////////////////////////////////
typedef union TDRMDMX_AHBFW_CNT
{ UNSG32 u32[1];
struct {
struct w32DRMDMX_AHBFW_CNT;
};
} TDRMDMX_AHBFW_CNT;
typedef union TDRMDMX_it
{ UNSG32 u32[1];
struct {
struct w32DRMDMX_it;
};
} TDRMDMX_it;
typedef union TDRMDMX_ie
{ UNSG32 u32[1];
struct {
struct w32DRMDMX_ie;
};
} TDRMDMX_ie;
typedef union TDRMDMX_is
{ UNSG32 u32[1];
struct {
struct w32DRMDMX_is;
};
} TDRMDMX_is;
///////////////////////////////////////////////////////////
SIGN32 DRMDMX_drvrd(SIE_DRMDMX *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 DRMDMX_drvwr(SIE_DRMDMX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void DRMDMX_reset(SIE_DRMDMX *p);
SIGN32 DRMDMX_cmp (SIE_DRMDMX *p, SIE_DRMDMX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define DRMDMX_check(p,pie,pfx,hLOG) DRMDMX_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define DRMDMX_print(p, pfx,hLOG) DRMDMX_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: DRMDMX
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: drmdmx.h
////////////////////////////////////////////////////////////