module ti.sdo.ipc.family.vayu.InterruptIpu

IPU interrupt manager

C synopsis target-domain sourced in ti/sdo/ipc/family/vayu/InterruptIpu.xdc
#include <ti/sdo/ipc/family/vayu/InterruptIpu.h>
Functions common to all IInterrupt modules
UInt 
Void 
Void 
Void 
Void 
Void 
Functions common to all target modules
Defines
#define
#define
#define
Typedefs
typedef struct
Constants
extern const UInt32 
extern const UInt32 
 
 
const InterruptIpu_NUM_EVES

Maximum number of EVE cores

C synopsis target-domain
#define InterruptIpu_NUM_EVES (UInt8)4
 
DETAILS
Although your device may have fewer EVE cores, NUM_EVES represents the maximum number of EVEs that may be present on a Vayu system.
 
const InterruptIpu_NUM_EVE_MBX

Number of internal EVE mailboxes

C synopsis target-domain
#define InterruptIpu_NUM_EVE_MBX (UInt8)InterruptIpu.NUM_EVES * 3
 
DETAILS
Each EVE core has 3 mailboxes.
Although your device may have fewer EVE cores, NUM_EVE_MBX represents the maximum number of EVE mailboxes (including all EVE cores) that may be present.
 
const InterruptIpu_NUM_SYS_MBX

Number of System mailboxes used by IPC

C synopsis target-domain
#define InterruptIpu_NUM_SYS_MBX (UInt8)4
 
DETAILS
This represents the number of System mailboxes used by IPC. IPC currently uses system mailboxes 5, 6, 7 and 8.
 
struct InterruptIpu_IntInfo
C synopsis target-domain
typedef struct InterruptIpu_IntInfo {
    UInt localIntId;
    UInt remoteIntId;
    UInt intVectorId;
} InterruptIpu_IntInfo;
 
 
config InterruptIpu_ducatiCtrlBaseAddr  // module-wide

Base address for the Ducati CTRL register

C synopsis target-domain
extern const UInt32 InterruptIpu_ducatiCtrlBaseAddr;
 
 
config InterruptIpu_mailboxBaseAddr  // module-wide

Base address for the mailbox subsystems

C synopsis target-domain
extern const UInt32 InterruptIpu_mailboxBaseAddr[InterruptIpu_NUM_EVE_MBX + InterruptIpu_NUM_SYS_MBX];
 
DETAILS
The mailboxBaseAddr array indicates the virtual addresses through which IPC will access various mailboxes. The specific mailbox addresses each array index maps to follows:
  • 0 - EVE1 MBX0
  • 1 - EVE1 MBX1
  • 2 - EVE1 MBX2 (unused, do not assign)
  • 3 - EVE2 MBX0
  • 4 - EVE2 MBX1
  • 5 - EVE2 MBX2 (unused, do not assign)
  • 6 - EVE3 MBX0
  • 7 - EVE3 MBX1
  • 8 - EVE1 MBX2 (unused, do not assign)
  • 9 - EVE4 MBX0
  • 10 - EVE4 MBX1
  • 11 - EVE1 MBX2 (unused, do not assign)
  • 12 - System Mailbox 5
  • 13 - System Mailbox 6
  • 14 - System Mailbox 7
  • 15 - System Mailbox 8
Note that these mailboxes are not accessible at their physical addresses (in the 0x4XXX_XXXX range). So default virtual addresses through which these mailboxes will be accessed are assigned in the 0x6XXX_XXXX range. Users must ensure these virtual addresses are correctly mapped to the 0x4XXX_XXXX-based phys addrs in each IPUs AMMU.
 
InterruptIpu_intClear()  // module-wide

Clear interrupt

C synopsis target-domain
UInt InterruptIpu_intClear(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo);
 
ARGUMENTS
remoteProcId — Remote MultiProc Id
intInfo — Information needed to configure interrupt line
RETURNS
Value (if any) of the interrupt before it was cleared
 
InterruptIpu_intDisable()  // module-wide

Disables the interrupt corresponding to intId

C synopsis target-domain
Void InterruptIpu_intDisable(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo);
 
ARGUMENTS
remoteProcId — Remote MultiProc Id
intInfo — Information needed to configure interrupt line
 
InterruptIpu_intEnable()  // module-wide

Enables the interrupt corresponding to intId

C synopsis target-domain
Void InterruptIpu_intEnable(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo);
 
ARGUMENTS
remoteProcId — Remote MultiProc Id
intInfo — Information needed to configure interrupt line
 
InterruptIpu_intRegister()  // module-wide

Register an interrupt line to a remote processor

C synopsis target-domain
Void InterruptIpu_intRegister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo, Fxn func, UArg arg);
 
ARGUMENTS
remoteProcId — Remote MultiProc Id
intInfo — Information needed to configure interrupt line
func — Function to register.
arg — Argument that will be passed to func
 
