From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
To: Zaid Alali <zaidal@os.amperecomputing.com>
Cc: <rafael@kernel.org>, <lenb@kernel.org>, <james.morse@arm.com>,
<tony.luck@intel.com>, <bp@alien8.de>, <robert.moore@intel.com>,
<dan.j.williams@intel.com>, <Benjamin.Cheatham@amd.com>,
<Avadhut.Naik@amd.com>, <viro@zeniv.linux.org.uk>,
<arnd@arndb.de>, <ira.weiny@intel.com>, <dave.jiang@intel.com>,
<sthanneeru.opensrc@micron.com>, <linux-acpi@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <acpica-devel@lists.linux.dev>
Subject: Re: [PATCH v4 9/9] ACPI: APEI: EINJ: Update the documentation for EINJv2 support
Date: Thu, 13 Mar 2025 09:59:15 +0000 [thread overview]
Message-ID: <20250313095915.00000847@huawei.com> (raw)
In-Reply-To: <20250306234810.75511-10-zaidal@os.amperecomputing.com>
On Thu, 6 Mar 2025 15:48:10 -0800
Zaid Alali <zaidal@os.amperecomputing.com> wrote:
> Add documentation for the updated ACPI specs for EINJv2(1)(2)
>
> (1)https://bugzilla.tianocore.org/show_bug.cgi?id=4615
> (2)https://bugzilla.tianocore.org/attachment.cgi?id=1446
>
> Signed-off-by: Zaid Alali <zaidal@os.amperecomputing.com>
> ---
> .../firmware-guide/acpi/apei/einj.rst | 41 ++++++++++++++++++-
> 1 file changed, 39 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/firmware-guide/acpi/apei/einj.rst b/Documentation/firmware-guide/acpi/apei/einj.rst
> index c52b9da08fa9..31c848183af0 100644
> --- a/Documentation/firmware-guide/acpi/apei/einj.rst
> +++ b/Documentation/firmware-guide/acpi/apei/einj.rst
> @@ -59,6 +59,9 @@ The following files belong to it:
> 0x00000200 Platform Correctable
> 0x00000400 Platform Uncorrectable non-fatal
> 0x00000800 Platform Uncorrectable fatal
> + V2_0x00000001 EINJV2 Processor Error
> + V2_0x00000002 EINJV2 Memory Error
> + V2_0x00000004 EINJV2 PCI Express Error
> ================ ===================================
>
> The format of the file contents are as above, except present are only
> @@ -85,9 +88,11 @@ The following files belong to it:
> Bit 0
> Processor APIC field valid (see param3 below).
> Bit 1
> - Memory address and mask valid (param1 and param2).
> + Memory address and range valid (param1 and param2).
So was this a bug technically before? If it was maybe separate
patch.
> Bit 2
> PCIe (seg,bus,dev,fn) valid (see param4 below).
> + Bit 3
> + EINJv2 extension structure is valid
>
> If set to zero, legacy behavior is mimicked where the type of
> injection specifies just one bit set, and param1 is multiplexed.
> @@ -110,6 +115,7 @@ The following files belong to it:
> Used when the 0x1 bit is set in "flags" to specify the APIC id
>
> - param4
> +
This also shouldn't really be in a patch adding new stuff.
We should treat docs in similar fashion to code - if it is just whitespace
separate patch.
> Used when the 0x4 bit is set in "flags" to specify target PCIe device
>
> - notrigger
> @@ -122,6 +128,18 @@ The following files belong to it:
> this actually works depends on what operations the BIOS actually
> includes in the trigger phase.
>
> +- einjv2_component_count
> +
> + The value from this file is used to set the "Component Array Count"
> + field of EINJv2 Extension Structure.
Can we not parse this from the provided component array? Why is separate
parameter useful? You don't seem to write it below in the example.
> +
> +- einjv2_component_array
> +
> + The contents of this file are used to set the "Component Array" field
> + of the EINJv2 Extension Structure. The expected format is hex values
> + for component id and syndrome separated by space, and multiple
> + components are separated by new line.
> +
> CXL error types are supported from ACPI 6.5 onwards (given a CXL port
> is present). The EINJ user interface for CXL error types is at
> <debugfs mount point>/cxl. The following files belong to it:
> @@ -139,7 +157,6 @@ is present). The EINJ user interface for CXL error types is at
> under <debugfs mount point>/apei/einj, while CXL 1.1/1.0 port injections
> must use this file.
>
> -
Another white space change that shouldn't be in this patch in my view.
> BIOS versions based on the ACPI 4.0 specification have limited options
> in controlling where the errors are injected. Your BIOS may support an
> extension (enabled with the param_extension=1 module parameter, or boot
> @@ -194,6 +211,26 @@ An error injection example::
> # echo 0x8 > error_type # Choose correctable memory error
> # echo 1 > error_inject # Inject now
>
> +An EINJv2 error injection example::
> +
> + # cd /sys/kernel/debug/apei/einj
> + # cat available_error_type # See which errors can be injected
> + 0x00000002 Processor Uncorrectable non-fatal
> + 0x00000008 Memory Correctable
> + 0x00000010 Memory Uncorrectable non-fatal
> + 0x00000001 EINJV2 Processor Error
> + 0x00000002 EINJV2 Memory Error
> +
> + # echo 0x12345000 > param1 # Set memory address for injection
> + # echo 0xfffffffffffff000 > param2 # Range - anywhere in this page
> + # comp_arr="0x1 0x2 # Fill in the component array
> + >0x1 0x4
> + >0x2 0x4"
> + # echo "$comp_arr" > einjv2_component_array
> + # echo V2_0x2 > error_type # Choose EINJv2 memory error
> + # echo 0xa > flags # set flags to indicate EINJv2
> + # echo 1 > error_inject # Inject now
> +
> You should see something like this in dmesg::
>
> [22715.830801] EDAC sbridge MC3: HANDLING MCE MEMORY ERROR
prev parent reply other threads:[~2025-03-13 9:59 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-06 23:48 [PATCH v4 0/9] Enable EINJv2 Support Zaid Alali
2025-03-06 23:48 ` [PATCH v4 1/9] ACPICA: Update values to hex to follow ACPI specs Zaid Alali
2025-03-06 23:48 ` [PATCH v4 2/9] ACPICA: Add EINJv2 get error type action Zaid Alali
2025-03-06 23:48 ` [PATCH v4 3/9] ACPI: APEI: EINJ: Fix kernel test robot sparse warning Zaid Alali
2025-03-08 8:55 ` kernel test robot
2025-03-13 9:37 ` Jonathan Cameron
2025-03-13 9:50 ` Jonathan Cameron
2025-03-06 23:48 ` [PATCH v4 4/9] ACPI: APEI: EINJ: Remove redundant calls to einj_get_available_error_type Zaid Alali
2025-03-06 23:48 ` [PATCH v4 5/9] ACPI: APEI: EINJ: Enable the discovery of EINJv2 capabilities Zaid Alali
2025-03-13 9:39 ` Jonathan Cameron
2025-03-06 23:48 ` [PATCH v4 6/9] ACPI: APEI: EINJ: Add einjv2 extension struct Zaid Alali
2025-03-13 9:42 ` Jonathan Cameron
2025-03-13 20:06 ` Zaid Alali
2025-03-14 9:27 ` Jonathan Cameron
2025-03-06 23:48 ` [PATCH v4 7/9] ACPI: APEI: EINJ: Add debugfs files for EINJv2 support Zaid Alali
2025-03-13 9:46 ` Jonathan Cameron
2025-03-06 23:48 ` [PATCH v4 8/9] ACPI: APEI: EINJ: Enable EINJv2 error injections Zaid Alali
2025-03-13 9:56 ` Jonathan Cameron
2025-03-06 23:48 ` [PATCH v4 9/9] ACPI: APEI: EINJ: Update the documentation for EINJv2 support Zaid Alali
2025-03-13 9:59 ` Jonathan Cameron [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250313095915.00000847@huawei.com \
--to=jonathan.cameron@huawei.com \
--cc=Avadhut.Naik@amd.com \
--cc=Benjamin.Cheatham@amd.com \
--cc=acpica-devel@lists.linux.dev \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=ira.weiny@intel.com \
--cc=james.morse@arm.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=robert.moore@intel.com \
--cc=sthanneeru.opensrc@micron.com \
--cc=tony.luck@intel.com \
--cc=viro@zeniv.linux.org.uk \
--cc=zaidal@os.amperecomputing.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.