|
@@ -161,6 +161,51 @@ TRACE_EVENT(mc_event,
|
|
|
__get_str(driver_detail))
|
|
|
);
|
|
|
|
|
|
+/*
|
|
|
+ * Non-Standard Section Report
|
|
|
+ *
|
|
|
+ * This event is generated when hardware detected a hardware
|
|
|
+ * error event, which may be of non-standard section as defined
|
|
|
+ * in UEFI spec appendix "Common Platform Error Record", or may
|
|
|
+ * be of sections for which TRACE_EVENT is not defined.
|
|
|
+ *
|
|
|
+ */
|
|
|
+TRACE_EVENT(non_standard_event,
|
|
|
+
|
|
|
+ TP_PROTO(const uuid_le *sec_type,
|
|
|
+ const uuid_le *fru_id,
|
|
|
+ const char *fru_text,
|
|
|
+ const u8 sev,
|
|
|
+ const u8 *err,
|
|
|
+ const u32 len),
|
|
|
+
|
|
|
+ TP_ARGS(sec_type, fru_id, fru_text, sev, err, len),
|
|
|
+
|
|
|
+ TP_STRUCT__entry(
|
|
|
+ __array(char, sec_type, UUID_SIZE)
|
|
|
+ __array(char, fru_id, UUID_SIZE)
|
|
|
+ __string(fru_text, fru_text)
|
|
|
+ __field(u8, sev)
|
|
|
+ __field(u32, len)
|
|
|
+ __dynamic_array(u8, buf, len)
|
|
|
+ ),
|
|
|
+
|
|
|
+ TP_fast_assign(
|
|
|
+ memcpy(__entry->sec_type, sec_type, UUID_SIZE);
|
|
|
+ memcpy(__entry->fru_id, fru_id, UUID_SIZE);
|
|
|
+ __assign_str(fru_text, fru_text);
|
|
|
+ __entry->sev = sev;
|
|
|
+ __entry->len = len;
|
|
|
+ memcpy(__get_dynamic_array(buf), err, len);
|
|
|
+ ),
|
|
|
+
|
|
|
+ TP_printk("severity: %d; sec type:%pU; FRU: %pU %s; data len:%d; raw data:%s",
|
|
|
+ __entry->sev, __entry->sec_type,
|
|
|
+ __entry->fru_id, __get_str(fru_text),
|
|
|
+ __entry->len,
|
|
|
+ __print_hex(__get_dynamic_array(buf), __entry->len))
|
|
|
+);
|
|
|
+
|
|
|
/*
|
|
|
* PCIe AER Trace event
|
|
|
*
|