1 /*
2 * file fm_exclusionloc.h
3 *
4 * Internal prototypes and data structures for Fault Management resource
5 * exclusion from IO halt and fault recovery features.
6 *
7 * ============================================================================
8 * (C) Copyright 2014, Texas Instruments, Inc.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 *
14 * Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 *
17 * Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the
20 * distribution.
21 *
22 * Neither the name of Texas Instruments Incorporated nor the names of
23 * its contributors may be used to endorse or promote products derived
24 * from this software without specific prior written permission.
25 *
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 *
38 * \par
39 */
41 #ifndef FM_EXCLUSIONLOC_H_
42 #define FM_EXCLUSIONLOC_H_
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
48 #if (!defined(DEVICE_K2H) && !defined(DEVICE_K2K) && !defined(DEVICE_K2L) && !defined(DEVICE_K2E))
49 /* CSL Includes */
50 #include <ti/csl/csl_cppi.h>
51 #else
52 #include <ti/drv/cppi/cppi_drv.h>
53 #endif
55 /* FM external includes */
56 #include <ti/instrumentation/fault_mgmt/fault_mgmt.h>
58 typedef struct {
59 Cppi_CpDma dma;
60 } Fm_ExclusionCpdmaParams;
62 typedef struct {
63 CSL_InstNum edma3Num;
64 } Fm_ExclusionEdma3Params;
66 typedef struct {
67 int32_t lutInst;
68 } Fm_ExclusionLutEntryParams;
70 typedef struct {
71 int32_t cic;
72 } Fm_ExclusionCicParams;
74 typedef struct {
75 Fm_ResType resType;
76 Fm_ExcludedResource *exclusionList;
77 uint32_t numListEntries;
78 uint32_t resourceNum;
79 union {
80 Fm_ExclusionCpdmaParams cpdmaParams;
81 Fm_ExclusionEdma3Params edma3Params;
82 Fm_ExclusionLutEntryParams lutParams;
83 Fm_ExclusionCicParams cicParams;
84 } u;
85 } Fm_ExclusionParams;
87 uint32_t fmExclusionValidateList(Fm_GlobalConfigParams *fmGblCfgParams, Fm_ExcludedResource *exResList,
88 int32_t *status);
89 uint32_t fmExclusionIsExcluded(Fm_ExclusionParams *exParams);
91 #ifdef __cplusplus
92 }
93 #endif
95 #endif /* FM_EXCLUSIONLOC_H_ */