On 9 September 2015 at 18:49, Michael Zimmermann
<sigmaepsilo...@gmail.com> wrote:
> thx, the patches work just fine.(they apply and the runtime warnings are
> gone).

OK, great. May I take that as a tested-by? Which GCC version are you using btw?

> if edk2 patches aren't that usable, how the maintainers test it? because
> usually people don't post git links.
>
> On Wed, Sep 9, 2015 at 6:31 PM, Ard Biesheuvel <ard.biesheu...@linaro.org>
> wrote:
>>
>> On 9 September 2015 at 18:21, Michael Zimmermann
>> <sigmaepsilo...@gmail.com> 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
>> > <ard.biesheu...@linaro.org>
>> > wrote:
>> >>
>> >>
>> >>
>> >> On 9 sep. 2015, at 18:10, Michael Zimmermann <sigmaepsilo...@gmail.com>
>> >> 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
>> >> <ard.biesheu...@linaro.org>
>> >> wrote:
>> >>>
>> >>> On 9 September 2015 at 17:26, Gao, Liming <liming....@intel.com>
>> >>> 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:sigmaepsilo...@gmail.com]
>> >>> > Sent: Wednesday, September 9, 2015 3:22 PM
>> >>> > To: Yao, Jiewen
>> >>> > Cc: Gao, Liming; edk2-devel@lists.01.org
>> >>> > 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
>> >>> > <jiewen....@intel.com<mailto:jiewen....@intel.com>> wrote:
>> >>> > OK
>> >>> >
>> >>> > -----Original Message-----
>> >>> > From: Gao, Liming
>> >>> > Sent: Tuesday, August 18, 2015 10:48 AM
>> >>> > To: Yao, Jiewen; Michael Zimmermann;
>> >>> > edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> >>> > 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;
>> >>> > edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> >>> > 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:edk2-devel-boun...@lists.01.org<mailto:edk2-devel-boun...@lists.01.org>]
>> >>> > On Behalf Of Gao, Liming
>> >>> > Sent: Tuesday, August 18, 2015 10:39 AM
>> >>> > To: Michael Zimmermann;
>> >>> > edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> >>> > 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:edk2-devel-boun...@lists.01.org<mailto:edk2-devel-boun...@lists.01.org>]
>> >>> > On Behalf Of Michael Zimmermann
>> >>> > Sent: Sunday, August 16, 2015 12:32 PM
>> >>> > To: edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> >>> > 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
>> >>> > edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> >>> > https://lists.01.org/mailman/listinfo/edk2-devel
>> >>> > _______________________________________________
>> >>> > edk2-devel mailing list
>> >>> > edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> >>> > https://lists.01.org/mailman/listinfo/edk2-devel
>> >>> >
>> >>> > _______________________________________________
>> >>> > edk2-devel mailing list
>> >>> > edk2-devel@lists.01.org
>> >>> > https://lists.01.org/mailman/listinfo/edk2-devel
>> >>
>> >>
>> >
>
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to