blob: e5c8d7ac3eee17a120b589c1571360cb95a53431 [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: SecureAccess.h
////////////////////////////////////////////////////////////
#ifndef SecureAccess_h
#define SecureAccess_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 seSetting (4,4)
/// # # ----------------------------------------------------------
/// @ 0x00000 setting (P)
/// ###
/// * Access Control Register
/// ###
/// %unsigned 16 startAddr3116 0x0
/// ###
/// * The starting address[31:16] of access control region. The address has to be region-size aligned
/// ###
/// %unsigned 4 regionSize 0x0
/// : size64KB 0x0
/// : size128KB 0x1
/// : size256KB 0x2
/// : size512KB 0x3
/// : size1MB 0x4
/// : size2MB 0x5
/// : size4MB 0x6
/// : size8MB 0x7
/// : size16MB 0x8
/// : size32MB 0x9
/// : size64MB 0xA
/// : size128MB 0xB
/// : size256MB 0xC
/// : size512MB 0xD
/// ###
/// * size of protection region
/// ###
/// %unsigned 1 enable 0x0
/// ###
/// * 1'b1: The access control is enabled as specified by starting address and region size.
/// * 1'b0: The access control is disabled
/// ###
/// %% 11 # Stuffing bits...
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 4B, bits: 21b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_seSetting
#define h_seSetting (){}
#define RA_seSetting_setting 0x0000
#define BA_seSetting_setting_startAddr3116 0x0000
#define B16seSetting_setting_startAddr3116 0x0000
#define LSb32seSetting_setting_startAddr3116 0
#define LSb16seSetting_setting_startAddr3116 0
#define bseSetting_setting_startAddr3116 16
#define MSK32seSetting_setting_startAddr3116 0x0000FFFF
#define BA_seSetting_setting_regionSize 0x0002
#define B16seSetting_setting_regionSize 0x0002
#define LSb32seSetting_setting_regionSize 16
#define LSb16seSetting_setting_regionSize 0
#define bseSetting_setting_regionSize 4
#define MSK32seSetting_setting_regionSize 0x000F0000
#define seSetting_setting_regionSize_size64KB 0x0
#define seSetting_setting_regionSize_size128KB 0x1
#define seSetting_setting_regionSize_size256KB 0x2
#define seSetting_setting_regionSize_size512KB 0x3
#define seSetting_setting_regionSize_size1MB 0x4
#define seSetting_setting_regionSize_size2MB 0x5
#define seSetting_setting_regionSize_size4MB 0x6
#define seSetting_setting_regionSize_size8MB 0x7
#define seSetting_setting_regionSize_size16MB 0x8
#define seSetting_setting_regionSize_size32MB 0x9
#define seSetting_setting_regionSize_size64MB 0xA
#define seSetting_setting_regionSize_size128MB 0xB
#define seSetting_setting_regionSize_size256MB 0xC
#define seSetting_setting_regionSize_size512MB 0xD
#define BA_seSetting_setting_enable 0x0002
#define B16seSetting_setting_enable 0x0002
#define LSb32seSetting_setting_enable 20
#define LSb16seSetting_setting_enable 4
#define bseSetting_setting_enable 1
#define MSK32seSetting_setting_enable 0x00100000
///////////////////////////////////////////////////////////
typedef struct SIE_seSetting {
///////////////////////////////////////////////////////////
#define GET32seSetting_setting_startAddr3116(r32) _BFGET_(r32,15, 0)
#define SET32seSetting_setting_startAddr3116(r32,v) _BFSET_(r32,15, 0,v)
#define GET16seSetting_setting_startAddr3116(r16) _BFGET_(r16,15, 0)
#define SET16seSetting_setting_startAddr3116(r16,v) _BFSET_(r16,15, 0,v)
#define GET32seSetting_setting_regionSize(r32) _BFGET_(r32,19,16)
#define SET32seSetting_setting_regionSize(r32,v) _BFSET_(r32,19,16,v)
#define GET16seSetting_setting_regionSize(r16) _BFGET_(r16, 3, 0)
#define SET16seSetting_setting_regionSize(r16,v) _BFSET_(r16, 3, 0,v)
#define GET32seSetting_setting_enable(r32) _BFGET_(r32,20,20)
#define SET32seSetting_setting_enable(r32,v) _BFSET_(r32,20,20,v)
#define GET16seSetting_setting_enable(r16) _BFGET_(r16, 4, 4)
#define SET16seSetting_setting_enable(r16,v) _BFSET_(r16, 4, 4,v)
#define w32seSetting_setting {\
UNSG32 usetting_startAddr3116 : 16;\
UNSG32 usetting_regionSize : 4;\
UNSG32 usetting_enable : 1;\
UNSG32 RSVDx0_b21 : 11;\
}
union { UNSG32 u32seSetting_setting;
struct w32seSetting_setting;
};
///////////////////////////////////////////////////////////
} SIE_seSetting;
typedef union T32seSetting_setting
{ UNSG32 u32;
struct w32seSetting_setting;
} T32seSetting_setting;
///////////////////////////////////////////////////////////
typedef union TseSetting_setting
{ UNSG32 u32[1];
struct {
struct w32seSetting_setting;
};
} TseSetting_setting;
///////////////////////////////////////////////////////////
SIGN32 seSetting_drvrd(SIE_seSetting *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 seSetting_drvwr(SIE_seSetting *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void seSetting_reset(SIE_seSetting *p);
SIGN32 seSetting_cmp (SIE_seSetting *p, SIE_seSetting *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define seSetting_check(p,pie,pfx,hLOG) seSetting_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define seSetting_print(p, pfx,hLOG) seSetting_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: seSetting
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE seRegion biu (4,4)
/// ###
/// * Access Control Registers
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 CTRL0
/// $seSetting CTRL0 REG
/// ###
/// * Region 0 access control register
/// ###
/// @ 0x00004 (P)
/// # 0x00004 CTRL1
/// $seSetting CTRL1 REG
/// ###
/// * Region 1 access control register
/// ###
/// @ 0x00008 (P)
/// # 0x00008 CTRL2
/// $seSetting CTRL2 REG
/// ###
/// * Region 2 access control register
/// ###
/// @ 0x0000C (P)
/// # 0x0000C CTRL3
/// $seSetting CTRL3 REG
/// ###
/// * Region 3 access control register
/// ###
/// @ 0x00010 (P)
/// # 0x00010 CTRL4
/// $seSetting CTRL4 REG
/// ###
/// * Region 4 access control register
/// ###
/// @ 0x00014 (P)
/// # 0x00014 CTRL5
/// $seSetting CTRL5 REG
/// ###
/// * Region 5 access control register
/// ###
/// @ 0x00018 (P)
/// # 0x00018 CTRL6
/// $seSetting CTRL6 REG
/// ###
/// * Region 6 access control register
/// ###
/// @ 0x0001C (P)
/// # 0x0001C CTRL7
/// $seSetting CTRL7 REG
/// ###
/// * Region 7 access control register
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 32B, bits: 168b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_seRegion
#define h_seRegion (){}
#define RA_seRegion_CTRL0 0x0000
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL1 0x0004
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL2 0x0008
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL3 0x000C
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL4 0x0010
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL5 0x0014
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL6 0x0018
///////////////////////////////////////////////////////////
#define RA_seRegion_CTRL7 0x001C
///////////////////////////////////////////////////////////
typedef struct SIE_seRegion {
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL0;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL1;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL2;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL3;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL4;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL5;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL6;
///////////////////////////////////////////////////////////
SIE_seSetting ie_CTRL7;
///////////////////////////////////////////////////////////
} SIE_seRegion;
///////////////////////////////////////////////////////////
SIGN32 seRegion_drvrd(SIE_seRegion *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 seRegion_drvwr(SIE_seRegion *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void seRegion_reset(SIE_seRegion *p);
SIGN32 seRegion_cmp (SIE_seRegion *p, SIE_seRegion *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define seRegion_check(p,pie,pfx,hLOG) seRegion_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define seRegion_print(p, pfx,hLOG) seRegion_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: seRegion
////////////////////////////////////////////////////////////
//////
///
/// $INTERFACE ACCTX (4,4)
/// ###
/// * Access control setting for Berlin
/// ###
/// # # ----------------------------------------------------------
/// @ 0x00000 (P)
/// # 0x00000 CPU0WMEM
/// $seRegion CPU0WMEM REG
/// ###
/// * Access control for CPU0 write accessing system memory
/// ###
/// @ 0x00020 (P)
/// # 0x00020 CPU0RMEM
/// $seRegion CPU0RMEM REG
/// ###
/// * Access control for CPU0 read accessing system memory
/// ###
/// @ 0x00040 (P)
/// # 0x00040 PERIFMSTWMEM
/// $seRegion PERIFMSTWMEM REG
/// ###
/// * Access control for Peripheral write accessing system memory
/// ###
/// @ 0x00060 (P)
/// # 0x00060 PERIFMSTRMEM
/// $seRegion PERIFMSTRMEM REG
/// ###
/// * Access control for Peripheral read accessing system memory
/// ###
/// # # ----------------------------------------------------------
/// $ENDOFINTERFACE # size: 128B, bits: 672b, padding: 0B
////////////////////////////////////////////////////////////
#ifndef h_ACCTX
#define h_ACCTX (){}
#define RA_ACCTX_CPU0WMEM 0x0000
///////////////////////////////////////////////////////////
#define RA_ACCTX_CPU0RMEM 0x0020
///////////////////////////////////////////////////////////
#define RA_ACCTX_PERIFMSTWMEM 0x0040
///////////////////////////////////////////////////////////
#define RA_ACCTX_PERIFMSTRMEM 0x0060
///////////////////////////////////////////////////////////
typedef struct SIE_ACCTX {
///////////////////////////////////////////////////////////
SIE_seRegion ie_CPU0WMEM;
///////////////////////////////////////////////////////////
SIE_seRegion ie_CPU0RMEM;
///////////////////////////////////////////////////////////
SIE_seRegion ie_PERIFMSTWMEM;
///////////////////////////////////////////////////////////
SIE_seRegion ie_PERIFMSTRMEM;
///////////////////////////////////////////////////////////
} SIE_ACCTX;
///////////////////////////////////////////////////////////
SIGN32 ACCTX_drvrd(SIE_ACCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst);
SIGN32 ACCTX_drvwr(SIE_ACCTX *p, UNSG32 base, SIGN32 mem, SIGN32 tst, UNSG32 *pcmd);
void ACCTX_reset(SIE_ACCTX *p);
SIGN32 ACCTX_cmp (SIE_ACCTX *p, SIE_ACCTX *pie, char *pfx, void *hLOG, SIGN32 mem, SIGN32 tst);
#define ACCTX_check(p,pie,pfx,hLOG) ACCTX_cmp(p,pie,pfx,(void*)(hLOG),0,0)
#define ACCTX_print(p, pfx,hLOG) ACCTX_cmp(p,0, pfx,(void*)(hLOG),0,0)
#endif
//////
/// ENDOFINTERFACE: ACCTX
////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif
#pragma pack()
#endif
//////
/// ENDOFFILE: SecureAccess.h
////////////////////////////////////////////////////////////