From nobody Tue Feb 10 01:16:22 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+77671+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+77671+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=arm.com ARC-Seal: i=1; a=rsa-sha256; t=1625934282; cv=none; d=zohomail.com; s=zohoarc; b=kEqPbVehMyFus3NxHyEU4EQhE94Fe0XLc6CQ3j3M7B6itwPcdUI10iqdPiVBG8+IaaZSpisrFjGN14XpSj4ni+x2P2vJElB6nBX0/UYfeRD4bYMhQnjDhLfz1m+B0BBwkKzKJfYQu6vK3PJT6aEyPGahXvu6kJf8pe1Nnn99Q8k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1625934282; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=BkpXDdzbwssbgFK2tBKV3SxbKa2eXl7cvnZyRzzxKyk=; b=QclhRqUEe1uPniQO8LFEeDiWF5df5yFUF9NQKj28BZGSx8Vd5/+Q/6ZNlpz00Via2DURZV+xOnpu1+4+0A6o1wlE2BL9JV4+sc8g4VQ+Gy/HmeCReuyRsRY0N4pgM8LgFNdVpRJCwdeTOYL16wbrbiTFa/wpAsgLgeA38auMZHc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+77671+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1625934282924955.721290469424; Sat, 10 Jul 2021 09:24:42 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 3t6pYY1788612xSbhsvcvlS0; Sat, 10 Jul 2021 09:24:42 -0700 X-Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.25910.1625934281925652193 for ; Sat, 10 Jul 2021 09:24:42 -0700 X-Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7C57C31B; Sat, 10 Jul 2021 09:24:41 -0700 (PDT) X-Received: from usa.arm.com (a077433.blr.arm.com [10.162.4.33]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 4EFAA3F5A1; Sat, 10 Jul 2021 09:24:40 -0700 (PDT) From: "Omkar Anand Kulkarni" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Sami Mujawar Subject: [edk2-devel] [edk2-platforms][PATCH v2 2/5] Platform/Sgi: dmc-620 firmware-first error handling Date: Sat, 10 Jul 2021 21:54:27 +0530 Message-Id: <20210710162430.31691-3-omkar.kulkarni@arm.com> In-Reply-To: <20210710162430.31691-1-omkar.kulkarni@arm.com> References: <20210710162430.31691-1-omkar.kulkarni@arm.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,omkar.kulkarni@arm.com X-Gm-Message-State: 7oHN7qva5rZoQPf9IDAzclvPx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1625934282; bh=cLAuze5obJZr9dO9vRPcF8rsDtgn+zUaj61yTzToCsc=; h=Cc:Date:From:Reply-To:Subject:To; b=G+m1BXISQlQ8h0U44FL5QPtAOWSxIPQQvLGYAAs+BNHRo3gDORNZjhjdLnAVHloibLM ZWx9n1pALK+Iut2hu7zxzbAR22VvXnfzybZjjdrKEPtWjr4zXujrQ9ab9Rlk0mZKKToBi pfRViFXD6sbqZfZV13LCWrGwQvBUaPxbJF8= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1625934283445100003 Content-Type: text/plain; charset="utf-8" Enable the use of HEST table generation protocol, GHES error source descriptor protocol and DMC-620 MM driver on ARM Neoverse Reference Design platforms. This allows firmware-first error handling and reporting of DMC-620 memory controller's 1-bit DRAM ECC errors. Co-authored-by: Thomas Abraham Signed-off-by: Omkar Anand Kulkarni --- Platform/ARM/SgiPkg/SgiPlatform.dsc.inc | 17 +++++++++++ Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc | 30 ++++++++++++++++++++ Platform/ARM/SgiPkg/PlatformStandaloneMm.fdf | 6 ++++ Platform/ARM/SgiPkg/SgiPlatform.fdf | 6 ++++ 4 files changed, 59 insertions(+) diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dsc.inc b/Platform/ARM/SgiPkg/= SgiPlatform.dsc.inc index 7e37732fb93c..1eb80c29ca3b 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatform.dsc.inc @@ -21,6 +21,9 @@ DEFINE LPI_EN =3D FALSE DEFINE CPPC_EN =3D FALSE =20 + # To allow firmware first error handling, set this to TRUE. + DEFINE ENABLE_GHES_MM =3D FALSE + [BuildOptions] *_*_*_CC_FLAGS =3D -D DISABLE_NEW_DEPRECATED_INTERFACES =20 @@ -208,6 +211,12 @@ gArmTokenSpaceGuid.PcdMmBufferBase|0xFF600000 gArmTokenSpaceGuid.PcdMmBufferSize|0x10000 =20 +!if $(ENABLE_GHES_MM) =3D=3D TRUE + ## GHESv2 Generic Error memory space + gArmPlatformTokenSpaceGuid.PcdGhesGenericErrorDataMmBufferBase|0xFF610000 + gArmPlatformTokenSpaceGuid.PcdGhesGenericErrorDataMmBufferSize|0x20000 +!endif + ##########################################################################= ###### # # Components Section - list of all EDK II Modules needed by this Platform @@ -365,3 +374,11 @@ !else ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf !endif + + # + # GHESv2 HEST error sources support + # + ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.inf +!if $(ENABLE_GHES_MM) =3D=3D TRUE + ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.inf +!endif diff --git a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc b/Platform/ARM/SgiPk= g/SgiPlatformMm.dsc.inc index 2b461d5afbcb..c3a240ac8ee1 100644 --- a/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc +++ b/Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc @@ -11,6 +11,10 @@ # Library Class section - list of all Library Classes needed by this Platf= orm. # ##########################################################################= ###### +[Defines] + # To enable DMC-620 MM driver, set this to TRUE. + DEFINE ENABLE_DMC620_MM =3D FALSE + [LibraryClasses] # # Basic @@ -94,6 +98,25 @@ gEfiSecurityPkgTokenSpaceGuid.PcdUserPhysicalPresence|TRUE !endif =20 +!if $(ENABLE_GHES_MM) =3D=3D TRUE + ## GHESv2 Generic Error Memory Space + gArmPlatformTokenSpaceGuid.PcdGhesGenericErrorDataMmBufferBase|0xFF610000 + gArmPlatformTokenSpaceGuid.PcdGhesGenericErrorDataMmBufferSize|0x20000 +!endif + +!if $(ENABLE_DMC620_MM) =3D=3D TRUE + ## DMC620 + gDmc620MmTokenSpaceGuid.PcdDmc620NumCtrl|2 + gDmc620MmTokenSpaceGuid.PcdDmc620RegisterBase|0x4E000000 + gDmc620MmTokenSpaceGuid.PcdDmc620CtrlSize|0x100000 + gDmc620MmTokenSpaceGuid.PcdDmc620CorrectableErrorThreshold|10 + gDmc620MmTokenSpaceGuid.PcdDmc620ErrSourceCount|1 + gDmc620MmTokenSpaceGuid.PcdDmc620DramErrorSdeiEventBase|804 + gDmc620MmTokenSpaceGuid.PcdDmc620DramOneBitErrorDataBase|0xFF610000 + gDmc620MmTokenSpaceGuid.PcdDmc620DramOneBitErrorDataSize|0x100 + gDmc620MmTokenSpaceGuid.PcdDmc620DramOneBitErrorSourceId|0 +!endif + ##########################################################################= ######################### # # Components Section - list of the modules and components that will be pro= cessed by compilation @@ -134,6 +157,13 @@ } !endif =20 +!if $(ENABLE_GHES_MM) =3D=3D TRUE + ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandaloneMm.inf +!endif +!if $(ENABLE_DMC620_MM) =3D=3D TRUE + Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.inf +!endif + ##########################################################################= ######################### # # BuildOptions Section - Define the module specific tool chain flags that = should be used as diff --git a/Platform/ARM/SgiPkg/PlatformStandaloneMm.fdf b/Platform/ARM/Sg= iPkg/PlatformStandaloneMm.fdf index 474c9c0ce764..3a97871815ef 100644 --- a/Platform/ARM/SgiPkg/PlatformStandaloneMm.fdf +++ b/Platform/ARM/SgiPkg/PlatformStandaloneMm.fdf @@ -48,6 +48,12 @@ READ_STATUS =3D TRUE READ_LOCK_CAP =3D TRUE READ_LOCK_STATUS =3D TRUE =20 +!if $(ENABLE_GHES_MM) =3D=3D TRUE + INF ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandaloneM= m.inf +!endif +!if $(ENABLE_DMC620_MM) =3D=3D TRUE + INF Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.inf +!endif INF StandaloneMmPkg/Core/StandaloneMmCore.inf !if $(SECURE_STORAGE_ENABLE) =3D=3D TRUE INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashStandaloneMm.inf diff --git a/Platform/ARM/SgiPkg/SgiPlatform.fdf b/Platform/ARM/SgiPkg/SgiP= latform.fdf index 8227ae03330c..a7100743bbc4 100644 --- a/Platform/ARM/SgiPkg/SgiPlatform.fdf +++ b/Platform/ARM/SgiPkg/SgiPlatform.fdf @@ -179,6 +179,12 @@ READ_LOCK_STATUS =3D TRUE # MM Communicate INF ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf =20 + # Hest Error Source Support + INF ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.inf +!if $(ENABLE_GHES_MM) =3D=3D TRUE + INF ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.inf +!endif + # # Platform driver # --=20 2.17.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#77671): https://edk2.groups.io/g/devel/message/77671 Mute This Topic: https://groups.io/mt/84115314/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-