|
AM243x MCU+ SDK
08.06.00
|
|
Go to the documentation of this file.
56 #include <drivers/hw_include/cslr_icss.h>
74 #define PRUICSS_PRU0 (0U)
75 #define PRUICSS_PRU1 (1U)
76 #define PRUICSS_RTU_PRU0 (2U)
77 #define PRUICSS_RTU_PRU1 (3U)
78 #define PRUICSS_TX_PRU0 (4U)
79 #define PRUICSS_TX_PRU1 (5U)
85 #define PRUICSS_NUM_CORES (6U)
96 #define PRUICSS_DATARAM(n) (0x00000U + ((n) * 0x02000U))
98 #define PRUICSS_IRAM_RTU_PRU(n) (0x04000U + ((n) * 0x02000U))
100 #define PRUICSS_IRAM_TX_PRU(n) (0x0A000U + ((n) * 0x02000U))
102 #define PRUICSS_SHARED_RAM (0x10000U)
104 #define PRUICSS_IRAM_PRU(n) (0x34000U + ((n) * 0x04000U))
110 #define PRUICSS_INTC_NUM_HOST_INTERRUPTS (20U)
115 #define PRUICSS_INTC_NUM_CHANNELS (20U)
120 #define PRUICSS_INTC_NUM_SYS_EVTS (160U)
131 #define PRUICSS_CONST_TBL_ENTRY_C24 (0U)
132 #define PRUICSS_CONST_TBL_ENTRY_C25 (1U)
133 #define PRUICSS_CONST_TBL_ENTRY_C26 (2U)
134 #define PRUICSS_CONST_TBL_ENTRY_C27 (3U)
135 #define PRUICSS_CONST_TBL_ENTRY_C28 (4U)
136 #define PRUICSS_CONST_TBL_ENTRY_C29 (5U)
137 #define PRUICSS_CONST_TBL_ENTRY_C30 (6U)
138 #define PRUICSS_CONST_TBL_ENTRY_C31 (7U)
139 #define PRUICSS_NUM_CONST_TBL_ENTRY (8U)
148 #define PRUICSS_GP_MUX_SEL_MODE_GP (0U)
149 #define PRUICSS_GP_MUX_SEL_MODE_ENDAT (1U)
150 #define PRUICSS_GP_MUX_SEL_MODE_MII (2U)
151 #define PRUICSS_GP_MUX_SEL_MODE_SD (3U)
157 #define PRUICSS_NUM_GP_MUX_SEL_MODES (4U)
166 #define PRUICSS_GPI_MODE_DIRECT_R31_STATUS (0U)
169 #define PRUICSS_GPI_MODE_PARALLEL_16_BIT_CAPTURE (1U)
172 #define PRUICSS_GPI_MODE_29_BIT_SHIFT (2U)
174 #define PRUICSS_GPI_MODE_MII_RT (3U)
180 #define PRUICSS_NUM_GPI_MODES (4U)
189 #define PRUICSS_SA_MUX_MODE_DEFAULT (0U)
191 #define PRUICSS_SA_MUX_MODE_SD_ENDAT (1U)
197 #define PRUICSS_NUM_SA_MUX_MODES (2U)
206 #define PRUICSS_ICSS_CFG_MII_MODE_MII (0U)
208 #define PRUICSS_ICSS_CFG_MII_MODE_RGMII (1U)
210 #define PRUICSS_ICSS_CFG_MII_MODE_SGMII (2U)
216 #define PRUICSS_NUM_ICSS_CFG_MII_MODES (3U)
224 #define PRUICSS_TX_L1_FIFO (0U)
225 #define PRUICSS_TX_L2_FIFO (1U)
245 typedef struct PRUICSS_SysevtToChannelMap_s
261 typedef struct PRUICSS_ChannelToHostMap_s
273 typedef struct PRUICSS_IntcInitData_s
297 typedef struct PRUICSS_IrqFunMap_s
317 typedef struct PRUICSS_Object_s
333 typedef struct PRUICSS_HWAttrs
376 typedef struct PRUICSS_Config_s
450 uint32_t pruEvtoutNum,
517 const uint32_t *source_mem,
518 uint32_t bytelength);
537 uint32_t bytelength);
588 uint32_t sendEventNum,
589 uint32_t pruEvtoutNum,
590 uint32_t ackEventNum);
615 int32_t constantTblEntry,
616 uint32_t constantTblVal);
int32_t PRUICSS_clearEvent(PRUICSS_Handle handle, uint32_t eventnum)
This function clears an INTC event. It should be called only after successful execution of PRUICSS_in...
#define PRUICSS_INTC_NUM_CHANNELS
Number of Output Interrupt channels supported in PRUICSS Local INTC.
Definition: pruicss/g_v0/pruicss.h:115
uintptr_t txPru0IramBase
Definition: pruicss/g_v0/pruicss.h:359
uintptr_t rtu1CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:356
uint8_t channel
Definition: pruicss/g_v0/pruicss.h:249
uint8_t sysevt
Definition: pruicss/g_v0/pruicss.h:247
uintptr_t baseAddr
Definition: pruicss/g_v0/pruicss.h:336
int32_t PRUICSS_configureCycleCounter(PRUICSS_Handle handle, uint8_t pruNum, uint8_t enable)
This function enables/disables the PRU Cycle Counter for a core.
uintptr_t txPru1IramBase
Definition: pruicss/g_v0/pruicss.h:360
uintptr_t sharedDramBase
Definition: pruicss/g_v0/pruicss.h:352
uintptr_t iep0RegBase
Definition: pruicss/g_v0/pruicss.h:342
int32_t PRUICSS_resetCore(PRUICSS_Handle handle, uint8_t pruNum)
This function resets the PRU.
uint8_t type
Definition: pruicss/g_v0/pruicss.h:253
uint32_t rtu1IramSize
Definition: pruicss/g_v0/pruicss.h:367
int32_t PRUICSS_sendWaitClearEvent(PRUICSS_Handle handle, uint32_t sendEventNum, uint32_t pruEvtoutNum, uint32_t ackEventNum)
This function generates an INTC event, waits for AINTC event and clears an INTC event.
PRUICSS_Object * object
Definition: pruicss/g_v0/pruicss.h:378
uint32_t pru1DramSize
Definition: pruicss/g_v0/pruicss.h:362
int32_t PRUICSS_close(PRUICSS_Handle handle)
This function deletes the handle for a PRUICSS instance.
PRUICSS_HwAttrs * hwAttrs
Definition: pruicss/g_v0/pruicss.h:380
uint32_t PRUICSS_readMemory(PRUICSS_Handle handle, uint32_t pruicssMem, uint32_t wordoffset, uint32_t *dest_mem, uint32_t bytelength)
This function reads from PRU memory and stores in block of memory.
SemaphoreP_Object semObj
Definition: pruicss/g_v0/pruicss.h:305
uintptr_t ecapRegBase
Definition: pruicss/g_v0/pruicss.h:344
uintptr_t miiMdioRegBase
Definition: pruicss/g_v0/pruicss.h:347
int32_t PRUICSS_setGpiMode(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode)
This API sets the GPI mode for a specific PRU.
uintptr_t miiRtCfgRegBase
Definition: pruicss/g_v0/pruicss.h:345
int32_t PRUICSS_enableCore(PRUICSS_Handle handle, uint8_t pruNum)
This function enables the PRU.
uint32_t data
Definition: tisci_rm_psil.h:1
uint32_t hostEnableBitmask
Definition: pruicss/g_v0/pruicss.h:284
uintptr_t pru1IramBase
Definition: pruicss/g_v0/pruicss.h:351
int32_t PRUICSS_setIcssCfgTxFifo(PRUICSS_Handle handle, uint8_t fifoInstance, uint8_t enable)
This API configures the TX FIFO to be used.
uint8_t waitEnable
Definition: pruicss/g_v0/pruicss.h:303
uint32_t pru0DramSize
Definition: pruicss/g_v0/pruicss.h:361
uintptr_t txPru1CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:358
int32_t PRUICSS_init(void)
This function initializes the PRUICSS module.
int32_t PRUICSS_setIcssCfgMiiMode(PRUICSS_Handle handle, uint8_t miiInstance, uint8_t mode)
This API sets the MII mode in MII_G_RT_ICSS_G_CFG register.
uint32_t sharedDramSize
Definition: pruicss/g_v0/pruicss.h:365
uintptr_t pru1DramBase
Definition: pruicss/g_v0/pruicss.h:349
uint32_t value
Definition: tisci_otp_revision.h:2
int32_t PRUICSS_deinit(void)
This function de-initializes the PRUICSS module.
int32_t PRUICSS_setIepCounterIncrementValue(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t value)
This API sets the default increment value for counter in IEP module. This value is used when compensa...
PRUICSS Hardware Attributes.
Definition: pruicss/g_v0/pruicss.h:334
uint32_t pru1IramSize
Definition: pruicss/g_v0/pruicss.h:364
int32_t PRUICSS_disableCore(PRUICSS_Handle handle, uint8_t pruNum)
This function disables the PRU.
uintptr_t pru0IramBase
Definition: pruicss/g_v0/pruicss.h:350
HwiP_Object hwiObj
Definition: pruicss/g_v0/pruicss.h:301
int32_t PRUICSS_setSaMuxMode(PRUICSS_Handle handle, uint8_t mode)
This API sets the G_MUX_EN mux field in ICSSG_SA_MX_REG register.
uint8_t source
Definition: tisci_rm_ra.h:4
uintptr_t pru0DramBase
Definition: pruicss/g_v0/pruicss.h:348
uintptr_t cfgRegBase
Definition: pruicss/g_v0/pruicss.h:340
uint32_t txPru1IramSize
Definition: pruicss/g_v0/pruicss.h:369
uintptr_t intcRegBase
Definition: pruicss/g_v0/pruicss.h:339
int32_t PRUICSS_setGpMuxSelect(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode)
This API sets the GP Mux Select mode for a specific PRU.
uint32_t PRUICSS_getVersion(PRUICSS_Handle handle)
Get PRUICSS version number from ICSSCFG_REVID register.
PRUICSS_Handle PRUICSS_open(uint32_t instance)
This function creates the handle for a PRUICSS instance.
uint32_t rtu0IramSize
Definition: pruicss/g_v0/pruicss.h:366
const PRUICSS_HwAttrs * PRUICSS_getAttrs(uint32_t instance)
Return PRUICSS attributes.
PRUICSS Global configuration structure.
Definition: pruicss/g_v0/pruicss.h:377
uintptr_t pru0CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:337
uint32_t pruicssVersion
Definition: pruicss/g_v0/pruicss.h:319
PRUICSS_IrqHandler irqHandler
Definition: pruicss/g_v0/pruicss.h:299
int32_t PRUICSS_waitEvent(PRUICSS_Handle handle, uint32_t pruEvtoutNum)
This function waits for a system event to happen. It should be called only after successful execution...
uint32_t PRUICSS_initMemory(PRUICSS_Handle handle, uint32_t pruicssMem)
This function initializes the PRU memory to zero.
char mode[32]
Definition: tisci_pm_core.h:1
uintptr_t rtu0IramBase
Definition: pruicss/g_v0/pruicss.h:353
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/g_v0/pruicss.h:274
uint32_t instance
Definition: pruicss/g_v0/pruicss.h:335
uint8_t polarity
Definition: pruicss/g_v0/pruicss.h:251
int16_t channel
Definition: pruicss/g_v0/pruicss.h:263
uint32_t txPru0IramSize
Definition: pruicss/g_v0/pruicss.h:368
#define PRUICSS_INTC_NUM_HOST_INTERRUPTS
Number of Host Interrupts supported in PRUICSS Local INTC.
Definition: pruicss/g_v0/pruicss.h:110
uintptr_t iep1RegBase
Definition: pruicss/g_v0/pruicss.h:343
Data structure used for channel to host map in PRUICSS.
Definition: pruicss/g_v0/pruicss.h:262
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:91
int32_t PRUICSS_setConstantTblEntry(PRUICSS_Handle handle, uint8_t pruNum, int32_t constantTblEntry, uint32_t constantTblVal)
This API updates the constant table for specified constant table entry which have write permissions.
int32_t PRUICSS_readEfuse(PRUICSS_Handle handle, uint8_t *data)
This API reads the state of efuse bits from ICSSG_HWDIS_REG register.
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
int16_t host
Definition: pruicss/g_v0/pruicss.h:265
uintptr_t txPru0CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:357
#define PRUICSS_INTC_NUM_SYS_EVTS
Number of Events that can be captured in PRUICSS Local INTC.
Definition: pruicss/g_v0/pruicss.h:120
PRUICSS Object.
Definition: pruicss/g_v0/pruicss.h:318
uintptr_t miiGRtCfgRegBase
Definition: pruicss/g_v0/pruicss.h:346
PRUICSS IRQ handler mapping structure.
Definition: pruicss/g_v0/pruicss.h:298
uintptr_t rtu0CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:355
void(* PRUICSS_IrqHandler)(void *buf)
Definition: pruicss/g_v0/pruicss.h:229
uint32_t pru0IramSize
Definition: pruicss/g_v0/pruicss.h:363
int32_t PRUICSS_setIepClkSrc(PRUICSS_Handle handle, uint32_t source)
This API configures the source of the IEP clock to be either IEP CLK as the source or ICSSGn_CORE_CLK...
int32_t PRUICSS_sendEvent(PRUICSS_Handle handle, uint32_t eventnum)
This function generates an INTC event. It should be called only after successful execution of PRUICSS...
int32_t PRUICSS_intcInit(PRUICSS_Handle handle, const PRUICSS_IntcInitData *intcInitData)
This function does Interrupt-Channel-host mapping.
uintptr_t rtu1IramBase
Definition: pruicss/g_v0/pruicss.h:354
Data structure used for system event to channel mapping in PRUICSS.
Definition: pruicss/g_v0/pruicss.h:246
uint32_t PRUICSS_writeMemory(PRUICSS_Handle handle, uint32_t pruicssMem, uint32_t wordoffset, const uint32_t *source_mem, uint32_t bytelength)
This function writes the given data to PRU memory.
int32_t PRUICSS_controlIepCounter(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t enable)
This API enables/disables the counter in IEP module.
uintptr_t uartRegBase
Definition: pruicss/g_v0/pruicss.h:341
struct PRUICSS_Config_s * PRUICSS_Handle
A handle that is returned from a PRUICSS_open() call. This handle is required for calling other APIs.
Definition: pruicss/g_v0/pruicss.h:235
PRUICSS_Handle pruicssHandle
Definition: pruicss/g_v0/pruicss.h:307
uintptr_t pru1CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:338
int32_t PRUICSS_registerIrqHandler(PRUICSS_Handle handle, uint32_t pruEvtoutNum, int32_t intrNum, int32_t eventNum, uint8_t waitEnable, PRUICSS_IrqHandler irqHandler)
This function registers an Interrupt Handler for an event.
@ enable
Definition: iPtcpDrv.h:69