On 9 September 2015 at 18:21, Michael Zimmermann
<[email protected]> wrote:
> what I meant is that git am fails:
> Applying: BaseTools/GenFw: remove ARM and RVCT references from ELF64 code
> error: patch failed: BaseTools/Source/C/GenFw/Elf64Convert.c:360
> error: BaseTools/Source/C/GenFw/Elf64Convert.c: patch does not apply
> Patch failed at 0001 BaseTools/GenFw: remove ARM and RVCT references from
> ELF64 code
> The copy of the patch that failed is found in:
>    /media/Data/repositories/git/efidroid/uefi/edk2/.git/rebase-apply/patch
> When you have resolved this problem, run "git am --continue".
> If you prefer to skip this patch, run "git am --skip" instead.
> To restore the original branch and stop patching, run "git am --abort".
>
> maybe I did sth. wrong?(I've never used a mailing list patch before). I
> downloaded the mbox from gmane:
> http://download.gmane.org/gmane.comp.bios.edk2.devel/2036/2037
>

No, it is just painful, with the CR/LF conversion etc

What I usually do is

$ cat |todos |git am

and then paste it, followed by Ctrl-D. That will usually work, unless
the patch adds or removes files.

I pushed the patches here:
https://git.linaro.org/people/ard.biesheuvel/uefi-next.git/shortlog/refs/heads/arm-memprot

So after applying you need to
- git clean -dxf BaseTools/ ; make -C BaseTools
- rm Conf/tools_def.txt ; source edksetup.sh

to make sure everything is up to date after the changes

-- 
Ard.

> On Wed, Sep 9, 2015 at 6:17 PM, Ard Biesheuvel <[email protected]>
> wrote:
>>
>>
>>
>> On 9 sep. 2015, at 18:10, Michael Zimmermann <[email protected]>
>> wrote:
>>
>> Yes I'm using 32bit ARM :)
>> thx for the patches - unfortunatelythe patches fail for me.
>>
>>
>> Did you regenerate Conf/tools_def.txt  and rebuild the BaseTools/ ?
>>
>> On Wed, Sep 9, 2015 at 5:33 PM, Ard Biesheuvel <[email protected]>
>> wrote:
>>>
>>> On 9 September 2015 at 17:26, Gao, Liming <[email protected]> wrote:
>>> > Michael:
>>> >   Do you use the linker script BaseTools/Scripts/GccBase.lds and -z
>>> > common-page-size=4096?
>>> >
>>>
>>> Are you building for 32-bit ARM by any chance? That does not have this
>>> feature wired up yet. I posted a v2 of my series that addresses this
>>> yesterday.
>>>
>>>
>>>
>>> > From: Michael Zimmermann [mailto:[email protected]]
>>> > Sent: Wednesday, September 9, 2015 3:22 PM
>>> > To: Yao, Jiewen
>>> > Cc: Gao, Liming; [email protected]
>>> > Subject: Re: [edk2] Section Alignment of elf binaries compiled with
>>> > GCC(Linux)
>>> >
>>> > Unfortunately I missed the replies but I debugged this problem further
>>> > and the Problem is that GenFw set's the alignment based on "sh_addralign" 
>>> > in
>>> > the Elf header.
>>> >
>>> > The 'common-page-size' flag doesn't change the value of this field
>>> > though. what it does change is the Alignment value of the Program Headers:
>>> > Program Headers:
>>> >   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg
>>> > Align
>>> >   LOAD           0x010000 0x00000000 0x00000000 0x042f8 0x042f8 R E
>>> > 0x10000
>>> >   LOAD           0x0142f8 0x000142f8 0x000142f8 0x000d4 0x000f4 RW
>>> > 0x10000
>>> >   GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE
>>> > 0x10
>>> > the section alignment still stays at 0/1/4.
>>> >
>>> > On Tue, Aug 18, 2015 at 4:49 AM, Yao, Jiewen
>>> > <[email protected]<mailto:[email protected]>> wrote:
>>> > OK
>>> >
>>> > -----Original Message-----
>>> > From: Gao, Liming
>>> > Sent: Tuesday, August 18, 2015 10:48 AM
>>> > To: Yao, Jiewen; Michael Zimmermann;
>>> > [email protected]<mailto:[email protected]>
>>> > Subject: RE: [edk2] Section Alignment of elf binaries compiled with
>>> > GCC(Linux)
>>> >
>>> > Jiewen:
>>> >   The updated message is useful. I suggest to change error level from
>>> > EFI_D_ERROR to EFI_D_INFO.
>>> >
>>> > Thanks
>>> > Liming
>>> > -----Original Message-----
>>> > From: Yao, Jiewen
>>> > Sent: Tuesday, August 18, 2015 10:46 AM
>>> > To: Gao, Liming; Michael Zimmermann;
>>> > [email protected]<mailto:[email protected]>
>>> > Subject: RE: [edk2] Section Alignment of elf binaries compiled with
>>> > GCC(Linux)
>>> >
>>> > Hi
>>> > How about we update debug message like below:
>>> >
>>> > Index: PropertiesTable.c
>>> > ===================================================================
>>> > --- PropertiesTable.c   (revision 18191)
>>> > +++ PropertiesTable.c   (working copy)
>>> > @@ -1120,7 +1120,7 @@
>>> >
>>> >    SetPropertiesTableSectionAlignment (SectionAlignment);
>>> >    if ((SectionAlignment & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT
>>> > - 1)) != 0) {
>>> > -    DEBUG ((EFI_D_ERROR, "!!!!!!!!  InsertImageRecord - Section
>>> > Alignment(0x%x) is not %dK  !!!!!!!!\n",
>>> > +    DEBUG ((EFI_D_ERROR, "!!!!!!!!  UEFI2.5 PropertiesTable - Runtime
>>> > Driver Section Alignment(0x%x) is not %dK  !!!!!!!!\n",
>>> >        SectionAlignment, EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT >>
>>> > 10));
>>> >      PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN)
>>> > ImageAddress);
>>> >      if (PdbPointer != NULL) {
>>> >
>>> >
>>> >
>>> >
>>> > -----Original Message-----
>>> > From: edk2-devel
>>> > [mailto:[email protected]<mailto:[email protected]>]
>>> > On Behalf Of Gao, Liming
>>> > Sent: Tuesday, August 18, 2015 10:39 AM
>>> > To: Michael Zimmermann;
>>> > [email protected]<mailto:[email protected]>
>>> > Subject: Re: [edk2] Section Alignment of elf binaries compiled with
>>> > GCC(Linux)
>>> >
>>> > Hi,
>>> >   This is a warning message that describes the runtime driver alignment
>>> > is not 4K.
>>> >
>>> >   UEFI PropertiesTable table feature expects all runtime driver
>>> > alignment is 4K. When DxeCore loads Runtime driver, it will check its
>>> > alignment and report such warning message if it doesn't meet with the
>>> > alignment. If you want to enable this feature, you need to make sure all
>>> > runtime driver at 4K. If you don't enable it, you can just ignore this
>>> > message.
>>> >
>>> >   To configure runtime driver with 4K alignment, you can modify DSC
>>> > file to add the following section.
>>> > [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
>>> >   GCC:  *_*_*_DLINK_FLAGS = -z common-page-size=0x1000
>>> >   MSFT: *_*_*_DLINK_FLAGS = /ALIGN:4096
>>> >
>>> > Thanks
>>> > Liming
>>> > -----Original Message-----
>>> > From: edk2-devel
>>> > [mailto:[email protected]<mailto:[email protected]>]
>>> > On Behalf Of Michael Zimmermann
>>> > Sent: Sunday, August 16, 2015 12:32 PM
>>> > To: [email protected]<mailto:[email protected]>
>>> > Subject: [edk2] Section Alignment of elf binaries compiled with
>>> > GCC(Linux)
>>> >
>>> > When booting(a new device I'm currently working on) I get these
>>> > warnings:
>>> > !!!!!!!!  InsertImageRecord - Section Alignment(0x20) is not 4K
>>> > !!!!!!!!
>>> >
>>> > the warning is raised by "MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c"
>>> > and when compiling using GCC from Linux, the SectionAlignment is set by
>>> > "BaseTools/Source/C/GenFw/Elf32Convert.c".
>>> >
>>> > I checked the resulting binaries using "readpe" and indeed they have a
>>> > SectionAlignment of 0x20, while the precompiled binaries like Shell.efi 
>>> > have
>>> > a Alignment of 0x1000(4K).
>>> >
>>> > So, is this a bug of my GCC compiler or of EDK2?
>>> > _______________________________________________
>>> > edk2-devel mailing list
>>> > [email protected]<mailto:[email protected]>
>>> > https://lists.01.org/mailman/listinfo/edk2-devel
>>> > _______________________________________________
>>> > edk2-devel mailing list
>>> > [email protected]<mailto:[email protected]>
>>> > https://lists.01.org/mailman/listinfo/edk2-devel
>>> >
>>> > _______________________________________________
>>> > edk2-devel mailing list
>>> > [email protected]
>>> > https://lists.01.org/mailman/listinfo/edk2-devel
>>
>>
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to