1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License, v.1, (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://opensource.org/licenses/CDDL-1.0. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2014-2017 Cavium, Inc. 24 * The contents of this file are subject to the terms of the Common Development 25 * and Distribution License, v.1, (the "License"). 26 27 * You may not use this file except in compliance with the License. 28 29 * You can obtain a copy of the License at available 30 * at http://opensource.org/licenses/CDDL-1.0 31 32 * See the License for the specific language governing permissions and 33 * limitations under the License. 34 */ 35 36 #ifndef __ECORE_INIT_OPS__ 37 #define __ECORE_INIT_OPS__ 38 39 #include "ecore.h" 40 41 /** 42 * @brief ecore_init_iro_array - init iro_arr. 43 * 44 * 45 * @param p_dev 46 */ 47 void ecore_init_iro_array(struct ecore_dev *p_dev); 48 49 /** 50 * @brief ecore_init_run - Run the init-sequence. 51 * 52 * 53 * @param p_hwfn 54 * @param p_ptt 55 * @param phase 56 * @param phase_id 57 * @param modes 58 * @return _ecore_status_t 59 */ 60 enum _ecore_status_t ecore_init_run(struct ecore_hwfn *p_hwfn, 61 struct ecore_ptt *p_ptt, 62 int phase, 63 int phase_id, 64 int modes); 65 66 /** 67 * @brief ecore_init_hwfn_allocate - Allocate RT array, Store 'values' ptrs. 68 * 69 * 70 * @param p_hwfn 71 * 72 * @return _ecore_status_t 73 */ 74 enum _ecore_status_t ecore_init_alloc(struct ecore_hwfn *p_hwfn); 75 76 /** 77 * @brief ecore_init_hwfn_deallocate 78 * 79 * 80 * @param p_hwfn 81 */ 82 void ecore_init_free(struct ecore_hwfn *p_hwfn); 83 84 85 /** 86 * @brief ecore_init_clear_rt_data - Clears the runtime init array. 87 * 88 * 89 * @param p_hwfn 90 */ 91 void ecore_init_clear_rt_data(struct ecore_hwfn *p_hwfn); 92 93 /** 94 * @brief ecore_init_store_rt_reg - Store a configuration value in the RT array. 95 * 96 * 97 * @param p_hwfn 98 * @param rt_offset 99 * @param val 100 */ 101 void ecore_init_store_rt_reg(struct ecore_hwfn *p_hwfn, 102 u32 rt_offset, 103 u32 val); 104 105 #define STORE_RT_REG(hwfn, offset, val) \ 106 ecore_init_store_rt_reg(hwfn, offset, val) 107 108 #define OVERWRITE_RT_REG(hwfn, offset, val) \ 109 ecore_init_store_rt_reg(hwfn, offset, val) 110 111 /** 112 * @brief 113 * 114 * 115 * @param p_hwfn 116 * @param rt_offset 117 * @param val 118 * @param size 119 */ 120 121 void ecore_init_store_rt_agg(struct ecore_hwfn *p_hwfn, 122 u32 rt_offset, 123 u32 *val, 124 osal_size_t size); 125 126 #define STORE_RT_REG_AGG(hwfn, offset, val) \ 127 ecore_init_store_rt_agg(hwfn, offset, (u32*)&val, sizeof(val)) 128 129 130 /** 131 * @brief 132 * Initialize GTT global windows and set admin window 133 * related params of GTT/PTT to default values. 134 * 135 * @param p_hwfn 136 */ 137 void ecore_gtt_init(struct ecore_hwfn *p_hwfn); 138 #endif /* __ECORE_INIT_OPS__ */ 139