123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /*****************************************************************************
- * Copyright 2003 - 2008 Broadcom Corporation. All rights reserved.
- *
- * Unless you and Broadcom execute a separate written software license
- * agreement governing use of this software, this software is licensed to you
- * under the terms of the GNU General Public License version 2, available at
- * http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
- *
- * Notwithstanding the above, under no circumstances may you combine this
- * software in any way with any other Broadcom software provided under a
- * license other than the GPL, without Broadcom's express prior written
- * consent.
- *****************************************************************************/
- /****************************************************************************/
- /**
- * @file secHw_def.h
- *
- * @brief Definitions for configuring/testing secure blocks
- *
- * @note
- * None
- */
- /****************************************************************************/
- #ifndef SECHW_DEF_H
- #define SECHW_DEF_H
- #include <mach/csp/mm_io.h>
- /* Bit mask for various secure device */
- #define secHw_BLK_MASK_CHIP_CONTROL 0x00000001
- #define secHw_BLK_MASK_KEY_SCAN 0x00000002
- #define secHw_BLK_MASK_TOUCH_SCREEN 0x00000004
- #define secHw_BLK_MASK_UART0 0x00000008
- #define secHw_BLK_MASK_UART1 0x00000010
- #define secHw_BLK_MASK_WATCHDOG 0x00000020
- #define secHw_BLK_MASK_SPUM 0x00000040
- #define secHw_BLK_MASK_DDR2 0x00000080
- #define secHw_BLK_MASK_EXT_MEM 0x00000100
- #define secHw_BLK_MASK_ESW 0x00000200
- #define secHw_BLK_MASK_SPU 0x00010000
- #define secHw_BLK_MASK_PKA 0x00020000
- #define secHw_BLK_MASK_RNG 0x00040000
- #define secHw_BLK_MASK_RTC 0x00080000
- #define secHw_BLK_MASK_OTP 0x00100000
- #define secHw_BLK_MASK_BOOT 0x00200000
- #define secHw_BLK_MASK_MPU 0x00400000
- #define secHw_BLK_MASK_TZCTRL 0x00800000
- #define secHw_BLK_MASK_INTR 0x01000000
- /* Trustzone register set */
- typedef struct {
- volatile uint32_t status; /* read only - reflects status of writes of 2 write registers */
- volatile uint32_t setUnsecure; /* write only. reads back as 0 */
- volatile uint32_t setSecure; /* write only. reads back as 0 */
- } secHw_TZREG_t;
- /* There are 2 register sets. The first is for the lower 16 bits, the 2nd */
- /* is for the higher 16 bits. */
- typedef enum {
- secHw_IDX_LS = 0,
- secHw_IDX_MS = 1,
- secHw_IDX_NUM
- } secHw_IDX_e;
- typedef struct {
- volatile secHw_TZREG_t reg[secHw_IDX_NUM];
- } secHw_REGS_t;
- /****************************************************************************/
- /**
- * @brief Configures a device as a secure device
- *
- */
- /****************************************************************************/
- static inline void secHw_setSecure(uint32_t mask /* mask of type secHw_BLK_MASK_XXXXXX */
- );
- /****************************************************************************/
- /**
- * @brief Configures a device as a non-secure device
- *
- */
- /****************************************************************************/
- static inline void secHw_setUnsecure(uint32_t mask /* mask of type secHw_BLK_MASK_XXXXXX */
- );
- /****************************************************************************/
- /**
- * @brief Get the trustzone status for all components. 1 = non-secure, 0 = secure
- *
- */
- /****************************************************************************/
- static inline uint32_t secHw_getStatus(void);
- #include <mach/csp/secHw_inline.h>
- #endif /* SECHW_DEF_H */
|