InterruptIpu_intSend()  // module-wide

Send interrupt to the remote processor

C synopsis target-domain
Void InterruptIpu_intSend(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo, UArg arg);
 
ARGUMENTS
remoteProcId — Remote MultiProc Id
intInfo — Information needed to configure interrupt line
arg — Argument for sending interrupt.
 
InterruptIpu_intUnregister()  // module-wide

Unregister an interrupt line to a remote processor

C synopsis target-domain
Void InterruptIpu_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo);
 
ARGUMENTS
remoteProcId — Remote MultiProc Id
intInfo — Information needed to configure interrupt line
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId InterruptIpu_Module_id();
// Get this module's unique id
 
Bool InterruptIpu_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle InterruptIpu_Module_heap();
// The heap from which this module allocates memory
 
Bool InterruptIpu_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 InterruptIpu_Module_getMask();
// Returns the diagnostics mask for this module
 
Void InterruptIpu_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
 
Configuration settings sourced in ti/sdo/ipc/family/vayu/InterruptIpu.xdc
var InterruptIpu = xdc.useModule('ti.sdo.ipc.family.vayu.InterruptIpu');
module-wide constants & types
 
    var obj = new InterruptIpu.IntInfo// ;
        obj.localIntId = UInt  ...
        obj.remoteIntId = UInt  ...
        obj.intVectorId = UInt  ...
module-wide config parameters
 
 
 
const InterruptIpu.NUM_EVES

Maximum number of EVE cores

Configuration settings
const InterruptIpu.NUM_EVES = 4;
 
DETAILS
Although your device may have fewer EVE cores, NUM_EVES represents the maximum number of EVEs that may be present on a Vayu system.
C SYNOPSIS
 
const InterruptIpu.NUM_EVE_MBX

Number of internal EVE mailboxes

Configuration settings
const InterruptIpu.NUM_EVE_MBX = InterruptIpu.NUM_EVES * 3;
 
DETAILS
Each EVE core has 3 mailboxes.
Although your device may have fewer EVE cores, NUM_EVE_MBX represents the maximum number of EVE mailboxes (including all EVE cores) that may be present.
C SYNOPSIS
 
const InterruptIpu.NUM_SYS_MBX

Number of System mailboxes used by IPC

Configuration settings
const InterruptIpu.NUM_SYS_MBX = 4;
 
DETAILS
This represents the number of System mailboxes used by IPC. IPC currently uses system mailboxes 5, 6, 7 and 8.
C SYNOPSIS
 
struct InterruptIpu.IntInfo
Configuration settings
var obj = new InterruptIpu.IntInfo;
 
    obj.localIntId = UInt  ...
    obj.remoteIntId = UInt  ...
    obj.intVectorId = UInt  ...
 
C SYNOPSIS
 
config InterruptIpu.ducatiCtrlBaseAddr  // module-wide

Base address for the Ducati CTRL register

Configuration settings
InterruptIpu.ducatiCtrlBaseAddr = UInt32 0x40001000;
 
C SYNOPSIS
 
config InterruptIpu.mailboxBaseAddr  // module-wide

Base address for the mailbox subsystems

Configuration settings
InterruptIpu.mailboxBaseAddr = UInt32[InterruptIpu.NUM_EVE_MBX+InterruptIpu.NUM_SYS_MBX] undefined;
 
DETAILS
The mailboxBaseAddr array indicates the virtual addresses through which IPC will access various mailboxes. The specific mailbox addresses each array index maps to follows:
  • 0 - EVE1 MBX0
  • 1 - EVE1 MBX1
  • 2 - EVE1 MBX2 (unused, do not assign)
  • 3 - EVE2 MBX0
  • 4 - EVE2 MBX1
  • 5 - EVE2 MBX2 (unused, do not assign)
  • 6 - EVE3 MBX0
  • 7 - EVE3 MBX1
  • 8 - EVE1 MBX2 (unused, do not assign)
  • 9 - EVE4 MBX0
  • 10 - EVE4 MBX1
  • 11 - EVE1 MBX2 (unused, do not assign)
  • 12 - System Mailbox 5
  • 13 - System Mailbox 6
  • 14 - System Mailbox 7
  • 15 - System Mailbox 8
Note that these mailboxes are not accessible at their physical addresses (in the 0x4XXX_XXXX range). So default virtual addresses through which these mailboxes will be accessed are assigned in the 0x6XXX_XXXX range. Users must ensure these virtual addresses are correctly mapped to the 0x4XXX_XXXX-based phys addrs in each IPUs AMMU.
C SYNOPSIS
 
metaonly config InterruptIpu.common$  // module-wide

Common module configuration parameters

Configuration settings
InterruptIpu.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
generated on Fri, 21 Aug 2015 19:35:59 GMT