This is re-use existing patch submitted by Huang Ying ying.huang@intel.com with one small modification (see commits). The first idea was to use just printk to inform about any errors that were not consumed by OS.
Errors listed in HEST table should point to the same "Error status block" ESB structures as BERT does. OS handling errors should clear errors status bit in ESB for given error at the end of error recovery procedure. Case where error appeared to be too serious OS can reset machine immediately without clearing bit in ESB. During boot, kernel examine each error status bit from ESB list (pointed from BERT) and see if there are any unhandled errors.
BERT table was tested along with HEST and EINJ driver, in the following way: 1. Fill in ESB using EINJ hacked driver and do not clear erros status in ESB, this way unhandler error is simulated and BERT table could be used later: root@localhost:~# echo 1 > /sys/kernel/debug/apei/einj/error_inject 2. Reboot machin and check whether BERT driver notice injected error: ... [ 2.518179] [Hardware Error]: Error record from previous boot: [ 2.523342] [Hardware Error]: APEI generic hardware error status [ 2.548457] [Hardware Error]: severity: 1, fatal [ 2.574705] [Hardware Error]: section: 0, severity: 0, recoverable [ 2.584010] [Hardware Error]: flags: 0x00 [ 2.587937] [Hardware Error]: section_type: memory error ... 3. Kernel clear status bit so next boot would not print it again.