AM64x MCU+ SDK  08.02.00

Introduction

This module contains APIs to program and use the OSPI module. The APIs can be used by other drivers to get access to OSPI and also by application to initiate data transfer operation.

Sub Modules

 Generic NOR Flash API for single pin mode
 
 SFDP API for single pin mode
 

Files

file  ospi/v0/ospi.h
 OSPI Driver API/interface 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
 
struct  OSPI_GenericXspiDevDefines
 

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_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...
 
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...
 
void OSPI_setXferLines (OSPI_Handle handle, uint32_t xferLines)
 This function sets the number of transfer lines to the OSPI controller. More...
 
uint32_t OSPI_getXferLines (OSPI_Handle handle)
 This function returns the current number of transfer lines set in the OSPI controller. More...
 
void OSPI_setDualOpCodeMode (OSPI_Handle handle)
 This function sets OSPI controller to 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...
 

Typedefs

typedef void * OSPI_Handle
 A handle that is returned from a OSPI_open() call. More...
 

Transfer Status Code

Status codes that are set by the OSPI driver

#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

Definitions for various SPI data frame formats

POL0 = OSPICLK is held low during the INACTIVE state POL1 = OSPICLK is held high during the INACTIVE state

PHA0 = Data launch is on the falling edge of OSPICLK PHA1 = Data launch is on the rising edge of OSPICLK

#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
 

Transfer Lines Number

Number of lines used for OSPI read/write transaction

#define OSPI_XFER_LINES_SINGLE   (0U)
 
#define OSPI_XFER_LINES_DUAL   (1U)
 
#define OSPI_XFER_LINES_QUAD   (2U)
 
#define OSPI_XFER_LINES_OCTAL   (3U)
 

Macros for invalid commands

Macros for invalid commands

#define OSPI_CMD_INVALID_OPCODE   (0xFFU)
 
#define OSPI_CMD_INVALID_ADDR   (0xFFFFFFFFU)
 

Macros for command extension types

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 protocol types

Macros for protocol types

#define OSPI_NOR_PROTOCOL_1_1_1   (0x00)
 
#define OSPI_NOR_PROTOCOL_1_1_2   (0x01)
 
#define OSPI_NOR_PROTOCOL_1_2_2   (0x02)
 
#define OSPI_NOR_PROTOCOL_1_1_4   (0x03)
 
#define OSPI_NOR_PROTOCOL_1_4_4   (0x04)
 
#define OSPI_NOR_PROTOCOL_1_1_8   (0x05)
 
#define OSPI_NOR_PROTOCOL_1_8_8   (0x06)
 
#define OSPI_NOR_PROTOCOL_2_2_2_S   (0x07)
 
#define OSPI_NOR_PROTOCOL_2_2_2_D   (0x08)
 
#define OSPI_NOR_PROTOCOL_4_4_4_S   (0x09)
 
#define OSPI_NOR_PROTOCOL_4_4_4_D   (0x0A)
 
#define OSPI_NOR_PROTOCOL_8_8_8_S   (0x0B)
 
#define OSPI_NOR_PROTOCOL_8_8_8_D   (0x0C)
 

Chip Selects

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

Decoder Chip selects

#define OSPI_DECODER_SELECT4   ((uint32_t) 0U)
 
#define OSPI_DECODER_SELECT16   ((uint32_t) 1U)
 

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...
 

Macro Definition Documentation

◆ OSPI_TRANSFER_COMPLETED

#define OSPI_TRANSFER_COMPLETED   (0U)

◆ OSPI_TRANSFER_STARTED

#define OSPI_TRANSFER_STARTED   (1U)

◆ OSPI_TRANSFER_CANCELLED

#define OSPI_TRANSFER_CANCELLED   (2U)

◆ OSPI_TRANSFER_FAILED

#define OSPI_TRANSFER_FAILED   (3U)

◆ OSPI_TRANSFER_CSN_DEASSERT

#define OSPI_TRANSFER_CSN_DEASSERT   (4U)

◆ OSPI_TRANSFER_TIMEOUT

#define OSPI_TRANSFER_TIMEOUT   (5U)

◆ OSPI_TRANSFER_MODE_BLOCKING

#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

◆ OSPI_TRANSFER_MODE_CALLBACK

