|
|
|
@ -45,25 +45,25 @@
|
|
|
|
|
|
|
|
|
|
void flash_init(void);
|
|
|
|
|
|
|
|
|
|
secbool flash_unlock(void);
|
|
|
|
|
secbool flash_lock(void);
|
|
|
|
|
secbool __wur flash_unlock(void);
|
|
|
|
|
secbool __wur flash_lock(void);
|
|
|
|
|
|
|
|
|
|
const void *flash_get_address(uint8_t sector, uint32_t offset, uint32_t size);
|
|
|
|
|
|
|
|
|
|
secbool flash_erase_sectors(const uint8_t *sectors, int len, void (*progress)(int pos, int len));
|
|
|
|
|
secbool __wur flash_erase_sectors(const uint8_t *sectors, int len, void (*progress)(int pos, int len));
|
|
|
|
|
static inline secbool flash_erase_sector(uint8_t sector) { return flash_erase_sectors(§or, 1, NULL); }
|
|
|
|
|
secbool flash_write_byte(uint32_t address, uint8_t data);
|
|
|
|
|
secbool flash_write_word(uint32_t address, uint32_t data);
|
|
|
|
|
secbool flash_write_byte_rel(uint8_t sector, uint32_t offset, uint8_t data);
|
|
|
|
|
secbool flash_write_word_rel(uint8_t sector, uint32_t offset, uint32_t data);
|
|
|
|
|
secbool flash_read_word_rel(uint8_t sector, uint32_t offset, uint32_t *data);
|
|
|
|
|
secbool __wur flash_write_byte(uint32_t address, uint8_t data);
|
|
|
|
|
secbool __wur flash_write_word(uint32_t address, uint32_t data);
|
|
|
|
|
secbool __wur flash_write_byte_rel(uint8_t sector, uint32_t offset, uint8_t data);
|
|
|
|
|
secbool __wur flash_write_word_rel(uint8_t sector, uint32_t offset, uint32_t data);
|
|
|
|
|
secbool __wur flash_read_word_rel(uint8_t sector, uint32_t offset, uint32_t *data);
|
|
|
|
|
|
|
|
|
|
#define FLASH_OTP_NUM_BLOCKS 16
|
|
|
|
|
#define FLASH_OTP_BLOCK_SIZE 32
|
|
|
|
|
|
|
|
|
|
secbool flash_otp_read(uint8_t block, uint8_t offset, uint8_t *data, uint8_t datalen);
|
|
|
|
|
secbool flash_otp_write(uint8_t block, uint8_t offset, const uint8_t *data, uint8_t datalen);
|
|
|
|
|
secbool flash_otp_lock(uint8_t block);
|
|
|
|
|
secbool flash_otp_is_locked(uint8_t block);
|
|
|
|
|
secbool __wur flash_otp_read(uint8_t block, uint8_t offset, uint8_t *data, uint8_t datalen);
|
|
|
|
|
secbool __wur flash_otp_write(uint8_t block, uint8_t offset, const uint8_t *data, uint8_t datalen);
|
|
|
|
|
secbool __wur flash_otp_lock(uint8_t block);
|
|
|
|
|
secbool __wur flash_otp_is_locked(uint8_t block);
|
|
|
|
|
|
|
|
|
|
#endif // TREZORHAL_FLASH_H
|
|
|
|
|