[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 03/10] acpi/ghes: Add support for GED error device
|
From: |
Mauro Carvalho Chehab |
|
Subject: |
[PATCH v6 03/10] acpi/ghes: Add support for GED error device |
|
Date: |
Thu, 8 Aug 2024 14:26:29 +0200 |
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
As a GED error device is now defined, add another type
of notification.
Add error notification to GHES v2 using a GED error device GED
triggered via interrupt.
[mchehab: do some cleanups at ACPI_HEST_SRC_ID_* checks and
rename HEST event to better identify GED interrupt OSPM]
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
hw/acpi/ghes.c | 12 +++++++++---
include/hw/acpi/ghes.h | 3 ++-
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/hw/acpi/ghes.c b/hw/acpi/ghes.c
index 13b105c5d02d..d6cbeed6e3d5 100644
--- a/hw/acpi/ghes.c
+++ b/hw/acpi/ghes.c
@@ -34,8 +34,8 @@
/* The max size in bytes for one error block */
#define ACPI_GHES_MAX_RAW_DATA_LENGTH (1 * KiB)
-/* Now only support ARMv8 SEA notification type error source */
-#define ACPI_GHES_ERROR_SOURCE_COUNT 1
+/* Support ARMv8 SEA notification type error source and GPIO interrupt. */
+#define ACPI_GHES_ERROR_SOURCE_COUNT 2
/* Generic Hardware Error Source version 2 */
#define ACPI_GHES_SOURCE_GENERIC_ERROR_V2 10
@@ -290,6 +290,9 @@ void build_ghes_error_table(GArray *hardware_errors,
BIOSLinker *linker)
static void build_ghes_v2(GArray *table_data, int source_id, BIOSLinker
*linker)
{
uint64_t address_offset;
+
+ assert(source_id < ACPI_HEST_SRC_ID_RESERVED);
+
/*
* Type:
* Generic Hardware Error Source version 2(GHESv2 - Type 10)
@@ -327,6 +330,9 @@ static void build_ghes_v2(GArray *table_data, int
source_id, BIOSLinker *linker)
*/
build_ghes_hw_error_notification(table_data, ACPI_GHES_NOTIFY_SEA);
break;
+ case ACPI_HEST_NOTIFY_EXTERNAL:
+ build_ghes_hw_error_notification(table_data, ACPI_GHES_NOTIFY_GPIO);
+ break;
default:
error_report("Not support this error source");
abort();
@@ -370,6 +376,7 @@ void acpi_build_hest(GArray *table_data, BIOSLinker *linker,
/* Error Source Count */
build_append_int_noprefix(table_data, ACPI_GHES_ERROR_SOURCE_COUNT, 4);
build_ghes_v2(table_data, ACPI_HEST_SRC_ID_SEA, linker);
+ build_ghes_v2(table_data, ACPI_HEST_NOTIFY_EXTERNAL, linker);
acpi_table_end(linker, &table);
}
@@ -406,7 +413,6 @@ int acpi_ghes_record_errors(uint8_t source_id, uint64_t
physical_address)
start_addr = le64_to_cpu(ags->ghes_addr_le);
if (physical_address) {
-
if (source_id < ACPI_HEST_SRC_ID_RESERVED) {
start_addr += source_id * sizeof(uint64_t);
}
diff --git a/include/hw/acpi/ghes.h b/include/hw/acpi/ghes.h
index fb80897e7eac..ce6f82a1155a 100644
--- a/include/hw/acpi/ghes.h
+++ b/include/hw/acpi/ghes.h
@@ -59,9 +59,10 @@ enum AcpiGhesNotifyType {
ACPI_GHES_NOTIFY_RESERVED = 12
};
+/* Those are used as table indexes when building GHES tables */
enum {
ACPI_HEST_SRC_ID_SEA = 0,
- /* future ids go here */
+ ACPI_HEST_NOTIFY_EXTERNAL,
ACPI_HEST_SRC_ID_RESERVED,
};
--
2.45.2
- [PATCH v6 00/10] Add ACPI CPER firmware first error injection on ARM emulation, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 05/10] acpi/ghes: rework the logic to handle HEST source ID, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 06/10] acpi/ghes: add support for generic error injection via QAPI, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 02/10] arm/virt: Wire up a GED error device for ACPI / GHES, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 03/10] acpi/ghes: Add support for GED error device,
Mauro Carvalho Chehab <=
- [PATCH v6 09/10] target/arm: add an experimental mpidr arm cpu property object, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 07/10] docs: acpi_hest_ghes: fix documentation for CPER size, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 10/10] scripts/arm_processor_error.py: retrieve mpidr if not filled, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 01/10] acpi/generic_event_device: add an APEI error device, Mauro Carvalho Chehab, 2024/08/08
- [PATCH v6 08/10] scripts/ghes_inject: add a script to generate GHES error inject, Mauro Carvalho Chehab, 2024/08/08