That is good question. :-)
1) For VisualStudio, the link option can be changed directly - /ALIGN:4096.
And we need update RELEASE_*_*_DLINK_FLAGS = /MERGE:.data=.text
/MERGE:.rdata=.text, to RELEASE_*_*_DLINK_FLAGS = /MERGE:.rdata=.data
2) For GCC, we need another link script, and set .text ALIGN(0x1000) and .data
ALIGN(0x1000)
We also need update GenFw/Elf32Convert.c, GenFw/Elf64Convert.c.
================
UINT32 mCoffAlignment = 0x20;
if ((mEhdr->e_entry & 0xFFF) == 0) {
mCoffAlignment = 0x1000;
}
================
3) For Build tool, we will add format:
[BuildOptions.$(arch).CodeBase.$(MODULE_TYPE)]
So that a platform may override rule for runtime driver
[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
Tool team will prepare all patch for base tool later.
Thank you
Yao Jiewen
-----Original Message-----
From: Laszlo Ersek [mailto:[email protected]]
Sent: Monday, June 08, 2015 10:15 PM
To: Yao, Jiewen
Cc: [email protected]
Subject: Re: [edk2] [patch] MdePkg/PropertiesTable support,
MdeModulePkg/DxeCore support UEFI2.5 properties table
On 06/08/15 15:56, Yao, Jiewen wrote:
> Hi Laszlo
> This is for UEFI2.5 Properties Table feature. See UEFI 2.5 spec, 4.6 EFI
> Configuration Table & Properties Table, page 105.
>
> //
> // Memory attribute (Not defined bits are reserved) // #define
> EFI_PROPERTIES_RUNTIME_MEMORY_PROTECTION_NON_EXECUTABLE_PE_DATA 0x1 //
> BIT 0 - description - implies the runtime data is separated from the
> code This bit implies that the UEFI runtime code and data sections of
> the executable image are separate and aligned to at least a 4KiB
> boundary. This bit also implies that the data pages do no have any executable
> code.
>
> A platform may use gEfiMdeModulePkgTokenSpaceGuid.PropertiesTableEnable to
> control enable or disable this feature.
> In order to meet "secure by default" rule, we define it TRUE as default
> configuration in MdeModulePkg.
>
> If a platform does not want to enable this feature, it can override this PCD
> to be FALSE.
> If a platform wants to enable this feature, it can override link option to
> make code/data 4K aligned for any runtime driver.
I think the last option would be preferable for OVMF as well -- where can we
change that link option? Does it belong with BaseTools, or with the rules in
the FDF file?
Thanks!
Laszlo
> Thank you
> Yao Jiewen
>
>
> -----Original Message-----
> From: Laszlo Ersek [mailto:[email protected]]
> Sent: Monday, June 08, 2015 6:34 PM
> To: Yao, Jiewen
> Cc: [email protected]
> Subject: Re: [edk2] [patch] MdePkg/PropertiesTable support,
> MdeModulePkg/DxeCore support UEFI2.5 properties table
>
> On 06/04/15 16:34, Yao, Jiewen wrote:
>
>> + SetPropertiesTableSectionAlignment (SectionAlignment); if
>> + ((SectionAlignment & (SIZE_4KB - 1)) != 0) {
>> + DEBUG ((EFI_D_ERROR, "!!!!!!!! InsertImageRecord - Section
>> + Alignment(0x%x) is not 4K !!!!!!!!\n", SectionAlignment));
>
> I just noticed that the above message is printed under OVMF for all
> DXE_RUNTIME_DRIVER modules. Why does that happen?
>
> Thanks
> Laszlo
>
>> + PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);
>> + if (PdbPointer != NULL) {
>> + DEBUG ((EFI_D_ERROR, "!!!!!!!! Image - %a !!!!!!!!\n", PdbPointer));
>> + }
>> + goto Finish;
>> + }
>
------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel