blob: 8e7f8abf788305d043180373572cc8809a9873a2 [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: DataStreamer.h
////////////////////////////////////////////////////////////
#ifndef DataStreamer_h
#define DataStreamer_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 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
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: DataStreamer.h
////////////////////////////////////////////////////////////