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 */ 28 29 #ifndef __ECORE_INIT_OPS__ 30 #define __ECORE_INIT_OPS__ 31 32 #include "ecore.h" 33 34 /** 35 * @brief ecore_init_iro_array - init iro_arr. 36 * 37 * 38 * @param p_dev 39 */ 40 void ecore_init_iro_array(struct ecore_dev *p_dev); 41 42 /** 43 * @brief ecore_init_run - Run the init-sequence. 44 * 45 * 46 * @param p_hwfn 47 * @param p_ptt 48 * @param phase 49 * @param phase_id 50 * @param modes 51 * @return _ecore_status_t 52 */ 53 enum _ecore_status_t ecore_init_run(struct ecore_hwfn *p_hwfn, 54 struct ecore_ptt *p_ptt, 55 int phase, 56 int phase_id, 57 int modes); 58 59 /** 60 * @brief ecore_init_hwfn_allocate - Allocate RT array, Store 'values' ptrs. 61 * 62 * 63 * @param p_hwfn 64 * 65 * @return _ecore_status_t 66 */ 67 enum _ecore_status_t ecore_init_alloc(struct ecore_hwfn *p_hwfn); 68 69 /** 70 * @brief ecore_init_hwfn_deallocate 71 * 72 * 73 * @param p_hwfn 74 */ 75 void ecore_init_free(struct ecore_hwfn *p_hwfn); 76 77 /** 78 * @brief ecore_init_clear_rt_data - Clears the runtime init array. 79 * 80 * 81 * @param p_hwfn 82 */ 83 void ecore_init_clear_rt_data(struct ecore_hwfn *p_hwfn); 84 85 /** 86 * @brief ecore_init_store_rt_reg - Store a configuration value in the RT array. 87 * 88 * 89 * @param p_hwfn 90 * @param rt_offset 91 * @param val 92 */ 93 void ecore_init_store_rt_reg(struct ecore_hwfn *p_hwfn, 94 u32 rt_offset, 95 u32 val); 96 97 #define STORE_RT_REG(hwfn, offset, val) \ 98 ecore_init_store_rt_reg(hwfn, offset, val) 99 100 #define OVERWRITE_RT_REG(hwfn, offset, val) \ 101 ecore_init_store_rt_reg(hwfn, offset, val) 102 103 /** 104 * @brief 105 * 106 * 107 * @param p_hwfn 108 * @param rt_offset 109 * @param val 110 * @param size 111 */ 112 113 void ecore_init_store_rt_agg(struct ecore_hwfn *p_hwfn, 114 u32 rt_offset, 115 u32 *val, 116 osal_size_t size); 117 118 #define STORE_RT_REG_AGG(hwfn, offset, val) \ 119 ecore_init_store_rt_agg(hwfn, offset, (u32*)&val, sizeof(val)) 120 121 /** 122 * @brief 123 * Initialize GTT global windows and set admin window 124 * related params of GTT/PTT to default values. 125 * 126 * @param p_hwfn 127 */ 128 void ecore_gtt_init(struct ecore_hwfn *p_hwfn, 129 struct ecore_ptt *p_ptt); 130 #endif /* __ECORE_INIT_OPS__ */ 131