47 #ifndef FLASH_H_INCLUDED 48 #define FLASH_H_INCLUDED 92 #define FLASH_ACCESS_MODE_128 EFC_ACCESS_MODE_128 94 #define FLASH_ACCESS_MODE_64 EFC_ACCESS_MODE_64 97 uint32_t
flash_init(uint32_t ul_mode, uint32_t ul_fws);
102 uint32_t *pul_flash_descriptor, uint32_t ul_size);
108 #if (SAM3S8 || SAM3SD8) 109 uint32_t flash_erase_plane(uint32_t ul_address);
112 #if (SAM4S || SAM4E || SAM4N || SAM4C || SAMG || SAM4CP || SAM4CM || \ 113 SAMV71 || SAMV70 || SAMS70 || SAME70) 114 uint32_t flash_erase_page(uint32_t ul_address, uint8_t uc_page_num);
115 uint32_t flash_erase_sector(uint32_t ul_address);
118 uint32_t
flash_write(uint32_t ul_address,
const void *p_buffer,
119 uint32_t ul_size, uint32_t ul_erase_flag);
120 uint32_t
flash_lock(uint32_t ul_start, uint32_t ul_end,
121 uint32_t *pul_actual_start, uint32_t *pul_actual_end);
122 uint32_t
flash_unlock(uint32_t ul_start, uint32_t ul_end,
123 uint32_t *pul_actual_start, uint32_t *pul_actual_end);
132 #if (SAM4S || SAM4E || SAM4N || SAM4C || SAMG || SAM4CP || SAM4CM || \ 133 SAMV71 || SAMV70 || SAMS70 || SAME70) 134 uint32_t flash_read_user_signature(uint32_t *p_data, uint32_t ul_size);
135 uint32_t flash_write_user_signature(
const void *p_buffer, uint32_t ul_size);
136 uint32_t flash_erase_user_signature(
void);
uint32_t flash_enable_security_bit(void)
Set security bit.
uint32_t flash_init(uint32_t ul_mode, uint32_t ul_fws)
Initialize the flash service.
uint32_t flash_get_page_count(const uint32_t *pul_flash_descriptor)
Get flash total page count for the specified bank.
uint32_t flash_lock(uint32_t ul_start, uint32_t ul_end, uint32_t *pul_actual_start, uint32_t *pul_actual_end)
Lock all the regions in the given address range. The actual lock range is reported through two output...
uint32_t flash_clear_gpnvm(uint32_t ul_gpnvm)
Clear the given GPNVM bit.
uint32_t flash_is_locked(uint32_t ul_start, uint32_t ul_end)
Get the number of locked regions inside the given address range.
uint32_t flash_erase_all(uint32_t ul_address)
Erase the entire flash.
Commonly used includes, types and macros.
Operation is not supported.
enum flash_farg_page_num flash_farg_page_num_t
uint32_t flash_set_wait_state_adaptively(uint32_t ul_address)
Set flash wait state.
uint32_t flash_get_page_count_per_region(const uint32_t *pul_flash_descriptor)
Get flash page count per region (plane) for the specified bank.
uint32_t flash_write(uint32_t ul_address, const void *p_buffer, uint32_t ul_size, uint32_t ul_erase_flag)
Write a data buffer on flash.
uint32_t flash_is_gpnvm_set(uint32_t ul_gpnvm)
Check if the given GPNVM bit is set or not.
uint32_t flash_get_descriptor(uint32_t ul_address, uint32_t *pul_flash_descriptor, uint32_t ul_size)
Get flash descriptor.
uint32_t flash_get_wait_state(uint32_t ul_address)
Get flash wait state.
uint32_t flash_is_security_bit_enabled(void)
Check if the security bit is set or not.
uint32_t flash_set_gpnvm(uint32_t ul_gpnvm)
Set the given GPNVM bit.
uint32_t flash_set_wait_state(uint32_t ul_address, uint32_t ul_fws)
Set flash wait state.
uint32_t flash_get_region_count(const uint32_t *pul_flash_descriptor)
Get flash region (plane) count for the specified bank.
uint32_t flash_unlock(uint32_t ul_start, uint32_t ul_end, uint32_t *pul_actual_start, uint32_t *pul_actual_end)
Unlock all the regions in the given address range. The actual unlock range is reported through two ou...
uint32_t flash_read_unique_id(uint32_t *pul_data, uint32_t ul_size)
Read the flash unique ID.