[processor-sdk/performance-audio-sr.git] / processor_audio_sdk_1_00_00_00 / psdk_cust / ipc_3_43_00_00_eng / docs / cdoc / ti / sdo / ipc / family / tci663x / Interrupt-src.html
diff --git a/processor_audio_sdk_1_00_00_00/psdk_cust/ipc_3_43_00_00_eng/docs/cdoc/ti/sdo/ipc/family/tci663x/Interrupt-src.html b/processor_audio_sdk_1_00_00_00/psdk_cust/ipc_3_43_00_00_eng/docs/cdoc/ti/sdo/ipc/family/tci663x/Interrupt-src.html
+++ /dev/null
@@ -1,180 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html><head><title>module ti.sdo.ipc.family.tci663x.Interrupt</title>
-<meta name="googlebot" content="noindex,nofollow">
-<link rel="stylesheet" type="text/css" href="../../../../../src.css"/>
-</head>
-<body>
-<pre class=src>
- 1 <span class="comment">/*
-</span> 2 <span class="comment"> * Copyright (c) 2014-2015 Texas Instruments Incorporated - http://www.ti.com
-</span> 3 <span class="comment"> *
-</span> 4 <span class="comment"> * Redistribution and use in source and binary forms, with or without
-</span> 5 <span class="comment"> * modification, are permitted provided that the following conditions
-</span> 6 <span class="comment"> * are met:
-</span> 7 <span class="comment"> *
-</span> 8 <span class="comment"> * Redistributions of source code must retain the above copyright
-</span> 9 <span class="comment"> * notice, this list of conditions and the following disclaimer.
-</span> 10 <span class="comment"> *
-</span> 11 <span class="comment"> * Redistributions in binary form must reproduce the above copyright
-</span> 12 <span class="comment"> * notice, this list of conditions and the following disclaimer in the
-</span> 13 <span class="comment"> * documentation and/or other materials provided with the
-</span> 14 <span class="comment"> * distribution.
-</span> 15 <span class="comment"> *
-</span> 16 <span class="comment"> * Neither the name of Texas Instruments Incorporated nor the names of
-</span> 17 <span class="comment"> * its contributors may be used to endorse or promote products derived
-</span> 18 <span class="comment"> * from this software without specific prior written permission.
-</span> 19 <span class="comment"> *
-</span> 20 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-</span> 21 <span class="comment"> * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-</span> 22 <span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-</span> 23 <span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-</span> 24 <span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-</span> 25 <span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-</span> 26 <span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-</span> 27 <span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-</span> 28 <span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-</span> 29 <span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-</span> 30 <span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</span> 31 <span class="comment"> */</span>
- 32
- 33 <span class="comment">/*
-</span> 34 <span class="comment"> * ======== Interrupt.xdc ========
-</span> 35 <span class="comment"> */</span>
- 36 <span class=key>package</span> ti.sdo.ipc.family.tci663x;
- 37
- 38 import xdc.rov.ViewInfo;
- 39 import xdc.runtime.Assert;
- 40 import ti.sysbios.hal.Hwi;
- 41
- 42 <span class="xdoc">/*!
-</span> 43 <span class="xdoc"> * ======== Interrupt ========
-</span> 44 <span class="xdoc"> * TCI663x based interrupt manager
-</span> 45 <span class="xdoc"> */</span>
- 46 @ModuleStartup
- 47
- 48 <span class=key>module</span> Interrupt <span class=key>inherits</span> ti.sdo.ipc.notifyDrivers.IInterrupt
- 49 {
- 50
- 51 <span class="xdoc">/*! Return value from Interrupt_intClear() when procId != HOST
-</span> 52 <span class="xdoc"> *
-</span> 53 <span class="xdoc"> * When acknowledging an interrupt from the host, the IPCGR register
-</span> 54 <span class="xdoc"> * value is returned as the payload. For all other processors,
-</span> 55 <span class="xdoc"> * Interrupt_INVALIDPAYLOAD is returned.
-</span> 56 <span class="xdoc"> */</span>
- 57 <span class=key>const</span> UInt INVALIDPAYLOAD = 0xFFFFFFFF;
- 58
- 59 <span class="xdoc">/*!
-</span> 60 <span class="xdoc"> * ======== enableKick ========
-</span> 61 <span class="xdoc"> * If set to 'true' IPC will unlock the KICK registers on C66x devices
-</span> 62 <span class="xdoc"> *
-</span> 63 <span class="xdoc"> * IPC unlocks the KICK registers on the local core if the local
-</span> 64 <span class="xdoc"> * core is CORE0.
-</span> 65 <span class="xdoc"> */</span>
- 66 <span class=key>config</span> Bool enableKick = <span class=key>true</span>;
- 67
- 68 <span class="xdoc">/*! cpu interrupt number for IPC */</span>
- 69 <span class=key>config</span> UInt ipcIntr = 5;
- 70
- 71 <span class="xdoc">/*! Host processor must be first in MultiProc name list
-</span> 72 <span class="xdoc"> *
-</span> 73 <span class="xdoc"> * If the host processor is present in the MultiProc name list,
-</span> 74 <span class="xdoc"> * it must be listed as the first member. The internal implementation
-</span> 75 <span class="xdoc"> * depends on this ordering.
-</span> 76 <span class="xdoc"> */</span>
- 77 <span class=key>config</span> Assert.Id A_hostConfig = {
- 78 msg: <span class="string">"A_hostConfig: HOST must be first in MultiProc name list"</span>
- 79 };
- 80
- 81 <span class="xdoc">/*! The cluster base ID has not been set
-</span> 82 <span class="xdoc"> *
-</span> 83 <span class="xdoc"> * The cluster base ID must be set either by the configuration script
-</span> 84 <span class="xdoc"> * or during the startup phase by a user defined function. This assert
-</span> 85 <span class="xdoc"> * indicates neither has been done.
-</span> 86 <span class="xdoc"> */</span>
- 87 <span class=key>config</span> Assert.Id A_clusterBaseId = {
- 88 msg: <span class="string">"A_clusterBaseId: cluster base ID has not been set"</span>
- 89 };
- 90
- 91 <span class="comment">/* @_nodoc */</span>
- 92 <span class=key>metaonly</span> <span class=key>struct</span> InterruptDataStruct {
- 93 UInt remoteCoreId;
- 94 String isrFxn;
- 95 String isrArg;
- 96 Bool isFlagged;
- 97 }
- 98
- 99 <span class="xdoc">/*!
-</span> 100 <span class="xdoc"> * ======== rovViewInfo ========
-</span> 101 <span class="xdoc"> */</span>
- 102 @Facet
- 103 <span class=key>metaonly</span> <span class=key>config</span> ViewInfo.Instance rovViewInfo =
- 104 ViewInfo.create({
- 105 viewMap: [
- 106 [<span class="string">'Registered Interrupts'</span>,
- 107 {
- 108 type: ViewInfo.MODULE_DATA,
- 109 viewInitFxn: <span class="string">'viewInterruptsData'</span>,
- 110 structName: <span class="string">'InterruptDataStruct'</span>
- 111 }
- 112 ]
- 113 ]
- 114 });
- 115
- 116 <span class=key>internal</span>:
- 117
- 118 <span class="comment">/* Shift value used for setting/identifying interrupt source */</span>
- 119 <span class=key>const</span> UInt SRCSx_SHIFT = 4;
- 120
- 121 <span class="comment">/* Ptr to the IPC Generation Registers */</span>
- 122 <span class=key>config</span> Ptr IPCGR0;
- 123
- 124 <span class="comment">/* Ptr to the IPC Acknowledgment Registers */</span>
- 125 <span class=key>config</span> Ptr IPCAR0;
- 126
- 127 <span class="comment">/* Ptr to the IPC Host Generation Host Register */</span>
- 128 <span class=key>config</span> Ptr IPCGRH;
- 129
- 130 <span class="comment">/* Ptr to the IPC Acknowledgement Host Register */</span>
- 131 <span class=key>config</span> Ptr IPCARH;
- 132
- 133 <span class="comment">/* Ptr to the KICK0 Bootcfg Registers */</span>
- 134 <span class=key>config</span> Ptr KICK0;
- 135
- 136 <span class="comment">/* Ptr to the KICK1 Bootcfg Registers */</span>
- 137 <span class=key>config</span> Ptr KICK1;
- 138
- 139 <span class="comment">/* Inter-processor interrupt id (varies per device) */</span>
- 140 <span class=key>config</span> UInt INTERDSPINT;
- 141
- 142 <span class="comment">/* client table entry */</span>
- 143 <span class=key>struct</span> ClientEntry {
- 144 Fxn func; <span class="comment">/* client function */</span>
- 145 UArg arg; <span class="comment">/* client argument */</span>
- 146 };
- 147
- 148 <span class="comment">/* hardware configuration data */</span>
- 149 <span class=key>struct</span> HwCfg {
- 150 UInt dnum; <span class="comment">/* DNUM value */</span>
- 151 UInt srcsx; <span class="comment">/* source bit position */</span>
- 152 };
- 153
- 154 <span class="comment">/*
-</span> 155 <span class="comment"> * ======== isr ========
-</span> 156 <span class="comment"> * Stub function plugged as interrupt handler
-</span> 157 <span class="comment"> */</span>
- 158 Void isr(UArg arg);
- 159
- 160 <span class="comment">/*
-</span> 161 <span class="comment"> * ======== Module_State ========
-</span> 162 <span class="comment"> * Define the module state structure
-</span> 163 <span class="comment"> */</span>
- 164 <span class=key>struct</span> Module_State {
- 165 UInt numPlugged; <span class="comment">/* # of times interrupt was registered */</span>
- 166 UInt16 baseId; <span class="comment">/* cluster base procId */</span>
- 167 Hwi.Handle hwi; <span class="comment">/* Hwi object for ipc interrupt */</span>
- 168 ClientEntry clientTab[]; <span class="comment">/* index by clusterId */</span>
- 169 HwCfg hwTab[]; <span class="comment">/* index by clusterId */</span>
- 170 };
- 171 }
-</pre>
-</body></html>