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