#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

◆ OSPI_TRANSFER_MODE_POLLING

#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.

◆ OSPI_FF_POL0_PHA0

#define OSPI_FF_POL0_PHA0   (0U)

◆ OSPI_FF_POL0_PHA1

#define OSPI_FF_POL0_PHA1   (CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | 0U)

◆ OSPI_FF_POL1_PHA0

#define OSPI_FF_POL1_PHA0   (0U | CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK)

◆ OSPI_FF_POL1_PHA1

#define OSPI_FF_POL1_PHA1
Value:
(CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_PHASE_FLD_MASK | \
CSL_OSPI_FLASH_CFG_CONFIG_REG_SEL_CLK_POL_FLD_MASK)

◆ OSPI_XFER_LINES_SINGLE

#define OSPI_XFER_LINES_SINGLE   (0U)

◆ OSPI_XFER_LINES_DUAL

#define OSPI_XFER_LINES_DUAL   (1U)

◆ OSPI_XFER_LINES_QUAD

#define OSPI_XFER_LINES_QUAD   (2U)

◆ OSPI_XFER_LINES_OCTAL

#define OSPI_XFER_LINES_OCTAL   (3U)

◆ OSPI_CMD_INVALID_OPCODE

#define OSPI_CMD_INVALID_OPCODE   (0xFFU)

◆ OSPI_CMD_INVALID_ADDR

#define OSPI_CMD_INVALID_ADDR   (0xFFFFFFFFU)

◆ OSPI_CMD_EXT_TYPE_REPEAT

#define OSPI_CMD_EXT_TYPE_REPEAT   (0x00U)

◆ OSPI_CMD_EXT_TYPE_INVERSE

#define OSPI_CMD_EXT_TYPE_INVERSE   (0x01U)

◆ OSPI_CMD_EXT_TYPE_NONE

#define OSPI_CMD_EXT_TYPE_NONE   (0x02U)

◆ OSPI_NOR_PROTOCOL_1_1_1

#define OSPI_NOR_PROTOCOL_1_1_1   (0x00)

◆ OSPI_NOR_PROTOCOL_1_1_2

#define OSPI_NOR_PROTOCOL_1_1_2   (0x01)

◆ OSPI_NOR_PROTOCOL_1_2_2

#define OSPI_NOR_PROTOCOL_1_2_2   (0x02)

◆ OSPI_NOR_PROTOCOL_1_1_4

#define OSPI_NOR_PROTOCOL_1_1_4   (0x03)

◆ OSPI_NOR_PROTOCOL_1_4_4

#define OSPI_NOR_PROTOCOL_1_4_4   (0x04)

◆ OSPI_NOR_PROTOCOL_1_1_8

#define OSPI_NOR_PROTOCOL_1_1_8   (0x05)

◆ OSPI_NOR_PROTOCOL_1_8_8

#define OSPI_NOR_PROTOCOL_1_8_8   (0x06)

◆ OSPI_NOR_PROTOCOL_2_2_2_S

#define OSPI_NOR_PROTOCOL_2_2_2_S   (0x07)

◆ OSPI_NOR_PROTOCOL_2_2_2_D

#define OSPI_NOR_PROTOCOL_2_2_2_D   (0x08)

◆ OSPI_NOR_PROTOCOL_4_4_4_S

#define OSPI_NOR_PROTOCOL_4_4_4_S   (0x09)

◆ OSPI_NOR_PROTOCOL_4_4_4_D

#define OSPI_NOR_PROTOCOL_4_4_4_D   (0x0A)

◆ OSPI_NOR_PROTOCOL_8_8_8_S

#define OSPI_NOR_PROTOCOL_8_8_8_S   (0x0B)

◆ OSPI_NOR_PROTOCOL_8_8_8_D

#define OSPI_NOR_PROTOCOL_8_8_8_D   (0x0C)

◆ OSPI_CS0

#define OSPI_CS0   (0U)

◆ OSPI_CS1

#define OSPI_CS1   (1U)

◆ OSPI_CS2

#define OSPI_CS2   (2U)

◆ OSPI_CS3

#define OSPI_CS3   (3U)

◆ OSPI_CHIP_SELECT

#define OSPI_CHIP_SELECT (   x)    ((~((1U) << (x))) & 0xFU)

