blob: 1e7acdbbf3e6e273adb30826c50bb96ac0a67f39 [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: tsSS.h
////////////////////////////////////////////////////////////
#ifndef tsSS_h
#define tsSS_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 OneReg (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 OneReg (RW)
/// %unsigned 8 Byte0 0x0
/// %unsigned 8 Byte1 0x0
/// %unsigned 8 Byte2 0x0
/// %unsigned 8 Byte3 0x0
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 32b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_OneReg
#define h_OneReg (){}
#define RA_OneReg_OneReg 0x0000
#define BA_OneReg_OneReg_Byte0 0x0000
#define B16OneReg_OneReg_Byte0 0x0000
#define LSb32OneReg_OneReg_Byte0 0
#define LSb16OneReg_OneReg_Byte0 0
#define bOneReg_OneReg_Byte0 8
#define MSK32OneReg_OneReg_Byte0 0x000000FF
#define BA_OneReg_OneReg_Byte1 0x0001
#define B16OneReg_OneReg_Byte1 0x0000
#define LSb32OneReg_OneReg_Byte1 8
#define LSb16OneReg_OneReg_Byte1 8
#define bOneReg_OneReg_Byte1 8
#define MSK32OneReg_OneReg_Byte1 0x0000FF00
#define BA_OneReg_OneReg_Byte2 0x0002
#define B16OneReg_OneReg_Byte2 0x0002
#define LSb32OneReg_OneReg_Byte2 16
#define LSb16OneReg_OneReg_Byte2 0
#define bOneReg_OneReg_Byte2 8
#define MSK32OneReg_OneReg_Byte2 0x00FF0000
#define BA_OneReg_OneReg_Byte3 0x0003
#define B16OneReg_OneReg_Byte3 0x0002
#define LSb32OneReg_OneReg_Byte3 24
#define LSb16OneReg_OneReg_Byte3 8
#define bOneReg_OneReg_Byte3 8
#define MSK32OneReg_OneReg_Byte3 0xFF000000
///////////////////////////////////////////////////////////
typedef struct SIE_OneReg {
///////////////////////////////////////////////////////////
#define GET32OneReg_OneReg_Byte0(r32) _BFGET_(r32, 7, 0)
#define SET32OneReg_OneReg_Byte0(r32,v) _BFSET_(r32, 7, 0,v)
#define GET16OneReg_OneReg_Byte0(r16) _BFGET_(r16, 7, 0)
#define SET16OneReg_OneReg_Byte0(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32OneReg_OneReg_Byte1(r32) _BFGET_(r32,15, 8)
#define SET32OneReg_OneReg_Byte1(r32,v) _BFSET_(r32,15, 8,v)
#define GET16OneReg_OneReg_Byte1(r16) _BFGET_(r16,15, 8)
#define SET16OneReg_OneReg_Byte1(r16,v) _BFSET_(r16,15, 8,v)
#define GET32OneReg_OneReg_Byte2(r32) _BFGET_(r32,23,16)
#define SET32OneReg_OneReg_Byte2(r32,v) _BFSET_(r32,23,16,v)
#define GET16OneReg_OneReg_Byte2(r16) _BFGET_(r16, 7, 0)
#define SET16OneReg_OneReg_Byte2(r16,v) _BFSET_(r16, 7, 0,v)
#define GET32OneReg_OneReg_Byte3(r32) _BFGET_(r32,31,24)
#define SET32OneReg_OneReg_Byte3(r32,v) _BFSET_(r32,31,24,v)
#define GET16OneReg_OneReg_Byte3(r16) _BFGET_(r16,15, 8)
#define SET16OneReg_OneReg_Byte3(r16,v) _BFSET_(r16,15, 8,v)
#define w32OneReg_OneReg {\
UNSG32 uOneReg_Byte0 : 8;\
UNSG32 uOneReg_Byte1 : 8;\
UNSG32 uOneReg_Byte2 : 8;\
UNSG32 uOneReg_Byte3 : 8;\
}
union { UNSG32 u32OneReg_OneReg;
struct w32OneReg_OneReg;
};
///////////////////////////////////////////////////////////
} SIE_OneReg;
typedef union T32OneReg_OneReg
{ UNSG32 u32;
struct w32OneReg_OneReg;
} T32OneReg_OneReg;
///////////////////////////////////////////////////////////
typedef union TOneReg_OneReg
{ UNSG32 u32[1];
struct {
struct w32OneReg_OneReg;
};
} TOneReg_OneReg;
///////////////////////////////////////////////////////////
SIGN32 OneReg_drvrd(SIE_OneReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 OneReg_drvwr(SIE_OneReg *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void OneReg_reset(SIE_OneReg *p);
SIGN32 OneReg_cmp (SIE_OneReg *p, SIE_OneReg *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define OneReg_check(p,pie,pfx,hLOG) OneReg_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define OneReg_print(p, pfx,hLOG) OneReg_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: OneReg
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSOTP (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
/// %unsigned 1 dout 0x1
/// %unsigned 1 match 0x1
/// ###
/// * please refer to OTP Macro Document regarding to definition and programming timing about these bits.
/// ###
/// %% 26 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 20B, bits: 103b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSOTP
#define h_TSOTP (){}
#define BA_TSOTP_test 0x0000
#define B16TSOTP_test 0x0000
#define LSb32TSOTP_test 0
#define LSb16TSOTP_test 0
#define bTSOTP_test 4
#define MSK32TSOTP_test 0x0000000F
#define BA_TSOTP_rstb 0x0000
#define B16TSOTP_rstb 0x0000
#define LSb32TSOTP_rstb 4
#define LSb16TSOTP_rstb 4
#define bTSOTP_rstb 1
#define MSK32TSOTP_rstb 0x00000010
#define BA_TSOTP_csb 0x0000
#define B16TSOTP_csb 0x0000
#define LSb32TSOTP_csb 5
#define LSb16TSOTP_csb 5
#define bTSOTP_csb 1
#define MSK32TSOTP_csb 0x00000020
#define BA_TSOTP_pgmb 0x0000
#define B16TSOTP_pgmb 0x0000
#define LSb32TSOTP_pgmb 6
#define LSb16TSOTP_pgmb 6
#define bTSOTP_pgmb 1
#define MSK32TSOTP_pgmb 0x00000040
#define BA_TSOTP_sclk 0x0000
#define B16TSOTP_sclk 0x0000
#define LSb32TSOTP_sclk 7
#define LSb16TSOTP_sclk 7
#define bTSOTP_sclk 1
#define MSK32TSOTP_sclk 0x00000080
#define BA_TSOTP_load 0x0001
#define B16TSOTP_load 0x0000
#define LSb32TSOTP_load 8
#define LSb16TSOTP_load 8
#define bTSOTP_load 1
#define MSK32TSOTP_load 0x00000100
#define BA_TSOTP_pdwn 0x0001
#define B16TSOTP_pdwn 0x0000
#define LSb32TSOTP_pdwn 9
#define LSb16TSOTP_pdwn 9
#define bTSOTP_pdwn 1
#define MSK32TSOTP_pdwn 0x00000200
#define BA_TSOTP_addr 0x0001
#define B16TSOTP_addr 0x0000
#define LSb32TSOTP_addr 10
#define LSb16TSOTP_addr 10
#define bTSOTP_addr 13
#define MSK32TSOTP_addr 0x007FFC00
#define BA_TSOTP_crcchk 0x0002
#define B16TSOTP_crcchk 0x0002
#define LSb32TSOTP_crcchk 23
#define LSb16TSOTP_crcchk 7
#define bTSOTP_crcchk 8
#define MSK32TSOTP_crcchk 0x7F800000
///////////////////////////////////////////////////////////
#define BA_TSOTP_progseqcode 0x0004
#define B16TSOTP_progseqcode 0x0004
#define LSb32TSOTP_progseqcode 0
#define LSb16TSOTP_progseqcode 0
#define bTSOTP_progseqcode 1
#define MSK32TSOTP_progseqcode 0x00000001
#define BA_TSOTP_progseqcodeclk 0x0004
#define B16TSOTP_progseqcodeclk 0x0004
#define LSb32TSOTP_progseqcodeclk 1
#define LSb16TSOTP_progseqcodeclk 1
#define bTSOTP_progseqcodeclk 1
#define MSK32TSOTP_progseqcodeclk 0x00000002
///////////////////////////////////////////////////////////
#define BA_TSOTP_data0 0x0008
#define B16TSOTP_data0 0x0008
#define LSb32TSOTP_data0 0
#define LSb16TSOTP_data0 0
#define bTSOTP_data0 32
#define MSK32TSOTP_data0 0xFFFFFFFF
#define BA_TSOTP_data1 0x000C
#define B16TSOTP_data1 0x000C
#define LSb32TSOTP_data1 0
#define LSb16TSOTP_data1 0
#define bTSOTP_data1 32
#define MSK32TSOTP_data1 0xFFFFFFFF
#define BA_TSOTP_data2 0x0010
#define B16TSOTP_data2 0x0010
#define LSb32TSOTP_data2 0
#define LSb16TSOTP_data2 0
#define bTSOTP_data2 2
#define MSK32TSOTP_data2 0x00000003
#define BA_TSOTP_security 0x0010
#define B16TSOTP_security 0x0010
#define LSb32TSOTP_security 2
#define LSb16TSOTP_security 2
#define bTSOTP_security 1
#define MSK32TSOTP_security 0x00000004
#define BA_TSOTP_rddone 0x0010
#define B16TSOTP_rddone 0x0010
#define LSb32TSOTP_rddone 3
#define LSb16TSOTP_rddone 3
#define bTSOTP_rddone 1
#define MSK32TSOTP_rddone 0x00000008
#define BA_TSOTP_dout 0x0010
#define B16TSOTP_dout 0x0010
#define LSb32TSOTP_dout 4
#define LSb16TSOTP_dout 4
#define bTSOTP_dout 1
#define MSK32TSOTP_dout 0x00000010
#define BA_TSOTP_match 0x0010
#define B16TSOTP_match 0x0010
#define LSb32TSOTP_match 5
#define LSb16TSOTP_match 5
#define bTSOTP_match 1
#define MSK32TSOTP_match 0x00000020
///////////////////////////////////////////////////////////
typedef struct SIE_TSOTP {
///////////////////////////////////////////////////////////
#define GET32TSOTP_test(r32) _BFGET_(r32, 3, 0)
#define SET32TSOTP_test(r32,v) _BFSET_(r32, 3, 0,v)
#define GET16TSOTP_test(r16) _BFGET_(r16, 3, 0)
#define SET16TSOTP_test(r16,v) _BFSET_(r16, 3, 0,v)
#define GET32TSOTP_rstb(r32) _BFGET_(r32, 4, 4)
#define SET32TSOTP_rstb(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16TSOTP_rstb(r16) _BFGET_(r16, 4, 4)
#define SET16TSOTP_rstb(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32TSOTP_csb(r32) _BFGET_(r32, 5, 5)
#define SET32TSOTP_csb(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16TSOTP_csb(r16) _BFGET_(r16, 5, 5)
#define SET16TSOTP_csb(r16,v) _BFSET_(r16, 5, 5,v)
#define GET32TSOTP_pgmb(r32) _BFGET_(r32, 6, 6)
#define SET32TSOTP_pgmb(r32,v) _BFSET_(r32, 6, 6,v)
#define GET16TSOTP_pgmb(r16) _BFGET_(r16, 6, 6)
#define SET16TSOTP_pgmb(r16,v) _BFSET_(r16, 6, 6,v)
#define GET32TSOTP_sclk(r32) _BFGET_(r32, 7, 7)
#define SET32TSOTP_sclk(r32,v) _BFSET_(r32, 7, 7,v)
#define GET16TSOTP_sclk(r16) _BFGET_(r16, 7, 7)
#define SET16TSOTP_sclk(r16,v) _BFSET_(r16, 7, 7,v)
#define GET32TSOTP_load(r32) _BFGET_(r32, 8, 8)
#define SET32TSOTP_load(r32,v) _BFSET_(r32, 8, 8,v)
#define GET16TSOTP_load(r16) _BFGET_(r16, 8, 8)
#define SET16TSOTP_load(r16,v) _BFSET_(r16, 8, 8,v)
#define GET32TSOTP_pdwn(r32) _BFGET_(r32, 9, 9)
#define SET32TSOTP_pdwn(r32,v) _BFSET_(r32, 9, 9,v)
#define GET16TSOTP_pdwn(r16) _BFGET_(r16, 9, 9)
#define SET16TSOTP_pdwn(r16,v) _BFSET_(r16, 9, 9,v)
#define GET32TSOTP_addr(r32) _BFGET_(r32,22,10)
#define SET32TSOTP_addr(r32,v) _BFSET_(r32,22,10,v)
#define GET32TSOTP_crcchk(r32) _BFGET_(r32,30,23)
#define SET32TSOTP_crcchk(r32,v) _BFSET_(r32,30,23,v)
#define GET16TSOTP_crcchk(r16) _BFGET_(r16,14, 7)
#define SET16TSOTP_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 GET32TSOTP_progseqcode(r32) _BFGET_(r32, 0, 0)
#define SET32TSOTP_progseqcode(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16TSOTP_progseqcode(r16) _BFGET_(r16, 0, 0)
#define SET16TSOTP_progseqcode(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32TSOTP_progseqcodeclk(r32) _BFGET_(r32, 1, 1)
#define SET32TSOTP_progseqcodeclk(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16TSOTP_progseqcodeclk(r16) _BFGET_(r16, 1, 1)
#define SET16TSOTP_progseqcodeclk(r16,v) _BFSET_(r16, 1, 1,v)
UNSG32 u_progseqcode : 1;
UNSG32 u_progseqcodeclk : 1;
UNSG32 RSVDx4_b2 : 30;
///////////////////////////////////////////////////////////
#define GET32TSOTP_data0(r32) _BFGET_(r32,31, 0)
#define SET32TSOTP_data0(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data0 : 32;
///////////////////////////////////////////////////////////
#define GET32TSOTP_data1(r32) _BFGET_(r32,31, 0)
#define SET32TSOTP_data1(r32,v) _BFSET_(r32,31, 0,v)
UNSG32 u_data1 : 32;
///////////////////////////////////////////////////////////
#define GET32TSOTP_data2(r32) _BFGET_(r32, 1, 0)
#define SET32TSOTP_data2(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16TSOTP_data2(r16) _BFGET_(r16, 1, 0)
#define SET16TSOTP_data2(r16,v) _BFSET_(r16, 1, 0,v)
#define GET32TSOTP_security(r32) _BFGET_(r32, 2, 2)
#define SET32TSOTP_security(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16TSOTP_security(r16) _BFGET_(r16, 2, 2)
#define SET16TSOTP_security(r16,v) _BFSET_(r16, 2, 2,v)
#define GET32TSOTP_rddone(r32) _BFGET_(r32, 3, 3)
#define SET32TSOTP_rddone(r32,v) _BFSET_(r32, 3, 3,v)
#define GET16TSOTP_rddone(r16) _BFGET_(r16, 3, 3)
#define SET16TSOTP_rddone(r16,v) _BFSET_(r16, 3, 3,v)
#define GET32TSOTP_dout(r32) _BFGET_(r32, 4, 4)
#define SET32TSOTP_dout(r32,v) _BFSET_(r32, 4, 4,v)
#define GET16TSOTP_dout(r16) _BFGET_(r16, 4, 4)
#define SET16TSOTP_dout(r16,v) _BFSET_(r16, 4, 4,v)
#define GET32TSOTP_match(r32) _BFGET_(r32, 5, 5)
#define SET32TSOTP_match(r32,v) _BFSET_(r32, 5, 5,v)
#define GET16TSOTP_match(r16) _BFGET_(r16, 5, 5)
#define SET16TSOTP_match(r16,v) _BFSET_(r16, 5, 5,v)
UNSG32 u_data2 : 2;
UNSG32 u_security : 1;
UNSG32 u_rddone : 1;
UNSG32 u_dout : 1;
UNSG32 u_match : 1;
UNSG32 RSVDx10_b6 : 26;
///////////////////////////////////////////////////////////
} SIE_TSOTP;
///////////////////////////////////////////////////////////
SIGN32 TSOTP_drvrd(SIE_TSOTP *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSOTP_drvwr(SIE_TSOTP *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSOTP_reset(SIE_TSOTP *p);
SIGN32 TSOTP_cmp (SIE_TSOTP *p, SIE_TSOTP *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSOTP_check(p,pie,pfx,hLOG) TSOTP_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSOTP_print(p, pfx,hLOG) TSOTP_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSOTP
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE User_password (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 Password (P)
/// # 0x00000 Password
/// $OneReg Password REG [4]
/// ###
/// * User provided password for validation
/// ###
/// @ 0x00010 Select (P)
/// %unsigned 1 Select 0x0
/// ###
/// * 0: select password_0 for password matching
/// * 1: select password_1 for password matching
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00014 Valid (P)
/// %unsigned 1 Valid 0x0
/// ###
/// * Indicate if User_password is valid
/// * To do the password matching, user must set this register to 1, otherwise the matching will fail
/// ###
/// %% 31 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 24B, bits: 130b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_User_password
#define h_User_password (){}
#define RA_User_password_Password 0x0000
///////////////////////////////////////////////////////////
#define RA_User_password_Select 0x0010
#define BA_User_password_Select_Select 0x0010
#define B16User_password_Select_Select 0x0010
#define LSb32User_password_Select_Select 0
#define LSb16User_password_Select_Select 0
#define bUser_password_Select_Select 1
#define MSK32User_password_Select_Select 0x00000001
///////////////////////////////////////////////////////////
#define RA_User_password_Valid 0x0014
#define BA_User_password_Valid_Valid 0x0014
#define B16User_password_Valid_Valid 0x0014
#define LSb32User_password_Valid_Valid 0
#define LSb16User_password_Valid_Valid 0
#define bUser_password_Valid_Valid 1
#define MSK32User_password_Valid_Valid 0x00000001
///////////////////////////////////////////////////////////
typedef struct SIE_User_password {
///////////////////////////////////////////////////////////
SIE_OneReg ie_Password[4];
///////////////////////////////////////////////////////////
#define GET32User_password_Select_Select(r32) _BFGET_(r32, 0, 0)
#define SET32User_password_Select_Select(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16User_password_Select_Select(r16) _BFGET_(r16, 0, 0)
#define SET16User_password_Select_Select(r16,v) _BFSET_(r16, 0, 0,v)
#define w32User_password_Select {\
UNSG32 uSelect_Select : 1;\
UNSG32 RSVDx10_b1 : 31;\
}
union { UNSG32 u32User_password_Select;
struct w32User_password_Select;
};
///////////////////////////////////////////////////////////
#define GET32User_password_Valid_Valid(r32) _BFGET_(r32, 0, 0)
#define SET32User_password_Valid_Valid(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16User_password_Valid_Valid(r16) _BFGET_(r16, 0, 0)
#define SET16User_password_Valid_Valid(r16,v) _BFSET_(r16, 0, 0,v)
#define w32User_password_Valid {\
UNSG32 uValid_Valid : 1;\
UNSG32 RSVDx14_b1 : 31;\
}
union { UNSG32 u32User_password_Valid;
struct w32User_password_Valid;
};
///////////////////////////////////////////////////////////
} SIE_User_password;
typedef union T32User_password_Select
{ UNSG32 u32;
struct w32User_password_Select;
} T32User_password_Select;
typedef union T32User_password_Valid
{ UNSG32 u32;
struct w32User_password_Valid;
} T32User_password_Valid;
///////////////////////////////////////////////////////////
typedef union TUser_password_Select
{ UNSG32 u32[1];
struct {
struct w32User_password_Select;
};
} TUser_password_Select;
typedef union TUser_password_Valid
{ UNSG32 u32[1];
struct {
struct w32User_password_Valid;
};
} TUser_password_Valid;
///////////////////////////////////////////////////////////
SIGN32 User_password_drvrd(SIE_User_password *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 User_password_drvwr(SIE_User_password *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void User_password_reset(SIE_User_password *p);
SIGN32 User_password_cmp (SIE_User_password *p, SIE_User_password *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define User_password_check(p,pie,pfx,hLOG) User_password_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define User_password_print(p, pfx,hLOG) User_password_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: User_password
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSSSWrapper (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 JTAG_password_0 (P)
/// # 0x00000 Password_0
/// $OneReg Password_0 REG [4]
/// ###
/// * Golden password 0. Only SCPU can read/write it
/// ###
/// @ 0x00010 JTAG_password_1 (P)
/// # 0x00010 Password_1
/// $OneReg Password_1 REG [4]
/// ###
/// * Golden password 1. Only SCPU can read/write it
/// ###
/// @ 0x00020 JTAG_Protected (P)
/// %unsigned 2 JTAG_Protected 0x3
/// ###
/// * 00: JTAG enable
/// * 01/10: need password to enable JTAG
/// * 11: JTAG disabled
/// * Only SCPU can read/write it
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00024 JTAG_password_valid (P)
/// %unsigned 2 JTAG_password_valid 0x0
/// ###
/// * bit0: password_0 valid
/// * bit1: password_1 valid
/// * Only SCPU can read/write it
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00028 (W-)
/// # # Stuffing bytes...
/// %% 64
/// @ 0x00030 BSCAN_password_0 (P)
/// # 0x00030 BSCAN_Password_0
/// $OneReg BSCAN_Password_0 REG [4]
/// ###
/// * Golden password 0. Only SCPU can read/write it
/// ###
/// @ 0x00040 BSCAN_password_1 (P)
/// # 0x00040 BSCAN_Password_1
/// $OneReg BSCAN_Password_1 REG [4]
/// ###
/// * Golden password 1. Only SCPU can read/write it
/// ###
/// @ 0x00050 BSCAN_Protected (P)
/// %unsigned 2 BSCAN_Protected 0x3
/// ###
/// * 00: Bscan enabled
/// * 01/10: need password to enable Bcan
/// * 11: Bscan disabled
/// * Only SCPU can read/write it
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00054 BSCAN_password_valid (P)
/// %unsigned 2 BSCAN_password_valid 0x0
/// ###
/// * bit0: password_0 valid
/// * bit1: password_1 valid
/// * Only SCPU can read/write it
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00058 IceEn (P)
/// %unsigned 1 ZspIceEn 0x0
/// ###
/// * ZSP JTAG enable
/// * Open for ACPU to read
/// ###
/// %unsigned 1 Cpu0IceEn 0x1
/// ###
/// * CPU0 JTAG enable
/// * Open for ACPU to read
/// ###
/// %unsigned 1 Cpu1IceEn 0x0
/// ###
/// * CPU1 JTAG enable
/// * Open for ACPU to read
/// ###
/// %% 29 # Stuffing bits...
/// @ 0x0005C (W-)
/// # # Stuffing bytes...
/// %% 32
/// @ 0x00060 ChipID (P)
/// # 0x00060 ChipID
/// $OneReg ChipID REG [2]
/// ###
/// * Chip ID written out by SCPU. Open for ACPU to read.
/// ###
/// @ 0x00068 (W-)
/// # # Stuffing bytes...
/// %% 192
/// @ 0x00080 ACPU_Access (P)
/// %unsigned 1 TSOTP 0x1
/// ###
/// * 1: Grant the R/W access to TSOTP from ACPU
/// ###
/// %unsigned 1 TspKeyTbl 0x1
/// ###
/// * 1: Grant the R/W access to TspKeyTble from ACPU
/// ###
/// %% 30 # Stuffing bits...
/// @ 0x00084 (W-)
/// # # Stuffing bytes...
/// %% 96
/// @ 0x00090 FeatureCtrlReg (P)
/// ###
/// * Only SCPU has the R/W access
/// ###
/// %unsigned 32 V2G_Fuse 0x0
/// ###
/// * V2G FeatureCtrl register, only SCPU can R/W
/// ###
/// # 0x00094 FeatureCtrlReg1
/// %unsigned 32 Hantro_Fuse_Dec 0x0
/// ###
/// * Hantro FuseDec FeatureCtrl register, only SCPU can R/W
/// ###
/// # 0x00098 FeatureCtrlReg2
/// %unsigned 32 Hantro_Fuse_PP 0x0
/// ###
/// * Hantro Fuse PP FeatureCtrl register, only SCPU can R/W
/// ###
/// @ 0x0009C (W-)
/// # # Stuffing bytes...
/// %% 1440
/// @ 0x00150 Efuse_Read_Disable (RW-)
/// ###
/// * When 1 BCM won’t be able to access the corresponding efuse entry. One bit per entry. Once a bit is set to 1, it can’t be set back to 0 by any hardware/software means other than reset. Only BCM can access this register
/// ###
/// %unsigned 32 OTP_0_31_0 0x0
/// # 0x00154 Efuse_Read_Disable1
/// %unsigned 32 OTP_0_63_32 0x0
/// # 0x00158 Efuse_Read_Disable2
/// %unsigned 32 OTP_1_31_0 0x0
/// # 0x0015C Efuse_Read_Disable3
/// %unsigned 32 OTP_1_63_32 0x0
/// @ 0x00160 RKEKReg (P)
/// # 0x00160 RKEKReg
/// $OneReg RKEKReg REG [8]
/// ###
/// * This register is directly connected to the AES engine of BCM. This register can be accessed by BCM before it is locked.
/// ###
/// @ 0x00180 (W-)
/// # # Stuffing bytes...
/// %% 1024
/// @ 0x00200 RKEKRegReadDisable (P)
/// %unsigned 1 RKEKRegReadDisable 0x0
/// ###
/// * If RKEKRegReadDisable is set to one, BCM cannot read RKEKReg. Default value of RKEKRegReadDisable is zero. Once it is set to one, it can’t be set back to zero by any hardware/software means other than reset. Only BCM can access this register
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00204 RKEKRegWriteDisable (P)
/// %unsigned 1 RKEKRegWriteDisable 0x0
/// ###
/// * If RKEKRegWriteDisable is set to one, BCM cannot Write RKEKReg. Default value of RKEKRegWriteDisable is zero. Once it is set to one, it can’t be set back to zero by any hardware/software means other than reset. Only BCM can access this register
/// ###
/// %% 31 # Stuffing bits...
/// @ 0x00208 Berlin_DDR_Base (P)
/// %unsigned 32 Berlin_DDR_Base 0x0
/// ###
/// * This register defines the base address of Berlin’s DDR for BCM M3 to access. M3 can address a 1G space from this base. Only BCM can access this register.
/// * For M3 memory map, the following 1GB space is mapped to Berlin DDR:
/// * 32'h6000_0000~ 32'h9FFF_FFFF
/// ###
/// @ 0x0020C Berlin_SOC_Base (P)
/// %unsigned 32 Berlin_SOC_Base 0xF0000000
/// ###
/// * This register defines the base address of Berlin’s SOC for BCM M3 to access. Only BCM can access this register.
/// * For M3 memory map, the following 512MB space is mapped to Berlin SOC:
/// * 32'hD000_0000~ 32'hDFFF_FFFF
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 528B, bits: 1135b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSSSWrapper
#define h_TSSSWrapper (){}
#define RA_TSSSWrapper_JTAG_password_0 0x0000
#define RA_TSSSWrapper_Password_0 0x0000
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_JTAG_password_1 0x0010
#define RA_TSSSWrapper_Password_1 0x0010
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_JTAG_Protected 0x0020
#define BA_TSSSWrapper_JTAG_Protected_JTAG_Protected 0x0020
#define B16TSSSWrapper_JTAG_Protected_JTAG_Protected 0x0020
#define LSb32TSSSWrapper_JTAG_Protected_JTAG_Protected 0
#define LSb16TSSSWrapper_JTAG_Protected_JTAG_Protected 0
#define bTSSSWrapper_JTAG_Protected_JTAG_Protected 2
#define MSK32TSSSWrapper_JTAG_Protected_JTAG_Protected 0x00000003
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_JTAG_password_valid 0x0024
#define BA_TSSSWrapper_JTAG_password_valid_JTAG_password_valid 0x0024
#define B16TSSSWrapper_JTAG_password_valid_JTAG_password_valid 0x0024
#define LSb32TSSSWrapper_JTAG_password_valid_JTAG_password_valid 0
#define LSb16TSSSWrapper_JTAG_password_valid_JTAG_password_valid 0
#define bTSSSWrapper_JTAG_password_valid_JTAG_password_valid 2
#define MSK32TSSSWrapper_JTAG_password_valid_JTAG_password_valid 0x00000003
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_BSCAN_password_0 0x0030
#define RA_TSSSWrapper_BSCAN_Password_0 0x0030
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_BSCAN_password_1 0x0040
#define RA_TSSSWrapper_BSCAN_Password_1 0x0040
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_BSCAN_Protected 0x0050
#define BA_TSSSWrapper_BSCAN_Protected_BSCAN_Protected 0x0050
#define B16TSSSWrapper_BSCAN_Protected_BSCAN_Protected 0x0050
#define LSb32TSSSWrapper_BSCAN_Protected_BSCAN_Protected 0
#define LSb16TSSSWrapper_BSCAN_Protected_BSCAN_Protected 0
#define bTSSSWrapper_BSCAN_Protected_BSCAN_Protected 2
#define MSK32TSSSWrapper_BSCAN_Protected_BSCAN_Protected 0x00000003
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_BSCAN_password_valid 0x0054
#define BA_TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid 0x0054
#define B16TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid 0x0054
#define LSb32TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid 0
#define LSb16TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid 0
#define bTSSSWrapper_BSCAN_password_valid_BSCAN_password_valid 2
#define MSK32TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid 0x00000003
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_IceEn 0x0058
#define BA_TSSSWrapper_IceEn_ZspIceEn 0x0058
#define B16TSSSWrapper_IceEn_ZspIceEn 0x0058
#define LSb32TSSSWrapper_IceEn_ZspIceEn 0
#define LSb16TSSSWrapper_IceEn_ZspIceEn 0
#define bTSSSWrapper_IceEn_ZspIceEn 1
#define MSK32TSSSWrapper_IceEn_ZspIceEn 0x00000001
#define BA_TSSSWrapper_IceEn_Cpu0IceEn 0x0058
#define B16TSSSWrapper_IceEn_Cpu0IceEn 0x0058
#define LSb32TSSSWrapper_IceEn_Cpu0IceEn 1
#define LSb16TSSSWrapper_IceEn_Cpu0IceEn 1
#define bTSSSWrapper_IceEn_Cpu0IceEn 1
#define MSK32TSSSWrapper_IceEn_Cpu0IceEn 0x00000002
#define BA_TSSSWrapper_IceEn_Cpu1IceEn 0x0058
#define B16TSSSWrapper_IceEn_Cpu1IceEn 0x0058
#define LSb32TSSSWrapper_IceEn_Cpu1IceEn 2
#define LSb16TSSSWrapper_IceEn_Cpu1IceEn 2
#define bTSSSWrapper_IceEn_Cpu1IceEn 1
#define MSK32TSSSWrapper_IceEn_Cpu1IceEn 0x00000004
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_ChipID 0x0060
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_ACPU_Access 0x0080
#define BA_TSSSWrapper_ACPU_Access_TSOTP 0x0080
#define B16TSSSWrapper_ACPU_Access_TSOTP 0x0080
#define LSb32TSSSWrapper_ACPU_Access_TSOTP 0
#define LSb16TSSSWrapper_ACPU_Access_TSOTP 0
#define bTSSSWrapper_ACPU_Access_TSOTP 1
#define MSK32TSSSWrapper_ACPU_Access_TSOTP 0x00000001
#define BA_TSSSWrapper_ACPU_Access_TspKeyTbl 0x0080
#define B16TSSSWrapper_ACPU_Access_TspKeyTbl 0x0080
#define LSb32TSSSWrapper_ACPU_Access_TspKeyTbl 1
#define LSb16TSSSWrapper_ACPU_Access_TspKeyTbl 1
#define bTSSSWrapper_ACPU_Access_TspKeyTbl 1
#define MSK32TSSSWrapper_ACPU_Access_TspKeyTbl 0x00000002
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_FeatureCtrlReg 0x0090
#define BA_TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0x0090
#define B16TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0x0090
#define LSb32TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0
#define LSb16TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0
#define bTSSSWrapper_FeatureCtrlReg_V2G_Fuse 32
#define MSK32TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0xFFFFFFFF
#define RA_TSSSWrapper_FeatureCtrlReg1 0x0094
#define BA_TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0x0094
#define B16TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0x0094
#define LSb32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0
#define LSb16TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0
#define bTSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 32
#define MSK32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0xFFFFFFFF
#define RA_TSSSWrapper_FeatureCtrlReg2 0x0098
#define BA_TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0x0098
#define B16TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0x0098
#define LSb32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0
#define LSb16TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0
#define bTSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 32
#define MSK32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_Efuse_Read_Disable 0x0150
#define BA_TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0 0x0150
#define B16TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0 0x0150
#define LSb32TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0 0
#define LSb16TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0 0
#define bTSSSWrapper_Efuse_Read_Disable_OTP_0_31_0 32
#define MSK32TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0 0xFFFFFFFF
#define RA_TSSSWrapper_Efuse_Read_Disable1 0x0154
#define BA_TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32 0x0154
#define B16TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32 0x0154
#define LSb32TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32 0
#define LSb16TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32 0
#define bTSSSWrapper_Efuse_Read_Disable_OTP_0_63_32 32
#define MSK32TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32 0xFFFFFFFF
#define RA_TSSSWrapper_Efuse_Read_Disable2 0x0158
#define BA_TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0 0x0158
#define B16TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0 0x0158
#define LSb32TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0 0
#define LSb16TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0 0
#define bTSSSWrapper_Efuse_Read_Disable_OTP_1_31_0 32
#define MSK32TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0 0xFFFFFFFF
#define RA_TSSSWrapper_Efuse_Read_Disable3 0x015C
#define BA_TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32 0x015C
#define B16TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32 0x015C
#define LSb32TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32 0
#define LSb16TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32 0
#define bTSSSWrapper_Efuse_Read_Disable_OTP_1_63_32 32
#define MSK32TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_RKEKReg 0x0160
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_RKEKRegReadDisable 0x0200
#define BA_TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable 0x0200
#define B16TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable 0x0200
#define LSb32TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable 0
#define LSb16TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable 0
#define bTSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable 1
#define MSK32TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable 0x00000001
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_RKEKRegWriteDisable 0x0204
#define BA_TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable 0x0204
#define B16TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable 0x0204
#define LSb32TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable 0
#define LSb16TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable 0
#define bTSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable 1
#define MSK32TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable 0x00000001
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_Berlin_DDR_Base 0x0208
#define BA_TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base 0x0208
#define B16TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base 0x0208
#define LSb32TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base 0
#define LSb16TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base 0
#define bTSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base 32
#define MSK32TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base 0xFFFFFFFF
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_Berlin_SOC_Base 0x020C
#define BA_TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base 0x020C
#define B16TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base 0x020C
#define LSb32TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base 0
#define LSb16TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base 0
#define bTSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base 32
#define MSK32TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base 0xFFFFFFFF
///////////////////////////////////////////////////////////
typedef struct SIE_TSSSWrapper {
///////////////////////////////////////////////////////////
SIE_OneReg ie_Password_0[4];
///////////////////////////////////////////////////////////
SIE_OneReg ie_Password_1[4];
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_JTAG_Protected_JTAG_Protected(r32) _BFGET_(r32, 1, 0)
#define SET32TSSSWrapper_JTAG_Protected_JTAG_Protected(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16TSSSWrapper_JTAG_Protected_JTAG_Protected(r16) _BFGET_(r16, 1, 0)
#define SET16TSSSWrapper_JTAG_Protected_JTAG_Protected(r16,v) _BFSET_(r16, 1, 0,v)
#define w32TSSSWrapper_JTAG_Protected {\
UNSG32 uJTAG_Protected_JTAG_Protected : 2;\
UNSG32 RSVDx20_b2 : 30;\
}
union { UNSG32 u32TSSSWrapper_JTAG_Protected;
struct w32TSSSWrapper_JTAG_Protected;
};
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_JTAG_password_valid_JTAG_password_valid(r32) _BFGET_(r32, 1, 0)
#define SET32TSSSWrapper_JTAG_password_valid_JTAG_password_valid(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16TSSSWrapper_JTAG_password_valid_JTAG_password_valid(r16) _BFGET_(r16, 1, 0)
#define SET16TSSSWrapper_JTAG_password_valid_JTAG_password_valid(r16,v) _BFSET_(r16, 1, 0,v)
#define w32TSSSWrapper_JTAG_password_valid {\
UNSG32 uJTAG_password_valid_JTAG_password_valid : 2;\
UNSG32 RSVDx24_b2 : 30;\
}
union { UNSG32 u32TSSSWrapper_JTAG_password_valid;
struct w32TSSSWrapper_JTAG_password_valid;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx28 [8];
///////////////////////////////////////////////////////////
SIE_OneReg ie_BSCAN_Password_0[4];
///////////////////////////////////////////////////////////
SIE_OneReg ie_BSCAN_Password_1[4];
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_BSCAN_Protected_BSCAN_Protected(r32) _BFGET_(r32, 1, 0)
#define SET32TSSSWrapper_BSCAN_Protected_BSCAN_Protected(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16TSSSWrapper_BSCAN_Protected_BSCAN_Protected(r16) _BFGET_(r16, 1, 0)
#define SET16TSSSWrapper_BSCAN_Protected_BSCAN_Protected(r16,v) _BFSET_(r16, 1, 0,v)
#define w32TSSSWrapper_BSCAN_Protected {\
UNSG32 uBSCAN_Protected_BSCAN_Protected : 2;\
UNSG32 RSVDx50_b2 : 30;\
}
union { UNSG32 u32TSSSWrapper_BSCAN_Protected;
struct w32TSSSWrapper_BSCAN_Protected;
};
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid(r32) _BFGET_(r32, 1, 0)
#define SET32TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid(r32,v) _BFSET_(r32, 1, 0,v)
#define GET16TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid(r16) _BFGET_(r16, 1, 0)
#define SET16TSSSWrapper_BSCAN_password_valid_BSCAN_password_valid(r16,v) _BFSET_(r16, 1, 0,v)
#define w32TSSSWrapper_BSCAN_password_valid {\
UNSG32 uBSCAN_password_valid_BSCAN_password_valid : 2;\
UNSG32 RSVDx54_b2 : 30;\
}
union { UNSG32 u32TSSSWrapper_BSCAN_password_valid;
struct w32TSSSWrapper_BSCAN_password_valid;
};
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_IceEn_ZspIceEn(r32) _BFGET_(r32, 0, 0)
#define SET32TSSSWrapper_IceEn_ZspIceEn(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16TSSSWrapper_IceEn_ZspIceEn(r16) _BFGET_(r16, 0, 0)
#define SET16TSSSWrapper_IceEn_ZspIceEn(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32TSSSWrapper_IceEn_Cpu0IceEn(r32) _BFGET_(r32, 1, 1)
#define SET32TSSSWrapper_IceEn_Cpu0IceEn(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16TSSSWrapper_IceEn_Cpu0IceEn(r16) _BFGET_(r16, 1, 1)
#define SET16TSSSWrapper_IceEn_Cpu0IceEn(r16,v) _BFSET_(r16, 1, 1,v)
#define GET32TSSSWrapper_IceEn_Cpu1IceEn(r32) _BFGET_(r32, 2, 2)
#define SET32TSSSWrapper_IceEn_Cpu1IceEn(r32,v) _BFSET_(r32, 2, 2,v)
#define GET16TSSSWrapper_IceEn_Cpu1IceEn(r16) _BFGET_(r16, 2, 2)
#define SET16TSSSWrapper_IceEn_Cpu1IceEn(r16,v) _BFSET_(r16, 2, 2,v)
#define w32TSSSWrapper_IceEn {\
UNSG32 uIceEn_ZspIceEn : 1;\
UNSG32 uIceEn_Cpu0IceEn : 1;\
UNSG32 uIceEn_Cpu1IceEn : 1;\
UNSG32 RSVDx58_b3 : 29;\
}
union { UNSG32 u32TSSSWrapper_IceEn;
struct w32TSSSWrapper_IceEn;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx5C [4];
///////////////////////////////////////////////////////////
SIE_OneReg ie_ChipID[2];
///////////////////////////////////////////////////////////
UNSG8 RSVDx68 [24];
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_ACPU_Access_TSOTP(r32) _BFGET_(r32, 0, 0)
#define SET32TSSSWrapper_ACPU_Access_TSOTP(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16TSSSWrapper_ACPU_Access_TSOTP(r16) _BFGET_(r16, 0, 0)
#define SET16TSSSWrapper_ACPU_Access_TSOTP(r16,v) _BFSET_(r16, 0, 0,v)
#define GET32TSSSWrapper_ACPU_Access_TspKeyTbl(r32) _BFGET_(r32, 1, 1)
#define SET32TSSSWrapper_ACPU_Access_TspKeyTbl(r32,v) _BFSET_(r32, 1, 1,v)
#define GET16TSSSWrapper_ACPU_Access_TspKeyTbl(r16) _BFGET_(r16, 1, 1)
#define SET16TSSSWrapper_ACPU_Access_TspKeyTbl(r16,v) _BFSET_(r16, 1, 1,v)
#define w32TSSSWrapper_ACPU_Access {\
UNSG32 uACPU_Access_TSOTP : 1;\
UNSG32 uACPU_Access_TspKeyTbl : 1;\
UNSG32 RSVDx80_b2 : 30;\
}
union { UNSG32 u32TSSSWrapper_ACPU_Access;
struct w32TSSSWrapper_ACPU_Access;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx84 [12];
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_FeatureCtrlReg_V2G_Fuse(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_FeatureCtrlReg_V2G_Fuse(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_FeatureCtrlReg {\
UNSG32 uFeatureCtrlReg_V2G_Fuse : 32;\
}
union { UNSG32 u32TSSSWrapper_FeatureCtrlReg;
struct w32TSSSWrapper_FeatureCtrlReg;
};
#define GET32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_FeatureCtrlReg1 {\
UNSG32 uFeatureCtrlReg_Hantro_Fuse_Dec : 32;\
}
union { UNSG32 u32TSSSWrapper_FeatureCtrlReg1;
struct w32TSSSWrapper_FeatureCtrlReg1;
};
#define GET32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_FeatureCtrlReg2 {\
UNSG32 uFeatureCtrlReg_Hantro_Fuse_PP : 32;\
}
union { UNSG32 u32TSSSWrapper_FeatureCtrlReg2;
struct w32TSSSWrapper_FeatureCtrlReg2;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx9C [180];
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_Efuse_Read_Disable_OTP_0_31_0(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_Efuse_Read_Disable {\
UNSG32 uEfuse_Read_Disable_OTP_0_31_0 : 32;\
}
union { UNSG32 u32TSSSWrapper_Efuse_Read_Disable;
struct w32TSSSWrapper_Efuse_Read_Disable;
};
#define GET32TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_Efuse_Read_Disable_OTP_0_63_32(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_Efuse_Read_Disable1 {\
UNSG32 uEfuse_Read_Disable_OTP_0_63_32 : 32;\
}
union { UNSG32 u32TSSSWrapper_Efuse_Read_Disable1;
struct w32TSSSWrapper_Efuse_Read_Disable1;
};
#define GET32TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_Efuse_Read_Disable_OTP_1_31_0(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_Efuse_Read_Disable2 {\
UNSG32 uEfuse_Read_Disable_OTP_1_31_0 : 32;\
}
union { UNSG32 u32TSSSWrapper_Efuse_Read_Disable2;
struct w32TSSSWrapper_Efuse_Read_Disable2;
};
#define GET32TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_Efuse_Read_Disable_OTP_1_63_32(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_Efuse_Read_Disable3 {\
UNSG32 uEfuse_Read_Disable_OTP_1_63_32 : 32;\
}
union { UNSG32 u32TSSSWrapper_Efuse_Read_Disable3;
struct w32TSSSWrapper_Efuse_Read_Disable3;
};
///////////////////////////////////////////////////////////
SIE_OneReg ie_RKEKReg[8];
///////////////////////////////////////////////////////////
UNSG8 RSVDx180 [128];
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable(r32) _BFGET_(r32, 0, 0)
#define SET32TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable(r16) _BFGET_(r16, 0, 0)
#define SET16TSSSWrapper_RKEKRegReadDisable_RKEKRegReadDisable(r16,v) _BFSET_(r16, 0, 0,v)
#define w32TSSSWrapper_RKEKRegReadDisable {\
UNSG32 uRKEKRegReadDisable_RKEKRegReadDisable : 1;\
UNSG32 RSVDx200_b1 : 31;\
}
union { UNSG32 u32TSSSWrapper_RKEKRegReadDisable;
struct w32TSSSWrapper_RKEKRegReadDisable;
};
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable(r32) _BFGET_(r32, 0, 0)
#define SET32TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable(r32,v) _BFSET_(r32, 0, 0,v)
#define GET16TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable(r16) _BFGET_(r16, 0, 0)
#define SET16TSSSWrapper_RKEKRegWriteDisable_RKEKRegWriteDisable(r16,v) _BFSET_(r16, 0, 0,v)
#define w32TSSSWrapper_RKEKRegWriteDisable {\
UNSG32 uRKEKRegWriteDisable_RKEKRegWriteDisable : 1;\
UNSG32 RSVDx204_b1 : 31;\
}
union { UNSG32 u32TSSSWrapper_RKEKRegWriteDisable;
struct w32TSSSWrapper_RKEKRegWriteDisable;
};
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_Berlin_DDR_Base_Berlin_DDR_Base(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_Berlin_DDR_Base {\
UNSG32 uBerlin_DDR_Base_Berlin_DDR_Base : 32;\
}
union { UNSG32 u32TSSSWrapper_Berlin_DDR_Base;
struct w32TSSSWrapper_Berlin_DDR_Base;
};
///////////////////////////////////////////////////////////
#define GET32TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base(r32) _BFGET_(r32,31, 0)
#define SET32TSSSWrapper_Berlin_SOC_Base_Berlin_SOC_Base(r32,v) _BFSET_(r32,31, 0,v)
#define w32TSSSWrapper_Berlin_SOC_Base {\
UNSG32 uBerlin_SOC_Base_Berlin_SOC_Base : 32;\
}
union { UNSG32 u32TSSSWrapper_Berlin_SOC_Base;
struct w32TSSSWrapper_Berlin_SOC_Base;
};
///////////////////////////////////////////////////////////
} SIE_TSSSWrapper;
typedef union T32TSSSWrapper_JTAG_Protected
{ UNSG32 u32;
struct w32TSSSWrapper_JTAG_Protected;
} T32TSSSWrapper_JTAG_Protected;
typedef union T32TSSSWrapper_JTAG_password_valid
{ UNSG32 u32;
struct w32TSSSWrapper_JTAG_password_valid;
} T32TSSSWrapper_JTAG_password_valid;
typedef union T32TSSSWrapper_BSCAN_Protected
{ UNSG32 u32;
struct w32TSSSWrapper_BSCAN_Protected;
} T32TSSSWrapper_BSCAN_Protected;
typedef union T32TSSSWrapper_BSCAN_password_valid
{ UNSG32 u32;
struct w32TSSSWrapper_BSCAN_password_valid;
} T32TSSSWrapper_BSCAN_password_valid;
typedef union T32TSSSWrapper_IceEn
{ UNSG32 u32;
struct w32TSSSWrapper_IceEn;
} T32TSSSWrapper_IceEn;
typedef union T32TSSSWrapper_ACPU_Access
{ UNSG32 u32;
struct w32TSSSWrapper_ACPU_Access;
} T32TSSSWrapper_ACPU_Access;
typedef union T32TSSSWrapper_FeatureCtrlReg
{ UNSG32 u32;
struct w32TSSSWrapper_FeatureCtrlReg;
} T32TSSSWrapper_FeatureCtrlReg;
typedef union T32TSSSWrapper_FeatureCtrlReg1
{ UNSG32 u32;
struct w32TSSSWrapper_FeatureCtrlReg1;
} T32TSSSWrapper_FeatureCtrlReg1;
typedef union T32TSSSWrapper_FeatureCtrlReg2
{ UNSG32 u32;
struct w32TSSSWrapper_FeatureCtrlReg2;
} T32TSSSWrapper_FeatureCtrlReg2;
typedef union T32TSSSWrapper_Efuse_Read_Disable
{ UNSG32 u32;
struct w32TSSSWrapper_Efuse_Read_Disable;
} T32TSSSWrapper_Efuse_Read_Disable;
typedef union T32TSSSWrapper_Efuse_Read_Disable1
{ UNSG32 u32;
struct w32TSSSWrapper_Efuse_Read_Disable1;
} T32TSSSWrapper_Efuse_Read_Disable1;
typedef union T32TSSSWrapper_Efuse_Read_Disable2
{ UNSG32 u32;
struct w32TSSSWrapper_Efuse_Read_Disable2;
} T32TSSSWrapper_Efuse_Read_Disable2;
typedef union T32TSSSWrapper_Efuse_Read_Disable3
{ UNSG32 u32;
struct w32TSSSWrapper_Efuse_Read_Disable3;
} T32TSSSWrapper_Efuse_Read_Disable3;
typedef union T32TSSSWrapper_RKEKRegReadDisable
{ UNSG32 u32;
struct w32TSSSWrapper_RKEKRegReadDisable;
} T32TSSSWrapper_RKEKRegReadDisable;
typedef union T32TSSSWrapper_RKEKRegWriteDisable
{ UNSG32 u32;
struct w32TSSSWrapper_RKEKRegWriteDisable;
} T32TSSSWrapper_RKEKRegWriteDisable;
typedef union T32TSSSWrapper_Berlin_DDR_Base
{ UNSG32 u32;
struct w32TSSSWrapper_Berlin_DDR_Base;
} T32TSSSWrapper_Berlin_DDR_Base;
typedef union T32TSSSWrapper_Berlin_SOC_Base
{ UNSG32 u32;
struct w32TSSSWrapper_Berlin_SOC_Base;
} T32TSSSWrapper_Berlin_SOC_Base;
///////////////////////////////////////////////////////////
typedef union TTSSSWrapper_JTAG_Protected
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_JTAG_Protected;
};
} TTSSSWrapper_JTAG_Protected;
typedef union TTSSSWrapper_JTAG_password_valid
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_JTAG_password_valid;
};
} TTSSSWrapper_JTAG_password_valid;
typedef union TTSSSWrapper_BSCAN_Protected
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_BSCAN_Protected;
};
} TTSSSWrapper_BSCAN_Protected;
typedef union TTSSSWrapper_BSCAN_password_valid
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_BSCAN_password_valid;
};
} TTSSSWrapper_BSCAN_password_valid;
typedef union TTSSSWrapper_IceEn
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_IceEn;
};
} TTSSSWrapper_IceEn;
typedef union TTSSSWrapper_ACPU_Access
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_ACPU_Access;
};
} TTSSSWrapper_ACPU_Access;
typedef union TTSSSWrapper_FeatureCtrlReg
{ UNSG32 u32[3];
struct {
struct w32TSSSWrapper_FeatureCtrlReg;
struct w32TSSSWrapper_FeatureCtrlReg1;
struct w32TSSSWrapper_FeatureCtrlReg2;
};
} TTSSSWrapper_FeatureCtrlReg;
typedef union TTSSSWrapper_Efuse_Read_Disable
{ UNSG32 u32[4];
struct {
struct w32TSSSWrapper_Efuse_Read_Disable;
struct w32TSSSWrapper_Efuse_Read_Disable1;
struct w32TSSSWrapper_Efuse_Read_Disable2;
struct w32TSSSWrapper_Efuse_Read_Disable3;
};
} TTSSSWrapper_Efuse_Read_Disable;
typedef union TTSSSWrapper_RKEKRegReadDisable
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_RKEKRegReadDisable;
};
} TTSSSWrapper_RKEKRegReadDisable;
typedef union TTSSSWrapper_RKEKRegWriteDisable
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_RKEKRegWriteDisable;
};
} TTSSSWrapper_RKEKRegWriteDisable;
typedef union TTSSSWrapper_Berlin_DDR_Base
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_Berlin_DDR_Base;
};
} TTSSSWrapper_Berlin_DDR_Base;
typedef union TTSSSWrapper_Berlin_SOC_Base
{ UNSG32 u32[1];
struct {
struct w32TSSSWrapper_Berlin_SOC_Base;
};
} TTSSSWrapper_Berlin_SOC_Base;
///////////////////////////////////////////////////////////
SIGN32 TSSSWrapper_drvrd(SIE_TSSSWrapper *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSSSWrapper_drvwr(SIE_TSSSWrapper *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSSSWrapper_reset(SIE_TSSSWrapper *p);
SIGN32 TSSSWrapper_cmp (SIE_TSSSWrapper *p, SIE_TSSSWrapper *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSSSWrapper_check(p,pie,pfx,hLOG) TSSSWrapper_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSSSWrapper_print(p, pfx,hLOG) TSSSWrapper_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSSSWrapper
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE TSSS biu (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 (W-)
/// # # Stuffing bytes...
/// %% 1605632
/// @ 0x31000 TSOTP (P)
/// # 0x31000 TSOTP
/// $TSOTP TSOTP REG
/// ###
/// * Accessibility:
/// * By default both ACPU and SCPU have R/W access this region. SCPU can set register ‘ACPU_Access_TSOTP’ to 0 to disable the access from ACPU
/// ###
/// @ 0x31014 (W-)
/// # # Stuffing bytes...
/// %% 65376
/// @ 0x33000 TspKeyTbl (P)
/// # 0x33000 TspKeyTbl
/// $OneReg TspKeyTbl MEM [1024]
/// @ 0x34000 (W-)
/// # # Stuffing bytes...
/// %% 32768
/// @ 0x35000 User_password (P)
/// # 0x35000 User_password
/// $User_password User_password REG
/// ###
/// * JTAG user password registers
/// * Accessibility:
/// * Always open for ACPU to have R/W access
/// ###
/// @ 0x35018 (W-)
/// # # Stuffing bytes...
/// %% 1856
/// @ 0x35100 Bscan_User_password (P)
/// # 0x35100 Bscan_User_password
/// $User_password Bscan_User_password REG
/// ###
/// * Bscan user password registers
/// * Accessibility:
/// * Always open for ACPU to have R/W access
/// ###
/// @ 0x35118 (W-)
/// # # Stuffing bytes...
/// %% 325440
/// @ 0x3F000 Wrapper (P)
/// # 0x3F000 Wrapper
/// $TSSSWrapper Wrapper REG
/// ###
/// * wrapper registers
/// * Accessibility:
/// * Only SPU has the R/W access
/// ###
/// @ 0x3F210 (W-)
/// # # Stuffing bytes...
/// %% 28544
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 262144B, bits: 1530b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_TSSS
#define h_TSSS (){}
#define RA_TSSS_TSOTP 0x31000
///////////////////////////////////////////////////////////
#define RA_TSSS_TspKeyTbl 0x33000
///////////////////////////////////////////////////////////
#define RA_TSSS_User_password 0x35000
///////////////////////////////////////////////////////////
#define RA_TSSS_Bscan_User_password 0x35100
///////////////////////////////////////////////////////////
#define RA_TSSS_Wrapper 0x3F000
///////////////////////////////////////////////////////////
typedef struct SIE_TSSS {
///////////////////////////////////////////////////////////
UNSG8 RSVDx0 [200704];
///////////////////////////////////////////////////////////
SIE_TSOTP ie_TSOTP;
///////////////////////////////////////////////////////////
UNSG8 RSVDx31014 [8172];
///////////////////////////////////////////////////////////
SIE_OneReg ie_TspKeyTbl[1024];
///////////////////////////////////////////////////////////
UNSG8 RSVDx34000 [4096];
///////////////////////////////////////////////////////////
SIE_User_password ie_User_password;
///////////////////////////////////////////////////////////
UNSG8 RSVDx35018 [232];
///////////////////////////////////////////////////////////
SIE_User_password ie_Bscan_User_password;
///////////////////////////////////////////////////////////
UNSG8 RSVDx35118 [40680];
///////////////////////////////////////////////////////////
SIE_TSSSWrapper ie_Wrapper;
///////////////////////////////////////////////////////////
UNSG8 RSVDx3F210 [3568];
///////////////////////////////////////////////////////////
} SIE_TSSS;
///////////////////////////////////////////////////////////
SIGN32 TSSS_drvrd(SIE_TSSS *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 TSSS_drvwr(SIE_TSSS *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void TSSS_reset(SIE_TSSS *p);
SIGN32 TSSS_cmp (SIE_TSSS *p, SIE_TSSS *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define TSSS_check(p,pie,pfx,hLOG) TSSS_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define TSSS_print(p, pfx,hLOG) TSSS_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: TSSS
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: tsSS.h
////////////////////////////////////////////////////////////