35#include "compiler_port.h"
43#define FLASH_DRIVER_VERSION_MAJOR 0x01
45#define FLASH_DRIVER_VERSION_MINOR 0x01
47#define FLASH_DRIVER_VERSION_PATCH 0x00
49#define FLASH_DRIVER_VERSION \
50 (uint32_t)(((FLASH_DRIVER_VERSION_MAJOR & 0xFF) << 16) | \
51 ((FLASH_DRIVER_VERSION_MINOR & 0xFF) << 8) | (FLASH_DRIVER_VERSION_PATCH & 0xFF))
54#define FLASH_FLAGS_LATER_SWAP 0x1
63 FLASH_TYPE_EXTERNAL_PARALLEL,
64 FLASH_TYPE_EXTERNAL_SPI,
65 FLASH_TYPE_EXTERNAL_QSPI,
66 FLASH_TYPE_EXTERNAL_OSPI
141typedef error_t (*
FlashWrite)(uint32_t address, uint8_t *data,
size_t length);
147typedef error_t (*
FlashRead)(uint32_t address, uint8_t *data,
size_t length);
153typedef error_t (*
FlashErase)(uint32_t address,
size_t length);
209static inline bool_t flashRangeInBounds(uint32_t address,
size_t length, uint32_t base,
212 return address >= base && address < topAddress &&
213 length <= (size_t) (topAddress - address);
217static inline bool_t flashWordProgramInBounds(uint32_t address, uint32_t topAddress)
219 return (address %
sizeof(uint32_t)) == 0 && address < topAddress &&
220 sizeof(uint32_t) <= (topAddress - address);
bool_t(* FlashIsSectorAddr)(uint32_t address)
Determine if a given address match the start address of a sector.
Definition flash.h:174
error_t(* FlashGetInfo)(const FlashInfo **info)
Get Flash Information function.
Definition flash.h:129
error_t(* FlashSwapBanks)(void)
Swap Flash Banks function.
Definition flash.h:159
error_t(* FlashErase)(uint32_t address, size_t length)
Erase Data from Flash function.
Definition flash.h:153
error_t(* FlashGetStatus)(FlashStatus *status)
Get Flash Status function.
Definition flash.h:135
FlashStatus
Flash Status definition.
Definition flash.h:107
error_t(* FlashInit)(void)
Flash initialization function.
Definition flash.h:117
error_t(* FlashRead)(uint32_t address, uint8_t *data, size_t length)
Read Data from Flash function.
Definition flash.h:147
error_t(* FlashDeInit)(void)
Flash de-initialization function.
Definition flash.h:123
error_t(* FlashActivateXiPMode)(bool_t activateXipMode)
Switch between memory-mapped and R/W mode(s)
Definition flash.h:180
error_t(* FlashGetNextSector)(uint32_t address, uint32_t *sectorAddr)
Get address of the neighbouring sector.
Definition flash.h:168
FlashType
Flash Type definition.
Definition flash.h:61
error_t(* FlashWrite)(uint32_t address, uint8_t *data, size_t length)
Write Data into Flash function.
Definition flash.h:141
CycloneBOOT Memory Layer Abstraction.
Flash Driver definition.
Definition flash.h:187
FlashGetNextSector getNextSectorAddr
Definition flash.h:196
FlashRead read
Flash Driver read data callback function.
Definition flash.h:193
FlashActivateXiPMode flashActivateXiPMode
Definition flash.h:200
FlashErase erase
Flash Driver erase data callback function.
Definition flash.h:194
FlashGetStatus getStatus
Flash Driver get status callback function.
Definition flash.h:191
FlashIsSectorAddr isSectorAddr
Definition flash.h:198
FlashWrite write
Flash Driver write data callback function.
Definition flash.h:192
FlashInit init
Flash Driver init callback function.
Definition flash.h:188
FlashGetInfo getInfo
Flash Driver get information callback function.
Definition flash.h:190
FlashDeInit deInit
Flash Driver deinit callback function.
Definition flash.h:189
FlashSwapBanks swapBanks
Flash Driver swap banks callback function.
Definition flash.h:195
Flash Information definition.
Definition flash.h:87
uint32_t flags
Flash memory flags.
Definition flash.h:99
uint32_t bank1Addr
Flash memory bank 1 start address.
Definition flash.h:97
uint32_t bank2Addr
Flash memory bank 2 start address.
Definition flash.h:98
size_t bankSize
Flash meory bank size.
Definition flash.h:96
char * flashName
Flash memory name.
Definition flash.h:89
size_t flashSize
Flash memory size.
Definition flash.h:92
uint8_t dualBank
Flash memory dual bank capability.
Definition flash.h:95
size_t writeSize
Flash memory write size.
Definition flash.h:93
uint32_t flashAddr
Flash memory start address.
Definition flash.h:91
FlashType flashType
Flash memory type.
Definition flash.h:90
uint32_t version
Flash driver version.
Definition flash.h:88
size_t readSize
Flash memory read size.
Definition flash.h:94