1f73373
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
Jeremy Cline d1b6f8c
From: Al Stone <ahs3@redhat.com>
Jeremy Cline d1b6f8c
Date: Tue, 27 Feb 2018 00:21:23 -0500
Jeremy Cline d1b6f8c
Subject: [PATCH] ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
Message-id: <20180227002123.21608-1-ahs3@redhat.com>
Jeremy Cline d1b6f8c
Patchwork-id: 206052
Jeremy Cline d1b6f8c
O-Subject: [RHEL8 BZ1518076 PATCH] ACPI: APEI: arm64: Ignore broken HPE moonshot APEI support
Jeremy Cline d1b6f8c
Bugzilla: 1518076
Jeremy Cline d1b6f8c
RH-Acked-by: Mark Salter <msalter@redhat.com>
Jeremy Cline d1b6f8c
RH-Acked-by: Jeremy McNicoll <jmcnicol@redhat.com>
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1518076
Jeremy Cline d1b6f8c
Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=15417197
Jeremy Cline d1b6f8c
Tested: compile-only; several other patches are required for full booting
Jeremy Cline d1b6f8c
        QE has tested limited boot (see comment#12 of BZ)
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
This is a re-post of a RHEL-ALT-7.5 patch specific to aarch64 moonshots
Jeremy Cline d1b6f8c
that we use in beaker.  It is required for these machines to boot.
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
    commit 8a663a264863efedf8bb4a9d76ac603920fdd739
Jeremy Cline d1b6f8c
    Author: Robert Richter <rrichter@redhat.com>
Jeremy Cline d1b6f8c
    Date:   Wed Aug 16 19:49:30 2017 -0400
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
    [acpi] APEI: arm64: Ignore broken HPE moonshot APEI support
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
    From: Mark Salter <msalter@redhat.com>
Jeremy Cline d1b6f8c
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1344237
Jeremy Cline d1b6f8c
    Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=13768971
Jeremy Cline d1b6f8c
    Tested: Booted on moonshot with patched 4.11.0-20 kernel
Jeremy Cline d1b6f8c
    Upstream: RHEL-only
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
    The aarch64 HP moonshot platforms we have in beaker and elsewhere have
Jeremy Cline d1b6f8c
    a firmware bug which causes a spurious fatal memory error via APEI at
Jeremy Cline d1b6f8c
    boot time. This platform is no longer supported and no further firmware
Jeremy Cline d1b6f8c
    updates are expected. This is a downstream-only hack to avoid the problem
Jeremy Cline d1b6f8c
    by bailing out of HEST table probing if we detect a moonshot HEST table.
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
    Signed-off-by: Mark Salter <msalter@redhat.com>
Jeremy Cline d1b6f8c
    Signed-off-by: Robert Richter <rrichter@redhat.com>
Jeremy Cline d1b6f8c
    Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
Upstream Status: RHEL only
Jeremy Cline d1b6f8c
Signed-off-by: Al Stone <ahs3@redhat.com>
Jeremy Cline d1b6f8c
Signed-off-by: Herton R. Krzesinski <herton@redhat.com>
Jeremy Cline d1b6f8c
---
Jeremy Cline d1b6f8c
 drivers/acpi/apei/hest.c | 8 ++++++++
Jeremy Cline d1b6f8c
 1 file changed, 8 insertions(+)
Jeremy Cline d1b6f8c
Jeremy Cline d1b6f8c
diff --git a/drivers/acpi/apei/hest.c b/drivers/acpi/apei/hest.c
73c86eb
index 6e980fe16772..37bc003e7a83 100644
Jeremy Cline d1b6f8c
--- a/drivers/acpi/apei/hest.c
Jeremy Cline d1b6f8c
+++ b/drivers/acpi/apei/hest.c
Jeremy Cline d1b6f8c
@@ -88,6 +88,14 @@ int apei_hest_parse(apei_hest_func_t func, void *data)
Jeremy Cline d1b6f8c
 	if (hest_disable || !hest_tab)
Jeremy Cline d1b6f8c
 		return -EINVAL;
d176dfc
Jeremy Cline d1b6f8c
+#ifdef CONFIG_ARM64
Jeremy Cline d1b6f8c
+	/* Ignore broken firmware */
Jeremy Cline d1b6f8c
+	if (!strncmp(hest_tab->header.oem_id, "HPE   ", 6) &&
Jeremy Cline d1b6f8c
+	    !strncmp(hest_tab->header.oem_table_id, "ProLiant", 8) &&
Jeremy Cline d1b6f8c
+	    MIDR_IMPLEMENTOR(read_cpuid_id()) == ARM_CPU_IMP_APM)
Jeremy Cline d1b6f8c
+		return -EINVAL;
Jeremy Cline d1b6f8c
+#endif
Jeremy Cline d1b6f8c
+
Jeremy Cline d1b6f8c
 	hest_hdr = (struct acpi_hest_header *)(hest_tab + 1);
Jeremy Cline d1b6f8c
 	for (i = 0; i < hest_tab->error_source_count; i++) {
Jeremy Cline d1b6f8c
 		len = hest_esrc_len(hest_hdr);
Jeremy Cline d1b6f8c
-- 
73c86eb
2.28.0
Jeremy Cline d1b6f8c