1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright (C) 2017 Chelsio Communications. All rights reserved. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef __CXGB4_CUDBG_H__ 7*4882a593Smuzhiyun #define __CXGB4_CUDBG_H__ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include "cudbg_if.h" 10*4882a593Smuzhiyun #include "cudbg_lib_common.h" 11*4882a593Smuzhiyun #include "cudbg_entity.h" 12*4882a593Smuzhiyun #include "cudbg_lib.h" 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #define CUDBG_DUMP_BUFF_SIZE (32 * 1024 * 1024) /* 32 MB */ 15*4882a593Smuzhiyun #define CUDBG_COMPRESS_BUFF_SIZE (4 * 1024 * 1024) /* 4 MB */ 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun typedef int (*cudbg_collect_callback_t)(struct cudbg_init *pdbg_init, 18*4882a593Smuzhiyun struct cudbg_buffer *dbg_buff, 19*4882a593Smuzhiyun struct cudbg_error *cudbg_err); 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun struct cxgb4_collect_entity { 22*4882a593Smuzhiyun enum cudbg_dbg_entity_type entity; 23*4882a593Smuzhiyun cudbg_collect_callback_t collect_cb; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun enum CXGB4_ETHTOOL_DUMP_FLAGS { 27*4882a593Smuzhiyun CXGB4_ETH_DUMP_NONE = ETH_FW_DUMP_DISABLE, 28*4882a593Smuzhiyun CXGB4_ETH_DUMP_MEM = (1 << 0), /* On-Chip Memory Dumps */ 29*4882a593Smuzhiyun CXGB4_ETH_DUMP_HW = (1 << 1), /* various FW and HW dumps */ 30*4882a593Smuzhiyun CXGB4_ETH_DUMP_FLASH = (1 << 2), /* Dump flash memory */ 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #define CXGB4_ETH_DUMP_ALL (CXGB4_ETH_DUMP_MEM | CXGB4_ETH_DUMP_HW) 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun u32 cxgb4_get_dump_length(struct adapter *adap, u32 flag); 36*4882a593Smuzhiyun int cxgb4_cudbg_collect(struct adapter *adap, void *buf, u32 *buf_size, 37*4882a593Smuzhiyun u32 flag); 38*4882a593Smuzhiyun void cxgb4_init_ethtool_dump(struct adapter *adapter); 39*4882a593Smuzhiyun int cxgb4_cudbg_vmcore_add_dump(struct adapter *adap); 40*4882a593Smuzhiyun #endif /* __CXGB4_CUDBG_H__ */ 41