From 93c8f3dd236c81ddfea5b564e191a1139a37a98f Mon Sep 17 00:00:00 2001 From: qqwang Date: Thu, 5 Aug 2021 17:56:16 +0800 Subject: [PATCH] [feat][l1c] update flush cache external api --- drivers/bl702_driver/std_drv/inc/bl702_l1c.h | 1 + drivers/bl702_driver/std_drv/src/bl702_l1c.c | 24 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/drivers/bl702_driver/std_drv/inc/bl702_l1c.h b/drivers/bl702_driver/std_drv/inc/bl702_l1c.h index f19f5404..6c3a27d6 100644 --- a/drivers/bl702_driver/std_drv/inc/bl702_l1c.h +++ b/drivers/bl702_driver/std_drv/inc/bl702_l1c.h @@ -173,6 +173,7 @@ void L1C_BMX_TO_IRQHandler(void); BL_Err_Type L1C_Cache_Enable_Set(uint8_t wayDisable); void L1C_Cache_Write_Set(BL_Fun_Type wtEn, BL_Fun_Type wbEn, BL_Fun_Type waEn); BL_Err_Type L1C_Cache_Flush(uint8_t wayDisable); +BL_Err_Type L1C_Cache_Flush_Ext(void); void L1C_Cache_Hit_Count_Get(uint32_t *hitCountLow, uint32_t *hitCountHigh); uint32_t L1C_Cache_Miss_Count_Get(void); void L1C_Cache_Read_Disable(void); diff --git a/drivers/bl702_driver/std_drv/src/bl702_l1c.c b/drivers/bl702_driver/std_drv/src/bl702_l1c.c index fe230fe9..fd9cfa06 100644 --- a/drivers/bl702_driver/std_drv/src/bl702_l1c.c +++ b/drivers/bl702_driver/std_drv/src/bl702_l1c.c @@ -248,6 +248,30 @@ BL_Err_Type ATTR_TCM_SECTION L1C_Cache_Flush(uint8_t wayDisable) } #endif +/****************************************************************************/ /** + * @brief Flush cache external api + * + * @param None + * + * @return SUCCESS or ERROR + * +*******************************************************************************/ +BL_Err_Type ATTR_TCM_SECTION L1C_Cache_Flush_Ext(void) +{ + uint32_t tmpVal; + + /* Disable early respone */ + tmpVal = BL_RD_REG(L1C_BASE, L1C_CONFIG); + L1C_Cache_Flush((tmpVal >> L1C_WAY_DIS_POS) & 0xf); + __NOP(); + __NOP(); + __NOP(); + __NOP(); + __NOP(); + + return SUCCESS; +} + /****************************************************************************/ /** * @brief Get cache hit count *