AM64x MCU+ SDK  08.02.00
pruicss/g_v0/pruicss.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
45 #ifndef PRUICSS_H_
46 #define PRUICSS_H_
47 
48 /* ========================================================================== */
49 /* Include Files */
50 /* ========================================================================== */
51 
52 #include <stdint.h>
53 #include <kernel/dpl/SystemP.h>
54 #include <kernel/dpl/SemaphoreP.h>
55 #include <kernel/dpl/HwiP.h>
56 #include <drivers/hw_include/cslr_icss.h>
57 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 /* ========================================================================== */
63 /* Macros & Typedefs */
64 /* ========================================================================== */
65 
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)
80 
85 #define PRUICSS_NUM_CORES (6U)
86 
96 #define PRUICSS_DATARAM(n) (0x00000U + ((n) * 0x02000U))
97 
98 #define PRUICSS_IRAM_RTU_PRU(n) (0x04000U + ((n) * 0x02000U))
99 
100 #define PRUICSS_IRAM_TX_PRU(n) (0x0A000U + ((n) * 0x02000U))
101 
102 #define PRUICSS_SHARED_RAM (0x10000U)
103 
104 #define PRUICSS_IRAM_PRU(n) (0x34000U + ((n) * 0x04000U))
105 
110 #define PRUICSS_INTC_NUM_HOST_INTERRUPTS (20U)
111 
115 #define PRUICSS_INTC_NUM_CHANNELS (20U)
116 
120 #define PRUICSS_INTC_NUM_SYS_EVTS (160U)
121 
122 
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)
140 
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)
152 
157 #define PRUICSS_NUM_GP_MUX_SEL_MODES (4U)
158 
166 #define PRUICSS_GPI_MODE_DIRECT_R31_STATUS (0U)
167 
169 #define PRUICSS_GPI_MODE_PARALLEL_16_BIT_CAPTURE (1U)
170 
172 #define PRUICSS_GPI_MODE_29_BIT_SHIFT (2U)
173 
174 #define PRUICSS_GPI_MODE_MII_RT (3U)
175 
180 #define PRUICSS_NUM_GPI_MODES (4U)
181 
189 #define PRUICSS_SA_MUX_MODE_DEFAULT (0U)
190 
191 #define PRUICSS_SA_MUX_MODE_SD_ENDAT (1U)
192 
197 #define PRUICSS_NUM_SA_MUX_MODES (2U)
198 
206 #define PRUICSS_ICSS_CFG_MII_MODE_MII (0U)
207 
208 #define PRUICSS_ICSS_CFG_MII_MODE_RGMII (1U)
209 
210 #define PRUICSS_ICSS_CFG_MII_MODE_SGMII (2U)
211 
216 #define PRUICSS_NUM_ICSS_CFG_MII_MODES (3U)
217 
223 #define PRUICSS_TX_L1_FIFO (0U)
224 #define PRUICSS_TX_L2_FIFO (1U)
225 
228 typedef void (*PRUICSS_IrqHandler)(void* buf);
229 
234 typedef struct PRUICSS_Config_s *PRUICSS_Handle;
235 
236 /* ========================================================================== */
237 /* Structure Declarations */
238 /* ========================================================================== */
239 
244 typedef struct PRUICSS_SysevtToChannelMap_s
245 {
246  uint8_t sysevt;
248  uint8_t channel;
250  uint8_t polarity;
252  uint8_t type;
255 
260 typedef struct PRUICSS_ChannelToHostMap_s
261 {
262  int16_t channel;
264  int16_t host;
267 
272 typedef struct PRUICSS_IntcInitData_s
273 {
274  uint8_t sysevtsEnabled[PRUICSS_INTC_NUM_SYS_EVTS];
284  /* TODO: Check accuracy of following comment */
292 
297 typedef struct PRUICSS_IrqFunMap_s
298 {
303  uint8_t waitEnable;
309 
317 typedef struct PRUICSS_Object_s
318 {
319  uint32_t pruicssVersion;
322  /* IRQ Handler mapping structure for all host interrupts*/
324 
333 typedef struct PRUICSS_HWAttrs
334 {
335  uint32_t instance;
336  uintptr_t baseAddr;
337  uintptr_t pru0CtrlRegBase;
338  uintptr_t pru1CtrlRegBase;
339  uintptr_t intcRegBase;
340  uintptr_t cfgRegBase;
341  uintptr_t uartRegBase;
342  uintptr_t iep0RegBase;
343  uintptr_t iep1RegBase;
344  uintptr_t ecapRegBase;
345  uintptr_t miiRtCfgRegBase;
346  uintptr_t miiGRtCfgRegBase;
347  uintptr_t miiMdioRegBase;
348  uintptr_t pru0DramBase;
349  uintptr_t pru1DramBase;
350  uintptr_t pru0IramBase;
351  uintptr_t pru1IramBase;
352  uintptr_t sharedDramBase;
353  uintptr_t rtu0IramBase;
354  uintptr_t rtu1IramBase;
355  uintptr_t rtu0CtrlRegBase;
356  uintptr_t rtu1CtrlRegBase;
357  uintptr_t txPru0CtrlRegBase;
358  uintptr_t txPru1CtrlRegBase;
359  uintptr_t txPru0IramBase;
360  uintptr_t txPru1IramBase;
361  uint32_t pru0DramSize;
362  uint32_t pru1DramSize;
363  uint32_t pru0IramSize;
364  uint32_t pru1IramSize;
365  uint32_t sharedDramSize;
366  uint32_t rtu0IramSize;
367  uint32_t rtu1IramSize;
368  uint32_t txPru0IramSize;
369  uint32_t txPru1IramSize;
371 
376 typedef struct PRUICSS_Config_s
377 {
383 
384 /* ========================================================================== */
385 /* Function Declarations */
386 /* ========================================================================== */
387 
393 int32_t PRUICSS_init(void);
394 
400 int32_t PRUICSS_deinit(void);
401 
409 PRUICSS_Handle PRUICSS_open(uint32_t instance);
410 
419 
431  const PRUICSS_IntcInitData *intcInitData);
432 
450  uint32_t pruEvtoutNum,
451  int32_t intrNum,
452  int32_t eventNum,
453  uint8_t waitEnable,
454  PRUICSS_IrqHandler irqHandler);
455 
465 int32_t PRUICSS_resetCore(PRUICSS_Handle handle, uint8_t pruNum);
466 
476 int32_t PRUICSS_disableCore(PRUICSS_Handle handle, uint8_t pruNum);
477 
487 int32_t PRUICSS_enableCore(PRUICSS_Handle handle, uint8_t pruNum);
488 
499 uint32_t PRUICSS_initMemory(PRUICSS_Handle handle, uint32_t pruicssMem);
500 
515  uint32_t pruicssMem,
516  uint32_t wordoffset,
517  const uint32_t *source_mem,
518  uint32_t bytelength);
519 
534  uint32_t pruicssMem,
535  uint32_t wordoffset,
536  uint32_t *dest_mem,
537  uint32_t bytelength);
538 
549 int32_t PRUICSS_sendEvent(PRUICSS_Handle handle, uint32_t eventnum);
550 
561 int32_t PRUICSS_waitEvent(PRUICSS_Handle handle, uint32_t pruEvtoutNum);
562 
573 int32_t PRUICSS_clearEvent(PRUICSS_Handle handle, uint32_t eventnum);
574 
588  uint32_t sendEventNum,
589  uint32_t pruEvtoutNum,
590  uint32_t ackEventNum);
591 
600 
615  uint8_t pruNum,
616  int32_t constantTblEntry,
617  uint32_t constantTblVal);
618 
629 int32_t PRUICSS_setIepClkSrc(PRUICSS_Handle handle, uint32_t source);
630 
640 int32_t PRUICSS_setGpMuxSelect(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode);
641 
651 int32_t PRUICSS_setGpiMode(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode);
652 
661 int32_t PRUICSS_setSaMuxMode(PRUICSS_Handle handle, uint8_t mode);
662 
673 int32_t PRUICSS_configureCycleCounter(PRUICSS_Handle handle, uint8_t pruNum, uint8_t enable);
674 
684 int32_t PRUICSS_controlIepCounter(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t enable);
685 
696 int32_t PRUICSS_setIepCounterIncrementValue(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t value);
697 
707 int32_t PRUICSS_readEfuse(PRUICSS_Handle handle, uint8_t *data);
708 
718 int32_t PRUICSS_setIcssCfgMiiMode(PRUICSS_Handle handle, uint8_t miiInstance, uint8_t mode);
719 
729 int32_t PRUICSS_setIcssCfgTxFifo(PRUICSS_Handle handle, uint8_t fifoInstance, uint8_t enable);
730 
738 const PRUICSS_HwAttrs *PRUICSS_getAttrs(uint32_t instance);
739 /* ========================================================================== */
740 /* Global Variables */
741 /* ========================================================================== */
742 
745 #ifdef __cplusplus
746 }
747 #endif
748 
749 #endif /* #ifndef PRUICSS_H_ */
PRUICSS_clearEvent
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...
PRUICSS_INTC_NUM_CHANNELS
#define PRUICSS_INTC_NUM_CHANNELS
Number of Output Interrupt channels supported in PRUICSS Local INTC.
Definition: pruicss/g_v0/pruicss.h:115
PRUICSS_HwAttrs::txPru0IramBase
uintptr_t txPru0IramBase
Definition: pruicss/g_v0/pruicss.h:359
PRUICSS_HwAttrs::rtu1CtrlRegBase
uintptr_t rtu1CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:356
PRUICSS_SysevtToChannelMap::channel
uint8_t channel
Definition: pruicss/g_v0/pruicss.h:248
PRUICSS_SysevtToChannelMap::sysevt
uint8_t sysevt
Definition: pruicss/g_v0/pruicss.h:246
PRUICSS_HwAttrs::baseAddr
uintptr_t baseAddr
Definition: pruicss/g_v0/pruicss.h:336
PRUICSS_configureCycleCounter
int32_t PRUICSS_configureCycleCounter(PRUICSS_Handle handle, uint8_t pruNum, uint8_t enable)
This function enables/disables the PRU Cycle Counter for a core.
PRUICSS_HwAttrs::txPru1IramBase
uintptr_t txPru1IramBase
Definition: pruicss/g_v0/pruicss.h:360
PRUICSS_HwAttrs::sharedDramBase
uintptr_t sharedDramBase
Definition: pruicss/g_v0/pruicss.h:352
PRUICSS_HwAttrs::iep0RegBase
uintptr_t iep0RegBase
Definition: pruicss/g_v0/pruicss.h:342
PRUICSS_resetCore
int32_t PRUICSS_resetCore(PRUICSS_Handle handle, uint8_t pruNum)
This function resets the PRU.
PRUICSS_SysevtToChannelMap::type
uint8_t type
Definition: pruicss/g_v0/pruicss.h:252
PRUICSS_HwAttrs::rtu1IramSize
uint32_t rtu1IramSize
Definition: pruicss/g_v0/pruicss.h:367
PRUICSS_sendWaitClearEvent
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.
SystemP.h
PRUICSS_Config::object
PRUICSS_Object * object
Definition: pruicss/g_v0/pruicss.h:378
PRUICSS_HwAttrs::pru1DramSize
uint32_t pru1DramSize
Definition: pruicss/g_v0/pruicss.h:362
PRUICSS_close
int32_t PRUICSS_close(PRUICSS_Handle handle)
This function deletes the handle for a PRUICSS instance.
PRUICSS_readMemory
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.
PRUICSS_IrqFunMap::semObj
SemaphoreP_Object semObj
Definition: pruicss/g_v0/pruicss.h:305
PRUICSS_HwAttrs::ecapRegBase
uintptr_t ecapRegBase
Definition: pruicss/g_v0/pruicss.h:344
PRUICSS_HwAttrs::miiMdioRegBase
uintptr_t miiMdioRegBase
Definition: pruicss/g_v0/pruicss.h:347
PRUICSS_setGpiMode
int32_t PRUICSS_setGpiMode(PRUICSS_Handle handle, uint8_t pruNum, uint8_t mode)
This API sets the GPI mode for a specific PRU.
PRUICSS_HwAttrs::miiRtCfgRegBase
uintptr_t miiRtCfgRegBase
Definition: pruicss/g_v0/pruicss.h:345
PRUICSS_enableCore
int32_t PRUICSS_enableCore(PRUICSS_Handle handle, uint8_t pruNum)
This function enables the PRU.
data
uint32_t data
Definition: tisci_rm_psil.h:1
SemaphoreP.h
PRUICSS_IntcInitData::hostEnableBitmask
uint32_t hostEnableBitmask
Definition: pruicss/g_v0/pruicss.h:283
PRUICSS_HwAttrs::pru1IramBase
uintptr_t pru1IramBase
Definition: pruicss/g_v0/pruicss.h:351
PRUICSS_setIcssCfgTxFifo
int32_t PRUICSS_setIcssCfgTxFifo(PRUICSS_Handle handle, uint8_t fifoInstance, uint8_t enable)
This API configures the TX FIFO to be used.
PRUICSS_IrqFunMap::waitEnable
uint8_t waitEnable
Definition: pruicss/g_v0/pruicss.h:303
PRUICSS_HwAttrs::pru0DramSize
uint32_t pru0DramSize
Definition: pruicss/g_v0/pruicss.h:361
PRUICSS_HwAttrs::txPru1CtrlRegBase
uintptr_t txPru1CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:358
PRUICSS_init
int32_t PRUICSS_init(void)
This function initializes the PRUICSS module.
PRUICSS_setIcssCfgMiiMode
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.
PRUICSS_HwAttrs::sharedDramSize
uint32_t sharedDramSize
Definition: pruicss/g_v0/pruicss.h:365
PRUICSS_HwAttrs::pru1DramBase
uintptr_t pru1DramBase
Definition: pruicss/g_v0/pruicss.h:349
value
uint32_t value
Definition: tisci_otp_revision.h:2
PRUICSS_deinit
int32_t PRUICSS_deinit(void)
This function de-initializes the PRUICSS module.
PRUICSS_setIepCounterIncrementValue
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...
HwiP.h
PRUICSS_HwAttrs
PRUICSS Hardware Attributes.
Definition: pruicss/g_v0/pruicss.h:334
PRUICSS_HwAttrs::pru1IramSize
uint32_t pru1IramSize
Definition: pruicss/g_v0/pruicss.h:364
PRUICSS_disableCore
int32_t PRUICSS_disableCore(PRUICSS_Handle handle, uint8_t pruNum)
This function disables the PRU.
PRUICSS_HwAttrs::pru0IramBase
uintptr_t pru0IramBase
Definition: pruicss/g_v0/pruicss.h:350
PRUICSS_IrqFunMap::hwiObj
HwiP_Object hwiObj
Definition: pruicss/g_v0/pruicss.h:301
PRUICSS_setSaMuxMode
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.
source
uint8_t source
Definition: tisci_rm_ra.h:4
PRUICSS_HwAttrs::pru0DramBase
uintptr_t pru0DramBase
Definition: pruicss/g_v0/pruicss.h:348
PRUICSS_HwAttrs::cfgRegBase
uintptr_t cfgRegBase
Definition: pruicss/g_v0/pruicss.h:340
PRUICSS_HwAttrs::txPru1IramSize
uint32_t txPru1IramSize
Definition: pruicss/g_v0/pruicss.h:369
PRUICSS_HwAttrs::intcRegBase
uintptr_t intcRegBase
Definition: pruicss/g_v0/pruicss.h:339
PRUICSS_setGpMuxSelect
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.
PRUICSS_getVersion
uint32_t PRUICSS_getVersion(PRUICSS_Handle handle)
Get PRUICSS version number from ICSSCFG_REVID register.
PRUICSS_open
PRUICSS_Handle PRUICSS_open(uint32_t instance)
This function creates the handle for a PRUICSS instance.
PRUICSS_Config::hwAttrs
PRUICSS_HwAttrs const * hwAttrs
Definition: pruicss/g_v0/pruicss.h:380
PRUICSS_HwAttrs::rtu0IramSize
uint32_t rtu0IramSize
Definition: pruicss/g_v0/pruicss.h:366
PRUICSS_getAttrs
const PRUICSS_HwAttrs * PRUICSS_getAttrs(uint32_t instance)
Return PRUICSS attributes.
PRUICSS_Config
PRUICSS Global configuration structure.
Definition: pruicss/g_v0/pruicss.h:377
PRUICSS_HwAttrs::pru0CtrlRegBase
uintptr_t pru0CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:337
PRUICSS_Object::pruicssVersion
uint32_t pruicssVersion
Definition: pruicss/g_v0/pruicss.h:319
PRUICSS_IrqFunMap::irqHandler
PRUICSS_IrqHandler irqHandler
Definition: pruicss/g_v0/pruicss.h:299
PRUICSS_waitEvent
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...
PRUICSS_initMemory
uint32_t PRUICSS_initMemory(PRUICSS_Handle handle, uint32_t pruicssMem)
This function initializes the PRU memory to zero.
mode
char mode[32]
Definition: tisci_pm_core.h:1
PRUICSS_HwAttrs::rtu0IramBase
uintptr_t rtu0IramBase
Definition: pruicss/g_v0/pruicss.h:353
PRUICSS_IntcInitData
PRUICSS Interrupt controller initialisation data structure.
Definition: pruicss/g_v0/pruicss.h:273
PRUICSS_HwAttrs::instance
uint32_t instance
Definition: pruicss/g_v0/pruicss.h:335
PRUICSS_SysevtToChannelMap::polarity
uint8_t polarity
Definition: pruicss/g_v0/pruicss.h:250
PRUICSS_ChannelToHostMap::channel
int16_t channel
Definition: pruicss/g_v0/pruicss.h:262
PRUICSS_HwAttrs::txPru0IramSize
uint32_t txPru0IramSize
Definition: pruicss/g_v0/pruicss.h:368
PRUICSS_INTC_NUM_HOST_INTERRUPTS
#define PRUICSS_INTC_NUM_HOST_INTERRUPTS
Number of Host Interrupts supported in PRUICSS Local INTC.
Definition: pruicss/g_v0/pruicss.h:110
PRUICSS_HwAttrs::iep1RegBase
uintptr_t iep1RegBase
Definition: pruicss/g_v0/pruicss.h:343
PRUICSS_ChannelToHostMap
Data structure used for channel to host map in PRUICSS.
Definition: pruicss/g_v0/pruicss.h:261
HwiP_Object
Opaque Hwi object used with the Hwi APIs.
Definition: HwiP.h:91
PRUICSS_setConstantTblEntry
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.
PRUICSS_readEfuse
int32_t PRUICSS_readEfuse(PRUICSS_Handle handle, uint8_t *data)
This API reads the state of efuse bits from ICSSG_HWDIS_REG register.
SemaphoreP_Object
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
PRUICSS_ChannelToHostMap::host
int16_t host
Definition: pruicss/g_v0/pruicss.h:264
PRUICSS_HwAttrs::txPru0CtrlRegBase
uintptr_t txPru0CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:357
PRUICSS_INTC_NUM_SYS_EVTS
#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
PRUICSS Object.
Definition: pruicss/g_v0/pruicss.h:318
PRUICSS_HwAttrs::miiGRtCfgRegBase
uintptr_t miiGRtCfgRegBase
Definition: pruicss/g_v0/pruicss.h:346
PRUICSS_IrqFunMap
PRUICSS IRQ handler mapping structure.
Definition: pruicss/g_v0/pruicss.h:298
PRUICSS_HwAttrs::rtu0CtrlRegBase
uintptr_t rtu0CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:355
PRUICSS_IrqHandler
void(* PRUICSS_IrqHandler)(void *buf)
Definition: pruicss/g_v0/pruicss.h:228
PRUICSS_HwAttrs::pru0IramSize
uint32_t pru0IramSize
Definition: pruicss/g_v0/pruicss.h:363
PRUICSS_setIepClkSrc
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...
PRUICSS_sendEvent
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...
PRUICSS_intcInit
int32_t PRUICSS_intcInit(PRUICSS_Handle handle, const PRUICSS_IntcInitData *intcInitData)
This function does Interrupt-Channel-host mapping.
PRUICSS_HwAttrs::rtu1IramBase
uintptr_t rtu1IramBase
Definition: pruicss/g_v0/pruicss.h:354
PRUICSS_SysevtToChannelMap
Data structure used for system event to channel mapping in PRUICSS.
Definition: pruicss/g_v0/pruicss.h:245
PRUICSS_writeMemory
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.
PRUICSS_controlIepCounter
int32_t PRUICSS_controlIepCounter(PRUICSS_Handle handle, uint8_t iepInstance, uint8_t enable)
This API enables/disables the counter in IEP module.
PRUICSS_HwAttrs::uartRegBase
uintptr_t uartRegBase
Definition: pruicss/g_v0/pruicss.h:341
PRUICSS_Handle
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:234
PRUICSS_IrqFunMap::pruicssHandle
PRUICSS_Handle pruicssHandle
Definition: pruicss/g_v0/pruicss.h:307
PRUICSS_HwAttrs::pru1CtrlRegBase
uintptr_t pru1CtrlRegBase
Definition: pruicss/g_v0/pruicss.h:338
PRUICSS_registerIrqHandler
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
@ enable
Definition: iPtcpDrv.h:63