blob: dc8031ea614f2ba494c54832489122cc2eeed52d [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 0x0
/// ###
/// * 00: JTAG disabled
/// * 01/10: need password to enable JTAG
/// * 11:enable JTAG
/// * 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 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...
/// @ 0x0002C (W-)
/// # # Stuffing bytes...
/// %% 32
/// @ 0x00030 ChipID (P)
/// # 0x00030 ChipID
/// $OneReg ChipID REG [2]
/// ###
/// * Chip ID written out by SCPU. Open for ACPU to read.
/// ###
/// @ 0x00038 (W-)
/// # # Stuffing bytes...
/// %% 64
/// @ 0x00040 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...
/// @ 0x00044 (W-)
/// # # Stuffing bytes...
/// %% 96
/// @ 0x00050 FeatureCtrlReg (P)
/// ###
/// * Only SCPU has the R/W access
/// ###
/// %unsigned 32 V2G_Fuse 0x0
/// ###
/// * V2G FeatureCtrl register, only SCPU can R/W
/// ###
/// # 0x00054 FeatureCtrlReg1
/// %unsigned 32 Hantro_Fuse_Dec 0x0
/// ###
/// * Hantro FuseDec FeatureCtrl register, only SCPU can R/W
/// ###
/// # 0x00058 FeatureCtrlReg2
/// %unsigned 32 Hantro_Fuse_PP 0x0
/// ###
/// * Hantro Fuse PP FeatureCtrl register, only SCPU can R/W
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 92B, bits: 425b, 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_IceEn 0x0028
#define BA_TSSSWrapper_IceEn_ZspIceEn 0x0028
#define B16TSSSWrapper_IceEn_ZspIceEn 0x0028
#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 0x0028
#define B16TSSSWrapper_IceEn_Cpu0IceEn 0x0028
#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 0x0028
#define B16TSSSWrapper_IceEn_Cpu1IceEn 0x0028
#define LSb32TSSSWrapper_IceEn_Cpu1IceEn 2
#define LSb16TSSSWrapper_IceEn_Cpu1IceEn 2
#define bTSSSWrapper_IceEn_Cpu1IceEn 1
#define MSK32TSSSWrapper_IceEn_Cpu1IceEn 0x00000004
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_ChipID 0x0030
///////////////////////////////////////////////////////////
#define RA_TSSSWrapper_ACPU_Access 0x0040
#define BA_TSSSWrapper_ACPU_Access_TSOTP 0x0040
#define B16TSSSWrapper_ACPU_Access_TSOTP 0x0040
#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 0x0040
#define B16TSSSWrapper_ACPU_Access_TspKeyTbl 0x0040
#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 0x0050
#define BA_TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0x0050
#define B16TSSSWrapper_FeatureCtrlReg_V2G_Fuse 0x0050
#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 0x0054
#define BA_TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0x0054
#define B16TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_Dec 0x0054
#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 0x0058
#define BA_TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0x0058
#define B16TSSSWrapper_FeatureCtrlReg_Hantro_Fuse_PP 0x0058
#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
///////////////////////////////////////////////////////////
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;
};
///////////////////////////////////////////////////////////
#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 RSVDx28_b3 : 29;\
}
union { UNSG32 u32TSSSWrapper_IceEn;
struct w32TSSSWrapper_IceEn;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx2C [4];
///////////////////////////////////////////////////////////
SIE_OneReg ie_ChipID[2];
///////////////////////////////////////////////////////////
UNSG8 RSVDx38 [8];
///////////////////////////////////////////////////////////
#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 RSVDx40_b2 : 30;\
}
union { UNSG32 u32TSSSWrapper_ACPU_Access;
struct w32TSSSWrapper_ACPU_Access;
};
///////////////////////////////////////////////////////////
UNSG8 RSVDx44 [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;
};
///////////////////////////////////////////////////////////
} 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_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 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_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;
///////////////////////////////////////////////////////////
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
/// ###
/// * DFT user password registers
/// * Accessibility:
/// * Always open for ACPU to have R/W access
/// ###
/// @ 0x35018 (W-)
/// # # Stuffing bytes...
/// %% 327488
/// @ 0x3F000 Wrapper (P)
/// # 0x3F000 Wrapper
/// $TSSSWrapper Wrapper REG
/// ###
/// * wrapper registers
/// * Accessibility:
/// * Only SPU has the R/W access
/// ###
/// @ 0x3F05C (W-)
/// # # Stuffing bytes...
/// %% 32032
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 262144B, bits: 690b, 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_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 [40936];
///////////////////////////////////////////////////////////
SIE_TSSSWrapper ie_Wrapper;
///////////////////////////////////////////////////////////
UNSG8 RSVDx3F05C [4004];
///////////////////////////////////////////////////////////
} 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
////////////////////////////////////////////////////////////