/* * Copyright 2018-2021 NXP * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * */ #ifndef FSL_FLASH_ADAPTER_H_ #define FSL_FLASH_ADAPTER_H_ /******************************************************************************* * Definitions ******************************************************************************/ /*! * @name FTFx configuration * @{ */ /*! @brief Flash driver location. */ #if !defined(FLASH_DRIVER_IS_FLASH_RESIDENT) #if (!defined(BL_TARGET_ROM) && !defined(BL_TARGET_RAM)) #define FLASH_DRIVER_IS_FLASH_RESIDENT 1 /*!< Used for the flash resident application. */ #else #define FLASH_DRIVER_IS_FLASH_RESIDENT 0 /*!< Used for the non-flash resident application. */ #endif #endif #if defined(FMU0_MSF1) #define FLASH FMU0_MSF1_NS #define FLASH_FSTAT_FAIL_MASK FMU_FSTAT_FAIL_MASK #define FLASH_FSTAT_CMDABT_MASK FMU_FSTAT_CMDABT_MASK #define FLASH_FSTAT_PVIOL_MASK FMU_FSTAT_PVIOL_MASK #define FLASH_FSTAT_ACCERR_MASK FMU_FSTAT_ACCERR_MASK #define FLASH_FSTAT_CWSABT_MASK FMU_FSTAT_CWSABT_MASK #define FLASH_FSTAT_CCIF_MASK FMU_FSTAT_CCIF_MASK #define FLASH_FSTAT_CMDPRT_MASK FMU_FSTAT_CMDPRT_MASK #define FLASH_FSTAT_CMDP_MASK FMU_FSTAT_CMDP_MASK #define FLASH_FSTAT_CMDDID_MASK FMU_FSTAT_CMDDID_MASK #define FLASH_FSTAT_DFDIF_MASK FMU_FSTAT_DFDIF_MASK #define FLASH_FSTAT_PEWEN_MASK FMU_FSTAT_PEWEN_MASK #define FLASH_FSTAT_PERDY_MASK FMU_FSTAT_PERDY_MASK #elif defined(MSF1) #define FLASH MSF1 #define FLASH_FSTAT_FAIL_MASK MSF1_FSTAT_FAIL_MASK #define FLASH_FSTAT_CMDABT_MASK MSF1_FSTAT_CMDABT_MASK #define FLASH_FSTAT_PVIOL_MASK MSF1_FSTAT_PVIOL_MASK #define FLASH_FSTAT_ACCERR_MASK MSF1_FSTAT_ACCERR_MASK #define FLASH_FSTAT_CWSABT_MASK MSF1_FSTAT_CWSABT_MASK #define FLASH_FSTAT_CCIF_MASK MSF1_FSTAT_CCIF_MASK #define FLASH_FSTAT_CMDPRT_MASK MSF1_FSTAT_CMDPRT_MASK #define FLASH_FSTAT_CMDP_MASK MSF1_FSTAT_CMDP_MASK #define FLASH_FSTAT_CMDDID_MASK MSF1_FSTAT_CMDDID_MASK #define FLASH_FSTAT_DFDIF_MASK MSF1_FSTAT_DFDIF_MASK #define FLASH_FSTAT_PEWEN_MASK MSF1_FSTAT_PEWEN_MASK #define FLASH_FSTAT_PERDY_MASK MSF1_FSTAT_PERDY_MASK #elif defined(FMU0) #if (defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE & 0x2)) #define FLASH FMU0_NS #if defined(RF_FMU) #define NBU_FLASH RF_FMU_NS #endif #else #define FLASH FMU0 #if defined(RF_FMU) #define NBU_FLASH RF_FMU #endif #endif #define FLASH_FSTAT_FAIL_MASK FMU_FSTAT_FAIL_MASK #define FLASH_FSTAT_CMDABT_MASK FMU_FSTAT_CMDABT_MASK #define FLASH_FSTAT_PVIOL_MASK FMU_FSTAT_PVIOL_MASK #define FLASH_FSTAT_ACCERR_MASK FMU_FSTAT_ACCERR_MASK #define FLASH_FSTAT_CWSABT_MASK FMU_FSTAT_CWSABT_MASK #define FLASH_FSTAT_CCIF_MASK FMU_FSTAT_CCIF_MASK #define FLASH_FSTAT_CMDPRT_MASK FMU_FSTAT_CMDPRT_MASK #define FLASH_FSTAT_CMDP_MASK FMU_FSTAT_CMDP_MASK #define FLASH_FSTAT_CMDDID_MASK FMU_FSTAT_CMDDID_MASK #define FLASH_FSTAT_DFDIF_MASK FMU_FSTAT_DFDIF_MASK #define FLASH_FSTAT_PEWEN_MASK FMU_FSTAT_PEWEN_MASK #define FLASH_FSTAT_PERDY_MASK FMU_FSTAT_PERDY_MASK #endif #if defined(SMSCM) #define SMSCM_FLASH_CACHE_CTRL_MASK SMSCM_OCMDR0_OCMCF2_MASK #define SMSCM_FLASH_CACHE_CTRL(x) SMSCM_OCMDR0_OCMCF2(x) #define SMSCM_FLASH_SPECULATION_CTRL_MASK SMSCM_OCMDR0_OCMCF1_MASK #define SMSCM_FLASH_SPECULATION_CTRL(x) SMSCM_OCMDR0_OCMCF1(x) #endif #if defined(RF_FMCCFG) #define NBU_FLASH_CACHE_CTRL_MASK RF_FMCCFG_RFMCCFG_RFCF3_MASK #define NBU_FLASH_CACHE_CTRL(x) RF_FMCCFG_RFMCCFG_RFCF3(x) #define NBU_FLASH_SPECULATION_CTRL_MASK RF_FMCCFG_RFMCCFG_RFCF2_MASK #define NBU_FLASH_SPECULATION_CTRL(x) RF_FMCCFG_RFMCCFG_RFCF2(x) #endif #define FLASH_FEATURE_PFLASH0_START_ADDRESS FSL_FEATURE_FLASH_PFLASH_START_ADDRESS #define FLASH_FEATURE_PFLASH0_BLOCK_COUNT FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT #define FLASH_FEATURE_PFLASH0_BLOCK_SIZE_512KB FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE_512KB #define FLASH_FEATURE_PFLASH0_BLOCK_SIZE FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE #define FLASH_FEATURE_PFLASH0_IFR0_START_ADDRESS FSL_FEATURE_FLASH_IFR0_START_ADDRESS #define FLASH_FEATURE_PFLASH0_IFR0_SIZE FSL_FEATURE_FLASH_IFR0_SIZE #define FLASH_FEATURE_PFLASH1_START_ADDRESS FSL_FEATURE_RF_FLASH_PFLASH_START_ADDRESS #define FLASH_FEATURE_PFLASH1_BLOCK_COUNT FSL_FEATURE_RF_FLASH_PFLASH_BLOCK_COUNT #define FLASH_FEATURE_PFLASH1_BLOCK_SIZE FSL_FEATURE_RF_FLASH_PFLASH_BLOCK_SIZE #define FLASH_FEATURE_PFLASH1_IFR0_START_ADDRESS FSL_FEATURE_RF_FLASH_IFR0_START_ADDRESS #define FLASH_FEATURE_PFLASH1_IFR0_SIZE FSL_FEATURE_RF_FLASH_IFR0_SIZE #define FLASH_FEATURE_SECTOR_SIZE FSL_FEATURE_FLASH_PFLASH_SECTOR_SIZE #define FLASH_FEATURE_PHRASE_SIZE FSL_FEATURE_FLASH_PFLASH_PHRASE_SIZE #define FLASH_FEATURE_PAGE_SIZE FSL_FEATURE_FLASH_PFLASH_PAGE_SIZE #define FLASH_FEATURE_PHRASE_SIZE_IN_WORD (4u) #define FLASH_FEATURE_PAGE_SIZE_IN_WORD (32u) #endif /* FSL_FLASH_ADAPTER_H_ */