On 06/08/15 16:24, Yao, Jiewen wrote:
> 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.

Great, thank you.
Laszlo

> -----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