diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2010-08-18 09:11:35 -0400 |
---|---|---|
committer | Borislav Petkov <bp@amd64.org> | 2010-10-21 08:48:00 -0400 |
commit | 888ab8e6eb2e41179cdc8edf5d0abd1cce0f0370 (patch) | |
tree | 4e7eb4f0ad3ebb10d75e7764355ebf3f4a316f72 /drivers/edac/mce_amd.h | |
parent | 47ca08a40b043815134d489e21870b53276f1a4a (diff) |
EDAC, MCE: Adjust DC decoders to F14h
Add a per-family data cache decoders. Since there is a certain overlap
between the different DC MCE signatures, reuse functionality between the
families as far as possible.
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac/mce_amd.h')
-rw-r--r-- | drivers/edac/mce_amd.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h index 2712a906afdf..85985c225442 100644 --- a/drivers/edac/mce_amd.h +++ b/drivers/edac/mce_amd.h | |||
@@ -44,6 +44,39 @@ | |||
44 | #define K8_NBSH_UECC BIT(13) | 44 | #define K8_NBSH_UECC BIT(13) |
45 | #define K8_NBSH_ERR_SCRUBER BIT(8) | 45 | #define K8_NBSH_ERR_SCRUBER BIT(8) |
46 | 46 | ||
47 | enum tt_ids { | ||
48 | TT_INSTR = 0, | ||
49 | TT_DATA, | ||
50 | TT_GEN, | ||
51 | TT_RESV, | ||
52 | }; | ||
53 | |||
54 | enum ll_ids { | ||
55 | LL_RESV = 0, | ||
56 | LL_L1, | ||
57 | LL_L2, | ||
58 | LL_LG, | ||
59 | }; | ||
60 | |||
61 | enum ii_ids { | ||
62 | II_MEM = 0, | ||
63 | II_RESV, | ||
64 | II_IO, | ||
65 | II_GEN, | ||
66 | }; | ||
67 | |||
68 | enum rrrr_ids { | ||
69 | R4_GEN = 0, | ||
70 | R4_RD, | ||
71 | R4_WR, | ||
72 | R4_DRD, | ||
73 | R4_DWR, | ||
74 | R4_IRD, | ||
75 | R4_PREF, | ||
76 | R4_EVICT, | ||
77 | R4_SNOOP, | ||
78 | }; | ||
79 | |||
47 | extern const char *tt_msgs[]; | 80 | extern const char *tt_msgs[]; |
48 | extern const char *ll_msgs[]; | 81 | extern const char *ll_msgs[]; |
49 | extern const char *rrrr_msgs[]; | 82 | extern const char *rrrr_msgs[]; |
@@ -63,6 +96,13 @@ struct err_regs { | |||
63 | u32 nbeal; | 96 | u32 nbeal; |
64 | }; | 97 | }; |
65 | 98 | ||
99 | /* | ||
100 | * per-family decoder ops | ||
101 | */ | ||
102 | struct amd_decoder_ops { | ||
103 | bool (*dc_mce)(u16); | ||
104 | }; | ||
105 | |||
66 | void amd_report_gart_errors(bool); | 106 | void amd_report_gart_errors(bool); |
67 | void amd_register_ecc_decoder(void (*f)(int, struct mce *, u32)); | 107 | void amd_register_ecc_decoder(void (*f)(int, struct mce *, u32)); |
68 | void amd_unregister_ecc_decoder(void (*f)(int, struct mce *, u32)); | 108 | void amd_unregister_ecc_decoder(void (*f)(int, struct mce *, u32)); |