]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - sys/dev/qlnx/qlnxe/ecore_init_ops.h
MFC r316485
[FreeBSD/stable/10.git] / sys / dev / qlnx / qlnxe / ecore_init_ops.h
1 /*
2  * Copyright (c) 2017-2018 Cavium, Inc. 
3  * All rights reserved.
4  *
5  *  Redistribution and use in source and binary forms, with or without
6  *  modification, are permitted provided that the following conditions
7  *  are met:
8  *
9  *  1. Redistributions of source code must retain the above copyright
10  *     notice, this list of conditions and the following disclaimer.
11  *  2. 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 distribution.
14  *
15  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16  *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
19  *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20  *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21  *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22  *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23  *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24  *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25  *  POSSIBILITY OF SUCH DAMAGE.
26  *
27  * $FreeBSD$
28  *
29  */
30
31
32 #ifndef __ECORE_INIT_OPS__
33 #define __ECORE_INIT_OPS__
34
35 #include "ecore.h"
36
37 /**
38  * @brief ecore_init_iro_array - init iro_arr.
39  *
40  *
41  * @param p_dev
42  */
43 void ecore_init_iro_array(struct ecore_dev *p_dev);
44
45 /**
46  * @brief ecore_init_run - Run the init-sequence.
47  *
48  *
49  * @param p_hwfn
50  * @param p_ptt
51  * @param phase 
52  * @param phase_id 
53  * @param modes
54  * @return _ecore_status_t
55  */
56 enum _ecore_status_t ecore_init_run(struct ecore_hwfn *p_hwfn,
57                                     struct ecore_ptt  *p_ptt,
58                                     int               phase,
59                                     int               phase_id,
60                                     int               modes);
61
62 /**
63  * @brief ecore_init_hwfn_allocate - Allocate RT array, Store 'values' ptrs.
64  *
65  *
66  * @param p_hwfn
67  *
68  * @return _ecore_status_t
69  */
70 enum _ecore_status_t ecore_init_alloc(struct ecore_hwfn *p_hwfn);
71
72 /**
73  * @brief ecore_init_hwfn_deallocate
74  *
75  *
76  * @param p_hwfn
77  */
78 void ecore_init_free(struct ecore_hwfn *p_hwfn);
79
80
81 /**
82  * @brief ecore_init_clear_rt_data - Clears the runtime init array.
83  *
84  *
85  * @param p_hwfn
86  */
87 void ecore_init_clear_rt_data(struct ecore_hwfn *p_hwfn);
88
89 /**
90  * @brief ecore_init_store_rt_reg - Store a configuration value in the RT array.
91  *
92  *
93  * @param p_hwfn
94  * @param rt_offset
95  * @param val
96  */
97 void ecore_init_store_rt_reg(struct ecore_hwfn *p_hwfn,
98                              u32                rt_offset,
99                              u32                val);
100
101 #define STORE_RT_REG(hwfn, offset, val)                         \
102         ecore_init_store_rt_reg(hwfn, offset, val)
103
104 #define OVERWRITE_RT_REG(hwfn, offset, val)                     \
105         ecore_init_store_rt_reg(hwfn, offset, val)
106
107 /**
108 * @brief
109 *
110 *
111 * @param p_hwfn
112 * @param rt_offset
113 * @param val
114 * @param size
115 */
116
117 void ecore_init_store_rt_agg(struct ecore_hwfn *p_hwfn,
118                              u32               rt_offset,
119                              u32               *val,
120                              osal_size_t       size);
121
122 #define STORE_RT_REG_AGG(hwfn, offset, val)                     \
123         ecore_init_store_rt_agg(hwfn, offset, (u32*)&val, sizeof(val))
124
125
126 /**
127  * @brief 
128  *      Initialize GTT global windows and set admin window
129  *      related params of GTT/PTT to default values. 
130  * 
131  * @param p_hwfn 
132  */
133 void ecore_gtt_init(struct ecore_hwfn *p_hwfn);
134 #endif /* __ECORE_INIT_OPS__ */