Hi Mauro,

On 7/3/25 20:14, Mauro Carvalho Chehab wrote:
Using the QMP GHESv2 API requires preparing a raw data array
containing a CPER record.

Add a helper script with subcommands to prepare such data.

Currently, only ARM Processor error CPER record is supported, by
using:
        $ ghes_inject.py arm

which produces those warnings on Linux:

[  705.032426] [Firmware Warn]: GHES: Unhandled processor error type 0x02: 
cache error
[  774.866308] {4}[Hardware Error]: Hardware error from APEI Generic Hardware 
Error Source: 1
[  774.866583] {4}[Hardware Error]: event severity: recoverable
[  774.866738] {4}[Hardware Error]:  Error 0, type: recoverable
[  774.866889] {4}[Hardware Error]:   section_type: ARM processor error
[  774.867048] {4}[Hardware Error]:   MIDR: 0x00000000000f0510
[  774.867189] {4}[Hardware Error]:   running state: 0x0
[  774.867321] {4}[Hardware Error]:   Power State Coordination Interface state: 0
[  774.867511] {4}[Hardware Error]:   Error info structure 0:
[  774.867679] {4}[Hardware Error]:   num errors: 2
[  774.867801] {4}[Hardware Error]:    error_type: 0x02: cache error
[  774.867962] {4}[Hardware Error]:    error_info: 0x000000000091000f
[  774.868124] {4}[Hardware Error]:     transaction type: Data Access
[  774.868280] {4}[Hardware Error]:     cache error, operation type: Data write
[  774.868465] {4}[Hardware Error]:     cache level: 2
[  774.868592] {4}[Hardware Error]:     processor context not corrupted
[  774.868774] [Firmware Warn]: GHES: Unhandled processor error type 0x02: 
cache error

Such script allows customizing the error data, allowing to change
all fields at the record. Please use:

        $ ghes_inject.py arm -h

It should be easy enough to add a functional test covering this,
do you mind having a look?


For more details about its usage.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
Reviewed-by: Jonathan Cameron <[email protected]>
---
  MAINTAINERS                    |   3 +
  scripts/arm_processor_error.py | 476 ++++++++++++++++++++++
  scripts/ghes_inject.py         |  51 +++
  scripts/qmp_helper.py          | 703 +++++++++++++++++++++++++++++++++
  4 files changed, 1233 insertions(+)
  create mode 100644 scripts/arm_processor_error.py
  create mode 100755 scripts/ghes_inject.py
  create mode 100755 scripts/qmp_helper.py


Reply via email to