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:ler...@redhat.com] 
Sent: Monday, June 08, 2015 10:15 PM
To: Yao, Jiewen
Cc: edk2-devel@lists.sourceforge.net
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:ler...@redhat.com]
> Sent: Monday, June 08, 2015 6:34 PM
> To: Yao, Jiewen
> Cc: edk2-devel@lists.sourceforge.net
> 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
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to