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_PhyWindowParams |
OSPI PHY Tuning Window Parameters. More... | |
struct | OSPI_PhyConfiguration |
OSPI PHY Configuration. More... | |
struct | OSPI_Attrs |
OSPI instance attributes - used during init time. More... | |
struct | OSPI_Object |
OSPI driver object. More... | |
struct | OSPI_Config |
Macros | |
#define | OSPI_RESETPIN_DQ3 (0U) |
#define | OSPI_RESETPIN_DEDICATED (1U) |
#define | CSL_OSPI_BAUD_RATE_DIVISOR(x) (((x) - 2U) >> 1U) |
OSPI controller controller mode baud rate divisor. OSPI baud rate = controller_ref_clk/BD, where BD is: 0000 = /2 0001 = /4 0010 = /6 ... 1111 = /32. More... | |
#define | MAX_BAUDRATE_DIVIDER (32U) |
#define | CSL_OSPI_BAUD_RATE_DIVISOR_DEFAULT (CSL_OSPI_BAUD_RATE_DIVISOR(MAX_BAUDRATE_DIVIDER)) |
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) |
#define | OSPI_NAND_PROTOCOL(cmd, addr, data, dtr) |
#define | OSPI_NAND_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) |
OSPI PHY Control Mode | |
Controls the bypass mode of the Initiator and Target DLLs. If this bit is set, the bypass mode is intended to be used only for debug. 0h = Initiator operational mode DLL works in normal mode of operation where the Target delay line settings are used as fractional delay of the Initiator delay line encoder reading of the number of delays in one cycle. 1h = Bypass mode Initiator DLL is disabled with only 1 delay element in its delay line. The Target delay lines decode delays in absolute delay elements rather than as fractional delays. | |
#define | OSPI_FLASH_CFG_PHY_MASTER_CONTROL_REG_PHY_MASTER_MODE (0U) |
#define | OSPI_FLASH_CFG_PHY_MASTER_CONTROL_REG_PHY_BYPASS_MODE (1U) |
#define | OSPI_FLASH_ATTACK_VECTOR_SIZE (128U) |
OSPI PHY DLL Lock | |
#define | OSPI_PHY_DLL_FULL_CYCLE_LOCK ((uint16_t) 0U) |
#define | OSPI_PHY_DLL_HALF_CYCLE_LOCK ((uint16_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 mode 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_phyTuneSDR (OSPI_Handle handle, uint32_t flashOffset) |
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... | |
int32_t | OSPI_configResetPin (OSPI_Handle handle, uint32_t config) |
This function configures reset functionality. More... | |
int32_t | OSPI_configBaudrate (OSPI_Handle handle, uint32_t baud) |
Configures baud divider. More... | |
int32_t | OSPI_readBaudRateDivFromReg (OSPI_Handle handle, uint32_t *baudDiv) |
Return value of baudrate that is programmed in IP register. More... | |
int32_t | OSPI_getBaudRateDivFromObj (OSPI_Handle handle, uint32_t *baudDiv) |
Return value of baudrate that is saved in OSPI Object. 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... | |