Adding checksum support for early storage manager.
The checksum calculation will be conducted:
1. Power up; 2. Before conversion to NV variable; 3. Store a new entry;
I had ReadyToBoot and EBS all mixed up so I changed the comments and changed the order the events were created in to be congruent with ReadyToBoot being first, where we setup and populate BERT, and EBS being last, where we clear variables from flash.
Was calculating spot after header with:
`(Entry + sizeof(EFI_ACPI_6_1_GENERIC_ERROR_DATA_ENTRY_STRUCTURE));`
Since Entry is EFI_ACPI_6_1_GENERIC_ERROR_DATA_ENTRY_STRUCTURE, this is incorrect.
`Entry +1` will move past the header correctly.
Also downgrading DEBUG_ERROR to DEBUG_WARN
1) utilize PcdMaxHardwareErrorVariableSize in HERAdd to make sure the buffer is small enough
2) created PcdVariableHardwareMaxCount to limit the number of variable names that will be issued on a platform
also fixed the ClearAllEntries routine to be more efficient
Validates that size fields within HWErrRecXXXX headers are within bounds. After validation, utilizing size and offset fields within the common header and section header(s) is safe
In case a platform does not support EFI_VARIABLE_HARDWARE_ERROR_RECORD, the PCD PcdVariableHardwareErrorRecordSupported can be set to FALSE and the bit will not be added by MsWheaReportHER
Design update for Mu telemetry:
1. A new CPER section type and structure is defined for telemetry report (MuTelemetrySectionType will be the one and only data acknowledged by the listeners);
2. Added helper library to assist mu telemetry reporting;
3. Updated backend processing to work with newly defined structure in #1;
4. Updated unit test application to test new library APIs and backend routines;
Adding report status code handler that collects certain errors and store on the flash for MS WHEA process.
Related work items: #16620999, #17798962, #17798979, #18167784