diff options
Diffstat (limited to 'inc/platform/flash_adv_cfg.h')
-rw-r--r-- | inc/platform/flash_adv_cfg.h | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/inc/platform/flash_adv_cfg.h b/inc/platform/flash_adv_cfg.h new file mode 100644 index 0000000..2b45b51 --- /dev/null +++ b/inc/platform/flash_adv_cfg.h @@ -0,0 +1,154 @@ +/** +**************************************************************************************************** +* Copyright(c) 2016, Realtek Semiconductor Corporation. All rights reserved. +**************************************************************************************************** +* @file flash_adv_cfg.h +* @brief +* @note flash advanced functions +* @author Grace +* @date 2018-04-19 +* @version v0.1 +* ************************************************************************************************** +*/ + +#ifndef _FLASH_ADV_CFG_H_ +#define _FLASH_ADV_CFG_H_ + +#include <stdint.h> +#include <stdbool.h> +#include "flash_device.h" + +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + +/** @defgroup FLASH_DEVICE Flash Device + * @{ + */ + +/*============================================================================* + * Types + *============================================================================*/ +/** @defgroup FLASH_DEVICE_Exported_Types Flash Device Exported Types + * @brief + * @{ + */ + +/** End of FLASH_DEVICE_Exported_Types + * @} + */ +/************************************************************************************************* + * Functions +*************************************************************************************************/ +/** @defgroup FLASH_DEVICE_Exported_Functions Flash Device Exported Functions + * @brief + * @{ + */ + +/** +* @brief get block protect level +* @param *bp_lv a set of BPx ~ BP0 +* @return success or not +*/ +bool flash_get_block_protect_locked(uint8_t *bp_lv); + +/** +* @brief set block protect by map +* @param bp_lv a set of BPx ~ BP0 +* @return success or not +*/ +bool flash_set_block_protect_locked(uint8_t bp_lv); + +/** +* @brief only unlock prefer section by addres +* @param unlock_addr address section to be unlocked +* @param *old_bp_lv before unlock +* @return success or not +*/ +bool flash_sw_protect_unlock_by_addr_locked(uint32_t unlock_addr, uint8_t *old_bp_lv); + +/** +* @brief read vendor_id to switch callback +* @return true if success +* false if not support +*/ +bool flash_otp_init(void); + +/** +* @brief safe version of flash_otp_erase +* @param type erase type +* @param addr address to erase when erase block or sector +* @return true if success +*/ +bool flash_otp_erase_locked(T_ERASE_TYPE type, uint32_t addr); + +/** +* @brief safe version of flash_otp_write +* @param start_addr start_addr address where is going to be flash in flash +* @param data_len data length to be program +* @param data data buffer to be program into +* @return true if success +*/ +bool flash_otp_write_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data); + +/** +* @brief safe version of flash_otp_read +* @param start_addr start_addr address where is going to be read in flash +* @param data_len data length to be read +* @param data data buffer to be read into +* @return true if success +*/ +bool flash_otp_read_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data); + +/** +* @brief safe version of flash_otp_enter +* @return true if success +*/ +bool flash_otp_enter_locked(void); + +/** +* @brief safe version of flash_otp_exit +* @return true if success +*/ +bool flash_otp_exit_locked(void); + +/** +* @brief safe version of flash_otp_set_lb +* @return true if success +*/ +bool flash_otp_set_lb_locked(void); + +/** +* @brief safe version of flash_otp_get_lb +* @return true if success +*/ +bool flash_otp_get_lb_locked(void); + +/** + * @brief read SFDP data + * @param start_addr start_addr address in SFDP table + * @param data_len data length to be read + * @param data data buffer to be read into + * @return true if success +*/ +bool flash_sfdp_read_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data); + +/** + * @brief The quick user mode read (use split read to improve read speed) + * @param start_addr start_addr address where is going to be read in flash (4 byte aligned) + * @param data_len data length to be read + * @param data data buffer to be read into + * @return true if success +*/ +bool flash_read_quick_locked(uint32_t start_addr, uint32_t data_len, uint8_t *data); + +/** @} */ /* End of group FLASH_DEVICE_Exported_Functions */ + + +/** @} */ /* End of group FLASH_DEVICE */ + +#ifdef __cplusplus +} +#endif // __cplusplus + +#endif // _FLASH_ADV_CFG_H_ |