Files
xiuos/Ubiquitous/XiZi_AIoT/services/boards/imx6q-sabrelite/include/registers/regssjc.h
T
2023-04-07 16:23:09 +08:00

851 lines
31 KiB
C

/*
* Copyright (c) 2012, Freescale Semiconductor, Inc.
* All rights reserved.
*
* THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
* SHALL FREESCALE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*/
/*
* WARNING! DO NOT EDIT THIS FILE DIRECTLY!
*
* This file was generated automatically and any changes may be lost.
*/
#ifndef __HW_SJC_REGISTERS_H__
#define __HW_SJC_REGISTERS_H__
#include "regs.h"
/*
* i.MX6DQ SJC
*
* SJC Registers
*
* Registers defined in this header file:
* - HW_SJC_GPUSR1 - General Purpose Unsecured Status Register 1
* - HW_SJC_GPUSR2 - General Purpose Unsecured Status Register 2
* - HW_SJC_GPUSR3 - General Purpose Unsecured Status Register 3
* - HW_SJC_GPSSR - General Purpose Secured Status Register
* - HW_SJC_DCR - Debug Control Register
* - HW_SJC_SSR - Security Status Register
* - HW_SJC_GPCCR - General Purpose Clocks Control Register
*
* - hw_sjc_t - Struct containing all module registers.
*/
//! @name Module base addresses
//@{
#ifndef REGS_SJC_BASE
#define HW_SJC_INSTANCE_COUNT (1) //!< Number of instances of the SJC module.
#define REGS_SJC_BASE (0x00000000) //!< Base address for SJC.
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_GPUSR1 - General Purpose Unsecured Status Register 1
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_GPUSR1 - General Purpose Unsecured Status Register 1 (RO)
*
* Reset value: 0x00000000
*
* The General Purpose Unsecured Status Register 1 is a read only registers used to check the status
* of the different Cores and of the PLL. The rest of its bits are for general purpose use.
*/
typedef union _hw_sjc_gpusr1
{
reg32_t U;
struct _hw_sjc_gpusr1_bitfields
{
unsigned A_DBG : 1; //!< [0] ARM core debug status bit
unsigned A_WFI : 1; //!< [1] ARM core wait-for interrupt bit
unsigned S_STAT : 3; //!< [4:2] 3 LSBits of SDMA core statusH.
unsigned RESERVED0 : 3; //!< [7:5] Reserved.
unsigned PLL_LOCK : 1; //!< [8] PLL_LOCK
unsigned RESERVED1 : 23; //!< [31:9] Reserved.
} B;
} hw_sjc_gpusr1_t;
#endif
/*!
* @name Constants and macros for entire SJC_GPUSR1 register
*/
//@{
#define HW_SJC_GPUSR1_ADDR (REGS_SJC_BASE + 0x0)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_GPUSR1 (*(volatile hw_sjc_gpusr1_t *) HW_SJC_GPUSR1_ADDR)
#define HW_SJC_GPUSR1_RD() (HW_SJC_GPUSR1.U)
#endif
//@}
/*
* constants & macros for individual SJC_GPUSR1 bitfields
*/
/*! @name Register SJC_GPUSR1, field A_DBG[0] (RO)
*
* ARM core debug status bit Bit 0 is the ARM core DBGACK (debug acknowledge) DBGACK can be
* overwritten in the ARM core DCR to force a particular DBGACK value. Consequently interpretation
* of the DBGACK value is highly dependent on the debug sequence. When this bit is HIGH, ARM core is
* in debug.
*/
//@{
#define BP_SJC_GPUSR1_A_DBG (0) //!< Bit position for SJC_GPUSR1_A_DBG.
#define BM_SJC_GPUSR1_A_DBG (0x00000001) //!< Bit mask for SJC_GPUSR1_A_DBG.
//! @brief Get value of SJC_GPUSR1_A_DBG from a register value.
#define BG_SJC_GPUSR1_A_DBG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR1_A_DBG) >> BP_SJC_GPUSR1_A_DBG)
//@}
/*! @name Register SJC_GPUSR1, field A_WFI[1] (RO)
*
* ARM core wait-for interrupt bit Bit 1 is the ARM core standbywfi (stand by wait-for interrupt).
* When this bit is HIGH, ARM core is in wait for interrupt mode.
*/
//@{
#define BP_SJC_GPUSR1_A_WFI (1) //!< Bit position for SJC_GPUSR1_A_WFI.
#define BM_SJC_GPUSR1_A_WFI (0x00000002) //!< Bit mask for SJC_GPUSR1_A_WFI.
//! @brief Get value of SJC_GPUSR1_A_WFI from a register value.
#define BG_SJC_GPUSR1_A_WFI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR1_A_WFI) >> BP_SJC_GPUSR1_A_WFI)
//@}
/*! @name Register SJC_GPUSR1, field S_STAT[4:2] (RO)
*
* 3 LSBits of SDMA core statusH.
*/
//@{
#define BP_SJC_GPUSR1_S_STAT (2) //!< Bit position for SJC_GPUSR1_S_STAT.
#define BM_SJC_GPUSR1_S_STAT (0x0000001c) //!< Bit mask for SJC_GPUSR1_S_STAT.
//! @brief Get value of SJC_GPUSR1_S_STAT from a register value.
#define BG_SJC_GPUSR1_S_STAT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR1_S_STAT) >> BP_SJC_GPUSR1_S_STAT)
//@}
/*! @name Register SJC_GPUSR1, field PLL_LOCK[8] (RO)
*
* PLL_LOCK A Combined PLL-Lock flag indicator, for all the PLL's.
*/
//@{
#define BP_SJC_GPUSR1_PLL_LOCK (8) //!< Bit position for SJC_GPUSR1_PLL_LOCK.
#define BM_SJC_GPUSR1_PLL_LOCK (0x00000100) //!< Bit mask for SJC_GPUSR1_PLL_LOCK.
//! @brief Get value of SJC_GPUSR1_PLL_LOCK from a register value.
#define BG_SJC_GPUSR1_PLL_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR1_PLL_LOCK) >> BP_SJC_GPUSR1_PLL_LOCK)
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_GPUSR2 - General Purpose Unsecured Status Register 2
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_GPUSR2 - General Purpose Unsecured Status Register 2 (RO)
*
* Reset value: 0x00000000
*/
typedef union _hw_sjc_gpusr2
{
reg32_t U;
struct _hw_sjc_gpusr2_bitfields
{
unsigned STBYWFI : 4; //!< [3:0] STBYWFI[3:0]
unsigned S_STAT : 4; //!< [7:4] S_STAT[3:0]
unsigned STBYWFE : 4; //!< [11:8] STBYWFE[3:0]
unsigned RESERVED0 : 20; //!< [31:12] Reserved
} B;
} hw_sjc_gpusr2_t;
#endif
/*!
* @name Constants and macros for entire SJC_GPUSR2 register
*/
//@{
#define HW_SJC_GPUSR2_ADDR (REGS_SJC_BASE + 0x1)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_GPUSR2 (*(volatile hw_sjc_gpusr2_t *) HW_SJC_GPUSR2_ADDR)
#define HW_SJC_GPUSR2_RD() (HW_SJC_GPUSR2.U)
#endif
//@}
/*
* constants & macros for individual SJC_GPUSR2 bitfields
*/
/*! @name Register SJC_GPUSR2, field STBYWFI[3:0] (RO)
*
* STBYWFI[3:0] These bits provide status of "Standby Wait-For-Interrupt" state of all ARM cores.
*/
//@{
#define BP_SJC_GPUSR2_STBYWFI (0) //!< Bit position for SJC_GPUSR2_STBYWFI.
#define BM_SJC_GPUSR2_STBYWFI (0x0000000f) //!< Bit mask for SJC_GPUSR2_STBYWFI.
//! @brief Get value of SJC_GPUSR2_STBYWFI from a register value.
#define BG_SJC_GPUSR2_STBYWFI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR2_STBYWFI) >> BP_SJC_GPUSR2_STBYWFI)
//@}
/*! @name Register SJC_GPUSR2, field S_STAT[7:4] (RO)
*
* S_STAT[3:0] SDMA debug status bits: debug_core_state[3:0]
*/
//@{
#define BP_SJC_GPUSR2_S_STAT (4) //!< Bit position for SJC_GPUSR2_S_STAT.
#define BM_SJC_GPUSR2_S_STAT (0x000000f0) //!< Bit mask for SJC_GPUSR2_S_STAT.
//! @brief Get value of SJC_GPUSR2_S_STAT from a register value.
#define BG_SJC_GPUSR2_S_STAT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR2_S_STAT) >> BP_SJC_GPUSR2_S_STAT)
//@}
/*! @name Register SJC_GPUSR2, field STBYWFE[11:8] (RO)
*
* STBYWFE[3:0] Reflecting the "Standby Wait For Event" signals of all cores.
*/
//@{
#define BP_SJC_GPUSR2_STBYWFE (8) //!< Bit position for SJC_GPUSR2_STBYWFE.
#define BM_SJC_GPUSR2_STBYWFE (0x00000f00) //!< Bit mask for SJC_GPUSR2_STBYWFE.
//! @brief Get value of SJC_GPUSR2_STBYWFE from a register value.
#define BG_SJC_GPUSR2_STBYWFE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR2_STBYWFE) >> BP_SJC_GPUSR2_STBYWFE)
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_GPUSR3 - General Purpose Unsecured Status Register 3
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_GPUSR3 - General Purpose Unsecured Status Register 3 (RO)
*
* Reset value: 0x00000000
*/
typedef union _hw_sjc_gpusr3
{
reg32_t U;
struct _hw_sjc_gpusr3_bitfields
{
unsigned IPG_WAIT : 1; //!< [0] IPG_WAIT
unsigned IPG_STOP : 1; //!< [1] IPG_STOP
unsigned SYS_WAIT : 1; //!< [2] System In wait
unsigned RESERVED0 : 29; //!< [31:3] Reserved
} B;
} hw_sjc_gpusr3_t;
#endif
/*!
* @name Constants and macros for entire SJC_GPUSR3 register
*/
//@{
#define HW_SJC_GPUSR3_ADDR (REGS_SJC_BASE + 0x2)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_GPUSR3 (*(volatile hw_sjc_gpusr3_t *) HW_SJC_GPUSR3_ADDR)
#define HW_SJC_GPUSR3_RD() (HW_SJC_GPUSR3.U)
#endif
//@}
/*
* constants & macros for individual SJC_GPUSR3 bitfields
*/
/*! @name Register SJC_GPUSR3, field IPG_WAIT[0] (RO)
*
* IPG_WAIT CCM's "ipg_wait" signal indication
*/
//@{
#define BP_SJC_GPUSR3_IPG_WAIT (0) //!< Bit position for SJC_GPUSR3_IPG_WAIT.
#define BM_SJC_GPUSR3_IPG_WAIT (0x00000001) //!< Bit mask for SJC_GPUSR3_IPG_WAIT.
//! @brief Get value of SJC_GPUSR3_IPG_WAIT from a register value.
#define BG_SJC_GPUSR3_IPG_WAIT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR3_IPG_WAIT) >> BP_SJC_GPUSR3_IPG_WAIT)
//@}
/*! @name Register SJC_GPUSR3, field IPG_STOP[1] (RO)
*
* IPG_STOP CCM's "ipg_stop" signal indication
*/
//@{
#define BP_SJC_GPUSR3_IPG_STOP (1) //!< Bit position for SJC_GPUSR3_IPG_STOP.
#define BM_SJC_GPUSR3_IPG_STOP (0x00000002) //!< Bit mask for SJC_GPUSR3_IPG_STOP.
//! @brief Get value of SJC_GPUSR3_IPG_STOP from a register value.
#define BG_SJC_GPUSR3_IPG_STOP(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR3_IPG_STOP) >> BP_SJC_GPUSR3_IPG_STOP)
//@}
/*! @name Register SJC_GPUSR3, field SYS_WAIT[2] (RO)
*
* System In wait Indication on System in wait mode (from CCM).
*/
//@{
#define BP_SJC_GPUSR3_SYS_WAIT (2) //!< Bit position for SJC_GPUSR3_SYS_WAIT.
#define BM_SJC_GPUSR3_SYS_WAIT (0x00000004) //!< Bit mask for SJC_GPUSR3_SYS_WAIT.
//! @brief Get value of SJC_GPUSR3_SYS_WAIT from a register value.
#define BG_SJC_GPUSR3_SYS_WAIT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPUSR3_SYS_WAIT) >> BP_SJC_GPUSR3_SYS_WAIT)
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_GPSSR - General Purpose Secured Status Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_GPSSR - General Purpose Secured Status Register (RO)
*
* Reset value: 0x00000000
*
* The General Purpose Secured Status Register is a read-only register used to check the status of
* the different critical information in the SoC. This register cannot be accessed in secure modes.
*/
typedef union _hw_sjc_gpssr
{
reg32_t U;
struct _hw_sjc_gpssr_bitfields
{
unsigned GPSSR : 32; //!< [31:0] General Purpose Secured Status Register
} B;
} hw_sjc_gpssr_t;
#endif
/*!
* @name Constants and macros for entire SJC_GPSSR register
*/
//@{
#define HW_SJC_GPSSR_ADDR (REGS_SJC_BASE + 0x3)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_GPSSR (*(volatile hw_sjc_gpssr_t *) HW_SJC_GPSSR_ADDR)
#define HW_SJC_GPSSR_RD() (HW_SJC_GPSSR.U)
#endif
//@}
/*
* constants & macros for individual SJC_GPSSR bitfields
*/
/*! @name Register SJC_GPSSR, field GPSSR[31:0] (RO)
*
* General Purpose Secured Status Register Register is used for testing and debug.
*/
//@{
#define BP_SJC_GPSSR_GPSSR (0) //!< Bit position for SJC_GPSSR_GPSSR.
#define BM_SJC_GPSSR_GPSSR (0xffffffff) //!< Bit mask for SJC_GPSSR_GPSSR.
//! @brief Get value of SJC_GPSSR_GPSSR from a register value.
#define BG_SJC_GPSSR_GPSSR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPSSR_GPSSR) >> BP_SJC_GPSSR_GPSSR)
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_DCR - Debug Control Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_DCR - Debug Control Register (RW)
*
* Reset value: 0x00000000
*
* This register is used to control propagation of debug request from DE_B pad to the cores and
* debug signals from internal logic to the DE_B pad.
*/
typedef union _hw_sjc_dcr
{
reg32_t U;
struct _hw_sjc_dcr_bitfields
{
unsigned DE_TO_ARM : 1; //!< [0] ARM platform debug request input propagation
unsigned DE_TO_SDMA : 1; //!< [1] SDMA debug request input propagation
unsigned RESERVED0 : 1; //!< [2] Reserved
unsigned DEBUG_OBS : 1; //!< [3] Debug observability
unsigned RESERVED1 : 1; //!< [4] Reserved
unsigned DIRECT_SDMA_REQ_EN : 1; //!< [5] Debug enable of the sdma debug request
unsigned DIRECT_ARM_REQ_EN : 1; //!< [6] Pass Debug Enable event from DE_B pin to ARM platform debug request signal(s).
unsigned RESERVED2 : 25; //!< [31:7] Reserved
} B;
} hw_sjc_dcr_t;
#endif
/*!
* @name Constants and macros for entire SJC_DCR register
*/
//@{
#define HW_SJC_DCR_ADDR (REGS_SJC_BASE + 0x4)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_DCR (*(volatile hw_sjc_dcr_t *) HW_SJC_DCR_ADDR)
#define HW_SJC_DCR_RD() (HW_SJC_DCR.U)
#define HW_SJC_DCR_WR(v) (HW_SJC_DCR.U = (v))
#define HW_SJC_DCR_SET(v) (HW_SJC_DCR_WR(HW_SJC_DCR_RD() | (v)))
#define HW_SJC_DCR_CLR(v) (HW_SJC_DCR_WR(HW_SJC_DCR_RD() & ~(v)))
#define HW_SJC_DCR_TOG(v) (HW_SJC_DCR_WR(HW_SJC_DCR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual SJC_DCR bitfields
*/
/*! @name Register SJC_DCR, field DE_TO_ARM[0] (RW)
*
* ARM platform debug request input propagation This bit controls the propagation of debug request
* to ARM platform ("dbgreq"), when the JTAG state machine is put in "ENTER_DEBUG" IR instruction.
*
* Values:
* - 0 - Disable propagation of debug request to ARM platform
* - 1 - Enable propagation of debug request to ARM platform
*/
//@{
#define BP_SJC_DCR_DE_TO_ARM (0) //!< Bit position for SJC_DCR_DE_TO_ARM.
#define BM_SJC_DCR_DE_TO_ARM (0x00000001) //!< Bit mask for SJC_DCR_DE_TO_ARM.
//! @brief Get value of SJC_DCR_DE_TO_ARM from a register value.
#define BG_SJC_DCR_DE_TO_ARM(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_DCR_DE_TO_ARM) >> BP_SJC_DCR_DE_TO_ARM)
//! @brief Format value for bitfield SJC_DCR_DE_TO_ARM.
#define BF_SJC_DCR_DE_TO_ARM(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_DCR_DE_TO_ARM) & BM_SJC_DCR_DE_TO_ARM)
#ifndef __LANGUAGE_ASM__
//! @brief Set the DE_TO_ARM field to a new value.
#define BW_SJC_DCR_DE_TO_ARM(v) (HW_SJC_DCR_WR((HW_SJC_DCR_RD() & ~BM_SJC_DCR_DE_TO_ARM) | BF_SJC_DCR_DE_TO_ARM(v)))
#endif
//@}
/*! @name Register SJC_DCR, field DE_TO_SDMA[1] (RW)
*
* SDMA debug request input propagation This bit controls the propagation of debug request to SDMA,
* when the JTAG state machine is put in "ENTER_DEBUG" IR instruction..
*
* Values:
* - 0 - Disable propagation of debug request to SDMA
* - 1 - Enable propagation of debug request to SDMA
*/
//@{
#define BP_SJC_DCR_DE_TO_SDMA (1) //!< Bit position for SJC_DCR_DE_TO_SDMA.
#define BM_SJC_DCR_DE_TO_SDMA (0x00000002) //!< Bit mask for SJC_DCR_DE_TO_SDMA.
//! @brief Get value of SJC_DCR_DE_TO_SDMA from a register value.
#define BG_SJC_DCR_DE_TO_SDMA(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_DCR_DE_TO_SDMA) >> BP_SJC_DCR_DE_TO_SDMA)
//! @brief Format value for bitfield SJC_DCR_DE_TO_SDMA.
#define BF_SJC_DCR_DE_TO_SDMA(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_DCR_DE_TO_SDMA) & BM_SJC_DCR_DE_TO_SDMA)
#ifndef __LANGUAGE_ASM__
//! @brief Set the DE_TO_SDMA field to a new value.
#define BW_SJC_DCR_DE_TO_SDMA(v) (HW_SJC_DCR_WR((HW_SJC_DCR_RD() & ~BM_SJC_DCR_DE_TO_SDMA) | BF_SJC_DCR_DE_TO_SDMA(v)))
#endif
//@}
/*! @name Register SJC_DCR, field DEBUG_OBS[3] (RW)
*
* Debug observability This bit controls the propagation of the "system debug" input to SJC For i.MX
* 6x, the SJC's "system_debug" input is tied to logic HIGH value, therefore, set of "debug_obs"
* bit, will result in unconditional assertion of DE_B pad.
*
* Values:
* - 0 - Disable propagation of system debug to DE pin
* - 1 - unconditional assertion of pad. DE_B
*/
//@{
#define BP_SJC_DCR_DEBUG_OBS (3) //!< Bit position for SJC_DCR_DEBUG_OBS.
#define BM_SJC_DCR_DEBUG_OBS (0x00000008) //!< Bit mask for SJC_DCR_DEBUG_OBS.
//! @brief Get value of SJC_DCR_DEBUG_OBS from a register value.
#define BG_SJC_DCR_DEBUG_OBS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_DCR_DEBUG_OBS) >> BP_SJC_DCR_DEBUG_OBS)
//! @brief Format value for bitfield SJC_DCR_DEBUG_OBS.
#define BF_SJC_DCR_DEBUG_OBS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_DCR_DEBUG_OBS) & BM_SJC_DCR_DEBUG_OBS)
#ifndef __LANGUAGE_ASM__
//! @brief Set the DEBUG_OBS field to a new value.
#define BW_SJC_DCR_DEBUG_OBS(v) (HW_SJC_DCR_WR((HW_SJC_DCR_RD() & ~BM_SJC_DCR_DEBUG_OBS) | BF_SJC_DCR_DEBUG_OBS(v)))
#endif
//@}
/*! @name Register SJC_DCR, field DIRECT_SDMA_REQ_EN[5] (RW)
*
* Debug enable of the sdma debug request This bit controls the propagation of debug request DE_B to
* the sdma.
*
* Values:
* - 0 - Disable propagation of system debug to (DE pin) to sdma.
* - 1 - Enable propagation of system debug to (DE pin) to sdma.
*/
//@{
#define BP_SJC_DCR_DIRECT_SDMA_REQ_EN (5) //!< Bit position for SJC_DCR_DIRECT_SDMA_REQ_EN.
#define BM_SJC_DCR_DIRECT_SDMA_REQ_EN (0x00000020) //!< Bit mask for SJC_DCR_DIRECT_SDMA_REQ_EN.
//! @brief Get value of SJC_DCR_DIRECT_SDMA_REQ_EN from a register value.
#define BG_SJC_DCR_DIRECT_SDMA_REQ_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_DCR_DIRECT_SDMA_REQ_EN) >> BP_SJC_DCR_DIRECT_SDMA_REQ_EN)
//! @brief Format value for bitfield SJC_DCR_DIRECT_SDMA_REQ_EN.
#define BF_SJC_DCR_DIRECT_SDMA_REQ_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_DCR_DIRECT_SDMA_REQ_EN) & BM_SJC_DCR_DIRECT_SDMA_REQ_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the DIRECT_SDMA_REQ_EN field to a new value.
#define BW_SJC_DCR_DIRECT_SDMA_REQ_EN(v) (HW_SJC_DCR_WR((HW_SJC_DCR_RD() & ~BM_SJC_DCR_DIRECT_SDMA_REQ_EN) | BF_SJC_DCR_DIRECT_SDMA_REQ_EN(v)))
#endif
//@}
/*! @name Register SJC_DCR, field DIRECT_ARM_REQ_EN[6] (RW)
*
* Pass Debug Enable event from DE_B pin to ARM platform debug request signal(s). This bit controls
* the propagation of debug request DE_B to the Arm platform.
*
* Values:
* - 0 - Disable propagation of system debug to (DE pin) to Arm platform.
* - 1 - Enable propagation of system debug to (DE pin) to Arm platform.
*/
//@{
#define BP_SJC_DCR_DIRECT_ARM_REQ_EN (6) //!< Bit position for SJC_DCR_DIRECT_ARM_REQ_EN.
#define BM_SJC_DCR_DIRECT_ARM_REQ_EN (0x00000040) //!< Bit mask for SJC_DCR_DIRECT_ARM_REQ_EN.
//! @brief Get value of SJC_DCR_DIRECT_ARM_REQ_EN from a register value.
#define BG_SJC_DCR_DIRECT_ARM_REQ_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_DCR_DIRECT_ARM_REQ_EN) >> BP_SJC_DCR_DIRECT_ARM_REQ_EN)
//! @brief Format value for bitfield SJC_DCR_DIRECT_ARM_REQ_EN.
#define BF_SJC_DCR_DIRECT_ARM_REQ_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_DCR_DIRECT_ARM_REQ_EN) & BM_SJC_DCR_DIRECT_ARM_REQ_EN)
#ifndef __LANGUAGE_ASM__
//! @brief Set the DIRECT_ARM_REQ_EN field to a new value.
#define BW_SJC_DCR_DIRECT_ARM_REQ_EN(v) (HW_SJC_DCR_WR((HW_SJC_DCR_RD() & ~BM_SJC_DCR_DIRECT_ARM_REQ_EN) | BF_SJC_DCR_DIRECT_ARM_REQ_EN(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_SSR - Security Status Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_SSR - Security Status Register (RO)
*
* Reset value: 0x100eeeaeefeceaecaeadefedbafade10feeeebfeddecfdeaadae
*/
typedef union _hw_sjc_ssr
{
reg32_t U;
struct _hw_sjc_ssr_bitfields
{
unsigned KTF : 1; //!< [0] Kill Trace Enable fuse value
unsigned KTA : 1; //!< [1] Kill Trace is active
unsigned SWF : 1; //!< [2] Software JTAG enable fuse
unsigned SWE : 1; //!< [3] SW enable
unsigned EBF : 1; //!< [4] External Boot fuse
unsigned EBG : 1; //!< [5] External boot granted
unsigned RESERVED0 : 2; //!< [7:6] Reserved.
unsigned FT : 1; //!< [8] Fuse type
unsigned SJM : 2; //!< [10:9] SJC Secure mode
unsigned RSSTAT : 2; //!< [12:11] Response status
unsigned RESERVED1 : 1; //!< [13] Reserved
unsigned BOOTIND : 1; //!< [14] Boot Indication
unsigned RESERVED2 : 17; //!< [31:15] Reserved.
} B;
} hw_sjc_ssr_t;
#endif
/*!
* @name Constants and macros for entire SJC_SSR register
*/
//@{
#define HW_SJC_SSR_ADDR (REGS_SJC_BASE + 0x5)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_SSR (*(volatile hw_sjc_ssr_t *) HW_SJC_SSR_ADDR)
#define HW_SJC_SSR_RD() (HW_SJC_SSR.U)
#endif
//@}
/*
* constants & macros for individual SJC_SSR bitfields
*/
/*! @name Register SJC_SSR, field KTF[0] (RO)
*
* Kill Trace Enable fuse value
*
* Values:
* - 0 - (intact) - kill trace is never active
* - 1 - (burned) - kill trace functionality enabled
*/
//@{
#define BP_SJC_SSR_KTF (0) //!< Bit position for SJC_SSR_KTF.
#define BM_SJC_SSR_KTF (0x00000001) //!< Bit mask for SJC_SSR_KTF.
//! @brief Get value of SJC_SSR_KTF from a register value.
#define BG_SJC_SSR_KTF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_KTF) >> BP_SJC_SSR_KTF)
//@}
/*! @name Register SJC_SSR, field KTA[1] (RO)
*
* Kill Trace is active
*
* Values:
* - 0 - not active
* - 1 - active
*/
//@{
#define BP_SJC_SSR_KTA (1) //!< Bit position for SJC_SSR_KTA.
#define BM_SJC_SSR_KTA (0x00000002) //!< Bit mask for SJC_SSR_KTA.
//! @brief Get value of SJC_SSR_KTA from a register value.
#define BG_SJC_SSR_KTA(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_KTA) >> BP_SJC_SSR_KTA)
//@}
/*! @name Register SJC_SSR, field SWF[2] (RO)
*
* Software JTAG enable fuse Status of the no SW disable JTAG fuse
*
* Values:
* - 0 - (intact) - SW enable possible
* - 1 - (intact) - no SW enable possible
*/
//@{
#define BP_SJC_SSR_SWF (2) //!< Bit position for SJC_SSR_SWF.
#define BM_SJC_SSR_SWF (0x00000004) //!< Bit mask for SJC_SSR_SWF.
//! @brief Get value of SJC_SSR_SWF from a register value.
#define BG_SJC_SSR_SWF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_SWF) >> BP_SJC_SSR_SWF)
//@}
/*! @name Register SJC_SSR, field SWE[3] (RO)
*
* SW enable SW JTAG enable status
*
* Values:
* - 0 - disabled
* - 1 - enabled
*/
//@{
#define BP_SJC_SSR_SWE (3) //!< Bit position for SJC_SSR_SWE.
#define BM_SJC_SSR_SWE (0x00000008) //!< Bit mask for SJC_SSR_SWE.
//! @brief Get value of SJC_SSR_SWE from a register value.
#define BG_SJC_SSR_SWE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_SWE) >> BP_SJC_SSR_SWE)
//@}
/*! @name Register SJC_SSR, field EBF[4] (RO)
*
* External Boot fuse Status of the external boot disable fuse
*
* Values:
* - 0 - (intact) - external boot is allowed
* - 1 - (burned) - external boot is disabled
*/
//@{
#define BP_SJC_SSR_EBF (4) //!< Bit position for SJC_SSR_EBF.
#define BM_SJC_SSR_EBF (0x00000010) //!< Bit mask for SJC_SSR_EBF.
//! @brief Get value of SJC_SSR_EBF from a register value.
#define BG_SJC_SSR_EBF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_EBF) >> BP_SJC_SSR_EBF)
//@}
/*! @name Register SJC_SSR, field EBG[5] (RO)
*
* External boot granted External boot enabled, requested and granted
*
* Values:
* - 0 - not granted
* - 1 - granted
*/
//@{
#define BP_SJC_SSR_EBG (5) //!< Bit position for SJC_SSR_EBG.
#define BM_SJC_SSR_EBG (0x00000020) //!< Bit mask for SJC_SSR_EBG.
//! @brief Get value of SJC_SSR_EBG from a register value.
#define BG_SJC_SSR_EBG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_EBG) >> BP_SJC_SSR_EBG)
//@}
/*! @name Register SJC_SSR, field FT[8] (RO)
*
* Fuse type Fuse type bit - e-fuse or laser fuse
*
* Values:
* - 0 - E-fuse technology
* - 1 - Laser fuse technology
*/
//@{
#define BP_SJC_SSR_FT (8) //!< Bit position for SJC_SSR_FT.
#define BM_SJC_SSR_FT (0x00000100) //!< Bit mask for SJC_SSR_FT.
//! @brief Get value of SJC_SSR_FT from a register value.
#define BG_SJC_SSR_FT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_FT) >> BP_SJC_SSR_FT)
//@}
/*! @name Register SJC_SSR, field SJM[10:9] (RO)
*
* SJC Secure mode Secure JTAG mode, as set by external fuses.
*
* Values:
* - 00 - No debug (#1)
* - 01 - Secure JTAG (#2)
* - 10 - Reserved
* - 11 - JTAG enabled (#3)
*/
//@{
#define BP_SJC_SSR_SJM (9) //!< Bit position for SJC_SSR_SJM.
#define BM_SJC_SSR_SJM (0x00000600) //!< Bit mask for SJC_SSR_SJM.
//! @brief Get value of SJC_SSR_SJM from a register value.
#define BG_SJC_SSR_SJM(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_SJM) >> BP_SJC_SSR_SJM)
//@}
/*! @name Register SJC_SSR, field RSSTAT[12:11] (RO)
*
* Response status Response status bits
*
* Values:
* - 00 - Response wasn't entered
* - 01 - Response was entered but not verified
* - 10 - Response was entered and is incorrect
* - 11 - Response is correct
*/
//@{
#define BP_SJC_SSR_RSSTAT (11) //!< Bit position for SJC_SSR_RSSTAT.
#define BM_SJC_SSR_RSSTAT (0x00001800) //!< Bit mask for SJC_SSR_RSSTAT.
//! @brief Get value of SJC_SSR_RSSTAT from a register value.
#define BG_SJC_SSR_RSSTAT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_RSSTAT) >> BP_SJC_SSR_RSSTAT)
//@}
/*! @name Register SJC_SSR, field BOOTIND[14] (RO)
*
* Boot Indication Inverted Internal Boot indication, i.e inverse of SRC: "src_int_boot" signal
*/
//@{
#define BP_SJC_SSR_BOOTIND (14) //!< Bit position for SJC_SSR_BOOTIND.
#define BM_SJC_SSR_BOOTIND (0x00004000) //!< Bit mask for SJC_SSR_BOOTIND.
//! @brief Get value of SJC_SSR_BOOTIND from a register value.
#define BG_SJC_SSR_BOOTIND(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_SSR_BOOTIND) >> BP_SJC_SSR_BOOTIND)
//@}
//-------------------------------------------------------------------------------------------
// HW_SJC_GPCCR - General Purpose Clocks Control Register
//-------------------------------------------------------------------------------------------
#ifndef __LANGUAGE_ASM__
/*!
* @brief HW_SJC_GPCCR - General Purpose Clocks Control Register (RW)
*
* Reset value: 0x00000000
*
* This register is used to configure clock related modes in SOC, see System Configuration chapter
* for more information. Those bits are directly connected to JTAG outputs. Bit 0 of GPCCR controls
* SDMA clocks invocation. When out of reset, the SDMA is in sleep mode with no SDMA clock running.
* Unlike events, debug requests does not wake SDMA if it is in sleep mode. The debug request is
* recognized by the SDMA only when it exits sleep mode upon reception of an event. To be able to
* enter debug mode even if no event is triggered, the SDMA clock on bit needs to be set prior to
* sending the debug request (clear at reset).
*/
typedef union _hw_sjc_gpccr
{
reg32_t U;
struct _hw_sjc_gpccr_bitfields
{
unsigned SCLKR : 1; //!< [0] SDMA Clock ON Register - This bit forces the clock on of the SDMA
unsigned ACLKOFFDIS : 1; //!< [1] Disable/prevent ARM platform clock/power shutdown
unsigned RESERVED0 : 30; //!< [31:2] Reserved
} B;
} hw_sjc_gpccr_t;
#endif
/*!
* @name Constants and macros for entire SJC_GPCCR register
*/
//@{
#define HW_SJC_GPCCR_ADDR (REGS_SJC_BASE + 0x7)
#ifndef __LANGUAGE_ASM__
#define HW_SJC_GPCCR (*(volatile hw_sjc_gpccr_t *) HW_SJC_GPCCR_ADDR)
#define HW_SJC_GPCCR_RD() (HW_SJC_GPCCR.U)
#define HW_SJC_GPCCR_WR(v) (HW_SJC_GPCCR.U = (v))
#define HW_SJC_GPCCR_SET(v) (HW_SJC_GPCCR_WR(HW_SJC_GPCCR_RD() | (v)))
#define HW_SJC_GPCCR_CLR(v) (HW_SJC_GPCCR_WR(HW_SJC_GPCCR_RD() & ~(v)))
#define HW_SJC_GPCCR_TOG(v) (HW_SJC_GPCCR_WR(HW_SJC_GPCCR_RD() ^ (v)))
#endif
//@}
/*
* constants & macros for individual SJC_GPCCR bitfields
*/
/*! @name Register SJC_GPCCR, field SCLKR[0] (RW)
*
* SDMA Clock ON Register - This bit forces the clock on of the SDMA
*/
//@{
#define BP_SJC_GPCCR_SCLKR (0) //!< Bit position for SJC_GPCCR_SCLKR.
#define BM_SJC_GPCCR_SCLKR (0x00000001) //!< Bit mask for SJC_GPCCR_SCLKR.
//! @brief Get value of SJC_GPCCR_SCLKR from a register value.
#define BG_SJC_GPCCR_SCLKR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPCCR_SCLKR) >> BP_SJC_GPCCR_SCLKR)
//! @brief Format value for bitfield SJC_GPCCR_SCLKR.
#define BF_SJC_GPCCR_SCLKR(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_GPCCR_SCLKR) & BM_SJC_GPCCR_SCLKR)
#ifndef __LANGUAGE_ASM__
//! @brief Set the SCLKR field to a new value.
#define BW_SJC_GPCCR_SCLKR(v) (HW_SJC_GPCCR_WR((HW_SJC_GPCCR_RD() & ~BM_SJC_GPCCR_SCLKR) | BF_SJC_GPCCR_SCLKR(v)))
#endif
//@}
/*! @name Register SJC_GPCCR, field ACLKOFFDIS[1] (RW)
*
* Disable/prevent ARM platform clock/power shutdown
*/
//@{
#define BP_SJC_GPCCR_ACLKOFFDIS (1) //!< Bit position for SJC_GPCCR_ACLKOFFDIS.
#define BM_SJC_GPCCR_ACLKOFFDIS (0x00000002) //!< Bit mask for SJC_GPCCR_ACLKOFFDIS.
//! @brief Get value of SJC_GPCCR_ACLKOFFDIS from a register value.
#define BG_SJC_GPCCR_ACLKOFFDIS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_SJC_GPCCR_ACLKOFFDIS) >> BP_SJC_GPCCR_ACLKOFFDIS)
//! @brief Format value for bitfield SJC_GPCCR_ACLKOFFDIS.
#define BF_SJC_GPCCR_ACLKOFFDIS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_SJC_GPCCR_ACLKOFFDIS) & BM_SJC_GPCCR_ACLKOFFDIS)
#ifndef __LANGUAGE_ASM__
//! @brief Set the ACLKOFFDIS field to a new value.
#define BW_SJC_GPCCR_ACLKOFFDIS(v) (HW_SJC_GPCCR_WR((HW_SJC_GPCCR_RD() & ~BM_SJC_GPCCR_ACLKOFFDIS) | BF_SJC_GPCCR_ACLKOFFDIS(v)))
#endif
//@}
//-------------------------------------------------------------------------------------------
// hw_sjc_t - module struct
//-------------------------------------------------------------------------------------------
/*!
* @brief All SJC module registers.
*/
#ifndef __LANGUAGE_ASM__
#pragma pack(1)
typedef struct _hw_sjc
{
volatile hw_sjc_gpusr1_t GPUSR1; //!< General Purpose Unsecured Status Register 1
volatile hw_sjc_gpusr2_t GPUSR2; //!< General Purpose Unsecured Status Register 2
volatile hw_sjc_gpusr3_t GPUSR3; //!< General Purpose Unsecured Status Register 3
volatile hw_sjc_gpssr_t GPSSR; //!< General Purpose Secured Status Register
volatile hw_sjc_dcr_t DCR; //!< Debug Control Register
volatile hw_sjc_ssr_t SSR; //!< Security Status Register
volatile hw_sjc_gpccr_t GPCCR; //!< General Purpose Clocks Control Register
} hw_sjc_t;
#pragma pack()
//! @brief Macro to access all SJC registers.
//! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
//! use the '&' operator, like <code>&HW_SJC</code>.
#define HW_SJC (*(hw_sjc_t *) REGS_SJC_BASE)
#endif
#endif // __HW_SJC_REGISTERS_H__
// v18/121106/1.2.2
// EOF