From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mx.groups.io with SMTP id smtpd.web11.68653.1675722078763380361 for ; Mon, 06 Feb 2023 14:21:19 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=vHYUYJUa; spf=pass (domain: kernel.org, ip: 145.40.68.75, mailfrom: ardb@kernel.org) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 01516B81633; Mon, 6 Feb 2023 22:21:17 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 87624C433EF; Mon, 6 Feb 2023 22:21:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675722075; bh=CPza1YBBgEqA+/s6HBapZE/sTxC30dShc3erbt1DoS0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vHYUYJUae96aVA7SF2porwGYbkkmeyCBmXJ6MRTxXopxA2H+G+1pImb3kzLNFT+6y JD2b2DJuL7R2TvD7GlLjLa1KJQF0fmTGwGLGcwoi5fiutoZEP32lI6kTvSgYZ89+82 SuHFT2pWeT522X7c2gdBeJXrIz6NHB7iOTQWwTnNquG/lIZ/vLtFUuLsFPMKpOA325 ckFbxAVml0mUqmW24MazxzQrdKaTF30oORdGKWrnVRmTEDgYZnrE7lB44Dg40e7EJC w7IcFejRA03cLrYe66WWfmu/Nb3pjlNVrYW4r8laRWGsioC51MzmPTRLfLbMImz5O7 wWscqS4XtXx2w== From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Michael Kinney , Liming Gao , Jiewen Yao , Michael Kubacki , Sean Brogan , Rebecca Cran , Leif Lindholm , Sami Mujawar , Taylor Beebe Subject: [PATCH v3 3/5] ArmPkg/CpuDxe: Expose unified region-to-EFI attribute conversion Date: Mon, 6 Feb 2023 23:20:58 +0100 Message-Id: <20230206222100.411169-4-ardb@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230206222100.411169-1-ardb@kernel.org> References: <20230206222100.411169-1-ardb@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In preparation for introducing an implementation of the EFI memory attributes protocol that is shared between ARM and AArch64, unify the existing code that converts a page table descriptor into a EFI_MEMORY_xxx bitfield, so it can be called from the generic code. Signed-off-by: Ard Biesheuvel --- ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c | 8 ++++++++ ArmPkg/Drivers/CpuDxe/Arm/Mmu.c | 13 +++++++++++++ ArmPkg/Drivers/CpuDxe/CpuDxe.h | 5 +++++ 3 files changed, 26 insertions(+) diff --git a/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c b/ArmPkg/Drivers/CpuDxe/AA= rch64/Mmu.c index 8bb33046e707..a4bde2034fa0 100644 --- a/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c +++ b/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c @@ -79,6 +79,14 @@ PageAttributeToGcdAttribute ( return GcdAttributes;=0D }=0D =0D +UINT64=0D +RegionAttributeToGcdAttribute (=0D + IN UINTN PageAttributes=0D + )=0D +{=0D + return PageAttributeToGcdAttribute (PageAttributes);=0D +}=0D +=0D STATIC=0D UINT64=0D GetFirstPageAttribute (=0D diff --git a/ArmPkg/Drivers/CpuDxe/Arm/Mmu.c b/ArmPkg/Drivers/CpuDxe/Arm/Mm= u.c index e7acd84b8af9..a3a7fde9a872 100644 --- a/ArmPkg/Drivers/CpuDxe/Arm/Mmu.c +++ b/ArmPkg/Drivers/CpuDxe/Arm/Mmu.c @@ -13,6 +13,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include =0D #include "CpuDxe.h"=0D =0D +STATIC=0D EFI_STATUS=0D SectionToGcdAttributes (=0D IN UINT32 SectionAttributes,=0D @@ -77,6 +78,18 @@ SectionToGcdAttributes ( return EFI_SUCCESS;=0D }=0D =0D +UINT64=0D +RegionAttributeToGcdAttribute (=0D + IN UINTN PageAttributes=0D + )=0D +{=0D + UINT64 Result;=0D +=0D + SectionToGcdAttributes (PageAttributes, &Result);=0D + return Result;=0D +}=0D +=0D +STATIC=0D EFI_STATUS=0D PageToGcdAttributes (=0D IN UINT32 PageAttributes,=0D diff --git a/ArmPkg/Drivers/CpuDxe/CpuDxe.h b/ArmPkg/Drivers/CpuDxe/CpuDxe.h index ff672390ce51..5a9f1ef1f969 100644 --- a/ArmPkg/Drivers/CpuDxe/CpuDxe.h +++ b/ArmPkg/Drivers/CpuDxe/CpuDxe.h @@ -126,4 +126,9 @@ SetGcdMemorySpaceAttributes ( IN UINT64 Attributes=0D );=0D =0D +UINT64=0D +RegionAttributeToGcdAttribute (=0D + IN UINTN PageAttributes=0D + );=0D +=0D #endif // CPU_DXE_H_=0D --=20 2.39.1