39 #include <inc/hw_types.h>
50 #ifndef DRIVERLIB_GENERATE_ROM
51 #undef FlashPowerModeSet
52 #define FlashPowerModeSet NOROM_FlashPowerModeSet
53 #undef FlashPowerModeGet
54 #define FlashPowerModeGet NOROM_FlashPowerModeGet
55 #undef FlashProtectionSet
56 #define FlashProtectionSet NOROM_FlashProtectionSet
57 #undef FlashProtectionGet
58 #define FlashProtectionGet NOROM_FlashProtectionGet
59 #undef FlashProtectionSave
60 #define FlashProtectionSave NOROM_FlashProtectionSave
61 #undef FlashSectorErase
62 #define FlashSectorErase NOROM_FlashSectorErase
64 #define FlashProgram NOROM_FlashProgram
65 #undef FlashProgramNowait
66 #define FlashProgramNowait NOROM_FlashProgramNowait
67 #undef FlashEfuseReadRow
68 #define FlashEfuseReadRow NOROM_FlashEfuseReadRow
69 #undef FlashDisableSectorsForWrite
70 #define FlashDisableSectorsForWrite NOROM_FlashDisableSectorsForWrite
80 0xFF, 0xFF, 0xFF, 0xFF,
81 0xC5, 0xFF, 0xFF, 0xFF,
82 0xC5, 0xC5, 0xC5, 0xFF,
83 0xC5, 0xC5, 0xC5, 0xFF
95 static void SetReadMode(
void);
104 uint32_t ui32PumpGracePeriode)
112 ASSERT(ui32BankGracePeriode <= 0xFF);
113 ASSERT(ui32PumpGracePeriode <= 0xFFFF);
115 switch(ui32PowerMode)
196 uint32_t ui32PowerMode;
197 uint32_t ui32BankPwrMode;
218 return(ui32PowerMode);
229 uint32_t ui32SectorNumber;
244 if(ui32SectorNumber <= 31)
249 else if(ui32SectorNumber <= 63)
252 (1 << (ui32SectorNumber & 0x1F));
254 (1 << (ui32SectorNumber & 0x1F));
269 uint32_t ui32SectorProtect;
270 uint32_t ui32SectorNumber;
282 if(ui32SectorNumber <= 31)
290 else if(ui32SectorNumber <= 63)
293 (1 << (ui32SectorNumber & 0x1F))) &&
295 (1 << (ui32SectorNumber & 0x1F))))
301 return(ui32SectorProtect);
312 uint32_t ui32ErrorReturn;
313 uint32_t ui32SectorNumber;
314 uint32_t ui32CcfgSectorAddr;
315 uint8_t pui8ProgBuf[4];
345 *(uint32_t *)pui8ProgBuf = (~(1 << (ui32SectorNumber & 0x1F))) &
346 *(uint32_t *)ui32CcfgSectorAddr;
348 ui32ErrorReturn =
FlashProgram(pui8ProgBuf, ui32CcfgSectorAddr,
355 return(ui32ErrorReturn);
366 uint32_t ui32ErrorReturn;
380 ui32ErrorReturn = FuncPointer(ui32SectorAddress);
390 return(ui32ErrorReturn);
401 FlashProgram(uint8_t *pui8DataBuffer, uint32_t ui32Address, uint32_t ui32Count)
403 uint32_t ui32ErrorReturn;
414 FuncPointer = (uint32_t (*)(uint8_t *, uint32_t, uint32_t)) (
ROM_FLASHTABLE[6]);
415 ui32ErrorReturn = FuncPointer( pui8DataBuffer, ui32Address, ui32Count);
425 return(ui32ErrorReturn);
565 uint32_t ui32TrimValue;
584 ui32Value = ((ui32TrimValue &
589 ui32Value |= ((ui32TrimValue &
596 ui32Value |= ((ui32TrimValue &
620 ui32Value = ((ui32TrimValue &
652 ui32Value = ((ui32TrimValue &
657 ui32Value |= ((ui32TrimValue &
664 ui32Value |= ((ui32TrimValue &
688 ui32Value = (((ui32TrimValue &
720 uint32_t ui32ErrorReturn;
727 FuncPointer = (uint32_t (*)(uint8_t *, uint32_t, uint32_t)) (ui32RomAddr);
728 ui32ErrorReturn = FuncPointer( pui8DataBuffer, ui32Address, ui32Count);
738 return(ui32ErrorReturn);
749 uint32_t ui32ErrorReturn;
757 FuncPointer = (uint32_t (*)(uint32_t)) (ui32RomAddr);
758 ui32ErrorReturn = FuncPointer(ui32Address);
768 return(ui32ErrorReturn);
#define FLASH_PWR_OFF_MODE
__STATIC_INLINE uint32_t FlashSectorSizeGet(void)
Get size of a flash sector in number of bytes.
#define CCFG_SIZE_SECT_PROT
#define FBFALLBACK_DEEP_STDBY
uint32_t(* FlashSectorErasePointer_t)(uint32_t)
uint32_t FlashProtectionGet(uint32_t ui32SectorAddress)
Get sector protection.
uint32_t(* FlashPrgPointer_t)(uint8_t *, uint32_t, uint32_t)
void FlashPowerModeSet(uint32_t ui32PowerMode, uint32_t ui32BankGracePeriode, uint32_t ui32PumpGracePeriode)
Set power mode.
void FlashDisableSectorsForWrite(void)
Disables all sectors for erase and programming on the active bank.
#define FSM_REG_WRT_DISABLE
uint32_t FlashPowerModeGet(void)
Get current configured power mode.
__STATIC_INLINE uint32_t FlashSizeGet(void)
Get the size of the flash.
#define FAPI_STATUS_SUCCESS
uint32_t MemBusWrkAroundHapiEraseSector(uint32_t ui32Address)
uint32_t FlashSectorErase(uint32_t ui32SectorAddress)
Erase a flash sector.
#define FSM_REG_WRT_ENABLE
#define FBFALLBACK_ACTIVE
bool FlashEfuseReadRow(uint32_t *pui32EfuseData, uint32_t ui32RowAddress)
Reads efuse data from specified row.
uint32_t MemBusWrkAroundHapiProgramFlash(uint8_t *pui8DataBuffer, uint32_t ui32Address, uint32_t ui32Count)
#define ROM_HAPI_TABLE_ADDR
uint32_t FlashProtectionSave(uint32_t ui32SectorAddress)
Save sector protection to make it permanent.
#define FLASH_PWR_ACTIVE_MODE
#define FLASH_WRITE_PROTECT
#define CCFG_OFFSET_SECT_PROT
void FlashProtectionSet(uint32_t ui32SectorAddress, uint32_t ui32ProtectMode)
Set sector protection.
#define FLASH_PWR_DEEP_STDBY_MODE
uint32_t FlashProgram(uint8_t *pui8DataBuffer, uint32_t ui32Address, uint32_t ui32Count)
Programs unprotected main bank flash sectors.
const uint8_t g_pui8CcfgDefaultSec[]