blob: 6d4cb405db1fac52ae27f949771483b851043b7a [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: bcm.h
////////////////////////////////////////////////////////////
#ifndef bcm_h
#define bcm_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 BCMINSFMT (4,4)
/// ###
/// * Pbridge instruction format
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 4 hdr
/// : CFGW 0x0
/// : LDFN 0x1
/// : RCMD 0x2
/// : WCMD 0x3
/// : RDAT 0x4
/// : WDAT 0x5
/// : SEMA 0x6
/// : NULL 0xF
/// %% 28 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 4b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMINSFMT
#define h_BCMINSFMT (){}
#define BA_BCMINSFMT_hdr 0x0000
#define B16BCMINSFMT_hdr 0x0000
#define LSb32BCMINSFMT_hdr 0
#define LSb16BCMINSFMT_hdr 0
#define bBCMINSFMT_hdr 4
#define MSK32BCMINSFMT_hdr 0x0000000F
#define BCMINSFMT_hdr_CFGW 0x0
#define BCMINSFMT_hdr_LDFN 0x1
#define BCMINSFMT_hdr_RCMD 0x2
#define BCMINSFMT_hdr_WCMD 0x3
#define BCMINSFMT_hdr_RDAT 0x4
#define BCMINSFMT_hdr_WDAT 0x5
#define BCMINSFMT_hdr_SEMA 0x6
#define BCMINSFMT_hdr_NULL 0xF
///////////////////////////////////////////////////////////
typedef struct SIE_BCMINSFMT {
///////////////////////////////////////////////////////////
#define GET32BCMINSFMT_hdr(r32) _BFGET_(r32, 3, 0)
#define SET32BCMINSFMT_hdr(r32,v) _BFSET_(r32, 3, 0,v)
#define GET16BCMINSFMT_hdr(r16) _BFGET_(r16, 3, 0)
#define SET16BCMINSFMT_hdr(r16,v) _BFSET_(r16, 3, 0,v)
UNSG32 u_hdr : 4;
UNSG32 RSVDx0_b4 : 28;
///////////////////////////////////////////////////////////
} SIE_BCMINSFMT;
///////////////////////////////////////////////////////////
SIGN32 BCMINSFMT_drvrd(SIE_BCMINSFMT *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMINSFMT_drvwr(SIE_BCMINSFMT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMINSFMT_reset(SIE_BCMINSFMT *p);
SIGN32 BCMINSFMT_cmp (SIE_BCMINSFMT *p, SIE_BCMINSFMT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMINSFMT_check(p,pie,pfx,hLOG) BCMINSFMT_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMINSFMT_print(p, pfx,hLOG) BCMINSFMT_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMINSFMT
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMCFGW biu (4,4)
/// ###
/// * BCM configure the register with the 32-bit data to the specified address (28-bit)
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 32 dat
/// ###
/// * The 32-bit data will be written to the specified address.
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 28 devAdr
/// ###
/// * The target register or memory address.
/// ###
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMCFGW
#define h_BCMCFGW (){}
#define BA_BCMCFGW_dat 0x0000
#define B16BCMCFGW_dat 0x0000
#define LSb32BCMCFGW_dat 0
#define LSb16BCMCFGW_dat 0
#define bBCMCFGW_dat 32
#define MSK32BCMCFGW_dat 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define BA_BCMCFGW_devAdr 0x0004
#define B16BCMCFGW_devAdr 0x0004
#define LSb32BCMCFGW_devAdr 0
#define LSb16BCMCFGW_devAdr 0
#define bBCMCFGW_devAdr 28
#define MSK32BCMCFGW_devAdr 0x0FFFFFFF
#define BA_BCMCFGW_hdr 0x0007
#define B16BCMCFGW_hdr 0x0006
#define LSb32BCMCFGW_hdr 28
#define LSb16BCMCFGW_hdr 12
#define bBCMCFGW_hdr 4
#define MSK32BCMCFGW_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMCFGW {
///////////////////////////////////////////////////////////
#define GET32BCMCFGW_dat(r32) _BFGET_(r32,31, 0)
#define SET32BCMCFGW_dat(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_dat : 32;
///////////////////////////////////////////////////////////
#define GET32BCMCFGW_devAdr(r32) _BFGET_(r32,27, 0)
#define SET32BCMCFGW_devAdr(r32,v) _BFSET_(r32,27, 0,v)
#define GET32BCMCFGW_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMCFGW_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMCFGW_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMCFGW_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_devAdr : 28;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMCFGW;
///////////////////////////////////////////////////////////
SIGN32 BCMCFGW_drvrd(SIE_BCMCFGW *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMCFGW_drvwr(SIE_BCMCFGW *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMCFGW_reset(SIE_BCMCFGW *p);
SIGN32 BCMCFGW_cmp (SIE_BCMCFGW *p, SIE_BCMCFGW *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMCFGW_check(p,pie,pfx,hLOG) BCMCFGW_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMCFGW_print(p, pfx,hLOG) BCMCFGW_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMCFGW
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMLDFN biu (4,4)
/// ###
/// * One instruction from descriptor channel, it is used to generate a dHub command for one of the function channel.
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 32 ddrAdr
/// ###
/// * Start address of the function located inside DDR.
/// * Byte address, should be always 64-bit Qword aligned.
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 16 size
/// ###
/// * Byte size. Should be always 64-bit Qword aligned.
/// ###
/// %unsigned 4 chId
/// ###
/// * Channel ID, indicate which device controller channel, only 0-13 are valid.
/// * The mapping between device controller channel and dHub channel is transparent to SW.
/// * HW will treat descriptor channel and device controller channel equally.
/// * 0 -> device controller channel #0 (descriptor channel)
/// * 1 -> device controller channel #1
/// * 2 -> device controller channel #2
/// * ......
/// * 13 -> device controller channel #13
/// * 14/15 are not valid.
/// ###
/// %unsigned 1 intr
/// ###
/// * 1: generate interrupt after dHub finished loading the function to dHub local buffer.
/// ###
/// %unsigned 7 rsvd
/// ###
/// * Reserved.
/// ###
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMLDFN
#define h_BCMLDFN (){}
#define BA_BCMLDFN_ddrAdr 0x0000
#define B16BCMLDFN_ddrAdr 0x0000
#define LSb32BCMLDFN_ddrAdr 0
#define LSb16BCMLDFN_ddrAdr 0
#define bBCMLDFN_ddrAdr 32
#define MSK32BCMLDFN_ddrAdr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define BA_BCMLDFN_size 0x0004
#define B16BCMLDFN_size 0x0004
#define LSb32BCMLDFN_size 0
#define LSb16BCMLDFN_size 0
#define bBCMLDFN_size 16
#define MSK32BCMLDFN_size 0x0000FFFF
#define BA_BCMLDFN_chId 0x0006
#define B16BCMLDFN_chId 0x0006
#define LSb32BCMLDFN_chId 16
#define LSb16BCMLDFN_chId 0
#define bBCMLDFN_chId 4
#define MSK32BCMLDFN_chId 0x000F0000
#define BA_BCMLDFN_intr 0x0006
#define B16BCMLDFN_intr 0x0006
#define LSb32BCMLDFN_intr 20
#define LSb16BCMLDFN_intr 4
#define bBCMLDFN_intr 1
#define MSK32BCMLDFN_intr 0x00100000
#define BA_BCMLDFN_rsvd 0x0006
#define B16BCMLDFN_rsvd 0x0006
#define LSb32BCMLDFN_rsvd 21
#define LSb16BCMLDFN_rsvd 5
#define bBCMLDFN_rsvd 7
#define MSK32BCMLDFN_rsvd 0x0FE00000
#define BA_BCMLDFN_hdr 0x0007
#define B16BCMLDFN_hdr 0x0006
#define LSb32BCMLDFN_hdr 28
#define LSb16BCMLDFN_hdr 12
#define bBCMLDFN_hdr 4
#define MSK32BCMLDFN_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMLDFN {
///////////////////////////////////////////////////////////
#define GET32BCMLDFN_ddrAdr(r32) _BFGET_(r32,31, 0)
#define SET32BCMLDFN_ddrAdr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_ddrAdr : 32;
///////////////////////////////////////////////////////////
#define GET32BCMLDFN_size(r32) _BFGET_(r32,15, 0)
#define SET32BCMLDFN_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16BCMLDFN_size(r16) _BFGET_(r16,15, 0)
#define SET16BCMLDFN_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32BCMLDFN_chId(r32) _BFGET_(r32,19,16)
#define SET32BCMLDFN_chId(r32,v) _BFSET_(r32,19,16,v)
#define GET16BCMLDFN_chId(r16) _BFGET_(r16, 3, 0)
#define SET16BCMLDFN_chId(r16,v) _BFSET_(r16, 3, 0,v)
#define GET32BCMLDFN_intr(r32) _BFGET_(r32,20,20)
#define SET32BCMLDFN_intr(r32,v) _BFSET_(r32,20,20,v)
#define GET16BCMLDFN_intr(r16) _BFGET_(r16, 4, 4)
#define SET16BCMLDFN_intr(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32BCMLDFN_rsvd(r32) _BFGET_(r32,27,21)
#define SET32BCMLDFN_rsvd(r32,v) _BFSET_(r32,27,21,v)
#define GET16BCMLDFN_rsvd(r16) _BFGET_(r16,11, 5)
#define SET16BCMLDFN_rsvd(r16,v) _BFSET_(r16,11, 5,v)
#define GET32BCMLDFN_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMLDFN_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMLDFN_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMLDFN_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_size : 16;
UNSG32 u_chId : 4;
UNSG32 u_intr : 1;
UNSG32 u_rsvd : 7;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMLDFN;
///////////////////////////////////////////////////////////
SIGN32 BCMLDFN_drvrd(SIE_BCMLDFN *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMLDFN_drvwr(SIE_BCMLDFN *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMLDFN_reset(SIE_BCMLDFN *p);
SIGN32 BCMLDFN_cmp (SIE_BCMLDFN *p, SIE_BCMLDFN *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMLDFN_check(p,pie,pfx,hLOG) BCMLDFN_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMLDFN_print(p, pfx,hLOG) BCMLDFN_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMLDFN
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMRDAT biu (4,4)
/// ###
/// * BCM forward the dHub 64-bit read data to the HW device.
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 16 size
/// ###
/// * Number of byte from DDR.
/// ###
/// %unsigned 2 mode
/// : byte 0x0
/// : word 0x1
/// : dword 0x2
/// ###
/// * Mode defines the bus transaction size.
/// ###
/// %unsigned 1 endian
/// : little_endian 0x0
/// : bit_endian 0x1
/// ###
/// * Defines the endianess of the byte inside one bus transaction.
/// ###
/// %unsigned 1 last
/// ###
/// * Every `RCMD could possibly associate with several `RDAT instructions, this bit will be used to notify the arbiter to release the bus. For most of the cases, there is only one `RDAT instruction following the `RCMD instruction.
/// ###
/// %unsigned 5 cUpdId
/// ###
/// * Consumer update ID. A non-zero value will trigger the semaphore consumer update after the command finish.
/// * Will be used to generate the dma_ack signal for apb devices.
/// ###
/// %unsigned 5 pUpdId
/// ###
/// * Producer update ID, A non-zero value will trigger the semaphore producer update after the command finish.
/// * It can be used to trigger an interrupt after finish of the data copy from dHub to devCtl.
/// ###
/// %unsigned 2 rsvd0
/// ###
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 28 devAdr
/// ###
/// * The target register or memory address. --> dHub.RDat[31:0]
/// ###
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMRDAT
#define h_BCMRDAT (){}
#define BA_BCMRDAT_size 0x0000
#define B16BCMRDAT_size 0x0000
#define LSb32BCMRDAT_size 0
#define LSb16BCMRDAT_size 0
#define bBCMRDAT_size 16
#define MSK32BCMRDAT_size 0x0000FFFF
#define BA_BCMRDAT_mode 0x0002
#define B16BCMRDAT_mode 0x0002
#define LSb32BCMRDAT_mode 16
#define LSb16BCMRDAT_mode 0
#define bBCMRDAT_mode 2
#define MSK32BCMRDAT_mode 0x00030000
#define BCMRDAT_mode_byte 0x0
#define BCMRDAT_mode_word 0x1
#define BCMRDAT_mode_dword 0x2
#define BA_BCMRDAT_endian 0x0002
#define B16BCMRDAT_endian 0x0002
#define LSb32BCMRDAT_endian 18
#define LSb16BCMRDAT_endian 2
#define bBCMRDAT_endian 1
#define MSK32BCMRDAT_endian 0x00040000
#define BCMRDAT_endian_little_endian 0x0
#define BCMRDAT_endian_bit_endian 0x1
#define BA_BCMRDAT_last 0x0002
#define B16BCMRDAT_last 0x0002
#define LSb32BCMRDAT_last 19
#define LSb16BCMRDAT_last 3
#define bBCMRDAT_last 1
#define MSK32BCMRDAT_last 0x00080000
#define BA_BCMRDAT_cUpdId 0x0002
#define B16BCMRDAT_cUpdId 0x0002
#define LSb32BCMRDAT_cUpdId 20
#define LSb16BCMRDAT_cUpdId 4
#define bBCMRDAT_cUpdId 5
#define MSK32BCMRDAT_cUpdId 0x01F00000
#define BA_BCMRDAT_pUpdId 0x0003
#define B16BCMRDAT_pUpdId 0x0002
#define LSb32BCMRDAT_pUpdId 25
#define LSb16BCMRDAT_pUpdId 9
#define bBCMRDAT_pUpdId 5
#define MSK32BCMRDAT_pUpdId 0x3E000000
#define BA_BCMRDAT_rsvd0 0x0003
#define B16BCMRDAT_rsvd0 0x0002
#define LSb32BCMRDAT_rsvd0 30
#define LSb16BCMRDAT_rsvd0 14
#define bBCMRDAT_rsvd0 2
#define MSK32BCMRDAT_rsvd0 0xC0000000
///////////////////////////////////////////////////////////
#define BA_BCMRDAT_devAdr 0x0004
#define B16BCMRDAT_devAdr 0x0004
#define LSb32BCMRDAT_devAdr 0
#define LSb16BCMRDAT_devAdr 0
#define bBCMRDAT_devAdr 28
#define MSK32BCMRDAT_devAdr 0x0FFFFFFF
#define BA_BCMRDAT_hdr 0x0007
#define B16BCMRDAT_hdr 0x0006
#define LSb32BCMRDAT_hdr 28
#define LSb16BCMRDAT_hdr 12
#define bBCMRDAT_hdr 4
#define MSK32BCMRDAT_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMRDAT {
///////////////////////////////////////////////////////////
#define GET32BCMRDAT_size(r32) _BFGET_(r32,15, 0)
#define SET32BCMRDAT_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16BCMRDAT_size(r16) _BFGET_(r16,15, 0)
#define SET16BCMRDAT_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32BCMRDAT_mode(r32) _BFGET_(r32,17,16)
#define SET32BCMRDAT_mode(r32,v) _BFSET_(r32,17,16,v)
#define GET16BCMRDAT_mode(r16) _BFGET_(r16, 1, 0)
#define SET16BCMRDAT_mode(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32BCMRDAT_endian(r32) _BFGET_(r32,18,18)
#define SET32BCMRDAT_endian(r32,v) _BFSET_(r32,18,18,v)
#define GET16BCMRDAT_endian(r16) _BFGET_(r16, 2, 2)
#define SET16BCMRDAT_endian(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32BCMRDAT_last(r32) _BFGET_(r32,19,19)
#define SET32BCMRDAT_last(r32,v) _BFSET_(r32,19,19,v)
#define GET16BCMRDAT_last(r16) _BFGET_(r16, 3, 3)
#define SET16BCMRDAT_last(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32BCMRDAT_cUpdId(r32) _BFGET_(r32,24,20)
#define SET32BCMRDAT_cUpdId(r32,v) _BFSET_(r32,24,20,v)
#define GET16BCMRDAT_cUpdId(r16) _BFGET_(r16, 8, 4)
#define SET16BCMRDAT_cUpdId(r16,v) _BFSET_(r16, 8, 4,v)
#define GET32BCMRDAT_pUpdId(r32) _BFGET_(r32,29,25)
#define SET32BCMRDAT_pUpdId(r32,v) _BFSET_(r32,29,25,v)
#define GET16BCMRDAT_pUpdId(r16) _BFGET_(r16,13, 9)
#define SET16BCMRDAT_pUpdId(r16,v) _BFSET_(r16,13, 9,v)
#define GET32BCMRDAT_rsvd0(r32) _BFGET_(r32,31,30)
#define SET32BCMRDAT_rsvd0(r32,v) _BFSET_(r32,31,30,v)
#define GET16BCMRDAT_rsvd0(r16) _BFGET_(r16,15,14)
#define SET16BCMRDAT_rsvd0(r16,v) _BFSET_(r16,15,14,v)
UNSG32 u_size : 16;
UNSG32 u_mode : 2;
UNSG32 u_endian : 1;
UNSG32 u_last : 1;
UNSG32 u_cUpdId : 5;
UNSG32 u_pUpdId : 5;
UNSG32 u_rsvd0 : 2;
///////////////////////////////////////////////////////////
#define GET32BCMRDAT_devAdr(r32) _BFGET_(r32,27, 0)
#define SET32BCMRDAT_devAdr(r32,v) _BFSET_(r32,27, 0,v)
#define GET32BCMRDAT_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMRDAT_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMRDAT_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMRDAT_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_devAdr : 28;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMRDAT;
///////////////////////////////////////////////////////////
SIGN32 BCMRDAT_drvrd(SIE_BCMRDAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMRDAT_drvwr(SIE_BCMRDAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMRDAT_reset(SIE_BCMRDAT *p);
SIGN32 BCMRDAT_cmp (SIE_BCMRDAT *p, SIE_BCMRDAT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMRDAT_check(p,pie,pfx,hLOG) BCMRDAT_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMRDAT_print(p, pfx,hLOG) BCMRDAT_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMRDAT
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMWDAT biu (4,4)
/// ###
/// * BCM read 64-bit data from HW device, and forward it to dHub write data queue.
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 16 size
/// ###
/// * Number of byte from DDR. Should be bus transaction aligned
/// ###
/// %unsigned 2 mode
/// : byte 0x0
/// : word 0x1
/// : dword 0x2
/// ###
/// * Mode defines the bus transaction size.
/// ###
/// %unsigned 1 endian
/// : little_endian 0x0
/// : big_endian 0x1
/// ###
/// * Defines the endianess of the byte inside one bus transaction.
/// ###
/// %unsigned 1 last
/// ###
/// * 1: it will notify arbiter to release the bus after the completion of this instruction.
/// ###
/// %unsigned 5 cUpdId
/// ###
/// * Consumer update ID. A non-zero value will trigger the semaphore consumer update after the command finish.
/// * Will be used to generate the dma_ack signal for apb devices.
/// ###
/// %unsigned 7 rsvd0
/// ###
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 28 devAdr
/// ###
/// * The target register or memory address. --> dHub.WDat[31:0]
/// ###
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMWDAT
#define h_BCMWDAT (){}
#define BA_BCMWDAT_size 0x0000
#define B16BCMWDAT_size 0x0000
#define LSb32BCMWDAT_size 0
#define LSb16BCMWDAT_size 0
#define bBCMWDAT_size 16
#define MSK32BCMWDAT_size 0x0000FFFF
#define BA_BCMWDAT_mode 0x0002
#define B16BCMWDAT_mode 0x0002
#define LSb32BCMWDAT_mode 16
#define LSb16BCMWDAT_mode 0
#define bBCMWDAT_mode 2
#define MSK32BCMWDAT_mode 0x00030000
#define BCMWDAT_mode_byte 0x0
#define BCMWDAT_mode_word 0x1
#define BCMWDAT_mode_dword 0x2
#define BA_BCMWDAT_endian 0x0002
#define B16BCMWDAT_endian 0x0002
#define LSb32BCMWDAT_endian 18
#define LSb16BCMWDAT_endian 2
#define bBCMWDAT_endian 1
#define MSK32BCMWDAT_endian 0x00040000
#define BCMWDAT_endian_little_endian 0x0
#define BCMWDAT_endian_big_endian 0x1
#define BA_BCMWDAT_last 0x0002
#define B16BCMWDAT_last 0x0002
#define LSb32BCMWDAT_last 19
#define LSb16BCMWDAT_last 3
#define bBCMWDAT_last 1
#define MSK32BCMWDAT_last 0x00080000
#define BA_BCMWDAT_cUpdId 0x0002
#define B16BCMWDAT_cUpdId 0x0002
#define LSb32BCMWDAT_cUpdId 20
#define LSb16BCMWDAT_cUpdId 4
#define bBCMWDAT_cUpdId 5
#define MSK32BCMWDAT_cUpdId 0x01F00000
#define BA_BCMWDAT_rsvd0 0x0003
#define B16BCMWDAT_rsvd0 0x0002
#define LSb32BCMWDAT_rsvd0 25
#define LSb16BCMWDAT_rsvd0 9
#define bBCMWDAT_rsvd0 7
#define MSK32BCMWDAT_rsvd0 0xFE000000
///////////////////////////////////////////////////////////
#define BA_BCMWDAT_devAdr 0x0004
#define B16BCMWDAT_devAdr 0x0004
#define LSb32BCMWDAT_devAdr 0
#define LSb16BCMWDAT_devAdr 0
#define bBCMWDAT_devAdr 28
#define MSK32BCMWDAT_devAdr 0x0FFFFFFF
#define BA_BCMWDAT_hdr 0x0007
#define B16BCMWDAT_hdr 0x0006
#define LSb32BCMWDAT_hdr 28
#define LSb16BCMWDAT_hdr 12
#define bBCMWDAT_hdr 4
#define MSK32BCMWDAT_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMWDAT {
///////////////////////////////////////////////////////////
#define GET32BCMWDAT_size(r32) _BFGET_(r32,15, 0)
#define SET32BCMWDAT_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16BCMWDAT_size(r16) _BFGET_(r16,15, 0)
#define SET16BCMWDAT_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32BCMWDAT_mode(r32) _BFGET_(r32,17,16)
#define SET32BCMWDAT_mode(r32,v) _BFSET_(r32,17,16,v)
#define GET16BCMWDAT_mode(r16) _BFGET_(r16, 1, 0)
#define SET16BCMWDAT_mode(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32BCMWDAT_endian(r32) _BFGET_(r32,18,18)
#define SET32BCMWDAT_endian(r32,v) _BFSET_(r32,18,18,v)
#define GET16BCMWDAT_endian(r16) _BFGET_(r16, 2, 2)
#define SET16BCMWDAT_endian(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32BCMWDAT_last(r32) _BFGET_(r32,19,19)
#define SET32BCMWDAT_last(r32,v) _BFSET_(r32,19,19,v)
#define GET16BCMWDAT_last(r16) _BFGET_(r16, 3, 3)
#define SET16BCMWDAT_last(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32BCMWDAT_cUpdId(r32) _BFGET_(r32,24,20)
#define SET32BCMWDAT_cUpdId(r32,v) _BFSET_(r32,24,20,v)
#define GET16BCMWDAT_cUpdId(r16) _BFGET_(r16, 8, 4)
#define SET16BCMWDAT_cUpdId(r16,v) _BFSET_(r16, 8, 4,v)
#define GET32BCMWDAT_rsvd0(r32) _BFGET_(r32,31,25)
#define SET32BCMWDAT_rsvd0(r32,v) _BFSET_(r32,31,25,v)
#define GET16BCMWDAT_rsvd0(r16) _BFGET_(r16,15, 9)
#define SET16BCMWDAT_rsvd0(r16,v) _BFSET_(r16,15, 9,v)
UNSG32 u_size : 16;
UNSG32 u_mode : 2;
UNSG32 u_endian : 1;
UNSG32 u_last : 1;
UNSG32 u_cUpdId : 5;
UNSG32 u_rsvd0 : 7;
///////////////////////////////////////////////////////////
#define GET32BCMWDAT_devAdr(r32) _BFGET_(r32,27, 0)
#define SET32BCMWDAT_devAdr(r32,v) _BFSET_(r32,27, 0,v)
#define GET32BCMWDAT_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMWDAT_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMWDAT_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMWDAT_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_devAdr : 28;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMWDAT;
///////////////////////////////////////////////////////////
SIGN32 BCMWDAT_drvrd(SIE_BCMWDAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMWDAT_drvwr(SIE_BCMWDAT *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMWDAT_reset(SIE_BCMWDAT *p);
SIGN32 BCMWDAT_cmp (SIE_BCMWDAT *p, SIE_BCMWDAT *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMWDAT_check(p,pie,pfx,hLOG) BCMWDAT_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMWDAT_print(p, pfx,hLOG) BCMWDAT_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMWDAT
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMRCMD biu (4,4)
/// ###
/// * One instruction used to generate the dHub command for read data channel.
/// * The semID in this instruction is used to access the semaphore block inside dHub
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 32 ddrAdr
/// ###
/// * Start address of the read data buffer.
/// * 64-bit qword aligned byte address.
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 16 size
/// ###
/// * Number of bytes that will be transferred from DDR to dHub.
/// ###
/// %unsigned 5 chkSemId
/// ###
/// * ID of semaphore to check before command execution.
/// * Only the first 32 semaphore can be used.
/// * Consumer check.
/// ###
/// %unsigned 5 updSemId
/// ###
/// * ID of semaphore to update after command finish
/// * Only the first 32 semaphore can be used.
/// * Consumer update.
/// ###
/// %unsigned 2 rsvd
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMRCMD
#define h_BCMRCMD (){}
#define BA_BCMRCMD_ddrAdr 0x0000
#define B16BCMRCMD_ddrAdr 0x0000
#define LSb32BCMRCMD_ddrAdr 0
#define LSb16BCMRCMD_ddrAdr 0
#define bBCMRCMD_ddrAdr 32
#define MSK32BCMRCMD_ddrAdr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define BA_BCMRCMD_size 0x0004
#define B16BCMRCMD_size 0x0004
#define LSb32BCMRCMD_size 0
#define LSb16BCMRCMD_size 0
#define bBCMRCMD_size 16
#define MSK32BCMRCMD_size 0x0000FFFF
#define BA_BCMRCMD_chkSemId 0x0006
#define B16BCMRCMD_chkSemId 0x0006
#define LSb32BCMRCMD_chkSemId 16
#define LSb16BCMRCMD_chkSemId 0
#define bBCMRCMD_chkSemId 5
#define MSK32BCMRCMD_chkSemId 0x001F0000
#define BA_BCMRCMD_updSemId 0x0006
#define B16BCMRCMD_updSemId 0x0006
#define LSb32BCMRCMD_updSemId 21
#define LSb16BCMRCMD_updSemId 5
#define bBCMRCMD_updSemId 5
#define MSK32BCMRCMD_updSemId 0x03E00000
#define BA_BCMRCMD_rsvd 0x0007
#define B16BCMRCMD_rsvd 0x0006
#define LSb32BCMRCMD_rsvd 26
#define LSb16BCMRCMD_rsvd 10
#define bBCMRCMD_rsvd 2
#define MSK32BCMRCMD_rsvd 0x0C000000
#define BA_BCMRCMD_hdr 0x0007
#define B16BCMRCMD_hdr 0x0006
#define LSb32BCMRCMD_hdr 28
#define LSb16BCMRCMD_hdr 12
#define bBCMRCMD_hdr 4
#define MSK32BCMRCMD_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMRCMD {
///////////////////////////////////////////////////////////
#define GET32BCMRCMD_ddrAdr(r32) _BFGET_(r32,31, 0)
#define SET32BCMRCMD_ddrAdr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_ddrAdr : 32;
///////////////////////////////////////////////////////////
#define GET32BCMRCMD_size(r32) _BFGET_(r32,15, 0)
#define SET32BCMRCMD_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16BCMRCMD_size(r16) _BFGET_(r16,15, 0)
#define SET16BCMRCMD_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32BCMRCMD_chkSemId(r32) _BFGET_(r32,20,16)
#define SET32BCMRCMD_chkSemId(r32,v) _BFSET_(r32,20,16,v)
#define GET16BCMRCMD_chkSemId(r16) _BFGET_(r16, 4, 0)
#define SET16BCMRCMD_chkSemId(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32BCMRCMD_updSemId(r32) _BFGET_(r32,25,21)
#define SET32BCMRCMD_updSemId(r32,v) _BFSET_(r32,25,21,v)
#define GET16BCMRCMD_updSemId(r16) _BFGET_(r16, 9, 5)
#define SET16BCMRCMD_updSemId(r16,v) _BFSET_(r16, 9, 5,v)
#define GET32BCMRCMD_rsvd(r32) _BFGET_(r32,27,26)
#define SET32BCMRCMD_rsvd(r32,v) _BFSET_(r32,27,26,v)
#define GET16BCMRCMD_rsvd(r16) _BFGET_(r16,11,10)
#define SET16BCMRCMD_rsvd(r16,v) _BFSET_(r16,11,10,v)
#define GET32BCMRCMD_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMRCMD_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMRCMD_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMRCMD_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_size : 16;
UNSG32 u_chkSemId : 5;
UNSG32 u_updSemId : 5;
UNSG32 u_rsvd : 2;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMRCMD;
///////////////////////////////////////////////////////////
SIGN32 BCMRCMD_drvrd(SIE_BCMRCMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMRCMD_drvwr(SIE_BCMRCMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMRCMD_reset(SIE_BCMRCMD *p);
SIGN32 BCMRCMD_cmp (SIE_BCMRCMD *p, SIE_BCMRCMD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMRCMD_check(p,pie,pfx,hLOG) BCMRCMD_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMRCMD_print(p, pfx,hLOG) BCMRCMD_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMRCMD
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMWCMD biu (4,4)
/// ###
/// * One instruction used to generate the dHub command for write data channel.
/// * The semID in this instruction is used to access the semaphore block inside dHub
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 32 ddrAdr
/// ###
/// * Start address of the read data buffer.
/// * 64-bit qword aligned byte address.
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 16 size
/// ###
/// * Number of bytes that will be transferred from DDR to dHub.
/// ###
/// %unsigned 5 chkSemId
/// ###
/// * ID of semaphore to check before command execution.
/// * Only the first 32 semaphores inside dHub can be used.
/// ###
/// %unsigned 5 updSemId
/// ###
/// * ID of semaphore to update after command finish
/// * Only the first 32 semaphores inside can be used.
/// ###
/// %unsigned 2 rsvd
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMWCMD
#define h_BCMWCMD (){}
#define BA_BCMWCMD_ddrAdr 0x0000
#define B16BCMWCMD_ddrAdr 0x0000
#define LSb32BCMWCMD_ddrAdr 0
#define LSb16BCMWCMD_ddrAdr 0
#define bBCMWCMD_ddrAdr 32
#define MSK32BCMWCMD_ddrAdr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define BA_BCMWCMD_size 0x0004
#define B16BCMWCMD_size 0x0004
#define LSb32BCMWCMD_size 0
#define LSb16BCMWCMD_size 0
#define bBCMWCMD_size 16
#define MSK32BCMWCMD_size 0x0000FFFF
#define BA_BCMWCMD_chkSemId 0x0006
#define B16BCMWCMD_chkSemId 0x0006
#define LSb32BCMWCMD_chkSemId 16
#define LSb16BCMWCMD_chkSemId 0
#define bBCMWCMD_chkSemId 5
#define MSK32BCMWCMD_chkSemId 0x001F0000
#define BA_BCMWCMD_updSemId 0x0006
#define B16BCMWCMD_updSemId 0x0006
#define LSb32BCMWCMD_updSemId 21
#define LSb16BCMWCMD_updSemId 5
#define bBCMWCMD_updSemId 5
#define MSK32BCMWCMD_updSemId 0x03E00000
#define BA_BCMWCMD_rsvd 0x0007
#define B16BCMWCMD_rsvd 0x0006
#define LSb32BCMWCMD_rsvd 26
#define LSb16BCMWCMD_rsvd 10
#define bBCMWCMD_rsvd 2
#define MSK32BCMWCMD_rsvd 0x0C000000
#define BA_BCMWCMD_hdr 0x0007
#define B16BCMWCMD_hdr 0x0006
#define LSb32BCMWCMD_hdr 28
#define LSb16BCMWCMD_hdr 12
#define bBCMWCMD_hdr 4
#define MSK32BCMWCMD_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMWCMD {
///////////////////////////////////////////////////////////
#define GET32BCMWCMD_ddrAdr(r32) _BFGET_(r32,31, 0)
#define SET32BCMWCMD_ddrAdr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_ddrAdr : 32;
///////////////////////////////////////////////////////////
#define GET32BCMWCMD_size(r32) _BFGET_(r32,15, 0)
#define SET32BCMWCMD_size(r32,v) _BFSET_(r32,15, 0,v)
#define GET16BCMWCMD_size(r16) _BFGET_(r16,15, 0)
#define SET16BCMWCMD_size(r16,v) _BFSET_(r16,15, 0,v)
#define GET32BCMWCMD_chkSemId(r32) _BFGET_(r32,20,16)
#define SET32BCMWCMD_chkSemId(r32,v) _BFSET_(r32,20,16,v)
#define GET16BCMWCMD_chkSemId(r16) _BFGET_(r16, 4, 0)
#define SET16BCMWCMD_chkSemId(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32BCMWCMD_updSemId(r32) _BFGET_(r32,25,21)
#define SET32BCMWCMD_updSemId(r32,v) _BFSET_(r32,25,21,v)
#define GET16BCMWCMD_updSemId(r16) _BFGET_(r16, 9, 5)
#define SET16BCMWCMD_updSemId(r16,v) _BFSET_(r16, 9, 5,v)
#define GET32BCMWCMD_rsvd(r32) _BFGET_(r32,27,26)
#define SET32BCMWCMD_rsvd(r32,v) _BFSET_(r32,27,26,v)
#define GET16BCMWCMD_rsvd(r16) _BFGET_(r16,11,10)
#define SET16BCMWCMD_rsvd(r16,v) _BFSET_(r16,11,10,v)
#define GET32BCMWCMD_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMWCMD_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMWCMD_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMWCMD_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_size : 16;
UNSG32 u_chkSemId : 5;
UNSG32 u_updSemId : 5;
UNSG32 u_rsvd : 2;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMWCMD;
///////////////////////////////////////////////////////////
SIGN32 BCMWCMD_drvrd(SIE_BCMWCMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMWCMD_drvwr(SIE_BCMWCMD *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMWCMD_reset(SIE_BCMWCMD *p);
SIGN32 BCMWCMD_cmp (SIE_BCMWCMD *p, SIE_BCMWCMD *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMWCMD_check(p,pie,pfx,hLOG) BCMWCMD_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMWCMD_print(p, pfx,hLOG) BCMWCMD_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMWCMD
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMSEMA biu (4,4)
/// ###
/// * Pbridge semaphore operation, used for synchronization between dHub and HW devices.
/// * [00:31]
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// %unsigned 5 pUpdId
/// ###
/// * Producer update ID, 0 indicate no operation
/// ###
/// %unsigned 5 pChkId
/// ###
/// * Producer check ID, 0 indicate no operation
/// ###
/// %unsigned 5 cUpdId
/// ###
/// * Consumer update ID, 0 indicate no operation
/// ###
/// %unsigned 5 cChkId
/// ###
/// * Consumer check ID, 0 indicate no operation
/// ###
/// %unsigned 12 rsvd0
/// ###
/// * [32:63]
/// ###
/// @ 0x00004 (P)
/// %unsigned 28 rsvd1
/// %unsigned 4 hdr
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 64b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMSEMA
#define h_BCMSEMA (){}
#define BA_BCMSEMA_pUpdId 0x0000
#define B16BCMSEMA_pUpdId 0x0000
#define LSb32BCMSEMA_pUpdId 0
#define LSb16BCMSEMA_pUpdId 0
#define bBCMSEMA_pUpdId 5
#define MSK32BCMSEMA_pUpdId 0x0000001F
#define BA_BCMSEMA_pChkId 0x0000
#define B16BCMSEMA_pChkId 0x0000
#define LSb32BCMSEMA_pChkId 5
#define LSb16BCMSEMA_pChkId 5
#define bBCMSEMA_pChkId 5
#define MSK32BCMSEMA_pChkId 0x000003E0
#define BA_BCMSEMA_cUpdId 0x0001
#define B16BCMSEMA_cUpdId 0x0000
#define LSb32BCMSEMA_cUpdId 10
#define LSb16BCMSEMA_cUpdId 10
#define bBCMSEMA_cUpdId 5
#define MSK32BCMSEMA_cUpdId 0x00007C00
#define BA_BCMSEMA_cChkId 0x0001
#define B16BCMSEMA_cChkId 0x0000
#define LSb32BCMSEMA_cChkId 15
#define LSb16BCMSEMA_cChkId 15
#define bBCMSEMA_cChkId 5
#define MSK32BCMSEMA_cChkId 0x000F8000
#define BA_BCMSEMA_rsvd0 0x0002
#define B16BCMSEMA_rsvd0 0x0002
#define LSb32BCMSEMA_rsvd0 20
#define LSb16BCMSEMA_rsvd0 4
#define bBCMSEMA_rsvd0 12
#define MSK32BCMSEMA_rsvd0 0xFFF00000
///////////////////////////////////////////////////////////
#define BA_BCMSEMA_rsvd1 0x0004
#define B16BCMSEMA_rsvd1 0x0004
#define LSb32BCMSEMA_rsvd1 0
#define LSb16BCMSEMA_rsvd1 0
#define bBCMSEMA_rsvd1 28
#define MSK32BCMSEMA_rsvd1 0x0FFFFFFF
#define BA_BCMSEMA_hdr 0x0007
#define B16BCMSEMA_hdr 0x0006
#define LSb32BCMSEMA_hdr 28
#define LSb16BCMSEMA_hdr 12
#define bBCMSEMA_hdr 4
#define MSK32BCMSEMA_hdr 0xF0000000
///////////////////////////////////////////////////////////
typedef struct SIE_BCMSEMA {
///////////////////////////////////////////////////////////
#define GET32BCMSEMA_pUpdId(r32) _BFGET_(r32, 4, 0)
#define SET32BCMSEMA_pUpdId(r32,v) _BFSET_(r32, 4, 0,v)
#define GET16BCMSEMA_pUpdId(r16) _BFGET_(r16, 4, 0)
#define SET16BCMSEMA_pUpdId(r16,v) _BFSET_(r16, 4, 0,v)
#define GET32BCMSEMA_pChkId(r32) _BFGET_(r32, 9, 5)
#define SET32BCMSEMA_pChkId(r32,v) _BFSET_(r32, 9, 5,v)
#define GET16BCMSEMA_pChkId(r16) _BFGET_(r16, 9, 5)
#define SET16BCMSEMA_pChkId(r16,v) _BFSET_(r16, 9, 5,v)
#define GET32BCMSEMA_cUpdId(r32) _BFGET_(r32,14,10)
#define SET32BCMSEMA_cUpdId(r32,v) _BFSET_(r32,14,10,v)
#define GET16BCMSEMA_cUpdId(r16) _BFGET_(r16,14,10)
#define SET16BCMSEMA_cUpdId(r16,v) _BFSET_(r16,14,10,v)
#define GET32BCMSEMA_cChkId(r32) _BFGET_(r32,19,15)
#define SET32BCMSEMA_cChkId(r32,v) _BFSET_(r32,19,15,v)
#define GET32BCMSEMA_rsvd0(r32) _BFGET_(r32,31,20)
#define SET32BCMSEMA_rsvd0(r32,v) _BFSET_(r32,31,20,v)
#define GET16BCMSEMA_rsvd0(r16) _BFGET_(r16,15, 4)
#define SET16BCMSEMA_rsvd0(r16,v) _BFSET_(r16,15, 4,v)
UNSG32 u_pUpdId : 5;
UNSG32 u_pChkId : 5;
UNSG32 u_cUpdId : 5;
UNSG32 u_cChkId : 5;
UNSG32 u_rsvd0 : 12;
///////////////////////////////////////////////////////////
#define GET32BCMSEMA_rsvd1(r32) _BFGET_(r32,27, 0)
#define SET32BCMSEMA_rsvd1(r32,v) _BFSET_(r32,27, 0,v)
#define GET32BCMSEMA_hdr(r32) _BFGET_(r32,31,28)
#define SET32BCMSEMA_hdr(r32,v) _BFSET_(r32,31,28,v)
#define GET16BCMSEMA_hdr(r16) _BFGET_(r16,15,12)
#define SET16BCMSEMA_hdr(r16,v) _BFSET_(r16,15,12,v)
UNSG32 u_rsvd1 : 28;
UNSG32 u_hdr : 4;
///////////////////////////////////////////////////////////
} SIE_BCMSEMA;
///////////////////////////////////////////////////////////
SIGN32 BCMSEMA_drvrd(SIE_BCMSEMA *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMSEMA_drvwr(SIE_BCMSEMA *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMSEMA_reset(SIE_BCMSEMA *p);
SIGN32 BCMSEMA_cmp (SIE_BCMSEMA *p, SIE_BCMSEMA *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMSEMA_check(p,pie,pfx,hLOG) BCMSEMA_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMSEMA_print(p, pfx,hLOG) BCMSEMA_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMSEMA
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCMErrSt biu (4,4)
/// ###
/// * BCM Error status information
/// * Timeout or error response will trigger the register update and also generate a one clock cycle interrupt pulse. This will happen only when the interrupt status is “0”.
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (R-)
/// %unsigned 32 addr
/// ###
/// * When AHB master can not get the correct response or can not get response in a certain # of clock cycles. It will set this register to indicate CPU the
/// ###
/// @ 0x00004 (R-)
/// %unsigned 1 op
/// ###
/// * 0 : read
/// * 1 : write
/// * Indicate CPU whether it is a read error or write error.
/// ###
/// %unsigned 1 mode
/// : Timeout 0x0
/// ###
/// * No response in 256 cycles
/// ###
/// : Err 0x1
/// ###
/// * Error response
/// ###
/// %% 30 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 8B, bits: 34b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCMErrSt
#define h_BCMErrSt (){}
#define BA_BCMErrSt_addr 0x0000
#define B16BCMErrSt_addr 0x0000
#define LSb32BCMErrSt_addr 0
#define LSb16BCMErrSt_addr 0
#define bBCMErrSt_addr 32
#define MSK32BCMErrSt_addr 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define BA_BCMErrSt_op 0x0004
#define B16BCMErrSt_op 0x0004
#define LSb32BCMErrSt_op 0
#define LSb16BCMErrSt_op 0
#define bBCMErrSt_op 1
#define MSK32BCMErrSt_op 0x00000001
#define BA_BCMErrSt_mode 0x0004
#define B16BCMErrSt_mode 0x0004
#define LSb32BCMErrSt_mode 1
#define LSb16BCMErrSt_mode 1
#define bBCMErrSt_mode 1
#define MSK32BCMErrSt_mode 0x00000002
#define BCMErrSt_mode_Timeout 0x0
#define BCMErrSt_mode_Err 0x1
///////////////////////////////////////////////////////////
typedef struct SIE_BCMErrSt {
///////////////////////////////////////////////////////////
#define GET32BCMErrSt_addr(r32) _BFGET_(r32,31, 0)
#define SET32BCMErrSt_addr(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_addr : 32;
///////////////////////////////////////////////////////////
#define GET32BCMErrSt_op(r32) _BFGET_(r32, 0, 0)
#define SET32BCMErrSt_op(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16BCMErrSt_op(r16) _BFGET_(r16, 0, 0)
#define SET16BCMErrSt_op(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32BCMErrSt_mode(r32) _BFGET_(r32, 1, 1)
#define SET32BCMErrSt_mode(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16BCMErrSt_mode(r16) _BFGET_(r16, 1, 1)
#define SET16BCMErrSt_mode(r16,v) _BFSET_(r16, 1, 1,v)
UNSG32 u_op : 1;
UNSG32 u_mode : 1;
UNSG32 RSVDx4_b2 : 30;
///////////////////////////////////////////////////////////
} SIE_BCMErrSt;
///////////////////////////////////////////////////////////
SIGN32 BCMErrSt_drvrd(SIE_BCMErrSt *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCMErrSt_drvwr(SIE_BCMErrSt *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCMErrSt_reset(SIE_BCMErrSt *p);
SIGN32 BCMErrSt_cmp (SIE_BCMErrSt *p, SIE_BCMErrSt *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCMErrSt_check(p,pie,pfx,hLOG) BCMErrSt_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCMErrSt_print(p, pfx,hLOG) BCMErrSt_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCMErrSt
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE BCM biu (4,4)
/// ###
/// * BCM Error status information
/// * Timeout or error response will trigger the register update and also generate a one clock cycle interrupt pulse. This will happen only when the interrupt status is “0”.
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 BCMErrSt
/// $BCMErrSt BCMErrSt REG
/// @ 0x00008 base (P)
/// %unsigned 32 adr 0xF0000000
/// ###
/// * BCM base address, it will be used for the base address for the CFGW,RDAT,WDAT instructions to generate the AHB transaction address.
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 12B, bits: 66b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_BCM
#define h_BCM (){}
#define RA_BCM_BCMErrSt 0x0000
///////////////////////////////////////////////////////////
#define RA_BCM_base 0x0008
#define BA_BCM_base_adr 0x0008
#define B16BCM_base_adr 0x0008
#define LSb32BCM_base_adr 0
#define LSb16BCM_base_adr 0
#define bBCM_base_adr 32
#define MSK32BCM_base_adr 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_BCM {
///////////////////////////////////////////////////////////
SIE_BCMErrSt ie_BCMErrSt;
///////////////////////////////////////////////////////////
#define GET32BCM_base_adr(r32) _BFGET_(r32,31, 0)
#define SET32BCM_base_adr(r32,v) _BFSET_(r32,31, 0,v)
#define w32BCM_base {\
UNSG32 ubase_adr : 32;\
}
union { UNSG32 u32BCM_base;
struct w32BCM_base;
};
///////////////////////////////////////////////////////////
} SIE_BCM;
typedef union T32BCM_base
{ UNSG32 u32;
struct w32BCM_base;
} T32BCM_base;
///////////////////////////////////////////////////////////
typedef union TBCM_base
{ UNSG32 u32[1];
struct {
struct w32BCM_base;
};
} TBCM_base;
///////////////////////////////////////////////////////////
SIGN32 BCM_drvrd(SIE_BCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 BCM_drvwr(SIE_BCM *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void BCM_reset(SIE_BCM *p);
SIGN32 BCM_cmp (SIE_BCM *p, SIE_BCM *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define BCM_check(p,pie,pfx,hLOG) BCM_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define BCM_print(p, pfx,hLOG) BCM_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: BCM
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: bcm.h
////////////////////////////////////////////////////////////