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

