Lines Matching +full:0 +full:xd800

51 #define TOM_OFFSET			0xa0
53 #define TOLUD_OFFSET 0xbc
55 #define CAPID_C_OFFSET 0xec
59 #define CAPID_E_OFFSET 0xf0
64 #define ERRSTS_OFFSET 0xc8
69 #define ERRCMD_OFFSET 0xca
76 #define IBECC_ACTIVATE_EN BIT(0)
88 #define MCHBAR_OFFSET 0x48
89 #define MCHBAR_EN BIT_ULL(0)
91 #define MCHBAR_SIZE 0x10000
96 #define MAD_INTER_CHANNEL_DDR_TYPE(v) GET_BITFIELD(v, 0, 2)
103 #define MAD_INTRA_CH_DIMM_L_MAP(v) GET_BITFIELD(v, 0, 0)
106 #define MAD_DIMM_CH0_OFFSET (IMC_BASE + 0xc)
107 #define MAD_DIMM_CH_DIMM_L_SIZE(v) ((u64)GET_BITFIELD(v, 0, 6) << 29)
113 #define MAD_MC_HASH_OFFSET (IMC_BASE + 0x1b8)
117 #define CHANNEL_HASH_OFFSET (IMC_BASE + 0x24)
119 #define CHANNEL_EHASH_OFFSET (IMC_BASE + 0x28)
202 #define DID_EHL_SKU5 0x4514
203 #define DID_EHL_SKU6 0x4528
204 #define DID_EHL_SKU7 0x452a
205 #define DID_EHL_SKU8 0x4516
206 #define DID_EHL_SKU9 0x452c
207 #define DID_EHL_SKU10 0x452e
208 #define DID_EHL_SKU11 0x4532
209 #define DID_EHL_SKU12 0x4518
210 #define DID_EHL_SKU13 0x451a
211 #define DID_EHL_SKU14 0x4534
212 #define DID_EHL_SKU15 0x4536
215 #define DID_ICL_SKU8 0x4581
216 #define DID_ICL_SKU10 0x4585
217 #define DID_ICL_SKU11 0x4589
218 #define DID_ICL_SKU12 0x458d
221 #define DID_TGL_SKU 0x9a14
224 #define DID_ADL_SKU1 0x4601
225 #define DID_ADL_SKU2 0x4602
226 #define DID_ADL_SKU3 0x4621
227 #define DID_ADL_SKU4 0x4641
230 #define DID_ADL_N_SKU1 0x4614
231 #define DID_ADL_N_SKU2 0x4617
232 #define DID_ADL_N_SKU3 0x461b
233 #define DID_ADL_N_SKU4 0x461c
234 #define DID_ADL_N_SKU5 0x4673
235 #define DID_ADL_N_SKU6 0x4674
236 #define DID_ADL_N_SKU7 0x4675
237 #define DID_ADL_N_SKU8 0x4677
238 #define DID_ADL_N_SKU9 0x4678
239 #define DID_ADL_N_SKU10 0x4679
240 #define DID_ADL_N_SKU11 0x467c
241 #define DID_ADL_N_SKU12 0x4632
244 #define DID_RPL_P_SKU1 0xa706
245 #define DID_RPL_P_SKU2 0xa707
246 #define DID_RPL_P_SKU3 0xa708
247 #define DID_RPL_P_SKU4 0xa716
248 #define DID_RPL_P_SKU5 0xa718
251 #define DID_MTL_PS_SKU1 0x7d21
252 #define DID_MTL_PS_SKU2 0x7d22
253 #define DID_MTL_PS_SKU3 0x7d23
254 #define DID_MTL_PS_SKU4 0x7d24
257 #define DID_MTL_P_SKU1 0x7d01
258 #define DID_MTL_P_SKU2 0x7d02
259 #define DID_MTL_P_SKU3 0x7d14
262 #define DID_ARL_UH_SKU1 0x7d06
263 #define DID_ARL_UH_SKU2 0x7d20
264 #define DID_ARL_UH_SKU3 0x7d30
267 #define DID_PTL_H_SKU1 0xb000
268 #define DID_PTL_H_SKU2 0xb001
269 #define DID_PTL_H_SKU3 0xb002
298 return 0; in get_mchbar()
363 #define MCHBAR_MEMSS_IBECCDIS 0x13c00 in mtl_ps_ibecc_available()
373 igen6_printk(KERN_ERR, "Failed to ioremap 0x%llx\n", mchbar); in mtl_ps_ibecc_available()
380 /* Bit6: 1 - IBECC is disabled, 0 - IBECC isn't disabled */ in mtl_ps_ibecc_available()
426 GET_BITFIELD(eaddr, 0, intlv_bit - 1); in tgl_err_addr_to_mem_addr()
465 GET_BITFIELD(eaddr, 0, intlv_bit - 1); in adl_err_addr_to_imc_addr()
477 .imc_base = 0x5000,
478 .ibecc_base = 0xdc00,
480 .ibecc_error_log_offset = 0x170,
487 .imc_base = 0x5000,
488 .ibecc_base = 0xd800,
489 .ibecc_error_log_offset = 0x170,
498 .imc_base = 0x5000,
499 .cmf_base = 0x11000,
500 .cmf_size = 0x800,
501 .ms_hash_offset = 0xac,
502 .ibecc_base = 0xd400,
503 .ibecc_error_log_offset = 0x170,
512 .imc_base = 0xd800,
513 .ibecc_base = 0xd400,
514 .ibecc_error_log_offset = 0x68,
523 .imc_base = 0xd800,
524 .ibecc_base = 0xd400,
525 .ibecc_error_log_offset = 0x68,
534 .imc_base = 0xd800,
535 .ibecc_base = 0xd400,
536 .ibecc_error_log_offset = 0x68,
546 .imc_base = 0xd800,
547 .ibecc_base = 0xd400,
548 .ibecc_error_log_offset = 0x170,
557 .imc_base = 0xd800,
558 .ibecc_base = 0xd400,
559 .ibecc_error_log_offset = 0x170,
626 case 0: in get_width()
642 case 0: in get_memory_type()
659 u64 hash_addr = addr & mask, hash = 0; in decode_chan_idx()
675 channel_addr |= GET_BITFIELD(addr, 0, intlv_bit - 1); in decode_channel_addr()
708 edac_dbg(0, "Address 0x%llx out of range\n", addr); in igen6_decode()
728 return 0; in igen6_decode()
774 return 0; in ecclog_gen_pool_add()
790 * the invalid value ~0. This will result in a flood of invalid in ecclog_read_and_clear()
793 if (ecclog == ~0) in ecclog_read_and_clear()
794 return 0; in ecclog_read_and_clear()
798 return 0; in ecclog_read_and_clear()
822 struct igen6_imc *imc = &igen6_pvt->imc[0]; in errcmd_enable_error_reporting()
839 return 0; in errcmd_enable_error_reporting()
845 int i, n = 0; in ecclog_handler()
848 for (i = 0; i < res_cfg->num_imc; i++) { in ecclog_handler()
879 memset(&res, 0, sizeof(res)); in ecclog_work_cb()
891 edac_dbg(2, "MC %d, ecclog = 0x%llx\n", node->mc, node->ecclog); in ecclog_work_cb()
893 igen6_mc_printk(mci, KERN_DEBUG, "ADDR 0x%llx ", res.sys_addr); in ecclog_work_cb()
906 for (i = 0; i < res_cfg->num_imc; i++) in ecclog_irq_work_cb()
923 * doesn't clear the bit NMI_REASON_CLEAR_SERR (in port 0x61) to in ecclog_nmi_handler()
950 if ((mce->status & 0xefff) >> 7 != 1) in ecclog_mce_handler()
958 edac_dbg(0, "CPU %d: Machine Check %s: 0x%llx Bank %d: 0x%llx\n", in ecclog_mce_handler()
961 edac_dbg(0, "TSC 0x%llx\n", mce->tsc); in ecclog_mce_handler()
962 edac_dbg(0, "ADDR 0x%llx\n", mce->addr); in ecclog_mce_handler()
963 edac_dbg(0, "MISC 0x%llx\n", mce->misc); in ecclog_mce_handler()
964 edac_dbg(0, "PROCESSOR %u:0x%x TIME %llu SOCKET %u APIC 0x%x\n", in ecclog_mce_handler()
1013 for (i = 0; i < NUM_CHANNELS; i++) { in igen6_get_dimm_config()
1022 ndimms = 0; in igen6_get_dimm_config()
1024 for (j = 0; j < NUM_DIMMS; j++) { in igen6_get_dimm_config()
1025 dimm = edac_get_dimm(mci, i, j, 0); in igen6_get_dimm_config()
1028 dtype = get_width(0, mad_dimm); in igen6_get_dimm_config()
1045 edac_dbg(0, "MC %d, Channel %d, DIMM %d, Size %llu MiB (%u pages)\n", in igen6_get_dimm_config()
1057 edac_dbg(0, "MC %d, total size %llu MiB\n", mc, imc->size >> 20); in igen6_get_dimm_config()
1059 return 0; in igen6_get_dimm_config()
1065 #define TOUUD_OFFSET 0xa8
1071 edac_dbg(2, "CHANNEL_HASH : 0x%x\n", in igen6_reg_dump()
1073 edac_dbg(2, "CHANNEL_EHASH : 0x%x\n", in igen6_reg_dump()
1075 edac_dbg(2, "MAD_INTER_CHANNEL: 0x%x\n", in igen6_reg_dump()
1077 edac_dbg(2, "ECC_ERROR_LOG : 0x%llx\n", in igen6_reg_dump()
1080 for (i = 0; i < NUM_CHANNELS; i++) { in igen6_reg_dump()
1081 edac_dbg(2, "MAD_INTRA_CH%d : 0x%x\n", i, in igen6_reg_dump()
1083 edac_dbg(2, "MAD_DIMM_CH%d : 0x%x\n", i, in igen6_reg_dump()
1086 edac_dbg(2, "TOLUD : 0x%x", igen6_tolud); in igen6_reg_dump()
1087 edac_dbg(2, "TOUUD : 0x%llx", igen6_touud); in igen6_reg_dump()
1088 edac_dbg(2, "TOM : 0x%llx", igen6_tom); in igen6_reg_dump()
1098 edac_dbg(0, "Address 0x%llx out of range\n", val); in debugfs_u64_set()
1099 return 0; in debugfs_u64_set()
1102 pr_warn_once("Fake error to 0x%llx injected via debugfs\n", val); in debugfs_u64_set()
1107 if (!ecclog_gen_pool_add(0, ecclog)) in debugfs_u64_set()
1110 return 0; in debugfs_u64_set()
1185 return 0; in igen6_pci_setup()
1217 igen6_printk(KERN_ERR, "Failed to ioremap 0x%llx\n", mchbar); in igen6_register_mci()
1221 layers[0].type = EDAC_MC_LAYER_CHANNEL; in igen6_register_mci()
1222 layers[0].size = NUM_CHANNELS; in igen6_register_mci()
1223 layers[0].is_virt_csrow = false; in igen6_register_mci()
1228 mci = edac_mc_alloc(mc, ARRAY_SIZE(layers), layers, 0); in igen6_register_mci()
1279 return 0; in igen6_register_mci()
1298 for (i = 0; i < res_cfg->num_imc; i++) { in igen6_unregister_mcis()
1314 struct igen6_imc *imc = &igen6_pvt->imc[0]; in igen6_mem_slice_setup()
1324 if (imc[0].size < imc[1].size) { in igen6_mem_slice_setup()
1325 ms_s_size = imc[0].size; in igen6_mem_slice_setup()
1329 ms_l_map = 0; in igen6_mem_slice_setup()
1335 edac_dbg(0, "ms_s_size: %llu MiB, ms_l_map %d\n", in igen6_mem_slice_setup()
1339 return 0; in igen6_mem_slice_setup()
1343 igen6_printk(KERN_ERR, "Failed to ioremap cmf 0x%llx\n", base); in igen6_mem_slice_setup()
1350 edac_dbg(0, "MEM_SLICE_HASH: 0x%llx\n", ms_hash); in igen6_mem_slice_setup()
1354 return 0; in igen6_mem_slice_setup()
1363 return 0; in register_err_handler()
1367 0, IGEN6_NMI_NAME); in register_err_handler()
1373 return 0; in register_err_handler()
1424 for (i = 0; i < res_cfg->num_imc; i++) { in igen6_probe()
1460 return 0; in igen6_probe()
1513 return 0; in igen6_init()