◆ OSPI_DECODER_SELECT4

#define OSPI_DECODER_SELECT4   ((uint32_t) 0U)

◆ OSPI_DECODER_SELECT16

#define OSPI_DECODER_SELECT16   ((uint32_t) 1U)

Typedef Documentation

◆ OSPI_Handle

typedef void* OSPI_Handle

A handle that is returned from a OSPI_open() call.

Function Documentation

◆ OSPI_init()

void OSPI_init ( void  )

This function initializes the OSPI module.

◆ OSPI_deinit()

void OSPI_deinit ( void  )

This function de-initializes the OSPI module.

◆ OSPI_Params_init()

void OSPI_Params_init ( OSPI_Params ospiParams)

Initialize data structure with defaults.

Parameters
ospiParams[out] Initialized parameters

◆ OSPI_open()

OSPI_Handle OSPI_open ( uint32_t  index,
const OSPI_Params openParams 
)

This function opens a given OSPI peripheral.

Precondition
OSPI controller has been initialized using OSPI_init()
Parameters
indexIndex of config to use in the OSPI_Config array
openParamsPointer to parameters to open the driver with
Returns
A OSPI_Handle on success or a NULL on an error or if it has been opened already
See also
OSPI_init()
OSPI_close()

◆ OSPI_close()

void OSPI_close ( OSPI_Handle  handle)

Function to close a OSPI peripheral specified by the OSPI handle.

Precondition
OSPI_open() has to be called first
Parameters
handleOSPI_Handle returned from OSPI_open()
See also
OSPI_open()

◆ OSPI_getHandle()

OSPI_Handle OSPI_getHandle ( uint32_t  index)

This function returns the handle of an open OSPI Instance from the instance index.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
indexIndex of config to use in the OSPI_Config array
Returns
An OSPI_Handle if it has been opened already or NULL otherwise
See also
OSPI_init()
OSPI_open()

◆ OSPI_readDirect()

int32_t OSPI_readDirect ( OSPI_Handle  handle,
OSPI_Transaction trans 
)

Function to perform direct reads from the flash using DAC controller.

Parameters
handleOSPI_Handle returned from OSPI_open()
transPointer to a OSPI_Transaction
Returns
SystemP_SUCCESS on successful read; else error on failure
See also
OSPI_open

◆ OSPI_readIndirect()

int32_t OSPI_readIndirect ( OSPI_Handle  handle,
OSPI_Transaction trans 
)

Function to perform indirect reads from the flash using INDAC controller.

Parameters
handleOSPI_Handle returned from OSPI_open()
transPointer to a OSPI_Transaction
Returns
SystemP_SUCCESS on successful read; else error on failure
See also
OSPI_open

◆ OSPI_writeDirect()

int32_t OSPI_writeDirect ( OSPI_Handle  handle,
OSPI_Transaction trans 
)

Function to perform direct writes to the flash using DAC controller.

Parameters
handleOSPI_Handle returned from OSPI_open()
transPointer to a OSPI_Transaction
Returns
SystemP_SUCCESS on successful write; else error on failure
See also
OSPI_open

◆ OSPI_writeIndirect()

int32_t OSPI_writeIndirect ( OSPI_Handle  handle,
OSPI_Transaction trans 
)

Function to perform indirect writes to the flash using INDAC controller.

Parameters
handleOSPI_Handle returned from OSPI_open()
transPointer to a OSPI_Transaction
Returns
SystemP_SUCCESS on successful write; else error on failure
See also
OSPI_open

◆ OSPI_readCmd()

int32_t OSPI_readCmd ( OSPI_Handle  handle,
OSPI_ReadCmdParams rdParams 
)

Function to send specific commands and receive related data from flash.

Parameters
handleOSPI_Handle returned from OSPI_open()
rdParamsPointer to a OSPI_ReadCmdParams
Returns
SystemP_SUCCESS if command read was successful; else error on failure
See also
OSPI_open

◆ OSPI_writeCmd()

int32_t OSPI_writeCmd ( OSPI_Handle  handle,
OSPI_WriteCmdParams wrParams 
)

Function to send specific commands and related data to flash.

