Functions | |
void | VIMSConfigure (uint32_t ui32Base, bool bRoundRobin, bool bPrefetch) |
Configures the VIMS. More... | |
void | VIMSModeSet (uint32_t ui32Base, uint32_t ui32Mode) |
Set the operational mode of the VIMS. More... | |
uint32_t | VIMSModeGet (uint32_t ui32Base) |
Get the current operational mode of the VIMS. More... | |
void | VIMSModeSetBlocking (uint32_t ui32Mode) |
Set the operational mode of the VIMS in a safe sequence (blocking). More... | |
static void | VIMSLineBufDisable (uint32_t ui32Base) |
Disable VIMS linebuffers. More... | |
static void | VIMSLineBufEnable (uint32_t ui32Base) |
Enable VIMS linebuffers. More... | |
void VIMSConfigure | ( | uint32_t | ui32Base, |
bool | bRoundRobin, | ||
bool | bPrefetch | ||
) |
Configures the VIMS.
This function sets general control settings of the VIMS system.
ui32Base | is the base address of the VIMS. |
bRoundRobin | specifies the arbitration method.
|
bPrefetch | specifies if prefetching is to be used.
|
|
inlinestatic |
Disable VIMS linebuffers.
Linebuffers should only be disabled when attempting to update the flash, to ensure that the content of the buffers is not stale. As soon as flash is updated the linebuffers should be reenabled. Failing to enable will have a performance impact.
ui32Base | is the base address of the VIMS. |
|
inlinestatic |
Enable VIMS linebuffers.
Linebuffers should only be disabled when attempting to update the flash, to ensure that the content of the buffers is not stale. As soon as flash is updated the linebuffers should be reenabled. Failing to enable will have a performance impact.
ui32Base | is the base address of the VIMS. |
uint32_t VIMSModeGet | ( | uint32_t | ui32Base | ) |
Get the current operational mode of the VIMS.
This function returns the operational mode of the VIMS.
ui32Base | is the base address of the VIMS. |
void VIMSModeSet | ( | uint32_t | ui32Base, |
uint32_t | ui32Mode | ||
) |
Set the operational mode of the VIMS.
This function sets the operational mode of the VIMS.
Upon reset the VIMS will be in VIMS_MODE_CHANGING mode. In this mode the VIMS will initialize the cache (GP) RAM (to all zeros). The GP RAM will not be operational (read/write will result in bus fault). The Cache will not be operational. Reads and writes to flash will be uncached. After a short delay (approx. 1029 clock cycles) the VIMS will automatically switch mode to VIMS_MODE_DISABLED.
In VIMS_MODE_DISABLED mode, the cache is disabled but the GP RAM is accessible: The GP RAM will be accessible. The Cache will not be operational. Reads from flash will be uncached. From this mode, the VIMS may be put in VIMS_MODE_ENABLED or VIMS_MODE_SPLIT.
In VIMS_MODE_ENABLED mode, the cache is enabled for USERCODE space. The GP RAM will not be operational (read/write will result in bus fault). The Cache will be operational for SYSCODE space. Reads from flash in USERCODE space will be uncached.
In VIMS_MODE_SPLIT mode, the cache is enabled for both USERCODE and SYSCODE space. The GP RAM will not be operational (read/write will result in bus fault). The Cache will be operational for USERCODE and SYSCODE space.
In VIMS_MODE_OFF the cache RAM is off to conserve power.
ui32Base | is the base address of the VIMS. |
ui32Mode | is the operational mode. |
void VIMSModeSetBlocking | ( | uint32_t | ui32Mode | ) |
Set the operational mode of the VIMS in a safe sequence (blocking).
This function sets the operational mode of the VIMS in a safe sequence
Upon reset the VIMS will be in VIMS_MODE_CHANGING mode. In this mode the VIMS will initialize the cache (GP) RAM (to all zeros). The GP RAM will not be operational (read/write will result in bus fault). The Cache will not be operational. Reads and writes to flash will be uncached. After a short delay (approx. 1029 clock cycles) the VIMS will automatically switch mode to VIMS_MODE_DISABLED.
In VIMS_MODE_DISABLED mode, the cache is disabled but the GP RAM is accessible: The GP RAM will be accessible. The Cache will not be operational. Reads from flash will be uncached. From this mode, the VIMS may be put in VIMS_MODE_ENABLED or VIMS_MODE_SPLIT.
In VIMS_MODE_ENABLED mode, the cache is enabled for USERCODE space. The GP RAM will not be operational (read/write will result in bus fault). The Cache will be operational for SYSCODE space. Reads from flash in USERCODE space will be uncached.
In VIMS_MODE_SPLIT mode, the cache is enabled for both USERCODE and SYSCODE space. The GP RAM will not be operational (read/write will result in bus fault). The Cache will be operational for USERCODE and SYSCODE space.
In VIMS_MODE_OFF the cache RAM is off to conserve power.
ui32Mode | is the operational mode. |
#define VIMS_MODE_CHANGING 0x4 |
Definition at line 95 of file vims.h.
Referenced by VIMSModeGet().
#define VIMS_MODE_DISABLED 0x0 |
Definition at line 97 of file vims.h.
Referenced by VIMSModeSet().
#define VIMS_MODE_ENABLED 0x1 |
Definition at line 98 of file vims.h.
Referenced by VIMSModeSet().
#define VIMS_MODE_OFF 0x3 |
Definition at line 101 of file vims.h.
Referenced by VIMSModeSet().
#define VIMS_MODE_SPLIT 0x2 |
Definition at line 99 of file vims.h.
Referenced by VIMSModeSet().