/**
|
******************************************************************************
|
* @file fm33a0xxev_pae.h
|
* @author FM33A0XXEV Application Team
|
* @version V1.0.0
|
* @date 16-April-2020
|
* @brief This file contains all the functions prototypes for the PAE firmware library.
|
******************************************************************************
|
*/
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __FM33A0XXEV_PAE_H
|
#define __FM33A0XXEV_PAE_H
|
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "FM33A0XXEV.h"
|
|
|
//ECC¼ÆËãģʽ˵Ã÷
|
#define ECC_STD_DBL 0x00 //Ñſ˱È×ø±ê±¶µã
|
#define ECC_STD_ADD 0x01 //»ìºÏ×ø±êµã¼Ó
|
#define ECC_ALG1_DBLADD 0x02 //·½°¸1¹«Ê½£¬×ÜÊǵã¼Ó±¶µã
|
#define ECC_ALG2_ECDBL 0x03 //·½°¸2¹«Ê½1£¬ECDBL
|
#define ECC_ALG2_ECADDDBL 0x04 //·½°¸2¹«Ê½2£¬ECADDDBL
|
#define ECC_ALG2_YRECOVER 0x05 //·½°¸2¹«Ê½3£¬»Ö¸´ÉäÓ°Y×ø±ê
|
|
|
//Macro_START
|
//2020-03-12-14-15-07
|
//FM33A0XX_Driver_Gen_V1.4
|
|
#define PAE_CSR_DATA_TYPE_Pos 8 /* ÊäÈëÊý¾Ý˳Ðò½»»»¿ØÖÆ
|
00£º²»½»»»
|
01£ºhalf-word½»»»
|
10£ºbyte½»»»
|
11£ºbit½»»»
|
´Ë¼Ä´æÆ÷ÓÃÓÚ¶ÔÊäÈë32bitÊý¾ÝµÄλÐò½øÐе÷Õû£»±ÈÈçÊäÈëΪ0x1234_5678£¬half-word½»»»ºóΪ0x5678_1234£¬byte½»»»ºóΪ0x7856_3412£¬bit½»»»ºóΪ0x1E6A_2C48 */
|
#define PAE_CSR_DATA_TYPE_Msk (0x3U << PAE_CSR_DATA_TYPE_Pos)
|
#define PAE_CSR_DATA_TYPE_NONE (0x0U << PAE_CSR_DATA_TYPE_Pos) /* ²»½»»» */
|
#define PAE_CSR_DATA_TYPE_HALFWORD (0x1U << PAE_CSR_DATA_TYPE_Pos) /* half-word½»»» */
|
#define PAE_CSR_DATA_TYPE_BYTE (0x2U << PAE_CSR_DATA_TYPE_Pos) /* byte½»»» */
|
#define PAE_CSR_DATA_TYPE_BIT (0x3U << PAE_CSR_DATA_TYPE_Pos) /* bit½»»» */
|
|
#define PAE_CSR_START_Pos 7 /* ÔËËãÆô¶¯Î»£¬Èí¼þд1Æô¶¯¼ÆË㣬¼ÆËã½áÊøºóÓ²¼þ×Ô¶¯ÇåÁã */
|
#define PAE_CSR_START_Msk (0x1U << PAE_CSR_START_Pos)
|
|
#define PAE_CSR_RUN_MODE_Pos 4 /* Ä£¿é¹¤×÷ģʽ£º
|
00£ºÄ£Ê½0£¬µ¥´ÎÄ£ÔËË㣬¿ÉÅäÖÃ4Block/16Block
|
01£ºÄ£Ê½1£¬µ¥´ÎµãÔËË㣬¹Ì¶¨16Block
|
10£ºÄ£Ê½2£¬32bitÃÜÔ¿Á¬ÐøRSAÔËË㣬¹Ì¶¨4Block
|
11£ºÄ£Ê½3£¬32bitÃÜÔ¿Á¬ÐøECCÔËË㣬¹Ì¶¨16Block */
|
#define PAE_CSR_RUN_MODE_Msk (0x3U << PAE_CSR_RUN_MODE_Pos)
|
#define PAE_CSR_RUN_MODE_MOD (0x0U << PAE_CSR_RUN_MODE_Pos)
|
#define PAE_CSR_RUN_MODE_DOT (0x1U << PAE_CSR_RUN_MODE_Pos) /* ģʽ0£¬µ¥´ÎÄ£ÔËË㣬¿ÉÅäÖÃ4Block/16Block */
|
#define PAE_CSR_RUN_MODE_RSA (0x2U << PAE_CSR_RUN_MODE_Pos) /* ģʽ1£¬µ¥´ÎµãÔËË㣬¹Ì¶¨16Block */
|
#define PAE_CSR_RUN_MODE_ECC (0x3U << PAE_CSR_RUN_MODE_Pos) /* ģʽ2£¬32bitÃÜÔ¿Á¬ÐøRSAÔËË㣬¹Ì¶¨4Block */
|
|
#define PAE_CSR_SOFT_RST_Pos 3 /* PAEÈí¼þ¸´Î»£¬Èí¼þд1¸´Î»PAEÄÚ²¿Ö÷Òª¼Ä´æÆ÷£¨Ä£³¤¼Ä´æÆ÷PAE_MLRºÍÄ£²Î¼Ä´æÆ÷PAE_MPR²»ÊÜÓ°Ï죩£¬¸´Î»½áÊøºóÓ²¼þ×Ô¶¯ÇåÁã
|
×¢Ò⣺Èí¼þдSOFT_RSTÖ®ºó£¬Ðè²åÈëÖÁÉÙÒ»ÌõNOPÖ¸Áîºó£¬ÔÙдÈëPAEÆäËû¼Ä´æÆ÷£»ÔÚSOFT_RST²Ù×÷ºóÁ¢¼´Ð´PAE¼Ä´æÆ÷¿ÉÄÜдÈëʧ°Ü¡£ */
|
#define PAE_CSR_SOFT_RST_Msk (0x1U << PAE_CSR_SOFT_RST_Pos)
|
/* Èí¼þдSOFT_RSTÖ®ºó£¬Ðè²åÈëÖÁÉÙÒ»ÌõNOPÖ¸Áîºó£¬ÔÙдÈëPAEÆäËû¼Ä´æÆ÷£»ÔÚSOFT_RST²Ù×÷ºóÁ¢¼´Ð´PAE¼Ä´æÆ÷¿ÉÄÜдÈëʧ°Ü¡£ */
|
|
#define PAE_CSR_PAEIE_Pos 2 /* PAEÖжÏʹÄÜ
|
1£ºÊ¹ÄÜÖжÏÊä³ö
|
0£º½ûÖ¹ÖжÏÊä³ö */
|
#define PAE_CSR_PAEIE_Msk (0x1U << PAE_CSR_PAEIE_Pos)
|
#define PAE_CSR_PAEIE_ENABLE (0x1U << PAE_CSR_PAEIE_Pos) /* ʹÄÜÖжÏÊä³ö */
|
#define PAE_CSR_PAEIE_DISABLE (0x0U << PAE_CSR_PAEIE_Pos) /* ½ûÖ¹ÖжÏÊä³ö */
|
|
#define PAE_CSR_PAEIF_Pos 1 /* PAEÖжϱêÖ¾¼Ä´æÆ÷ */
|
#define PAE_CSR_PAEIF_Msk (0x1U << PAE_CSR_PAEIF_Pos)
|
|
#define PAE_CSR_BUSY_Pos 0 /* PAE¹¤×÷±êÖ¾
|
1£ºPAEÕýÔÚÔËËãÖÐ
|
0£ºPAE¿ÕÏÐ */
|
#define PAE_CSR_BUSY_Msk (0x1U << PAE_CSR_BUSY_Pos)
|
|
#define PAE_MLR_PAE_MLR_Pos 0 /* ÔÚRAMÅäÖÃΪ4 Blockʱ£¬Ä£³¤×î´óΪ2048bit£º
|
Ä£³¤=£¨MLR[5:0]+1£©*32λ¡£
|
ÔÚRAMÅäÖÃΪ16 Blockʱ£¬Ä£³¤×î´óΪ512bit£¬MLRÖ»ÓеÍ4bitÓÐЧ£º
|
Ä£³¤=£¨MLR[3:0]+1£©*32λ¡£ */
|
#define PAE_MLR_PAE_MLR_Msk (0x3fU << PAE_MLR_PAE_MLR_Pos)
|
|
#define PAE_MPR_PAE_MPR_Pos 0 /* 32bitÄ£²Î¼Ä´æÆ÷£¬Ö»¿Éд£¬²»¿É¶Á */
|
#define PAE_MPR_PAE_MPR_Msk (0xffffffffU << PAE_MPR_PAE_MPR_Pos)
|
|
#define PAE_M0CFG_BLKCFG_Pos 15 /* RAM BlockÅäÖÃλ
|
1£ºËã·¨RAMÅäÖÃΪ16 Block
|
0£ºËã·¨RAMÅäÖÃλ4 Block */
|
#define PAE_M0CFG_BLKCFG_Msk (0x1U << PAE_M0CFG_BLKCFG_Pos)
|
#define PAE_M0CFG_BLKCFG_16BLOCK (0x1U << PAE_M0CFG_BLKCFG_Pos) /* Ëã·¨RAMÅäÖÃΪ16 Block */
|
#define PAE_M0CFG_BLKCFG_4BLOCK (0x0U << PAE_M0CFG_BLKCFG_Pos) /* Ëã·¨RAMÅäÖÃλ4 Block */
|
|
#define PAE_M0CFG_INS_M0_Pos 12 /* µ¥´ÎÄ£ÔËËãÖ¸Á
|
00£ºÃɸçÂíÀûÄ£³Ë
|
01£ºÃɸçÂíÀûÄ£¼Ó
|
10£ºRFU
|
11£ºÃɸçÂíÀûÄ£¼õ */
|
#define PAE_M0CFG_INS_M0_Msk (0x3U << PAE_M0CFG_INS_M0_Pos)
|
#define PAE_M0CFG_INS_M0_MUL (0x0U << PAE_M0CFG_INS_M0_Pos)
|
#define PAE_M0CFG_INS_M0_ADD (0x1U << PAE_M0CFG_INS_M0_Pos) /* ÃɸçÂíÀûÄ£³Ë */
|
#define PAE_M0CFG_INS_M0_SUB (0x3U << PAE_M0CFG_INS_M0_Pos) /* ÃɸçÂíÀûÄ£¼Ó */
|
|
#define PAE_M0CFG_RES_BLK_Pos 8 /* ÅäÖÃÔËËã½á¹ûËùÔÚBlock
|
µ±BLK_CFG==1£¬4bitÓÐЧ£¬±íʾBlock0~Block15
|
µ±BLK_CFG==0£¬µÍ2bitÓÐЧ£¬±íʾBlock0~Block3 */
|
#define PAE_M0CFG_RES_BLK_Msk (0xfU << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK0 (0x0U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK1 (0x1U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK2 (0x2U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK3 (0x3U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK4 (0x4U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK5 (0x5U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK6 (0x6U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK7 (0x7U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK8 (0x8U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK9 (0x9U << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK10 (0xAU << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK11 (0xBU << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK12 (0xCU << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK13 (0xDU << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK14 (0xEU << PAE_M0CFG_RES_BLK_Pos)
|
#define PAE_M0CFG_RES_BLK_BLOCK15 (0xFU << PAE_M0CFG_RES_BLK_Pos)
|
|
|
|
|
|
|
#define PAE_M0CFG_OP1_BLK_Pos 4 /* ²Ù×÷Êý1µØÖ·£º
|
µ±BLK_CFG==1£¬4bitÓÐЧ£¬±íʾBlock0~Block15
|
µ±BLK_CFG==0£¬µÍ2bitÓÐЧ£¬±íʾBlock0~Block3 */
|
#define PAE_M0CFG_OP1_BLK_Msk (0xfU << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK0 (0x0U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK1 (0x1U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK2 (0x2U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK3 (0x3U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK4 (0x4U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK5 (0x5U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK6 (0x6U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK7 (0x7U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK8 (0x8U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK9 (0x9U << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK10 (0xAU << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK11 (0xBU << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK12 (0xCU << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK13 (0xDU << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK14 (0xEU << PAE_M0CFG_OP1_BLK_Pos)
|
#define PAE_M0CFG_OP1_BLK_BLOCK15 (0xFU << PAE_M0CFG_OP1_BLK_Pos)
|
|
|
|
|
#define PAE_M0CFG_OP2_BLK_Pos 0 /* ²Ù×÷Êý2µØÖ·£º
|
µ±BLK_CFG==1£¬4bitÓÐЧ£¬±íʾBlock0~Block15
|
µ±BLK_CFG==0£¬µÍ2bitÓÐЧ£¬±íʾBlock0~Block3 */
|
#define PAE_M0CFG_OP2_BLK_Msk (0xfU << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK0 (0x0U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK1 (0x1U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK2 (0x2U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK3 (0x3U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK4 (0x4U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK5 (0x5U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK6 (0x6U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK7 (0x7U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK8 (0x8U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK9 (0x9U << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK10 (0xAU << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK11 (0xBU << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK12 (0xCU << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK13 (0xDU << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK14 (0xEU << PAE_M0CFG_OP2_BLK_Pos)
|
#define PAE_M0CFG_OP2_BLK_BLOCK15 (0xFU << PAE_M0CFG_OP2_BLK_Pos)
|
|
|
#define PAE_M1CFG_INS_M1_Pos 4 /* µ¥´ÎµãÔËËãÖ¸Á
|
000£ºJacobin×ø±ê±¶µãÔËËã
|
001£º»ìºÏ×ø±êµã¼ÓÔËËã
|
010£ºRFU
|
011£ºÃɸçÂíÀûµã³Ë±¶µãÔËË㣨ECDBL£©
|
100£ºÃɸçÂíÀûµã³Ë±¶µãµã¼ÓÔËË㣨ECADDDBL£©
|
101£ºÃɸçÂíÀûµã³ËY×ø±ê»Ö¸´ÔËË㣨ECYRecover£©
|
110£ºRFU
|
111£ºRFU */
|
#define PAE_M1CFG_INS_M1_Msk (0x7U << PAE_M1CFG_INS_M1_Pos)
|
#define PAE_M1CFG_INS_M1_JACOBIN (0x0U << PAE_M1CFG_INS_M1_Pos) /* Jacobin×ø±ê±¶µãÔËËã */
|
#define PAE_M1CFG_INS_M1_MIXADD (0x1U << PAE_M1CFG_INS_M1_Pos) /* »ìºÏ×ø±êµã¼ÓÔËËã */
|
#define PAE_M1CFG_INS_M1_ECDBL (0x3U << PAE_M1CFG_INS_M1_Pos) /* ÃɸçÂíÀûµã³Ë±¶µãÔËË㣨ECDBL£© */
|
#define PAE_M1CFG_INS_M1_ECADDDBL (0x4U << PAE_M1CFG_INS_M1_Pos) /* ÃɸçÂíÀûµã³Ë±¶µãµã¼ÓÔËË㣨ECADDDBL£© */
|
#define PAE_M1CFG_INS_M1_ECYRECOVER (0x5U << PAE_M1CFG_INS_M1_Pos) /* ÃɸçÂíÀûµã³ËY×ø±ê»Ö¸´ÔËË㣨ECYRecover£© */
|
|
#define PAE_M1CFG_AEN3_M1_Pos 1 /* ²ÎÊýAָʾÐźÅ
|
1£ºAµÈÓÚ-3
|
0£ºA²»µÈÓÚ-3 */
|
#define PAE_M1CFG_AEN3_M1_Msk (0x1U << PAE_M1CFG_AEN3_M1_Pos)
|
#define PAE_M1CFG_AEN3_M1_NE3 (0x1U << PAE_M1CFG_AEN3_M1_Pos) /* AµÈÓÚ-3 */
|
#define PAE_M1CFG_AEN3_M1_EQ3 (0x0U << PAE_M1CFG_AEN3_M1_Pos) /* A²»µÈÓÚ-3 */
|
|
#define PAE_M1CFG_BIT_VALUE_M1_Pos 0 /* µ±Ç°¼ÆËãÃÜԿλָʾ±êÖ¾
|
1£ºµ±Ç°Î»Îª1
|
0£ºµ±Ç°Î»Îª0 */
|
#define PAE_M1CFG_BIT_VALUE_M1_Msk (0x1U << PAE_M1CFG_BIT_VALUE_M1_Pos)
|
#define PAE_M1CFG_BIT_VALUE_M1_VALUE1 (0x1U << PAE_M1CFG_BIT_VALUE_M1_Pos) /* µ±Ç°Î»Îª1 */
|
#define PAE_M1CFG_BIT_VALUE_M1_VALUE0 (0x0U << PAE_M1CFG_BIT_VALUE_M1_Pos) /* µ±Ç°Î»Îª0 */
|
|
#define PAE_M2CFG_ALWAYS_MULT_Pos 4 /* ÐéÄ£³Ë¿ØÖÆÎ»
|
1£ºµ±Ç°ÃÜԿλΪ0ʱͬÑù½øÐÐÄ£³Ë²Ù×÷
|
0£ºµ±Ç°ÃÜԿλΪ0ʱ²»½øÐÐÄ£³Ë²Ù×÷ */
|
#define PAE_M2CFG_ALWAYS_MULT_Msk (0x1U << PAE_M2CFG_ALWAYS_MULT_Pos)
|
#define PAE_M2CFG_ALWAYS_MULT_ALWAYS (0x1U << PAE_M2CFG_ALWAYS_MULT_Pos) /* µ±Ç°ÃÜԿλΪ0ʱͬÑù½øÐÐÄ£³Ë²Ù×÷ */
|
#define PAE_M2CFG_ALWAYS_MULT_NONE (0x0U << PAE_M2CFG_ALWAYS_MULT_Pos) /* µ±Ç°ÃÜԿλΪ0ʱ²»½øÐÐÄ£³Ë²Ù×÷ */
|
|
#define PAE_M2CFG_FBO_M2_Pos 0 /* ÃÜԿλָʾÐźţ¬Ó²¼þ×Ô¶¯ÖÃ룬Èí¼þÇåÁã
|
1£ºÒÑÕÒµ½Îª1µÄbit
|
0£ºÎ´ÕÒµ½Îª1µÄbit */
|
#define PAE_M2CFG_FBO_M2_Msk (0x1U << PAE_M2CFG_FBO_M2_Pos)
|
#define PAE_M2CFG_FBO_M2_FB1 (0x1U << PAE_M2CFG_FBO_M2_Pos) /* ÒÑÕÒµ½Îª1µÄbit */
|
#define PAE_M2CFG_FBO_M2_NFB1 (0x0U << PAE_M2CFG_FBO_M2_Pos) /* δÕÒµ½Îª1µÄbit */
|
|
#define PAE_M3CFG_AEN3_M3_Pos 4 /* ²ÎÊýAָʾÐźÅ
|
1£ºAµÈÓÚ-3
|
0£ºA²»µÈÓÚ-3 */
|
#define PAE_M3CFG_AEN3_M3_Msk (0x1U << PAE_M3CFG_AEN3_M3_Pos)
|
#define PAE_M3CFG_AEN3_M3_EQ3 (0x1U << PAE_M3CFG_AEN3_M3_Pos) /* AµÈÓÚ-3 */
|
#define PAE_M3CFG_AEN3_M3_NE3 (0x0U << PAE_M3CFG_AEN3_M3_Pos) /* A²»µÈÓÚ-3 */
|
|
#define PAE_M3CFG_FBO_M3_Pos 0 /* ÃÜԿλָʾÐźţ¬Ó²¼þ×Ô¶¯ÖÃ룬Èí¼þÇåÁã
|
1£ºÒÑÕÒµ½Îª1µÄbit
|
0£ºÎ´ÕÒµ½Îª1µÄbit */
|
#define PAE_M3CFG_FBO_M3_Msk (0x1U << PAE_M3CFG_FBO_M3_Pos)
|
#define PAE_M3CFG_FBO_M3_FB1 (0x1U << PAE_M3CFG_FBO_M3_Pos) /* ÒÑÕÒµ½Îª1µÄbit */
|
#define PAE_M3CFG_FBO_M3_NFB1 (0x0U << PAE_M3CFG_FBO_M3_Pos) /* δÕÒµ½Îª1µÄbit */
|
|
#define PAE_WORD_PAE_WORD_Pos 0 /* 32bitÊý¾Ý¼Ä´æÆ÷£¬Ö»¿Éд£¬²»¿É¶Á£»½öÔÚÁ¬ÐøRSAÔËËãºÍÁ¬ÐøECCÔËËãģʽÏÂÓÐЧ¡£ */
|
#define PAE_WORD_PAE_WORD_Msk (0xffffffffU << PAE_WORD_PAE_WORD_Pos)
|
//Macro_End
|
|
/* Exported functions --------------------------------------------------------*/
|
extern void PAE_Deinit(void);
|
|
/* ÊäÈëÊý¾Ý˳Ðò½»»»¿ØÖÆ
|
00£º²»½»»»
|
01£ºhalf-word½»»»
|
10£ºbyte½»»»
|
11£ºbit½»»»
|
´Ë¼Ä´æÆ÷ÓÃÓÚ¶ÔÊäÈë32bitÊý¾ÝµÄλÐò½øÐе÷Õû£»±ÈÈçÊäÈëΪ0x1234_5678£¬half-word½»»»ºóΪ0x5678_1234£¬byte½»»»ºóΪ0x7856_3412£¬bit½»»»ºóΪ0x1E6A_2C48 Ïà¹Øº¯Êý */
|
extern void PAE_CSR_DATA_TYPE_Set(uint32_t SetValue);
|
extern uint32_t PAE_CSR_DATA_TYPE_Get(void);
|
|
/* ÔËËãÆô¶¯Î»£¬Èí¼þд1Æô¶¯¼ÆË㣬¼ÆËã½áÊøºóÓ²¼þ×Ô¶¯ÇåÁã Ïà¹Øº¯Êý */
|
extern void PAE_CSR_START_Setable(FunState NewState);
|
|
/* Ä£¿é¹¤×÷ģʽ£º
|
00£ºÄ£Ê½0£¬µ¥´ÎÄ£ÔËË㣬¿ÉÅäÖÃ4Block/16Block
|
01£ºÄ£Ê½1£¬µ¥´ÎµãÔËË㣬¹Ì¶¨16Block
|
10£ºÄ£Ê½2£¬32bitÃÜÔ¿Á¬ÐøRSAÔËË㣬¹Ì¶¨4Block
|
11£ºÄ£Ê½3£¬32bitÃÜÔ¿Á¬ÐøECCÔËË㣬¹Ì¶¨16Block Ïà¹Øº¯Êý */
|
extern void PAE_CSR_RUN_MODE_Set(uint32_t SetValue);
|
extern uint32_t PAE_CSR_RUN_MODE_Get(void);
|
|
/* PAEÈí¼þ¸´Î»£¬Èí¼þд1¸´Î»PAEÄÚ²¿Ö÷Òª¼Ä´æÆ÷£¨Ä£³¤¼Ä´æÆ÷PAE_MLRºÍÄ£²Î¼Ä´æÆ÷PAE_MPR²»ÊÜÓ°Ï죩£¬¸´Î»½áÊøºóÓ²¼þ×Ô¶¯ÇåÁã
|
×¢Ò⣺Èí¼þдSOFT_RSTÖ®ºó£¬Ðè²åÈëÖÁÉÙÒ»ÌõNOPÖ¸Áîºó£¬ÔÙдÈëPAEÆäËû¼Ä´æÆ÷£»ÔÚSOFT_RST²Ù×÷ºóÁ¢¼´Ð´PAE¼Ä´æÆ÷¿ÉÄÜдÈëʧ°Ü¡£ Ïà¹Øº¯Êý */
|
extern void PAE_CSR_SOFT_RST_Setable(FunState NewState);
|
|
/* PAEÖжÏʹÄÜ
|
1£ºÊ¹ÄÜÖжÏÊä³ö
|
0£º½ûÖ¹ÖжÏÊä³ö Ïà¹Øº¯Êý */
|
extern void PAE_CSR_PAEIE_Setable(FunState NewState);
|
extern FunState PAE_CSR_PAEIE_Getable(void);
|
|
/* PAEÖжϱêÖ¾¼Ä´æÆ÷ Ïà¹Øº¯Êý */
|
extern void PAE_CSR_PAEIF_Clr(void);
|
extern FlagStatus PAE_CSR_PAEIF_Chk(void);
|
|
/* PAE¹¤×÷±êÖ¾
|
1£ºPAEÕýÔÚÔËËãÖÐ
|
0£ºPAE¿ÕÏÐ Ïà¹Øº¯Êý */
|
extern FlagStatus PAE_CSR_BUSY_Chk(void);
|
|
/* ÔÚRAMÅäÖÃΪ4 Blockʱ£¬Ä£³¤×î´óΪ2048bit£º
|
Ä£³¤=£¨MLR[5:0]+1£©*32λ¡£
|
ÔÚRAMÅäÖÃΪ16 Blockʱ£¬Ä£³¤×î´óΪ512bit£¬MLRÖ»ÓеÍ4bitÓÐЧ£º
|
Ä£³¤=£¨MLR[3:0]+1£©*32λ¡£ Ïà¹Øº¯Êý */
|
extern void PAE_MLR_Write(uint32_t SetValue);
|
extern uint32_t PAE_MLR_Read(void);
|
|
/* 32bitÄ£²Î¼Ä´æÆ÷£¬Ö»¿Éд£¬²»¿É¶Á Ïà¹Øº¯Êý */
|
extern void PAE_MPR_Write(uint32_t SetValue);
|
|
/* RAM BlockÅäÖÃλ
|
1£ºËã·¨RAMÅäÖÃΪ16 Block
|
0£ºËã·¨RAMÅäÖÃλ4 Block Ïà¹Øº¯Êý */
|
extern void PAE_M0CFG_BLKCFG_Set(uint32_t SetValue);
|
extern uint32_t PAE_M0CFG_BLKCFG_Get(void);
|
|
/* µ¥´ÎÄ£ÔËËãÖ¸Á
|
00£ºÃɸçÂíÀûÄ£³Ë
|
01£ºÃɸçÂíÀûÄ£¼Ó
|
10£ºRFU
|
11£ºÃɸçÂíÀûÄ£¼õ Ïà¹Øº¯Êý */
|
extern void PAE_M0CFG_INS_M0_Set(uint32_t SetValue);
|
extern uint32_t PAE_M0CFG_INS_M0_Get(void);
|
|
/* ÅäÖÃÔËËã½á¹ûËùÔÚBlock
|
µ±BLK_CFG==1£¬4bitÓÐЧ£¬±íʾBlock0~Block15
|
µ±BLK_CFG==0£¬µÍ2bitÓÐЧ£¬±íʾBlock0~Block3 Ïà¹Øº¯Êý */
|
extern void PAE_M0CFG_RES_BLK_Set(uint32_t SetValue);
|
extern uint32_t PAE_M0CFG_RES_BLK_Get(void);
|
|
/* ²Ù×÷Êý1µØÖ·£º
|
µ±BLK_CFG==1£¬4bitÓÐЧ£¬±íʾBlock0~Block15
|
µ±BLK_CFG==0£¬µÍ2bitÓÐЧ£¬±íʾBlock0~Block3 Ïà¹Øº¯Êý */
|
extern void PAE_M0CFG_OP1_BLK_Set(uint32_t SetValue);
|
extern uint32_t PAE_M0CFG_OP1_BLK_Get(void);
|
|
/* ²Ù×÷Êý2µØÖ·£º
|
µ±BLK_CFG==1£¬4bitÓÐЧ£¬±íʾBlock0~Block15
|
µ±BLK_CFG==0£¬µÍ2bitÓÐЧ£¬±íʾBlock0~Block3 Ïà¹Øº¯Êý */
|
extern void PAE_M0CFG_OP2_BLK_Set(uint32_t SetValue);
|
extern uint32_t PAE_M0CFG_OP2_BLK_Get(void);
|
|
/* µ¥´ÎµãÔËËãÖ¸Á
|
000£ºJacobin×ø±ê±¶µãÔËËã
|
001£º»ìºÏ×ø±êµã¼ÓÔËËã
|
010£ºRFU
|
011£ºÃɸçÂíÀûµã³Ë±¶µãÔËË㣨ECDBL£©
|
100£ºÃɸçÂíÀûµã³Ë±¶µãµã¼ÓÔËË㣨ECADDDBL£©
|
101£ºÃɸçÂíÀûµã³ËY×ø±ê»Ö¸´ÔËË㣨ECYRecover£©
|
110£ºRFU
|
111£ºRFU Ïà¹Øº¯Êý */
|
extern void PAE_M1CFG_INS_M1_Set(uint32_t SetValue);
|
extern uint32_t PAE_M1CFG_INS_M1_Get(void);
|
|
/* ²ÎÊýAָʾÐźÅ
|
1£ºAµÈÓÚ-3
|
0£ºA²»µÈÓÚ-3 Ïà¹Øº¯Êý */
|
extern void PAE_M1CFG_AEN3_M1_Set(uint32_t SetValue);
|
extern uint32_t PAE_M1CFG_AEN3_M1_Get(void);
|
|
/* µ±Ç°¼ÆËãÃÜԿλָʾ±êÖ¾
|
1£ºµ±Ç°Î»Îª1
|
0£ºµ±Ç°Î»Îª0 Ïà¹Øº¯Êý */
|
extern void PAE_M1CFG_BIT_VALUE_M1_Set(uint32_t SetValue);
|
extern uint32_t PAE_M1CFG_BIT_VALUE_M1_Get(uint32_t SetValue);
|
/* ÐéÄ£³Ë¿ØÖÆÎ»
|
1£ºµ±Ç°ÃÜԿλΪ0ʱͬÑù½øÐÐÄ£³Ë²Ù×÷
|
0£ºµ±Ç°ÃÜԿλΪ0ʱ²»½øÐÐÄ£³Ë²Ù×÷ Ïà¹Øº¯Êý */
|
extern void PAE_M2CFG_ALWAYS_MULT_Set(uint32_t SetValue);
|
extern uint32_t PAE_M2CFG_ALWAYS_MULT_Get(void);
|
|
/* ÃÜԿλָʾÐźţ¬Ó²¼þ×Ô¶¯ÖÃ룬Èí¼þÇåÁã
|
1£ºÒÑÕÒµ½Îª1µÄbit
|
0£ºÎ´ÕÒµ½Îª1µÄbit Ïà¹Øº¯Êý */
|
extern void PAE_M2CFG_FBO_M2_Set(uint32_t SetValue);
|
extern uint32_t PAE_M2CFG_FBO_M2_Get(void);
|
|
/* ²ÎÊýAָʾÐźÅ
|
1£ºAµÈÓÚ-3
|
0£ºA²»µÈÓÚ-3 Ïà¹Øº¯Êý */
|
extern void PAE_M3CFG_AEN3_M3_Set(uint32_t SetValue);
|
extern uint32_t PAE_M3CFG_AEN3_M3_Get(void);
|
|
/* ÃÜԿλָʾÐźţ¬Ó²¼þ×Ô¶¯ÖÃ룬Èí¼þÇåÁã
|
1£ºÒÑÕÒµ½Îª1µÄbit
|
0£ºÎ´ÕÒµ½Îª1µÄbit Ïà¹Øº¯Êý */
|
extern void PAE_M3CFG_FBO_M3_Set(uint32_t SetValue);
|
extern uint32_t PAE_M3CFG_FBO_M3_Get(void);
|
|
/* 32bitÊý¾Ý¼Ä´æÆ÷£¬Ö»¿Éд£¬²»¿É¶Á£»½öÔÚÁ¬ÐøRSAÔËËãºÍÁ¬ÐøECCÔËËãģʽÏÂÓÐЧ¡£ Ïà¹Øº¯Êý */
|
extern void PAE_WORD_Write(uint32_t SetValue);
|
//Announce_End
|
|
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* __FM33A0XXEV_PAE_H */
|