1 /* 2 * Copyright 2018-2021 NXP 3 * All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 * 7 */ 8 9 #ifndef FSL_FLASH_ADAPTER_H_ 10 #define FSL_FLASH_ADAPTER_H_ 11 12 /******************************************************************************* 13 * Definitions 14 ******************************************************************************/ 15 16 /*! 17 * @name FTFx configuration 18 * @{ 19 */ 20 /*! @brief Flash driver location. */ 21 #if !defined(FLASH_DRIVER_IS_FLASH_RESIDENT) 22 #if (!defined(BL_TARGET_ROM) && !defined(BL_TARGET_RAM)) 23 #define FLASH_DRIVER_IS_FLASH_RESIDENT 1 /*!< Used for the flash resident application. */ 24 #else 25 #define FLASH_DRIVER_IS_FLASH_RESIDENT 0 /*!< Used for the non-flash resident application. */ 26 #endif 27 #endif 28 29 #if defined(FMU0_MSF1) 30 #define FLASH FMU0_MSF1_NS 31 #define FLASH_FSTAT_FAIL_MASK FMU_FSTAT_FAIL_MASK 32 #define FLASH_FSTAT_CMDABT_MASK FMU_FSTAT_CMDABT_MASK 33 #define FLASH_FSTAT_PVIOL_MASK FMU_FSTAT_PVIOL_MASK 34 #define FLASH_FSTAT_ACCERR_MASK FMU_FSTAT_ACCERR_MASK 35 #define FLASH_FSTAT_CWSABT_MASK FMU_FSTAT_CWSABT_MASK 36 #define FLASH_FSTAT_CCIF_MASK FMU_FSTAT_CCIF_MASK 37 #define FLASH_FSTAT_CMDPRT_MASK FMU_FSTAT_CMDPRT_MASK 38 #define FLASH_FSTAT_CMDP_MASK FMU_FSTAT_CMDP_MASK 39 #define FLASH_FSTAT_CMDDID_MASK FMU_FSTAT_CMDDID_MASK 40 #define FLASH_FSTAT_DFDIF_MASK FMU_FSTAT_DFDIF_MASK 41 #define FLASH_FSTAT_PEWEN_MASK FMU_FSTAT_PEWEN_MASK 42 #define FLASH_FSTAT_PERDY_MASK FMU_FSTAT_PERDY_MASK 43 #elif defined(MSF1) 44 #define FLASH MSF1 45 #define FLASH_FSTAT_FAIL_MASK MSF1_FSTAT_FAIL_MASK 46 #define FLASH_FSTAT_CMDABT_MASK MSF1_FSTAT_CMDABT_MASK 47 #define FLASH_FSTAT_PVIOL_MASK MSF1_FSTAT_PVIOL_MASK 48 #define FLASH_FSTAT_ACCERR_MASK MSF1_FSTAT_ACCERR_MASK 49 #define FLASH_FSTAT_CWSABT_MASK MSF1_FSTAT_CWSABT_MASK 50 #define FLASH_FSTAT_CCIF_MASK MSF1_FSTAT_CCIF_MASK 51 #define FLASH_FSTAT_CMDPRT_MASK MSF1_FSTAT_CMDPRT_MASK 52 #define FLASH_FSTAT_CMDP_MASK MSF1_FSTAT_CMDP_MASK 53 #define FLASH_FSTAT_CMDDID_MASK MSF1_FSTAT_CMDDID_MASK 54 #define FLASH_FSTAT_DFDIF_MASK MSF1_FSTAT_DFDIF_MASK 55 #define FLASH_FSTAT_PEWEN_MASK MSF1_FSTAT_PEWEN_MASK 56 #define FLASH_FSTAT_PERDY_MASK MSF1_FSTAT_PERDY_MASK 57 #elif defined(FMU0) 58 #if (defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE & 0x2)) 59 #define FLASH FMU0_NS 60 #if defined(RF_FMU) 61 #define NBU_FLASH RF_FMU_NS 62 #endif 63 #else 64 #define FLASH FMU0 65 #if defined(RF_FMU) 66 #define NBU_FLASH RF_FMU 67 #endif 68 #endif 69 #define FLASH_FSTAT_FAIL_MASK FMU_FSTAT_FAIL_MASK 70 #define FLASH_FSTAT_CMDABT_MASK FMU_FSTAT_CMDABT_MASK 71 #define FLASH_FSTAT_PVIOL_MASK FMU_FSTAT_PVIOL_MASK 72 #define FLASH_FSTAT_ACCERR_MASK FMU_FSTAT_ACCERR_MASK 73 #define FLASH_FSTAT_CWSABT_MASK FMU_FSTAT_CWSABT_MASK 74 #define FLASH_FSTAT_CCIF_MASK FMU_FSTAT_CCIF_MASK 75 #define FLASH_FSTAT_CMDPRT_MASK FMU_FSTAT_CMDPRT_MASK 76 #define FLASH_FSTAT_CMDP_MASK FMU_FSTAT_CMDP_MASK 77 #define FLASH_FSTAT_CMDDID_MASK FMU_FSTAT_CMDDID_MASK 78 #define FLASH_FSTAT_DFDIF_MASK FMU_FSTAT_DFDIF_MASK 79 #define FLASH_FSTAT_PEWEN_MASK FMU_FSTAT_PEWEN_MASK 80 #define FLASH_FSTAT_PERDY_MASK FMU_FSTAT_PERDY_MASK 81 #endif 82 83 #if defined(SMSCM) 84 #define SMSCM_FLASH_CACHE_CTRL_MASK SMSCM_OCMDR0_OCMCF2_MASK 85 #define SMSCM_FLASH_CACHE_CTRL(x) SMSCM_OCMDR0_OCMCF2(x) 86 #define SMSCM_FLASH_SPECULATION_CTRL_MASK SMSCM_OCMDR0_OCMCF1_MASK 87 #define SMSCM_FLASH_SPECULATION_CTRL(x) SMSCM_OCMDR0_OCMCF1(x) 88 #endif 89 90 #if defined(RF_FMCCFG) 91 #define NBU_FLASH_CACHE_CTRL_MASK RF_FMCCFG_RFMCCFG_RFCF3_MASK 92 #define NBU_FLASH_CACHE_CTRL(x) RF_FMCCFG_RFMCCFG_RFCF3(x) 93 #define NBU_FLASH_SPECULATION_CTRL_MASK RF_FMCCFG_RFMCCFG_RFCF2_MASK 94 #define NBU_FLASH_SPECULATION_CTRL(x) RF_FMCCFG_RFMCCFG_RFCF2(x) 95 #endif 96 97 #define FLASH_FEATURE_PFLASH0_START_ADDRESS FSL_FEATURE_FLASH_PFLASH_START_ADDRESS 98 #define FLASH_FEATURE_PFLASH0_BLOCK_COUNT FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT 99 #define FLASH_FEATURE_PFLASH0_BLOCK_SIZE_512KB FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE_512KB 100 #define FLASH_FEATURE_PFLASH0_BLOCK_SIZE FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE 101 #define FLASH_FEATURE_PFLASH0_IFR0_START_ADDRESS FSL_FEATURE_FLASH_IFR0_START_ADDRESS 102 #define FLASH_FEATURE_PFLASH0_IFR0_SIZE FSL_FEATURE_FLASH_IFR0_SIZE 103 104 #define FLASH_FEATURE_PFLASH1_START_ADDRESS FSL_FEATURE_RF_FLASH_PFLASH_START_ADDRESS 105 #define FLASH_FEATURE_PFLASH1_BLOCK_COUNT FSL_FEATURE_RF_FLASH_PFLASH_BLOCK_COUNT 106 #define FLASH_FEATURE_PFLASH1_BLOCK_SIZE FSL_FEATURE_RF_FLASH_PFLASH_BLOCK_SIZE 107 #define FLASH_FEATURE_PFLASH1_IFR0_START_ADDRESS FSL_FEATURE_RF_FLASH_IFR0_START_ADDRESS 108 #define FLASH_FEATURE_PFLASH1_IFR0_SIZE FSL_FEATURE_RF_FLASH_IFR0_SIZE 109 110 #define FLASH_FEATURE_SECTOR_SIZE FSL_FEATURE_FLASH_PFLASH_SECTOR_SIZE 111 #define FLASH_FEATURE_PHRASE_SIZE FSL_FEATURE_FLASH_PFLASH_PHRASE_SIZE 112 #define FLASH_FEATURE_PAGE_SIZE FSL_FEATURE_FLASH_PFLASH_PAGE_SIZE 113 #define FLASH_FEATURE_PHRASE_SIZE_IN_WORD (4u) 114 #define FLASH_FEATURE_PAGE_SIZE_IN_WORD (32u) 115 116 #endif /* FSL_FLASH_ADAPTER_H_ */ 117