Lines Matching +full:rom +full:- +full:val

1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
3 * Copyright (C) 2012-2014, 2018-2025 Intel Corporation
4 * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
5 * Copyright (C) 2015-2017 Intel Deutschland GmbH
8 #include "iwl-drv.h"
12 #include "iwl-io.h"
13 #include "iwl-prph.h"
14 #include "iwl-csr.h"
27 * read with u32-sized accesses, any members with a different size
38 u32 data1; /* error-specific data */
39 u32 data2; /* error-specific data */
40 u32 data3; /* error-specific data */
79 * UMAC error struct - relevant starting from family 8000 chip.
82 * read with u32-sized accesses, any members with a different size
92 u32 data1; /* error-specific data */
93 u32 data2; /* error-specific data */
94 u32 data3; /* error-specific data */
119 struct iwl_trans *trans = fwrt->trans; in iwl_fwrt_dump_umac_error_log()
121 u32 base = fwrt->trans->dbg.umac_error_event_table; in iwl_fwrt_dump_umac_error_log()
125 !(fwrt->trans->dbg.error_event_table_tlv_status & in iwl_fwrt_dump_umac_error_log()
132 fwrt->dump.umac_err_id = table.error_id; in iwl_fwrt_dump_umac_error_log()
134 if (!iwl_fwrt_if_errorid_other_cpu(fwrt->dump.umac_err_id) && in iwl_fwrt_dump_umac_error_log()
135 !fwrt->trans->dbg.dump_file_name_ext_valid) { in iwl_fwrt_dump_umac_error_log()
136 fwrt->trans->dbg.dump_file_name_ext_valid = true; in iwl_fwrt_dump_umac_error_log()
137 snprintf(fwrt->trans->dbg.dump_file_name_ext, IWL_FW_INI_MAX_NAME, in iwl_fwrt_dump_umac_error_log()
138 "0x%x", fwrt->dump.umac_err_id); in iwl_fwrt_dump_umac_error_log()
144 fwrt->trans->status, table.valid); in iwl_fwrt_dump_umac_error_log()
173 struct iwl_trans *trans = fwrt->trans; in iwl_fwrt_dump_lmac_error_log()
175 u32 val, base = fwrt->trans->dbg.lmac_error_event_table[lmac_num]; in iwl_fwrt_dump_lmac_error_log() local
177 if (fwrt->cur_fw_img == IWL_UCODE_INIT) { in iwl_fwrt_dump_lmac_error_log()
179 base = fwrt->fw->init_errlog_ptr; in iwl_fwrt_dump_lmac_error_log()
182 base = fwrt->fw->inst_errlog_ptr; in iwl_fwrt_dump_lmac_error_log()
189 (fwrt->cur_fw_img == IWL_UCODE_INIT) in iwl_fwrt_dump_lmac_error_log()
195 val = iwl_trans_read_mem32(trans, base); in iwl_fwrt_dump_lmac_error_log()
196 if (iwl_trans_is_hw_error_value(val)) { in iwl_fwrt_dump_lmac_error_log()
214 fwrt->dump.lmac_err_id[lmac_num] = table.error_id; in iwl_fwrt_dump_lmac_error_log()
216 if (!iwl_fwrt_if_errorid_other_cpu(fwrt->dump.lmac_err_id[lmac_num]) && in iwl_fwrt_dump_lmac_error_log()
217 !fwrt->trans->dbg.dump_file_name_ext_valid) { in iwl_fwrt_dump_lmac_error_log()
218 fwrt->trans->dbg.dump_file_name_ext_valid = true; in iwl_fwrt_dump_lmac_error_log()
219 snprintf(fwrt->trans->dbg.dump_file_name_ext, IWL_FW_INI_MAX_NAME, in iwl_fwrt_dump_lmac_error_log()
220 "0x%x", fwrt->dump.lmac_err_id[lmac_num]); in iwl_fwrt_dump_lmac_error_log()
226 fwrt->trans->status, table.valid); in iwl_fwrt_dump_lmac_error_log()
229 /* Do not change this output - scripts rely on it */ in iwl_fwrt_dump_lmac_error_log()
231 IWL_ERR(fwrt, "Loaded firmware version: %s\n", fwrt->fw->fw_version); in iwl_fwrt_dump_lmac_error_log()
233 IWL_ERR(fwrt, "0x%08X | %-28s\n", table.error_id, in iwl_fwrt_dump_lmac_error_log()
274 * read with u32-sized accesses, any members with a different size
296 struct iwl_trans *trans = fwrt->trans; in iwl_fwrt_dump_tcm_error_log()
298 u32 base = fwrt->trans->dbg.tcm_error_event_table[idx]; in iwl_fwrt_dump_tcm_error_log()
303 if (!base || !(fwrt->trans->dbg.error_event_table_tlv_status & flag)) in iwl_fwrt_dump_tcm_error_log()
309 fwrt->dump.tcm_err_id[idx] = table.error_id; in iwl_fwrt_dump_tcm_error_log()
311 if (!iwl_fwrt_if_errorid_other_cpu(fwrt->dump.tcm_err_id[idx]) && in iwl_fwrt_dump_tcm_error_log()
312 !fwrt->trans->dbg.dump_file_name_ext_valid) { in iwl_fwrt_dump_tcm_error_log()
313 fwrt->trans->dbg.dump_file_name_ext_valid = true; in iwl_fwrt_dump_tcm_error_log()
314 snprintf(fwrt->trans->dbg.dump_file_name_ext, IWL_FW_INI_MAX_NAME, in iwl_fwrt_dump_tcm_error_log()
315 "0x%x", fwrt->dump.tcm_err_id[idx]); in iwl_fwrt_dump_tcm_error_log()
343 * read with u32-sized accesses, any members with a different size
370 struct iwl_trans *trans = fwrt->trans; in iwl_fwrt_dump_rcm_error_log()
372 u32 base = fwrt->trans->dbg.rcm_error_event_table[idx]; in iwl_fwrt_dump_rcm_error_log()
376 if (!base || !(fwrt->trans->dbg.error_event_table_tlv_status & flag)) in iwl_fwrt_dump_rcm_error_log()
382 fwrt->dump.rcm_err_id[idx] = table.error_id; in iwl_fwrt_dump_rcm_error_log()
384 if (!iwl_fwrt_if_errorid_other_cpu(fwrt->dump.rcm_err_id[idx]) && in iwl_fwrt_dump_rcm_error_log()
385 !fwrt->trans->dbg.dump_file_name_ext_valid) { in iwl_fwrt_dump_rcm_error_log()
386 fwrt->trans->dbg.dump_file_name_ext_valid = true; in iwl_fwrt_dump_rcm_error_log()
387 snprintf(fwrt->trans->dbg.dump_file_name_ext, IWL_FW_INI_MAX_NAME, in iwl_fwrt_dump_rcm_error_log()
388 "0x%x", fwrt->dump.rcm_err_id[idx]); in iwl_fwrt_dump_rcm_error_log()
405 IWL_ERR(fwrt, "0x%08X | LMAC-to-RCM request mbox\n", in iwl_fwrt_dump_rcm_error_log()
407 IWL_ERR(fwrt, "0x%08X | RCM-to-LMAC request mbox\n", in iwl_fwrt_dump_rcm_error_log()
417 struct iwl_trans *trans = fwrt->trans; in iwl_fwrt_dump_iml_error_log()
420 if (fwrt->trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_22000) { in iwl_fwrt_dump_iml_error_log()
423 } else if (fwrt->trans->mac_cfg->device_family >= in iwl_fwrt_dump_iml_error_log()
433 IWL_ERR(trans, "IML/ROM dump:\n"); in iwl_fwrt_dump_iml_error_log()
436 IWL_ERR(trans, "0x%04X | IML/ROM SYSASSERT\n", error >> 16); in iwl_fwrt_dump_iml_error_log()
438 IWL_ERR(fwrt, "0x%08X | IML/ROM error/state\n", error); in iwl_fwrt_dump_iml_error_log()
439 IWL_ERR(fwrt, "0x%08X | IML/ROM data1\n", in iwl_fwrt_dump_iml_error_log()
442 if (fwrt->trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_22000) in iwl_fwrt_dump_iml_error_log()
443 IWL_ERR(fwrt, "0x%08X | IML/ROM WFPM_AUTH_KEY_0\n", in iwl_fwrt_dump_iml_error_log()
451 struct iwl_trans *trans = fwrt->trans; in iwl_fwrt_dump_fseq_regs()
493 if (!iwl_trans_device_enabled(fwrt->trans)) { in iwl_fwrt_dump_error_logs()
500 if (fwrt->trans->dbg.lmac_error_event_table[1]) in iwl_fwrt_dump_error_logs()
505 if (fwrt->trans->dbg.tcm_error_event_table[1]) in iwl_fwrt_dump_error_logs()
507 if (fwrt->trans->dbg.rcm_error_event_table[1]) in iwl_fwrt_dump_error_logs()
511 if (fwrt->trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_22000) { in iwl_fwrt_dump_error_logs()
512 pc_data = fwrt->trans->dbg.pc_data; in iwl_fwrt_dump_error_logs()
514 if (!iwl_trans_grab_nic_access(fwrt->trans)) in iwl_fwrt_dump_error_logs()
516 for (count = 0; count < fwrt->trans->dbg.num_pc; in iwl_fwrt_dump_error_logs()
519 pc_data->pc_name, in iwl_fwrt_dump_error_logs()
520 iwl_read_prph_no_grab(fwrt->trans, in iwl_fwrt_dump_error_logs()
521 pc_data->pc_address)); in iwl_fwrt_dump_error_logs()
522 iwl_trans_release_nic_access(fwrt->trans); in iwl_fwrt_dump_error_logs()
525 if (fwrt->trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_BZ) { in iwl_fwrt_dump_error_logs()
526 u32 scratch = iwl_read32(fwrt->trans, CSR_FUNC_SCRATCH); in iwl_fwrt_dump_error_logs()