Parameters
handleOSPI_Handle returned from OSPI_open()
wrParamsPointer to a OSPI_WriteCmdParams
Returns
SystemP_SUCCESS if command write was successful; else error on failure
See also
OSPI_open

◆ OSPI_Transaction_init()

void OSPI_Transaction_init ( OSPI_Transaction trans)

Function to initialize the OSPI_Transaction structure.

Parameters
transPointer to a OSPI_Transaction

◆ OSPI_ReadCmdParams_init()

void OSPI_ReadCmdParams_init ( OSPI_ReadCmdParams rdParams)

Function to initialize the OSPI_ReadCmdParams structure.

Parameters
rdParamsPointer to a OSPI_ReadCmdParams

◆ OSPI_WriteCmdParams_init()

void OSPI_WriteCmdParams_init ( OSPI_WriteCmdParams wrParams)

Function to initialize the OSPI_WriteCmdParams structure.

Parameters
wrParamsPointer to a OSPI_WriteCmdParams

◆ OSPI_isDacEnable()

uint32_t OSPI_isDacEnable ( OSPI_Handle  handle)

This function checks if the Direct Access Controller is enabled.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
1 if DAC is enabled, 0 otherwise

◆ OSPI_isDmaEnable()

uint32_t OSPI_isDmaEnable ( OSPI_Handle  handle)

This function checks if DMA is enabled for reads.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
1 if DMA is enabled, 0 otherwise

◆ OSPI_isIntrEnable()

uint32_t OSPI_isIntrEnable ( OSPI_Handle  handle)

This function checks if interrupts are enabled.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
1 if interrupts are enabled, 0 otherwise

◆ OSPI_isPhyEnable()

uint32_t OSPI_isPhyEnable ( OSPI_Handle  handle)

This function checks if the OSPI PHY controller is enabled.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
1 if PHY is enabled, 0 otherwise

◆ OSPI_isDtrEnable()

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.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
1 if Dual Transfer Rate is enabled, 0 otherwise

◆ OSPI_enableDDR()

int32_t OSPI_enableDDR ( OSPI_Handle  handle)

This function enables the Dual Data Rate (DDR)

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS if DDR successfully enabled, else error on failure

◆ OSPI_enableSDR()

int32_t OSPI_enableSDR ( OSPI_Handle  handle)

This function enables the Single Data Rate (SDR)

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS if SDR successfully enabled, else error on failure

◆ OSPI_enableDdrRdCmds()

int32_t OSPI_enableDdrRdCmds ( OSPI_Handle  handle)

This function sets DDR bit in INSTR_RD register for RD commands.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS if SDR successfully enabled, else error on failure

◆ OSPI_setRdDataCaptureDelay()

int32_t OSPI_setRdDataCaptureDelay ( OSPI_Handle  handle,
uint32_t  rdDataCapDelay 
)

This function sets read data capture cycles in the OSPI controller.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
rdDataCapDelayNumber of read data capture cycles to be programmed
Returns
SystemP_SUCCESS if read data capture cycles successfully set, else error on failure

◆ OSPI_setNumAddrBytes()

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.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
numAddrBytesNumber of address bytes to be used while sending addresses.

◆ OSPI_setDeviceSize()

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.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
pageSizePage size of the flash in bytes
blkSizeBlock size of the flash in bytes

◆ OSPI_setCmdDummyCycles()

void OSPI_setCmdDummyCycles ( OSPI_Handle  handle,
uint32_t  cmdDummyCycles 
)

This function sets appropriate dummy cycles to be used while sending STIG commands to flash.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
cmdDummyCyclesDummy cycles to be used for STIG cmd

◆ OSPI_setReadDummyCycles()

void OSPI_setReadDummyCycles ( OSPI_Handle  handle,
uint32_t  dummyCycles 
)

This function sets appropriate dummy cycles for flash read.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
dummyCyclesNumber of dummy cycles

◆ OSPI_setPhyEnableSuccess()

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.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
successSet this to 1 if phy enable was successful. 0 otherwise

◆ OSPI_getPhyEnableSuccess()

uint32_t OSPI_getPhyEnableSuccess ( OSPI_Handle  handle)

This function fetches the phyEnableSuccess field in OSPI_Object.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
1 if phyEnable was successful, 0 otherwise.

◆ OSPI_cmdModeBitSet()

