xref: /dpdk/drivers/net/qede/base/ecore_init_ops.h (revision 3b307c55f2ac7f3f4146bd0dc9b474e1f3076f97)
13126df22SRasesh Mody /* SPDX-License-Identifier: BSD-3-Clause
29adde217SRasesh Mody  * Copyright (c) 2016 - 2018 Cavium Inc.
3ec94dbc5SRasesh Mody  * All rights reserved.
49adde217SRasesh Mody  * www.cavium.com
5ec94dbc5SRasesh Mody  */
6ec94dbc5SRasesh Mody 
7ec94dbc5SRasesh Mody #ifndef __ECORE_INIT_OPS__
8ec94dbc5SRasesh Mody #define __ECORE_INIT_OPS__
9ec94dbc5SRasesh Mody 
10ec94dbc5SRasesh Mody #include "ecore.h"
11ec94dbc5SRasesh Mody 
12ec94dbc5SRasesh Mody /**
13ec94dbc5SRasesh Mody  * @brief ecore_init_iro_array - init iro_arr.
14ec94dbc5SRasesh Mody  *
15ec94dbc5SRasesh Mody  *
16ec94dbc5SRasesh Mody  * @param p_dev
17ec94dbc5SRasesh Mody  */
18ec94dbc5SRasesh Mody void ecore_init_iro_array(struct ecore_dev *p_dev);
19ec94dbc5SRasesh Mody 
20ec94dbc5SRasesh Mody /**
21ec94dbc5SRasesh Mody  * @brief ecore_init_run - Run the init-sequence.
22ec94dbc5SRasesh Mody  *
23ec94dbc5SRasesh Mody  *
24ec94dbc5SRasesh Mody  * @param p_hwfn
25ec94dbc5SRasesh Mody  * @param p_ptt
26ec94dbc5SRasesh Mody  * @param phase
27ec94dbc5SRasesh Mody  * @param phase_id
28ec94dbc5SRasesh Mody  * @param modes
29ec94dbc5SRasesh Mody  * @return _ecore_status_t
30ec94dbc5SRasesh Mody  */
31ec94dbc5SRasesh Mody enum _ecore_status_t ecore_init_run(struct ecore_hwfn *p_hwfn,
32ec94dbc5SRasesh Mody 				    struct ecore_ptt *p_ptt,
33610ccd98SRasesh Mody 				    int               phase,
34610ccd98SRasesh Mody 				    int               phase_id,
35610ccd98SRasesh Mody 				    int               modes);
36ec94dbc5SRasesh Mody 
37ec94dbc5SRasesh Mody /**
38ec94dbc5SRasesh Mody  * @brief ecore_init_hwfn_allocate - Allocate RT array, Store 'values' ptrs.
39ec94dbc5SRasesh Mody  *
40ec94dbc5SRasesh Mody  *
41ec94dbc5SRasesh Mody  * @param p_hwfn
42ec94dbc5SRasesh Mody  *
43ec94dbc5SRasesh Mody  * @return _ecore_status_t
44ec94dbc5SRasesh Mody  */
45ec94dbc5SRasesh Mody enum _ecore_status_t ecore_init_alloc(struct ecore_hwfn *p_hwfn);
46ec94dbc5SRasesh Mody 
47ec94dbc5SRasesh Mody /**
48ec94dbc5SRasesh Mody  * @brief ecore_init_hwfn_deallocate
49ec94dbc5SRasesh Mody  *
50ec94dbc5SRasesh Mody  *
51ec94dbc5SRasesh Mody  * @param p_hwfn
52ec94dbc5SRasesh Mody  */
53ec94dbc5SRasesh Mody void ecore_init_free(struct ecore_hwfn *p_hwfn);
54ec94dbc5SRasesh Mody 
55610ccd98SRasesh Mody 
56ec94dbc5SRasesh Mody /**
57ec94dbc5SRasesh Mody  * @brief ecore_init_clear_rt_data - Clears the runtime init array.
58ec94dbc5SRasesh Mody  *
59ec94dbc5SRasesh Mody  *
60ec94dbc5SRasesh Mody  * @param p_hwfn
61ec94dbc5SRasesh Mody  */
62ec94dbc5SRasesh Mody void ecore_init_clear_rt_data(struct ecore_hwfn *p_hwfn);
63ec94dbc5SRasesh Mody 
64ec94dbc5SRasesh Mody /**
65ec94dbc5SRasesh Mody  * @brief ecore_init_store_rt_reg - Store a configuration value in the RT array.
66ec94dbc5SRasesh Mody  *
67ec94dbc5SRasesh Mody  *
68ec94dbc5SRasesh Mody  * @param p_hwfn
69ec94dbc5SRasesh Mody  * @param rt_offset
70ec94dbc5SRasesh Mody  * @param val
71ec94dbc5SRasesh Mody  */
729455b556SRasesh Mody void ecore_init_store_rt_reg(struct ecore_hwfn *p_hwfn,
739455b556SRasesh Mody 			     u32               rt_offset,
749455b556SRasesh Mody 			     u32               val);
75ec94dbc5SRasesh Mody 
76ec94dbc5SRasesh Mody #define STORE_RT_REG(hwfn, offset, val)				\
77ec94dbc5SRasesh Mody 	ecore_init_store_rt_reg(hwfn, offset, val)
78ec94dbc5SRasesh Mody 
79ec94dbc5SRasesh Mody #define OVERWRITE_RT_REG(hwfn, offset, val)			\
80ec94dbc5SRasesh Mody 	ecore_init_store_rt_reg(hwfn, offset, val)
81ec94dbc5SRasesh Mody 
82ec94dbc5SRasesh Mody /**
83ec94dbc5SRasesh Mody * @brief
84ec94dbc5SRasesh Mody *
85ec94dbc5SRasesh Mody *
86ec94dbc5SRasesh Mody * @param p_hwfn
87ec94dbc5SRasesh Mody * @param rt_offset
88ec94dbc5SRasesh Mody * @param val
89ec94dbc5SRasesh Mody * @param size
90ec94dbc5SRasesh Mody */
91ec94dbc5SRasesh Mody 
92ec94dbc5SRasesh Mody void ecore_init_store_rt_agg(struct ecore_hwfn *p_hwfn,
939455b556SRasesh Mody 			     u32               rt_offset,
949455b556SRasesh Mody 			     u32               *val,
959455b556SRasesh Mody 			     osal_size_t       size);
96ec94dbc5SRasesh Mody 
97ec94dbc5SRasesh Mody #define STORE_RT_REG_AGG(hwfn, offset, val)			\
98*3b307c55SRasesh Mody 	ecore_init_store_rt_agg(hwfn, offset, (u32 *)&(val), sizeof(val))
99ec94dbc5SRasesh Mody 
100ec94dbc5SRasesh Mody #endif /* __ECORE_INIT_OPS__ */
101