cxl: Refine slice error debug messages
The PSL Slice Error Register (PSL_SERR_An) reports implementation dependent AFU errors, in the form of a bitmap. The PSL_SERR_An register content is printed in the form of hex dump debug message. This patch decodes the PSL_ERR_An register contents, and prints a specific error message for each possible error bit. It also dumps the secondary registers AFU_ERR_An and PSL_DSISR_An, that may contain extra debug information. This patch also removes the large WARN message that used to report the cxl slice error interrupt, and replaces it by a short informative message, that draws attention to AFU implementation errors. Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com> Acked-by: Ian Munsie <imunsie@au1.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
committed by
Michael Ellerman
parent
f5c9df9a44
commit
6e0c50f9e8
@ -189,6 +189,18 @@ static const cxl_p2n_reg_t CXL_PSL_WED_An = {0x0A0};
|
||||
#define CXL_PSL_ID_An_F (1ull << (63-31))
|
||||
#define CXL_PSL_ID_An_L (1ull << (63-30))
|
||||
|
||||
/****** CXL_PSL_SERR_An ****************************************************/
|
||||
#define CXL_PSL_SERR_An_afuto (1ull << (63-0))
|
||||
#define CXL_PSL_SERR_An_afudis (1ull << (63-1))
|
||||
#define CXL_PSL_SERR_An_afuov (1ull << (63-2))
|
||||
#define CXL_PSL_SERR_An_badsrc (1ull << (63-3))
|
||||
#define CXL_PSL_SERR_An_badctx (1ull << (63-4))
|
||||
#define CXL_PSL_SERR_An_llcmdis (1ull << (63-5))
|
||||
#define CXL_PSL_SERR_An_llcmdto (1ull << (63-6))
|
||||
#define CXL_PSL_SERR_An_afupar (1ull << (63-7))
|
||||
#define CXL_PSL_SERR_An_afudup (1ull << (63-8))
|
||||
#define CXL_PSL_SERR_An_AE (1ull << (63-30))
|
||||
|
||||
/****** CXL_PSL_SCNTL_An ****************************************************/
|
||||
#define CXL_PSL_SCNTL_An_CR (0x1ull << (63-15))
|
||||
/* Programming Modes: */
|
||||
@ -916,4 +928,7 @@ extern const struct cxl_backend_ops *cxl_ops;
|
||||
|
||||
/* check if the given pci_dev is on the the cxl vphb bus */
|
||||
bool cxl_pci_is_vphb_device(struct pci_dev *dev);
|
||||
|
||||
/* decode AFU error bits in the PSL register PSL_SERR_An */
|
||||
void cxl_afu_decode_psl_serr(struct cxl_afu *afu, u64 serr);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user