OSPI Driver API/interface file.
Go to the source code of this file.
Data Structures | |
struct | OSPI_Transaction |
Data structure used with OSPI_Transfers - OSPI_readDirect, OSPI_writeDirect, OSPI_readIndirect, OSPI_writeIndirect. More... | |
struct | OSPI_WriteCmdParams |
struct | OSPI_ReadCmdParams |
struct | OSPI_AddrRegion |
OSPI Address Region. More... | |
struct | OSPI_Params |
OSPI Parameters. More... | |
struct | OSPI_Attrs |
OSPI instance attributes - used during init time. More... | |
struct | OSPI_Object |
OSPI driver object. More... | |
struct | OSPI_Config |
Macros | |
Transfer Status Code | |
#define | OSPI_TRANSFER_COMPLETED (0U) |
#define | OSPI_TRANSFER_STARTED (1U) |
#define | OSPI_TRANSFER_CANCELLED (2U) |
#define | OSPI_TRANSFER_FAILED (3U) |
#define | OSPI_TRANSFER_CSN_DEASSERT (4U) |
#define | OSPI_TRANSFER_TIMEOUT (5U) |
Transfer Mode | |
This determines whether the driver operates synchronously or asynchronously In OSPI_TRANSFER_MODE_BLOCKING OSPI_Transfers block code execution until the transaction has completed In OSPI_TRANSFER_MODE_CALLBACK OSPI_Transfers does not block code execution and instead calls a callback function when the transaction has completed | |
#define | OSPI_TRANSFER_MODE_BLOCKING (0U) |
OSPI_Transfers blocks execution. This mode can only be used when called within a Task context and is interrupt based More... | |
#define | OSPI_TRANSFER_MODE_CALLBACK (1U) |
OSPI_Transfers does not block code execution and will call a callback function. This mode can be used in a Task, Swi, or Hwi context More... | |
#define | OSPI_TRANSFER_MODE_POLLING (2U) |
OSPI_Transfers blocks execution. This mode can only be used when called within a Task context and is polling based. More... | |
Frame Format | |
#define | OSPI_FF_POL0_PHA0 (0U) |
#define | OSPI_FF_POL0_PHA1 (CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | 0U) |
#define | OSPI_FF_POL1_PHA0 (0U | CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK) |
#define | OSPI_FF_POL1_PHA1 |
Macros for invalid commands | |
#define | OSPI_CMD_INVALID_OPCODE (0xFFU) |
#define | OSPI_CMD_INVALID_DUMMY (0xFFU) |
#define | OSPI_CMD_INVALID_ADDR (0xFFFFFFFFU) |
Macros for command extension types | |
#define | OSPI_CMD_EXT_TYPE_REPEAT (0x00U) |
#define | OSPI_CMD_EXT_TYPE_INVERSE (0x01U) |
#define | OSPI_CMD_EXT_TYPE_NONE (0x02U) |
Macros for OSPI protocol types | |
#define | OSPI_NOR_PROTOCOL(cmd, addr, data, dtr) |
#define | OSPI_NOR_PROTOCOL_INVALID (uint32_t)(0xFFFFFFFF) |
Chip Selects | |
#define | OSPI_CS0 (0U) |
#define | OSPI_CS1 (1U) |
#define | OSPI_CS2 (2U) |
#define | OSPI_CS3 (3U) |
#define | OSPI_CHIP_SELECT(x) ((~((1U) << (x))) & 0xFU) |
Decoder Chip Selects | |
#define | OSPI_DECODER_SELECT4 ((uint32_t) 0U) |
#define | OSPI_DECODER_SELECT16 ((uint32_t) 1U) |
Typedefs | |
typedef void * | OSPI_Handle |
A handle that is returned from a OSPI_open() call. More... | |
Functions | |
void | OSPI_init (void) |
This function initializes the OSPI module. More... | |
void | OSPI_deinit (void) |
This function de-initializes the OSPI module. More... | |
void | OSPI_Params_init (OSPI_Params *ospiParams) |
Initialize data structure with defaults. More... | |
OSPI_Handle | OSPI_open (uint32_t index, const OSPI_Params *openParams) |
This function opens a given OSPI peripheral. More... | |
void | OSPI_close (OSPI_Handle handle) |
Function to close a OSPI peripheral specified by the OSPI handle. More... | |
OSPI_Handle | OSPI_getHandle (uint32_t index) |
This function returns the handle of an open OSPI Instance from the instance index. More... | |
int32_t | OSPI_readCmd (OSPI_Handle handle, OSPI_ReadCmdParams *rdParams) |
Function to send specific commands and receive related data from flash. More... | |
int32_t | OSPI_writeCmd (OSPI_Handle handle, OSPI_WriteCmdParams *wrParams) |
Function to send specific commands and related data to flash. More... | |
void | OSPI_Transaction_init (OSPI_Transaction *trans) |
Function to initialize the OSPI_Transaction structure. More... | |
void | OSPI_ReadCmdParams_init (OSPI_ReadCmdParams *rdParams) |
Function to initialize the OSPI_ReadCmdParams structure. More... | |
void | OSPI_WriteCmdParams_init (OSPI_WriteCmdParams *wrParams) |
Function to initialize the OSPI_WriteCmdParams structure. More... | |
uint32_t | OSPI_getInputClk (OSPI_Handle handle) |
This function returns the input clk frequency OSPI was programmed at. More... | |
uint32_t | OSPI_isDacEnable (OSPI_Handle handle) |
This function checks if the Direct Access Controller is enabled. More... | |
uint32_t | OSPI_isDmaEnable (OSPI_Handle handle) |
This function checks if DMA is enabled for reads. More... | |
uint32_t | OSPI_isIntrEnable (OSPI_Handle handle) |
This function checks if interrupts are enabled. More... | |
uint32_t | OSPI_isPhyEnable (OSPI_Handle handle) |
This function checks if the OSPI PHY controller is enabled. More... | |
uint32_t | OSPI_isDtrEnable (OSPI_Handle handle) |
This function checks if the Dual Transfer Rate (Sampling on both rising and falling edge of the clock) is enabled. More... | |
int32_t | OSPI_enableDDR (OSPI_Handle handle) |
This function enables the Dual Data Rate (DDR) More... | |
int32_t | OSPI_enableSDR (OSPI_Handle handle) |
This function enables the Single Data Rate (SDR) More... | |
int32_t | OSPI_enableDdrRdCmds (OSPI_Handle handle) |
This function sets DDR bit in INSTR_RD register for RD commands. More... | |
int32_t | OSPI_setRdDataCaptureDelay (OSPI_Handle handle, uint32_t rdDataCapDelay) |
This function sets read data capture cycles in the OSPI controller. More... | |
void | OSPI_setNumAddrBytes (OSPI_Handle handle, uint32_t numAddrBytes) |
This function set the number of bytes used to send address while reading or writing to flash memory. More... | |
void | OSPI_setDeviceSize (OSPI_Handle handle, uint32_t pageSize, uint32_t blkSize) |
This function sets the block size and page size of the flash to the device size register in OSPI. More... | |
void | OSPI_setCmdDummyCycles (OSPI_Handle handle, uint32_t cmdDummyCycles) |
This function sets appropriate dummy cycles to be used while sending STIG commands to flash. More... | |
void | OSPI_setReadDummyCycles (OSPI_Handle handle, uint32_t dummyCycles) |
This function sets appropriate dummy cycles for flash read. More... | |
void | OSPI_setPhyEnableSuccess (OSPI_Handle handle, uint32_t success) |
This function sets the phyEnableSuccess field in OSPI_Object. Has to be called from flash driver. More... | |
void | OSPI_setModeBits (OSPI_Handle handle, uint32_t modeBits) |
This function sets mode bits in the mode bit field of OSPI config register. More... | |
void | OSPI_enableModeBitsCmd (OSPI_Handle handle) |
This function enables mode bits transmission while sending CMDs. More... | |
void | OSPI_enableModeBitsRead (OSPI_Handle handle) |
This function enables mode bits transmission while reading. More... | |
uint32_t | OSPI_getPhyEnableSuccess (OSPI_Handle handle) |
This function fetches the phyEnableSuccess field in OSPI_Object. More... | |
void | OSPI_cmdModeBitSet (OSPI_Handle handle, uint32_t enable) |
This function sets command mode bit. More... | |
void | OSPI_rdModeBitSet (OSPI_Handle handle, uint32_t enable) |
This function sets Read mode bit. More... | |
uint32_t | OSPI_getProtocol (OSPI_Handle handle) |
This function returns the current protocol for which the transfer lines in OSPI driver is configured for. More... | |
void | OSPI_setProtocol (OSPI_Handle handle, uint32_t protocol) |
This function sets the number of transfer lines in the OSPI driver to set the requested protocol. More... | |
void | OSPI_setDualOpCodeMode (OSPI_Handle handle) |
This function sets OSPI controller to use dual byte opcodes. More... | |
void | OSPI_clearDualOpCodeMode (OSPI_Handle handle) |
This function sets OSPI controller to not use dual byte opcodes. More... | |
void | OSPI_setXferOpCodes (OSPI_Handle handle, uint8_t readCmd, uint8_t pageProgCmd) |
This function sets the opcodes for reading and page programming the flash. More... | |
void | OSPI_setCmdExtType (OSPI_Handle handle, uint32_t cmdExtType) |
This function sets the type of command extension used in dual byte opcode mode. More... | |
int32_t | OSPI_enableDacMode (OSPI_Handle handle) |
This function enables the Direct Access Mode. More... | |
int32_t | OSPI_disableDacMode (OSPI_Handle handle) |
This function disables the Direct Access Mode. More... | |
uint32_t | OSPI_getFlashDataBaseAddr (OSPI_Handle handle) |
This function gets the SOC mapped data base address of the flash. More... | |
int32_t | OSPI_phyTuneDDR (OSPI_Handle handle, uint32_t flashOffset) |
This function tunes the OSPI PHY for DDR mode to set optimal PHY parameters. More... | |
int32_t | OSPI_phyTuneGrapher (OSPI_Handle handle, uint32_t flashOffset, uint8_t arrays[4][128][128]) |
This function takes a 4x128x128 array and fills it with TX RX DLL data for graphing purpose. More... | |
void | OSPI_phyGetTuningData (uint32_t *tuningData, uint32_t *tuningDataSize) |
This function returns the address to the attack vector buf required for tuning the PHY. More... | |
int32_t | OSPI_phyReadAttackVector (OSPI_Handle handle, uint32_t offset) |
This function checks if the attack vector, or the data used for tuning the PHY is present at an offset in the flash. More... | |
int32_t | OSPI_enablePhy (OSPI_Handle handle) |
This function enables the PHY. More... | |
int32_t | OSPI_disablePhy (OSPI_Handle handle) |
This function disables the PHY. More... | |
int32_t | OSPI_enablePhyPipeline (OSPI_Handle handle) |
This function enables the PHY Pipeline. More... | |
int32_t | OSPI_disablePhyPipeline (OSPI_Handle handle) |
This function disables the PHY Pipeline. More... | |
int32_t | OSPI_norFlashInit1s1s1s (OSPI_Handle handle) |
This function initializes the NOR flash to work in 1-1-1 mode. More... | |
void | OSPI_norFlashSetCmds (uint8_t rdCmd, uint8_t wrCmd, uint8_t eraseCmd) |
This function sets up internal bookkeeping variables for read, write and erase commands. This API has to be called immediately before OSPI_norFlashInit1s1s1s. More... | |
int32_t | OSPI_norFlashReadId (OSPI_Handle handle, uint32_t *manufacturerId, uint32_t *deviceId) |
This function tries to read the JEDEC ID from the NOR flash connected to the OSPI peripheral. More... | |
int32_t | OSPI_norFlashWrite (OSPI_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len) |
This function writes data to the flash at a specified offset. More... | |
int32_t | OSPI_norFlashRead (OSPI_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len) |
This function reads data from the flash from a specified offset. More... | |
int32_t | OSPI_norFlashReadSfdp (OSPI_Handle handle, uint32_t offset, uint8_t *buf, uint32_t len) |
This function reads SFDP table from the flash from a specified offset. More... | |
int32_t | OSPI_norFlashErase (OSPI_Handle handle, uint32_t address) |
This function erases 1 block of data starting from a provided address. More... | |
Different OSPI Transfer functions | |
int32_t | OSPI_readDirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform direct reads from the flash using DAC controller. More... | |
int32_t | OSPI_readIndirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform indirect reads from the flash using INDAC controller. More... | |
int32_t | OSPI_writeDirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform direct writes to the flash using DAC controller. More... | |
int32_t | OSPI_writeIndirect (OSPI_Handle handle, OSPI_Transaction *trans) |
Function to perform indirect writes to the flash using INDAC controller. More... | |
Variables | |
OSPI_Config | gOspiConfig [] |
Externally defined driver configuration array. More... | |
uint32_t | gOspiConfigNum |
Externally defined driver configuration array size. More... | |