nu_ssmcc.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /****************************************************************************//**
  2. * @file nu_ssmcc.h
  3. * @brief SSMCC driver header file
  4. *
  5. * SPDX-License-Identifier: Apache-2.0
  6. * @copyright (C) 2020 Nuvoton Technology Corp. All rights reserved.
  7. *****************************************************************************/
  8. #ifndef __NU_SSMCC_H__
  9. #define __NU_SSMCC_H__
  10. #ifdef __cplusplus
  11. extern "C"
  12. {
  13. #endif
  14. /** @addtogroup Standard_Driver Standard Driver
  15. @{
  16. */
  17. /** @addtogroup SSMCC_Driver SSMCC Driver
  18. @{
  19. */
  20. /** @addtogroup SSMCC_EXPORTED_CONSTANTS SSMCC Exported Constants
  21. @{
  22. */
  23. #define SSMCC_REGION_0 0UL /*!< region 0 \hideinitializer */
  24. #define SSMCC_REGION_1 1UL /*!< region 1 \hideinitializer */
  25. #define SSMCC_REGION_2 2UL /*!< region 2 \hideinitializer */
  26. #define SSMCC_REGION_3 3UL /*!< region 3 \hideinitializer */
  27. #define SSMCC_REGION_4 4UL /*!< region 4 \hideinitializer */
  28. #define SSMCC_REGION_5 5UL /*!< region 5 \hideinitializer */
  29. #define SSMCC_REGION_6 6UL /*!< region 6 \hideinitializer */
  30. #define SSMCC_REGION_7 7UL /*!< region 7 \hideinitializer */
  31. #define SSMCC_REGION_8 8UL /*!< region 8 \hideinitializer */
  32. #define SSMCC_SECURE_READ 0x40000000UL /*!< set region to secure read \hideinitializer */
  33. #define SSMCC_SECURE_WRITE 0x80000000UL /*!< set region to secure write \hideinitializer */
  34. #define SSMCC_NONSECURE_READ 0x00000001UL /*!< set region to non-secure read \hideinitializer */
  35. #define SSMCC_NONSECURE_WRITE 0x00010000UL /*!< set region to non-secure write \hideinitializer */
  36. #define SSMCC_M4NS_READ 0x00000002UL /*!< set region to m4 non-secure read \hideinitializer */
  37. #define SSMCC_M4NS_WRITE 0x00020000UL /*!< set region to m4 non-secure write \hideinitializer */
  38. typedef struct ssmcc_param
  39. {
  40. uint32_t region_no;
  41. uint32_t base_address;
  42. uint32_t size;
  43. uint32_t attribute;
  44. } SSMCC_PARAM_T;
  45. /*@}*/ /* end of group SSMCC_EXPORTED_CONSTANTS */
  46. /** @addtogroup SSMCC_EXPORTED_FUNCTIONS SSMCC Exported Functions
  47. @{
  48. */
  49. void SSMCC_SetRegion0(uint32_t u32Attr);
  50. void SSMCC_SetRegion(SSMCC_PARAM_T *psParam);
  51. /*@}*/ /* end of group SSMCC_EXPORTED_FUNCTIONS */
  52. /*@}*/ /* end of group SSMCC_Driver */
  53. /*@}*/ /* end of group Standard_Driver */
  54. #ifdef __cplusplus
  55. }
  56. #endif
  57. #endif