void OSPI_cmdModeBitSet ( OSPI_Handle  handle,
uint32_t  enable 
)

This function sets command mode bit.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
enablecommand mode bit enable/disable

◆ OSPI_rdModeBitSet()

void OSPI_rdModeBitSet ( OSPI_Handle  handle,
uint32_t  enable 
)

This function sets Read mode bit.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
enableRead mode bit enable/disable

◆ OSPI_setXferLines()

void OSPI_setXferLines ( OSPI_Handle  handle,
uint32_t  xferLines 
)

This function sets the number of transfer lines to the OSPI controller.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
xferLinesNumber of transfer lines

◆ OSPI_getXferLines()

uint32_t OSPI_getXferLines ( OSPI_Handle  handle)

This function returns the current number of transfer lines set in the OSPI controller.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
xferLines Number of transfer lines

◆ OSPI_setDualOpCodeMode()

void OSPI_setDualOpCodeMode ( OSPI_Handle  handle)

This function sets OSPI controller to use dual byte opcodes.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()

◆ OSPI_setXferOpCodes()

void OSPI_setXferOpCodes ( OSPI_Handle  handle,
uint8_t  readCmd,
uint8_t  pageProgCmd 
)

This function sets the opcodes for reading and page programming the flash.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
readCmdCommand opcode to be used for reading from the flash
pageProgCmdCommand opcode to be used for writing to / programming the flash

◆ OSPI_setCmdExtType()

void OSPI_setCmdExtType ( OSPI_Handle  handle,
uint32_t  cmdExtType 
)

This function sets the type of command extension used in dual byte opcode mode.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
cmdExtTypeType of command extension used. As of now only two types are supported - REPEAT and INVERSE

◆ OSPI_enableDacMode()

int32_t OSPI_enableDacMode ( OSPI_Handle  handle)

This function enables the Direct Access Mode.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_disableDacMode()

int32_t OSPI_disableDacMode ( OSPI_Handle  handle)

This function disables the Direct Access Mode.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_getFlashDataBaseAddr()

uint32_t OSPI_getFlashDataBaseAddr ( OSPI_Handle  handle)

This function gets the SOC mapped data base address of the flash.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
Data BaseAddress of the flash

◆ OSPI_phyTuneDDR()

int32_t OSPI_phyTuneDDR ( OSPI_Handle  handle,
uint32_t  flashOffset 
)

This function tunes the OSPI PHY for DDR mode to set optimal PHY parameters.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
flashOffsetOffset of the flash at which the PHY tuning data is present
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_phyTuneGrapher()

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.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
flashOffsetOffset of the flash at which the PHY tuning data is present
arraysA 4x128x128 array. In this, the tx rx dll data for 4 different read delay values will be stored. This can be later used for graphing
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_phyGetTuningData()

void OSPI_phyGetTuningData ( uint32_t *  tuningData,
uint32_t *  tuningDataSize 
)

This function returns the address to the attack vector buf required for tuning the PHY.

Parameters
tuningDataAddress of the tuningData array
tuningDataSizeSize of the tuningData array

◆ OSPI_phyReadAttackVector()

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.

Parameters
handleAn OSPI_Handle returned from an OSPI_open()
offsetOffset in flash to check for tuningData
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_enablePhy()

int32_t OSPI_enablePhy ( OSPI_Handle  handle)

This function enables the PHY.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_disablePhy()

int32_t OSPI_disablePhy ( OSPI_Handle  handle)

This function disables the PHY.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_enablePhyPipeline()

int32_t OSPI_enablePhyPipeline ( OSPI_Handle  handle)

This function enables the PHY Pipeline.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

◆ OSPI_disablePhyPipeline()

int32_t OSPI_disablePhyPipeline ( OSPI_Handle  handle)

This function disables the PHY Pipeline.

Precondition
OSPI controller has been opened using OSPI_open()
Parameters
handleAn OSPI_Handle returned from an OSPI_open()
Returns
SystemP_SUCCESS on success, SystemP_FAILURE otherwise

Variable Documentation

◆ gOspiConfig

OSPI_Config gOspiConfig[]
extern

Externally defined driver configuration array.

◆ gOspiConfigNum

uint32_t gOspiConfigNum
extern

Externally defined driver configuration array size.