blob: 929ee7fbaf425b086899121d252f9d803a30ff6c [file] [log] [blame]
Lawrence Tang7f21db62022-07-06 11:09:39 +01001#ifndef CPER_SECTION_ARM_H
2#define CPER_SECTION_ARM_H
3
4#include "json.h"
5#include "../edk/Cper.h"
6
7#define MEMORY_ERROR_VALID_BITFIELD_NAMES (const char*[]) \
8 {"errorStatusValid", "physicalAddressValid", "physicalAddressMaskValid", "nodeValid", "cardValid", "moduleValid", \
9 "bankValid", "deviceValid", "rowValid", "columnValid", "bitPositionValid", "platformRequestorIDValid", \
10 "platformResponderIDValid", "memoryPlatformTargetValid", "memoryErrorTypeValid", "rankNumberValid", \
11 "cardHandleValid", "moduleHandleValid", "extendedRowBitsValid", "bankGroupValid", "bankAddressValid", \
12 "chipIdentificationValid"}
13#define MEMORY_ERROR_ERROR_TYPES_KEYS (int []){1, 16, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26}
14#define MEMORY_ERROR_ERROR_TYPES_VALUES (const char*[]){"ERR_INTERNAL", "ERR_BUS", "ERR_MEM", "ERR_TLB", \
15 "ERR_CACHE", "ERR_FUNCTION", "ERR_SELFTEST", "ERR_FLOW", "ERR_MAP", "ERR_IMPROPER", "ERR_UNIMPL", \
16 "ERR_LOL", "ERR_RESPONSE", "ERR_PARITY", "ERR_PROTOCOL", "ERR_ERROR", "ERR_TIMEOUT", "ERR_POISONED"}
17#define MEMORY_ERROR_ERROR_TYPES_DESCRIPTIONS (const char*[]){\
18 "Error detected internal to the component.", \
19 "Error detected in the bus.", \
20 "Storage error in memory (DRAM).", \
21 "Storage error in TLB.", \
22 "Storage error in cache.", \
23 "Error in one or more functional units.", \
24 "Component failed self test.", \
25 "Overflow or underflow of internal queue.", \
26 "Virtual address not found on IO-TLB or IO-PDIR.", \
27 "Improper access error.", \
28 "Access to a memory address which is not mapped to any component.", \
29 "Loss of Lockstep error.", \
30 "Response not associated with a request.", \
31 "Bus parity error (must also set the A, C, or D bits).", \
32 "Detection of a protocol error.", \
33 "Detection of a PATH_ERROR.", \
34 "Bus operation timeout.", \
35 "A read was issued to data that has been poisoned."}
36
37json_object* cper_section_memory_to_ir(void* section, EFI_ERROR_SECTION_DESCRIPTOR* descriptor);
38
39#endif