Re: [PATCH v3 14/14] scripts/ghes_inject: add a script to generate GHES error inject

From: Markus Armbruster
Date: Wed Feb 05 2025 - 03:17:17 EST


Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> writes:

> 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
>
> For more details about its usage.
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>

[...]

> diff --git a/scripts/arm_processor_error.py b/scripts/arm_processor_error.py
> new file mode 100644
> index 000000000000..b0e8450e667e
> --- /dev/null
> +++ b/scripts/arm_processor_error.py
> @@ -0,0 +1,476 @@
> +#!/usr/bin/env python3
> +#
> +# pylint: disable=C0301,C0114,R0903,R0912,R0913,R0914,R0915,W0511
> +# SPDX-License-Identifier: GPL-2.0

Sorry if this has been answered already... why not GPL-2.0-or-later?

More of the same below.

[...]