From nobody Sat Nov 2 14:24:00 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zoho.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org; Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1488553913181178.95081576645634; Fri, 3 Mar 2017 07:11:53 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 1087C82220; Fri, 3 Mar 2017 07:11:49 -0800 (PST) Received: from mail-wr0-x230.google.com (mail-wr0-x230.google.com [IPv6:2a00:1450:400c:c0c::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6183C8220E for ; Fri, 3 Mar 2017 07:11:47 -0800 (PST) Received: by mail-wr0-x230.google.com with SMTP id g10so75609857wrg.2 for ; Fri, 03 Mar 2017 07:11:47 -0800 (PST) Received: from localhost.localdomain ([105.147.1.203]) by smtp.gmail.com with ESMTPSA id w207sm3428523wmw.1.2017.03.03.07.11.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 03 Mar 2017 07:11:43 -0800 (PST) X-Original-To: edk2-devel@lists.01.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=tH19YrX+91POuocs8o726vabJbJEcYmR2bFGv7zRD9M=; b=F2pguNFqdMhfX+d7K6e5mPkzj7rHuT/AEH5qeYZgOEkcAPTqdokZhnd3F6+afmcegL Qwnrn+KggH3GFkOAWnQFpXZIK/G/L/wwJ87bcPpNLdYqaMfCFdjM3FFZef6oKFUGYIV6 xwwLevnPWTvWyCU2gP4MIyWiuSfMkocYdjV+0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=tH19YrX+91POuocs8o726vabJbJEcYmR2bFGv7zRD9M=; b=QGJw8dgfncbk/Au4C4A1QsjUV0RXjMeW8xySakDzfJurlpyhFdVVvTh0aIFM8Y8M2h iyPtHBdfYCFD8TsieFf5jTShSOBNMatnl/+RXbZd1wLNNS3Im3nvV0yOXa5Uf8bYAks6 XBTHi4brVXH9GIW7SYuqMs7G1kJCfI24bAZJCHhBV/Za3/7tbfv3V/NMM/TB4Zmfdisx MzYCClgX0VE5i3LGH2Zn3SAQN1doEPmfjgtTrmdU9vGHtrAWEavAWDHkHlr/gmQF50jG psjVvMlflfMkNhJpmBVbFg2To7PKaCTUm7b2W417W7xA95ZRPNT8DlV2DIpJ3wq7gClL /k7g== X-Gm-Message-State: AMke39kbZ9d+lcIre5P1Whw93OcFdtn7I1YOeVslA9ntHXxDRZjRBa1ssC0CG45TMwydlvtK X-Received: by 10.223.130.214 with SMTP id 80mr3262061wrc.43.1488553905496; Fri, 03 Mar 2017 07:11:45 -0800 (PST) From: Ard Biesheuvel To: edk2-devel@lists.01.org, liming.gao@intel.com, michael.d.kinney@intel.com Date: Fri, 3 Mar 2017 15:11:32 +0000 Message-Id: <1488553894-3520-3-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1488553894-3520-1-git-send-email-ard.biesheuvel@linaro.org> References: <1488553894-3520-1-git-send-email-ard.biesheuvel@linaro.org> Subject: [edk2] [PATCH v4 2/4] MdeModulePkg/DxeCore: switch to MdePkg allocation granularity macros X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jiewen.yao@intel.com, star.zeng@intel.com, Ard Biesheuvel MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Remove the local definitions for the default and runtime page allocation granularity macros, and switch to the new MdePkg versions. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel --- MdeModulePkg/Core/Dxe/DxeMain.h | 25 ------------------= -- MdeModulePkg/Core/Dxe/Mem/Page.c | 22 ++++++++--------- MdeModulePkg/Core/Dxe/Mem/Pool.c | 8 +++---- MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c | 2 +- MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c | 4 ++-- MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c | 8 +++---- 6 files changed, 22 insertions(+), 47 deletions(-) diff --git a/MdeModulePkg/Core/Dxe/DxeMain.h b/MdeModulePkg/Core/Dxe/DxeMai= n.h index 5668c1f2d648..1a0babba713a 100644 --- a/MdeModulePkg/Core/Dxe/DxeMain.h +++ b/MdeModulePkg/Core/Dxe/DxeMain.h @@ -123,31 +123,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EIT= HER EXPRESS OR IMPLIED. /// #define DEPEX_STACK_SIZE_INCREMENT 0x1000 =20 -#if defined (MDE_CPU_IPF) -/// -/// For Itanium machines make the default allocations 8K aligned -/// -#define EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT (EFI_PAGE_SIZE * 2) -#define DEFAULT_PAGE_ALLOCATION (EFI_PAGE_SIZE * 2) - -#elif defined (MDE_CPU_AARCH64) -/// -/// 64-bit ARM systems allow the OS to execute with 64 KB page size, -/// so for improved interoperability with the firmware, align the -/// runtime regions to 64 KB as well -/// -#define EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT (SIZE_64KB) -#define DEFAULT_PAGE_ALLOCATION (EFI_PAGE_SIZE) - -#else -/// -/// For generic EFI machines make the default allocations 4K aligned -/// -#define EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT (EFI_PAGE_SIZE) -#define DEFAULT_PAGE_ALLOCATION (EFI_PAGE_SIZE) - -#endif - typedef struct { EFI_GUID *ProtocolGuid; VOID **Protocol; diff --git a/MdeModulePkg/Core/Dxe/Mem/Page.c b/MdeModulePkg/Core/Dxe/Mem/P= age.c index 7e8fa94d7d4f..260a30a214c7 100644 --- a/MdeModulePkg/Core/Dxe/Mem/Page.c +++ b/MdeModulePkg/Core/Dxe/Mem/Page.c @@ -15,8 +15,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER= EXPRESS OR IMPLIED. #include "DxeMain.h" #include "Imem.h" =20 -#define EFI_DEFAULT_PAGE_ALLOCATION_ALIGNMENT (EFI_PAGE_SIZE) - // // Entry for tracking the memory regions for each memory type to coalesce = similar memory types // @@ -287,12 +285,14 @@ AllocateMemoryMapEntry ( // // The list is empty, to allocate one page to refuel the list // - FreeDescriptorEntries =3D CoreAllocatePoolPages (EfiBootServicesData, = EFI_SIZE_TO_PAGES(DEFAULT_PAGE_ALLOCATION), DEFAULT_PAGE_ALLOCATION); - if(FreeDescriptorEntries !=3D NULL) { + FreeDescriptorEntries =3D CoreAllocatePoolPages (EfiBootServicesData, + EFI_SIZE_TO_PAGES (DEFAULT_PAGE_ALLOCATION_G= RANULARITY), + DEFAULT_PAGE_ALLOCATION_GRANULARITY); + if (FreeDescriptorEntries !=3D NULL) { // // Enque the free memmory map entries into the list // - for (Index =3D 0; Index< DEFAULT_PAGE_ALLOCATION / sizeof(MEMORY_MAP= ); Index++) { + for (Index =3D 0; Index < DEFAULT_PAGE_ALLOCATION_GRANULARITY / size= of(MEMORY_MAP); Index++) { FreeDescriptorEntries[Index].Signature =3D MEMORY_MAP_SIGNATURE; InsertTailList (&mFreeMemoryMapEntryList, &FreeDescriptorEntries[I= ndex].Link); } @@ -1222,14 +1222,14 @@ CoreInternalAllocatePages ( return EFI_INVALID_PARAMETER; } =20 - Alignment =3D EFI_DEFAULT_PAGE_ALLOCATION_ALIGNMENT; + Alignment =3D DEFAULT_PAGE_ALLOCATION_GRANULARITY; =20 if (MemoryType =3D=3D EfiACPIReclaimMemory || MemoryType =3D=3D EfiACPIMemoryNVS || MemoryType =3D=3D EfiRuntimeServicesCode || MemoryType =3D=3D EfiRuntimeServicesData) { =20 - Alignment =3D EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT; + Alignment =3D RUNTIME_PAGE_ALLOCATION_GRANULARITY; } =20 if (Type =3D=3D AllocateAddress) { @@ -1398,7 +1398,7 @@ CoreInternalFreePages ( goto Done; } =20 - Alignment =3D EFI_DEFAULT_PAGE_ALLOCATION_ALIGNMENT; + Alignment =3D DEFAULT_PAGE_ALLOCATION_GRANULARITY; =20 ASSERT (Entry !=3D NULL); if (Entry->Type =3D=3D EfiACPIReclaimMemory || @@ -1406,7 +1406,7 @@ CoreInternalFreePages ( Entry->Type =3D=3D EfiRuntimeServicesCode || Entry->Type =3D=3D EfiRuntimeServicesData) { =20 - Alignment =3D EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT; + Alignment =3D RUNTIME_PAGE_ALLOCATION_GRANULARITY; =20 } =20 @@ -1925,12 +1925,12 @@ CoreTerminateMemoryMap ( if (mMemoryTypeStatistics[Entry->Type].Runtime) { ASSERT (Entry->Type !=3D EfiACPIReclaimMemory); ASSERT (Entry->Type !=3D EfiACPIMemoryNVS); - if ((Entry->Start & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT = - 1)) !=3D 0) { + if ((Entry->Start & (RUNTIME_PAGE_ALLOCATION_GRANULARITY - 1)) != =3D 0) { DEBUG((DEBUG_ERROR | DEBUG_PAGE, "ExitBootServices: A RUNTIME = memory entry is not on a proper alignment.\n")); Status =3D EFI_INVALID_PARAMETER; goto Done; } - if (((Entry->End + 1) & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNM= ENT - 1)) !=3D 0) { + if (((Entry->End + 1) & (RUNTIME_PAGE_ALLOCATION_GRANULARITY - 1= )) !=3D 0) { DEBUG((DEBUG_ERROR | DEBUG_PAGE, "ExitBootServices: A RUNTIME = memory entry is not on a proper alignment.\n")); Status =3D EFI_INVALID_PARAMETER; goto Done; diff --git a/MdeModulePkg/Core/Dxe/Mem/Pool.c b/MdeModulePkg/Core/Dxe/Mem/P= ool.c index ced64443c77d..5248ee2e6c02 100644 --- a/MdeModulePkg/Core/Dxe/Mem/Pool.c +++ b/MdeModulePkg/Core/Dxe/Mem/Pool.c @@ -352,9 +352,9 @@ CoreAllocatePoolI ( PoolType =3D=3D EfiRuntimeServicesCode || PoolType =3D=3D EfiRuntimeServicesData) { =20 - Granularity =3D EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT; + Granularity =3D RUNTIME_PAGE_ALLOCATION_GRANULARITY; } else { - Granularity =3D DEFAULT_PAGE_ALLOCATION; + Granularity =3D DEFAULT_PAGE_ALLOCATION_GRANULARITY; } =20 // @@ -643,9 +643,9 @@ CoreFreePoolI ( Head->Type =3D=3D EfiRuntimeServicesCode || Head->Type =3D=3D EfiRuntimeServicesData) { =20 - Granularity =3D EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT; + Granularity =3D RUNTIME_PAGE_ALLOCATION_GRANULARITY; } else { - Granularity =3D DEFAULT_PAGE_ALLOCATION; + Granularity =3D DEFAULT_PAGE_ALLOCATION_GRANULARITY; } =20 if (PoolType !=3D NULL) { diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c b/MdeModule= Pkg/Core/Dxe/Misc/MemoryAttributesTable.c index 408bcd3527ee..35156aea14dd 100644 --- a/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c +++ b/MdeModulePkg/Core/Dxe/Misc/MemoryAttributesTable.c @@ -104,7 +104,7 @@ InstallMemoryAttributesTable ( =20 if ((mPropertiesTable.MemoryProtectionAttribute & EFI_PROPERTIES_RUNTIME= _MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA) =3D=3D 0) { DEBUG ((EFI_D_VERBOSE, "MemoryProtectionAttribute NON_EXECUTABLE_PE_DA= TA is not set, ")); - DEBUG ((EFI_D_VERBOSE, "because Runtime Driver Section Alignment is no= t %dK.\n", EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT >> 10)); + DEBUG ((EFI_D_VERBOSE, "because Runtime Driver Section Alignment is no= t %dK.\n", RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10)); return ; } =20 diff --git a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c b/MdeModulePkg/C= ore/Dxe/Misc/MemoryProtection.c index 45f360cccf75..070228bc7265 100644 --- a/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c +++ b/MdeModulePkg/Core/Dxe/Misc/MemoryProtection.c @@ -344,12 +344,12 @@ IsMemoryProtectionSectionAligned ( switch (MemoryType) { case EfiRuntimeServicesCode: case EfiACPIMemoryNVS: - PageAlignment =3D EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT; + PageAlignment =3D RUNTIME_PAGE_ALLOCATION_GRANULARITY; break; case EfiRuntimeServicesData: case EfiACPIReclaimMemory: ASSERT (FALSE); - PageAlignment =3D EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT; + PageAlignment =3D RUNTIME_PAGE_ALLOCATION_GRANULARITY; break; case EfiBootServicesCode: case EfiLoaderCode: diff --git a/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c b/MdeModulePkg/Co= re/Dxe/Misc/PropertiesTable.c index 5ea20dbf8972..e7c4a9571250 100644 --- a/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c +++ b/MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c @@ -804,7 +804,7 @@ SetPropertiesTableSectionAlignment ( IN UINT32 SectionAlignment ) { - if (((SectionAlignment & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT - 1= )) !=3D 0) && + if (((SectionAlignment & (RUNTIME_PAGE_ALLOCATION_GRANULARITY - 1)) !=3D= 0) && ((mPropertiesTable.MemoryProtectionAttribute & EFI_PROPERTIES_RUNTIM= E_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA) !=3D 0)) { DEBUG ((EFI_D_VERBOSE, "SetPropertiesTableSectionAlignment - Clear\n")= ); mPropertiesTable.MemoryProtectionAttribute &=3D ~((UINT64)EFI_PROPERTI= ES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA); @@ -1136,9 +1136,9 @@ InsertImageRecord ( } =20 SetPropertiesTableSectionAlignment (SectionAlignment); - if ((SectionAlignment & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT - 1)= ) !=3D 0) { + if ((SectionAlignment & (RUNTIME_PAGE_ALLOCATION_GRANULARITY - 1)) !=3D = 0) { DEBUG ((EFI_D_WARN, "!!!!!!!! InsertImageRecord - Section Alignment(0= x%x) is not %dK !!!!!!!!\n", - SectionAlignment, EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT >> 10)); + SectionAlignment, RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10)); PdbPointer =3D PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress= ); if (PdbPointer !=3D NULL) { DEBUG ((EFI_D_WARN, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer)); @@ -1338,7 +1338,7 @@ InstallPropertiesTable ( DEBUG ((EFI_D_INFO, "MemoryProtectionAttribute - 0x%016lx\n", mPropert= iesTable.MemoryProtectionAttribute)); if ((mPropertiesTable.MemoryProtectionAttribute & EFI_PROPERTIES_RUNTI= ME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA) =3D=3D 0) { DEBUG ((EFI_D_ERROR, "MemoryProtectionAttribute NON_EXECUTABLE_PE_DA= TA is not set, ")); - DEBUG ((EFI_D_ERROR, "because Runtime Driver Section Alignment is no= t %dK.\n", EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT >> 10)); + DEBUG ((EFI_D_ERROR, "because Runtime Driver Section Alignment is no= t %dK.\n", RUNTIME_PAGE_ALLOCATION_GRANULARITY >> 10)); return ; } =20 --=20 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel