From nobody Sat Apr 27 14:40:25 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+85770+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+85770+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1642483232; cv=none; d=zohomail.com; s=zohoarc; b=CrngqkK0MxUKTacgTh5f7tZZGIS5cUk1Os5DF56p3DgPH66ZKrAujE0E0o7YqC1nkw609S7cL+Sx+e12RpvZtmzf05yk59zDWZCKRTo/w2ZeNIpUl1LETrsSKF1epbk0Atx/RxADZNa2/BHQ/Bqm4Dfbmo9/yLPFrTqxdBerUJI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642483232; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=GNFG4QvYvXHUbPMeKjt602ZWyQHbebvbj68xBZDOZ3g=; b=YmuATok6iMTz9FiA39GH7iCjBzaeuL2vIrBMIkvY/TLsHjurSMwfohXvOSlIi3DvxfzmC4jFkzdmm7YbMhLjxCTNQY2LkL1CiTZF7BZ3SQstdqwnkakECbNgTgkpJM3yR0vJBNXbzQChjqJ244Gy+2v08fb+bQ+u5kDXlluY+/8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+85770+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1642483231834909.6454434890901; Mon, 17 Jan 2022 21:20:31 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id vc2tYY1788612xgepjcUydP1; Mon, 17 Jan 2022 21:20:31 -0800 X-Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web09.8827.1642483220020052953 for ; Mon, 17 Jan 2022 21:20:30 -0800 X-Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Tue, 18 Jan 2022 13:20:16 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Feng, Bob C'" Cc: "'Chen, Christine'" , "'Wu, Yidong'" , "'Xu, Wei6'" , "'You, Benjamin'" References: <20220112074423.5075-1-lisa.huang@intel.com> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF1bUEFUQ0hdIEJhc2VUb29scy9HZW5GdzogRW5oYW5jZSB0byBhZGQgZXhwb3J0IHRhYmxlIGluIFBFLUNPRkY=?= Date: Tue, 18 Jan 2022 13:20:18 +0800 Message-ID: <002001d80c2b$150f2230$3f2d6690$@byosoft.com.cn> MIME-Version: 1.0 Thread-Index: AQFmmm1SoaqnFiQcPCH6Gpd5Joc3DwC7TN82AuOrBjKtLikAkA== Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,gaoliming@byosoft.com.cn X-Gm-Message-State: Tm5c0bHELyCLqlVgXlp1kPFDx1787277AA= Content-Type: multipart/related; boundary="----=_NextPart_000_0021_01D80C6E.2334D330" Content-Language: zh-cn DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1642483231; bh=eX7igBxNcfP+Ri6SndZZXOJ9/HFoFzSxpTz6/kFyTTQ=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=cqQXa2wROJnaqD9gV+a+CiSRewzcNir2x/oLpu53mEKTF12vpWO2u2pL7qgC9auffM9 ohnogR04mZGJD3kPSWgavMJjSFYfJxPxBlfdQFrArlB62dDI67vXVuOosKKUom/LH0zP0 8qSjdxpujKb0OUmsDVB1MFdJ0/4FCNrMGeI= X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1642483233740100001 ------=_NextPart_000_0021_01D80C6E.2334D330 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0022_01D80C6E.2334D330" ------=_NextPart_001_0022_01D80C6E.2334D330 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Lisa: Can you give more background about PRM usage? What new usage requires RPM? Can you add the detail in BZ? =20 Thanks Liming =B7=A2=BC=FE=C8=CB: devel@edk2.groups.io =B4=FA=B1= =ED Huang, Li-Xia =B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA1=D4=C217=C8=D5 11:09 =CA=D5=BC=FE=C8=CB: Feng, Bob C ; devel@edk2.groups.i= o =B3=AD=CB=CD: Gao, Liming ; Chen, Christine ; Wu, Yidong ; Xu, Wei6 ; You, Benjamin =D6=F7=CC=E2: Re: [edk2-devel][PATCH] BaseTools/GenFw: Enhance to add expor= t table in PE-COFF =20 Hi Bob, =20 Thanks for your comments. =20 1. I will add the help information for "--PRM"; 2.=20 @@ -750,7 +818,7 @@ ScanSections64 ( if (shdr->sh_addralign <=3D mCoffAlignment) { continue; } - if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr)) { + if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr) || IsSymbolShdr(shdr)) { mCoffAlignment =3D (UINT32)shdr->sh_addralign; } } =20 1) Above change is to Set mCoffAlignment to the maximum alignment of the input sections including symbol section.=20 The symbol section will only exist with below change, so it should have no effect to other drivers. =20 build_rule.template: $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug #$(OBJCOPY) --strip-unneeded -R .eh_frame ${src} $(OBJCOPY) $(OBJCOPY_STRIPFLAG) ${src} =20 tools_def.template: *_*_*_OBJCOPY_STRIPFLAG =3D --strip-unneeded -R .eh_frame =20 PrmAddrTransDsm.inf: [BuildOptions.common] ... GCC: *_*_*_OBJCOPY_STRIPFLAG =3D=3D -R .eh_frame =20 2) For PRM driver, sh_addralign of symbol section is 8, and less than other sections such as Text and Data (sh_addralign is 4096).=20 =20 =20 Regards, Lisa =20 -----Original Message----- From: Feng, Bob C >=20 Sent: 2022=C4=EA1=D4=C214=C8=D5 14:12 To: Huang, Li-Xia >; devel@edk2.groups.io =20 Cc: Gao, Liming >; Chen, Christine > Subject: RE: [edk2-devel][PATCH] BaseTools/GenFw: Enhance to add export table in PE-COFF =20 Hi Lixia, =20 This patch introduce a new command line option --PRM. Could you add the hel= p information about --PRM? =20 Could you provide more information about the below change? Would there be side-effect? =20 @@ -750,7 +818,7 @@ ScanSections64 ( if (shdr->sh_addralign <=3D mCoffAlignment) { continue; } - if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr)) { + if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr) || IsSymbolShdr(shdr)) { mCoffAlignment =3D (UINT32)shdr->sh_addralign; } } =20 =20 =20 Thanks, Bob=20 =20 -----Original Message----- From: Huang, Li-Xia < lisa.huang@intel.com>= =20 Sent: Wednesday, January 12, 2022 3:44 PM To: devel@edk2.groups.io Cc: Huang, Li-Xia < lisa.huang@intel.com>; Gao, Liming < gaoliming@byosoft.com.cn>; Feng, Bob C < bob.c.feng@intel.com>; Chen, Christine < yuwei.chen@intel.com> Subject: [edk2-devel][PATCH] BaseTools/GenFw: Enhance to add export table i= n PE-COFF =20 REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3802 Since PRM module needs to support export table in PE-COFF, we'll enhance GenFw tool to support this. =20 Add one export flag in GenFw tool. If export flag is set: Step1: Scan ELF symbol table based on PRM module descriptor to get descriptor offset address; Step2: Find PRM handlers number and name in COFF file based on the address from step1; Step3: Write PRM info such as handler name and export RVA into COFF export table. =20 Cc: Liming Gao < gaoliming@byosoft.com.cn= > Cc: Bob Feng < bob.c.feng@intel.com> Cc: Yuwei Chen < yuwei.chen@intel.com> Signed-off-by: Lixia Huang < lisa.huang@intel= . com> --- BaseTools/Source/C/GenFw/Elf64Convert.c | 254 +++++++++++++++++- BaseTools/Source/C/GenFw/ElfConvert.c | 10 + BaseTools/Source/C/GenFw/ElfConvert.h | 42 ++- BaseTools/Source/C/GenFw/GenFw.c | 11 +- .../C/Include/IndustryStandard/PeImage.h | 7 + 5 files changed, 318 insertions(+), 6 deletions(-) =20 diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c index 0bb3ead228..0079507356 100644 --- a/BaseTools/Source/C/GenFw/Elf64Convert.c +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c @@ -56,6 +56,18 @@ WriteDebug64 ( VOID ); +STATIC+VOID+ScanSymbol64 (+ VOID+ );++STATIC+VOID+WriteExport64 (+ VOID+ );+ STATIC VOID SetImageSize64 (@@ -122,7 +134,7 @@ STATIC UINT32 mDataOffset; STATIC UINT32 mHiiRsrcOffset; STATIC UINT32 mRelocOffset; STATIC UINT32 mDebugOffset;-+STATIC UINT32 mExportOffset; // // Used for RISC-V relocations. //@@ -132,6 +144,14 @@ STATIC Elf64_Half mRiscVPass1SymSecIndex =3D 0; STATIC INT32 mRiscVPass1Offset; STATIC INT32 mRiscVPass1GotFixup; +//+// Used for Export section.+//+STATIC UINT32 mExportSize;+STATIC UINT32 mExportRVA[PRM_MODULE_EXPORT_SYMBOL_NUM];+STATIC UINT32 mExportSymNum;+STATIC CHAR8 mExportSymName[PRM_MODULE_EXPORT_SYMBOL_NUM][PRM_HANDLER_NAME_MAXIMUM_LENGT= H ];+ // // Initialization Function //@@ -200,6 +220,10 @@ InitializeElf64 ( ElfFunctions->SetImageSize =3D SetImageSize64; ElfFunctions->CleanUp = =3D CleanUp64; + if (mExportFlag) {+ ElfFunctions->ScanSymbol =3D ScanSymbol64;+ ElfFunctions->WriteExport =3D WriteExport64;+ } return TRUE; } @@ -263,6 +287,17 @@ IsHiiRsrcShdr ( return (BOOLEAN) (strcmp((CHAR8*)mEhdr + Namedr->sh_offset + Shdr->sh_name, ELF_HII_SECTION_NAME) =3D=3D 0); } +STATIC+BOOLEAN+IsSymbolS= hdr (+ Elf_Shdr *Shdr+ )+{+ Elf_Shdr *Namehdr =3D GetShdrByIndex(mEhdr->e_shstrndx);++ return (BOOLEAN) (strcmp((CHAR8*)mEhd= r + Namehdr->sh_offset + Shdr->sh_name, ELF_SYMBOL_SECTION_NAME) =3D=3D 0);+}= + STATIC BOOLEAN IsDataShdr (@@ -335,6 +370,38 @@ GetSymName ( return StrtabContents + Sym->st_name; } +//+// Get Prm Handler number an= d name+//+STATIC+VOID+FindPrmHandler (+ UINT64 Offset+ )+{+ PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER *PrmExport;+ UINT32 NameOffset;+ UINT32 HandlerNum;+ UINT32 Index;+ UINT8 SymName[PRM_HANDLER_NAME_MAXIMUM_LENGTH];++ PrmExport =3D (PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER*)(mCoffFile + Offset);+ NameOffset =3D sizeof(PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER) + sizeof(EFI_GUID);++ for (HandlerNum =3D 0; HandlerNum < PrmExport->NumberPrmHandlers; HandlerNum++) {+ for (Index =3D 0; Index < PRM_HANDLER_NAME_MAXIMUM_LENGTH; Index++) {+ SymName[Index] =3D *((UIN= T8 *)PrmExport + NameOffset + Index);+ if (SymName[Index] =3D=3D 0) {+ break;+ }+ }++ strcpy(mExportSymName[mExportSymNum], (CHAR8*)SymName);+ NameOffset +=3D PRM_HANDLER_NAME_MAXIMUM_LENGTH + sizeof(EFI_GUID);+ mExportSymNum ++;+ }+}+ // // Find the ELF section hosting the GOT from an ELF Rva // of a single GOT entry. Normally, GOT is placed in@@ -717,6 +784,7 @@ ScanSections64 ( UINT32 CoffEntry; UINT32 SectionCount; BOOLEAN FoundSection;+ UINT32 Offset; CoffEntry =3D 0; mCoffOffset =3D 0;@@ -750,7 +818,7 @@ ScanSections64 ( if (shdr->sh_addralign <=3D mCoffAlignment) { continue; }- if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr)) {+ if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr) || IsSymbolShdr(shdr)) { mCoffAlignment =3D (UINT32)shdr->sh_addralign; } }@@ -880,6 +948,16 @@ ScanSections64 ( Warning (NULL, 0, 0, NULL, "Multiple sections in %s are merged into 1 data section. Source level debug might not work correctly.", mInImageName); } + //+ // The Symbol sections.+ //+ if (mExportFlag) {+ mExportOffset =3D mCoffOffset;+ mExportSize =3D sizeof(EFI_IMAGE_EXPORT_DIRECTORY) + strlen(mInImageName) + 1;+ mCoffOffset +=3D mExportSize;+ mCoffOffset =3D CoffAlign(mCoffOffset);+ = }+ // // The HII resource sections. //@@ -962,7 +1040,11 @@ ScanSections6= 4 ( | EFI_IMAGE_FILE_LARGE_ADDRESS_AWARE; NtHdr->Pe32Plus.OptionalHeader.SizeOfCode =3D mDataOffset - mTextOffset;- NtHdr->Pe32Plus.OptionalHeader.SizeOfInitializedData =3D mRelocOffset - mDataOffset;+ if(mExportFlag) {+ NtHdr->Pe32Plus.OptionalHeader.SizeOfInitializedData =3D mRelocOffset - mExportOffset;+ } else {+ NtHdr->Pe32Plus.OptionalHeader.SizeOfInitializedData =3D mRelocOffset - mDataOffset;+ } NtHdr->Pe32Plus.OptionalHeader.SizeOfUninitializedData = =3D 0; NtHdr->Pe32Plus.OptionalHeader.AddressOfEntryPoint =3D CoffEntry; @@ -989,8 +1071,17 @@ ScanSections64 ( NtHdr->Pe32Plus.FileHeader.NumberOfSections--; } + //+ // If found symbol, add edata section between data and rsrc section+ //+ if(mExportFlag) {+ Offset =3D mExportOffset;+ } else {+ Offset =3D mHiiRsrcOffset;+ }+ if ((mHiiRsrcOffset - mDataOffset) > 0) {- CreateSectionHeader (".data", mDataOffset, mHiiRsrcOffset - mDataOffset,+ CreateSectionHeader (".data", mDataOffset, Offset - mDataOffset, EFI_IMAGE_SCN_CNT_INITIALIZED_DATA | EFI_IMAGE_SCN_MEM_WRITE | EFI_IMAGE_SCN_MEM_READ);@@ -999,6 +1090,20 @@ ScanSections64 ( NtHdr->Pe32Plus.FileHeader.NumberOfSections--; } + if(mExportFlag) {+ if ((mHiiRsrcOffset - mExportOffset) > 0) {+ CreateSectionHeader (".edata", mExportOffset, mHiiRsrcOffset - mExportOffset,+ EFI_IMAGE_SCN_CNT_INITIALIZED_DATA+ | EFI_IMAGE_SCN_MEM_READ);= + NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_EXPO= R T].Size =3D mHiiRsrcOffset - mExportOffset;+ NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_EXPO= R T].VirtualAddress =3D mExportOffset;+ NtHdr->Pe32Plus.FileHeader.NumberOfSections++;+ } else {+ // Don't make a section of size 0.+ NtHdr->Pe32Plus.FileHeader.NumberOfSections--;+ }+ }+ if ((mRelocOffset - mHiiRsrcOffset) > 0) { CreateSectionHeader (".rsrc", mHiiRsrcOffset, mRelocOffset - mHiiRsrcOffset, EFI_IMAGE_SCN_CNT_INITIALIZED_DATA@@ -1757,4 +1862,145 @@ CleanUp64 ( } } +STATIC+VOID+ScanSymbol64 (+ VOID+ )+{+ UINT32 shIndex;+ UINT32 SymIndex;+ Elf_Sym *Sym;+ UINT64 SymNum;+ const UINT8 *SymName;++ for (shIndex =3D 0; shIndex < mEhdr->e_shnum; shIndex++)= {+ //+ // Determine if this is a symbol section.+ //+ Elf_Shdr *shdr = =3D GetShdrByIndex(shIndex);+ if (!IsSymbolShdr(shdr)) {+ continue;+ }++ UINT8 *Symtab =3D (UINT8*)mEhdr + shdr->sh_offset;+ SymNum =3D (shdr->sh_size) / (shdr->sh_entsize);++ //+ // First Get PrmModuleExportDescriptor+ //+ for (SymIndex =3D 0; SymIndex < SymNum= ; SymIndex++) {+ Sym =3D (Elf_Sym *)(Symtab + SymIndex * shdr->sh_entsize);+ SymName =3D GetSymName(Sym);+ if (SymName =3D= =3D NULL) {+ continue;+ }++ if (strcmp((CHAR8*)SymName, PRM_MODULE_EXPORT_DESCRIPTOR_NAME) =3D=3D 0) {+ //+ // Find PrmHandler Number and Name+ //+ FindPrmHandler(Sym->st_value);++ strcpy(mExportSymName[mExportSymNum], (CHAR8*)SymName);+ mExportRVA[mExportSymNum] =3D (UINT32)(Sym->st_value);+ mExportSize = +=3D 2 * EFI_IMAGE_EXPORT_ADDR_SIZE + EFI_IMAGE_EXPORT_ORDINAL_SIZE + strlen((CHAR8 *)SymName) + 1;+ mExportSymNum ++;+ break;+ }+ }++ //+ // Second Get PrmHandler+ //+ for (SymIndex =3D 0= ; SymIndex < SymNum; SymIndex++) {+ UINT32 ExpIndex;+ Sym =3D (Elf_Sym *)(Symtab + SymIndex * shdr->sh_entsize);+ SymName =3D GetSymName(Sym);+ if (SymName =3D=3D NULL) {+ continue;+ = }++ for (ExpIndex =3D 0; ExpIndex < (mExportSymNum -1); ExpIndex++) {+ i= f (strcmp((CHAR8*)SymName, mExportSymName[ExpIndex]) !=3D 0) {+ continue;+ }+ mExportRVA[ExpIndex] =3D (UINT32)(Sym->st_value= );+ mExportSize +=3D 2 * EFI_IMAGE_EXPORT_ADDR_SIZE + EFI_IMAGE_EXPORT_ORDINAL_SIZE + strlen((CHAR8 *)SymName) + 1;+ }+ }++ break;+ }+}++STATIC+VOID+WriteExport64 (+ VOID+ )+{+ EFI_IMAGE_OPTIONAL_HEADER_UNION *NtHdr;+ EFI_IMAGE_EXPORT_DIRECTORY *ExportDir;+ EFI_IMAGE_DATA_DIRECTORY *DataDir;+ UINT32 FileNameOffset;+ UINT32 FuncOffset;+ UINT16 Index;+ UINT8 *Tdata =3D NULL;++ ExportDir = =3D (EFI_IMAGE_EXPORT_DIRECTORY*)(mCoffFile + mExportOffset);+ ExportDir->Characteristics =3D 0;+ ExportDir->TimeDateStamp =3D 0;+ ExportDir->MajorVersion =3D 0;+ ExportDir->MinorVersion =3D0;+ ExportDir-= >Name =3D 0;+ ExportDir->NumberOfFunctions =3D mExportSymNum;+ ExportDir->NumberOfNames =3D mExportSymNum;+ ExportDir->Base =3D EFI_IMAGE_EXPORT_ORDINAL_BASE;+ ExportDir->AddressOfFunctions =3D mExportOffset + sizeof(EFI_IMAGE_EXPORT_DIRECTORY);+ ExportDir->AddressOfNames =3D ExportDir->AddressOfFunctions + EFI_IMAGE_EXPORT_ADDR_SIZE * mExportSymNum;+ ExportDir->AddressOfNameOrdinals =3D ExportDir->AddressOfNames + EFI_IMAGE_EXPORT_ADDR_SIZE * mExportSymNum;++ FileNameOffset =3D ExportDir->AddressOfNameOrdinals + EFI_IMAGE_EXPORT_ORDINAL_SIZE * mExportSymNum;+ FuncOffset =3D FileNameOffset + strlen(mInImageName) + 1;+= + // Write Input image Name RVA+ Tdata =3D mCoffFile + 12;+ *(UINT32 *)Tdat= a =3D FileNameOffset;++ // Write Input image Name+ strcpy((char *)(mCoffFile + FileNameOffset), mInImageName);++ for (Index =3D 0; Index < mExportSymNum; Index++) {+ //+ // Write Export Address Table+ //+ Tdata =3D mCoffFile + ExportDir->AddressOfFunctions + Index * EFI_IMAGE_EXPORT_ADDR_SIZE;+ *(UINT32 *)Tdata =3D mExportRVA[Index];++ //+ // Write Export Name Pointer Table+ //+ Tdata =3D mCoffFile + ExportDir->AddressOfNames + Index * EFI_IMAGE_EXPORT_ADDR_SIZE;+ *(UINT3= 2 *)Tdata =3D FuncOffset;++ //+ // Write Export Ordinal table+ //+ Tdata =3D mCoffFile + ExportDir->AddressOfNameOrdinals + Index * EFI_IMAGE_EXPORT_ORDINAL_SIZE;+ *(UINT16 *)Tdata =3D Index;++ //+ = // Write Export Name Table+ //+ strcpy((char *)(mCoffFile + FuncOffset), mExportSymName[Index]);+ FuncOffset +=3D strlen(mExportSymName[Index]) + 1;+ }++ NtHdr =3D (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);+ DataDir =3D &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_EXP= O RT];+ DataDir->VirtualAddress =3D mExportOffset;+ DataDir->Size =3D mExportSize;++} diff --git a/BaseTools/Source/C/GenFw/ElfConvert.c b/BaseTools/Source/C/GenFw/ElfConvert.c index 7db8721167..795cdbd743 100644 --- a/BaseTools/Source/C/GenFw/ElfConvert.c +++ b/BaseTools/Source/C/GenFw/ElfConvert.c @@ -223,6 +223,16 @@ ConvertElf ( VerboseMsg ("Write debug info."); ElfFunctions.WriteDebug (); + //+ // For PRM Driver to Write export info.+ //+ if (mExportFlag) {+ VerboseMsg ("Scan symbol info.");+ ElfFunctions.ScanSymbol ();+ VerboseMsg ("Write export info.");+ ElfFunctions.WriteExport ();+ }+ // // Make sure image size is correct before returning the new image. //diff --git a/BaseTools/Source/C/GenFw/ElfConvert.h b/BaseTools/Source/C/GenFw/ElfConvert.h index 801e8de4a2..7920765fbb 100644 --- a/BaseTools/Source/C/GenFw/ElfConvert.h +++ b/BaseTools/Source/C/GenFw/ElfConvert.h @@ -24,6 +24,7 @@ extern UINT8 *mCoffFile; extern UINT32 mTableOffset; extern UINT32 mOutImageType; extern UINT32 mFileBufferSize;+extern BOOLEAN mExportFlag; // // Common EFI specific data.@@ -31,6 +32,42 @@ extern UINT32 mFileBufferSize; #define ELF_HII_SECTION_NAME ".hii" #define ELF_STRTAB_SECTION_NAME ".strtab" #define MAX_COFF_ALIGNMENT 0x10000+#define ELF_SYMBOL_SECTION_NAM= E ".symtab"++//+// Platform Runtime Mechanism (PRM) specific data.+//+#define PRM_MODULE_EXPORT_SYMBOL_NUM 10+#define PRM_HANDLER_NAME_MAXIMUM_LENGTH 128++#define PRM_MODULE_EXPORT_DESCRIPTOR_NAME "PrmModuleExportDescriptor"+#define PRM_MODULE_EXPORT_DESCRIPTOR_SIGNATURE SIGNATURE_64 ('P', 'R', 'M', '_', 'M', 'E', 'D', 'T')+#define PRM_MODULE_EXPORT_REVISION 0x0++//+// Platform Runtime Mechanism (PRM) Export Descriptor Structures+//+#pragma pack(push, 1)++typedef struct {+ EFI_GUID PrmHandlerGuid;+ CHAR8 PrmHandlerName[PRM_HANDLER_NAME_MAXIMUM_LENGTH];+} PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT;++typedef struct {+ UINT64 Signature;+ UINT16 Revision;+ UINT16 NumberPrmHandlers;+ EFI_GUID PlatformGuid;+ EFI_GUID ModuleGuid;+} PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER;++typedef struct {+ PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER Header;+ PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT PrmHandlerExportDescriptors[1];+} PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT;++#pragma pack(pop) // // Filter Types@@ -38,7 +75,8 @@ extern UINT32 mFileBufferSize; typedef enum { SECTION_TEXT, SECTION_HII,- SECTION_DATA+ SECTION_DATA= , + SECTION_SYMBOL } SECTION_FILTER_TYPES; @@ -50,6 +88,8 @@ typedef struct { BOOLEAN (*WriteSections) (SECTION_FILTER_TYPES FilterType); VOID (*WriteRelocations) (); VOID (*WriteDebug) ();+ VOID (*ScanSymbol) ();+ VOID (*WriteExport) (); VOID (*SetImageSize) (); VOID (*CleanUp) (); diff --git a/BaseTools/Source/C/GenFw/GenFw.c b/BaseTools/Source/C/GenFw/GenFw.c index 8cab70ba4d..c7de5b89d8 100644 --- a/BaseTools/Source/C/GenFw/GenFw.c +++ b/BaseTools/Source/C/GenFw/GenFw.c @@ -87,7 +87,7 @@ UINT32 mImageTimeStamp =3D 0; UINT32 mImageSize =3D 0; UINT32 mOutImageType =3D FW_DUMMY_IMAGE; BOOLEAN mIsConvertXip =3D FALSE;-+BOOLEAN mExportFlag =3D FALSE; STATIC EFI_STATUS= @@ -1436,6 +1436,15 @@ Returns: continue; } + if (stricmp (argv[0], "--PRM") =3D=3D 0) {+ = if (!mExportFlag) {+ mExportFlag =3D TRUE;+ }+ argc --;+ argv ++;+ continue;+ }+ if (argv[0][0] =3D=3D '-') { Erro= r (NULL, 0, 1000, "Unknown option", argv[0]); goto Finish;diff --git a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h index f17b8ee19b..21c968e650 100644 --- a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h +++ b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h @@ -571,6 +571,13 @@ typedef struct { UINT32 AddressOfNameOrdinals; } EFI_IMAGE_EXPORT_DIRECTORY; +//+// Base= d export types.+//+#define EFI_IMAGE_EXPORT_ORDINAL_BASE 1+#define EFI_IMAGE_EXPORT_ADDR_SIZE 4+#define EFI_IMAGE_EXPORT_ORDINAL_SIZE 2+ /// /// DLL support. /// Import Format--=20 2.26.2.windows.1 =20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#85770): https://edk2.groups.io/g/devel/message/85770 Mute This Topic: https://groups.io/mt/88503416/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- ------=_NextPart_001_0022_01D80C6E.2334D330 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable

Lisa:

 Can you give more background about= PRM usage? What new usage requires RPM? Can you add the detail in BZ?=

 <= /span>

Thanks<= /p>

Liming

=B7=A2=BC=FE=C8=CB: devel@edk2.groups.io <devel@edk= 2.groups.io> =B4=FA=B1=ED = Huang, Li-Xia
=B7=A2=CB=CD=CA=B1=BC=E4: 2022=C4=EA1=D4=C217=C8=D5 11:09
=CA=D5=BC=FE=C8=CB: Feng, Bob C <bob.c.feng@intel.com>; devel@edk2.groups.= io
=B3=AD=CB=CD: Gao, Liming <gaoliming@byosoft.com.cn>; Chen, Christine <yuwei= .chen@intel.com>; Wu, Yidong <yidong.wu@intel.com>; Xu, Wei6 <w= ei6.xu@intel.com>; You, Benjamin <benjamin.you@intel.com>
=D6=F7=CC=E2: Re: [ed= k2-devel][PATCH] BaseTools/GenFw: Enhance to add export table in PE-COFF

 

H= i Bob,

 

Thanks f= or your comments.

 

1.  I will add the help information for "--PRM";

2.

@@ -750,7 +818,7 @@ Scan= Sections64 (

     if (shdr->sh_addralign <=3D mCoffAlignment= ) {

 &= nbsp;     continue;

     }

-    if (IsText= Shdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr)) {<= /p>

+    if (IsTex= tShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcShdr(shdr) || IsSymbolShdr(shdr= )) {

 =       mCoffAlignment =3D (UINT32)shdr->sh_addra= lign;

 = ;    }

   }

 

1) Above change is to Set mCoffAlignment to the maximum alignmen= t of the input sections including symbol section.

    The symbol = section will only exist with below change, so it should have no effect to o= ther drivers.

 

build_rule.template:=

    <Command.GCC>

      &n= bsp; $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug

=

     &n= bsp;  #$(OBJCOPY) --strip-unneeded -R .eh_frame ${src}

    &n= bsp;   $(OBJCOPY) $(OBJCOPY_STRIPFLAG) ${src}

 

tools_def.template:

*_*_*_OBJCOPY_STRIPFLAG&n= bsp;           =3D --stri= p-unneeded -R .eh_frame

 

PrmAddrTransDsm.i= nf:

= [BuildOptions.common]

...

  GCC: *_*_*_OBJCOPY_STRIPFLAG =3D=3D -R .eh_fr= ame

&n= bsp;

2) For PRM = driver, sh_addralign of symbol section is 8, and less than other sections s= uch as Text and Data (sh_addralign is 4096).

 

 

Regards,

Lisa

 

= -----Original Message-----
From: Feng, Bob C <bob.c.feng@intel.com>
Sent: = 2022
= =C4=EA1=D4=C214=C8=D5 14:12
To: Huang, Li-Xia <lisa.huang@intel.com>; devel@edk2.groups.io
Cc: Gao, Liming <gaoliming@byosoft.com.cn>; Chen, Christine = <yuwei.chen@intel.com>Subject: RE: [edk2-devel][PATCH] BaseTools/GenFw: Enhance to add export ta= ble in PE-COFF

 

= Hi Lixia,

<= o:p> 

This = patch introduce a new command line option --PRM. Could you add the help inf= ormation about --PRM?

 

Could you provide more information about the below change? Would t= here be side-effect?

 

@@ -750,7 +818,7 @@ ScanSections64 (

     if (shdr->sh_ad= dralign <=3D mCoffAlignment) {

       continue;<= /o:p>

  &nbs= p;  }

= -    if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcSh= dr(shdr)) {

+    if (IsTextShdr(shdr) || IsDataShdr(shdr) || IsHiiRsrcS= hdr(shdr) || IsSymbolShdr(shdr)) {

       mCoffAlignment= =3D (UINT32)shdr->sh_addralign;

     }

   }

 

 

 

Thanks,

Bob

 

-----Original Message-----

From: Huang, Li-Xia <lisa.huang@intel.com>

Sent: Wednesday, January 12, 2022 3:44 PM

To: devel@edk2.groups.io

Cc: Huang, Li-Xia <lisa.huang@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Feng, Bob C <bob.c.feng@intel.com>; Chen, Christine <yuwei.chen@intel.com>

Subject: [edk2-devel][PATCH] BaseTools/GenFw: = Enhance to add export table in PE-COFF

 

REF: h= ttps://bugzilla.tianocore.org/show_bug.cgi?id=3D3802<= /span>

Since PRM module needs= to support export table in PE-COFF, we'll enhance GenFw tool to support th= is.

&n= bsp;

Add one exp= ort flag in GenFw tool. If export flag is set:

Step1: Scan ELF symbol table based on P= RM module descriptor to get descriptor offset address;

Step2: Find PRM handlers number= and name in COFF file based on the address from step1;

Step3: Write PRM info such as = handler name and export RVA into COFF export table.

 

Cc: Liming Gao <gaoliming@byosoft.com.cn>

Cc: Bob Feng <bob.= c.feng@intel.com>

Cc: Yuwei Chen <yuwei.chen@intel= .com>

Signed-off-by: Lixia Huang <lisa.huang@intel= .com>

---

BaseTools/Source/C/GenFw/Elf64Convert.c     &nbs= p; | 254 +++++++++++++++++-

BaseTools/Source/C/GenFw/ElfConvert.c   &nb= sp;     |  10 +

BaseTools/Source/C/GenFw/ElfConvert.h &n= bsp;       |  42 ++-

BaseTools/Source/C/GenFw/GenFw= .c            &= nbsp; |  11 +-

.../C/Include/IndustryStandard/PeImage.h    &n= bsp; |   7 +

5 files changed, 318 insertions(+), 6 deletions(-)

 

diff --git a/BaseTools/Sour= ce/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c

index 0bb3ead228..= 0079507356 100644

--- a/BaseTools/Source/C/GenFw/Elf64Convert.c

+++ b/BaseTools/Source/C/GenFw/= Elf64Convert.c

@@ -56,6 +56,18 @@ WriteDebug64 (

   VOID   ); +STATIC+VOID+Sc= anSymbol64 (+  VOID+  );++STATIC+VOID+WriteExport64 (+  VOID= +  );+ STATIC VOID SetImageSize64 (@@ -122,7 +134,7 @@ STATIC UINT32 m= DataOffset;

STATIC UINT32 mHiiRsrcOffset; STATIC UINT32 mRelocOffset; STATIC UINT32 mD= ebugOffset;-+STATIC UINT32 mExportOffset; // // Used for RISC-V relocations= . //@@ -132,6 +144,14 @@ STATIC Elf64_Half  mRiscVPass1SymSecIndex =3D= 0;

STATIC = INT32       mRiscVPass1Offset; STATIC INT32&n= bsp;      mRiscVPass1GotFixup; +//+// Used for Exp= ort section.+//+STATIC UINT32      mExportSize;+ST= ATIC UINT32      mExportRVA[PRM_MODULE_EXPORT_SYMB= OL_NUM];+STATIC UINT32      mExportSymNum;+STATIC = CHAR8       mExportSymName[PRM_MODULE_EXPORT_= SYMBOL_NUM][PRM_HANDLER_NAME_MAXIMUM_LENGTH];+ // // Initialization Functio= n //@@ -200,6 +220,10 @@ InitializeElf64 (

   ElfFunctions->SetImageSize = =3D SetImageSize64;   ElfFunctions->CleanUp =3D CleanUp64; +&n= bsp; if (mExportFlag) {+    ElfFunctions->ScanSymbol =3D = ScanSymbol64;+    ElfFunctions->WriteExport =3D WriteExpo= rt64;+  }   return TRUE; } @@ -263,6 +287,17 @@ IsHiiRsrcShd= r (

 &= nbsp; return (BOOLEAN) (strcmp((CHAR8*)mEhdr + Namedr->sh_offset + Shdr-= >sh_name, ELF_HII_SECTION_NAME) =3D=3D 0); } +STATIC+BOOLEAN+IsSymbolShd= r (+  Elf_Shdr *Shdr+  )+{+  Elf_Shdr *Namehdr =3D GetShdrBy= Index(mEhdr->e_shstrndx);++  return (BOOLEAN) (strcmp((CHAR8*)mEhdr= + Namehdr->sh_offset + Shdr->sh_name, ELF_SYMBOL_SECTION_NAME) =3D= =3D 0);+}+ STATIC BOOLEAN IsDataShdr (@@ -335,6 +370,38 @@ GetSymName (

   r= eturn StrtabContents + Sym->st_name; } +//+// Get Prm Handler number and= name+//+STATIC+VOID+FindPrmHandler (+  UINT64 Offset+  )+{+ = ; PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER *PrmExport;+  UINT32 = ;  NameOffset;+  UINT32   HandlerNum;+  UINT32&nbs= p;  Index;+  UINT8    SymName[PRM_HANDLER_NAME_MAX= IMUM_LENGTH];++  PrmExport =3D (PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HE= ADER*)(mCoffFile + Offset);+  NameOffset =3D sizeof(PRM_MODULE_EXPORT_= DESCRIPTOR_STRUCT_HEADER) + sizeof(EFI_GUID);++  for (HandlerNum =3D 0= ; HandlerNum < PrmExport->NumberPrmHandlers; HandlerNum++) {+ &n= bsp;  for (Index =3D 0; Index < PRM_HANDLER_NAME_MAXIMUM_LENGTH; In= dex++) {+      SymName[Index] =3D *((UINT8 *)PrmEx= port + NameOffset + Index);+      if (SymName[Inde= x] =3D=3D 0) {+        break;+ &nbs= p;    }+    }++    strcpy(mExp= ortSymName[mExportSymNum], (CHAR8*)SymName);+    NameOffset = +=3D PRM_HANDLER_NAME_MAXIMUM_LENGTH + sizeof(EFI_GUID);+   = mExportSymNum ++;+  }+}+ // // Find the ELF section hosting the GOT f= rom an ELF Rva //   of a single GOT entry.  Normally, GOT is= placed in@@ -717,6 +784,7 @@ ScanSections64 (

   UINT32   &n= bsp;            = ;          CoffEntry; &nb= sp; UINT32           = ;            &n= bsp;  SectionCount;   BOOLEAN     &= nbsp;           &nbs= p;       FoundSection;+  UINT32 &nb= sp;            =             Offset;&= nbsp;   CoffEntry =3D 0;   mCoffOffset =3D 0;@@ -750,7 = +818,7 @@ ScanSections64 (

     if (shdr->sh_addralign <=3D = mCoffAlignment) {       continue;  =    }-    if (IsTextShdr(shdr) || IsDataShdr(shdr) = || IsHiiRsrcShdr(shdr)) {+    if (IsTextShdr(shdr) || IsData= Shdr(shdr) || IsHiiRsrcShdr(shdr) || IsSymbolShdr(shdr)) {   = ;    mCoffAlignment =3D (UINT32)shdr->sh_addralign; =     }   }@@ -880,6 +948,16 @@ ScanSections64 (

  &n= bsp;  Warning (NULL, 0, 0, NULL, "Multiple sections in %s are mer= ged into 1 data section. Source level debug might not work correctly."= , mInImageName);   } +  //+  //  The Symbol sectio= ns.+  //+  if (mExportFlag) {+    mExportOffset = =3D mCoffOffset;+    mExportSize =3D sizeof(EFI_IMAGE_EXPORT= _DIRECTORY) + strlen(mInImageName) + 1;+    mCoffOffset +=3D= mExportSize;+    mCoffOffset =3D CoffAlign(mCoffOffset);+&n= bsp; }+   //   //  The HII resource sections. = ;  //@@ -962,7 +1040,11 @@ ScanSections64 (

     | EFI_IMAGE_= FILE_LARGE_ADDRESS_AWARE;    NtHdr->Pe32Plus.OptionalHead= er.SizeOfCode =3D mDataOffset - mTextOffset;-  NtHdr->Pe32Plus.Opti= onalHeader.SizeOfInitializedData =3D mRelocOffset - mDataOffset;+  if(= mExportFlag) {+    NtHdr->Pe32Plus.OptionalHeader.SizeOfI= nitializedData =3D mRelocOffset - mExportOffset;+  } else {+ &nbs= p;  NtHdr->Pe32Plus.OptionalHeader.SizeOfInitializedData =3D mReloc= Offset - mDataOffset;+  }   NtHdr->Pe32Plus.OptionalHeade= r.SizeOfUninitializedData =3D 0;   NtHdr->Pe32Plus.OptionalHea= der.AddressOfEntryPoint =3D CoffEntry; @@ -989,8 +1071,17 @@ ScanSections64= (

 &n= bsp;   NtHdr->Pe32Plus.FileHeader.NumberOfSections--; &nb= sp; } +  //+  // If found symbol, add edata section between data = and rsrc section+  //+  if(mExportFlag) {+    Offs= et =3D mExportOffset;+  } else {+    Offset =3D mHiiRsr= cOffset;+  }+   if ((mHiiRsrcOffset - mDataOffset) > 0) {= -    CreateSectionHeader (".data", mDataOffset, mH= iiRsrcOffset - mDataOffset,+    CreateSectionHeader (".= data", mDataOffset, Offset - mDataOffset,     = ;        EFI_IMAGE_SCN_CNT_INITIALIZED_D= ATA            = | EFI_IMAGE_SCN_MEM_WRITE        &= nbsp;    | EFI_IMAGE_SCN_MEM_READ);@@ -999,6 +1090,20 @@ Sca= nSections64 (

     NtHdr->Pe32Plus.FileHeader.NumberOfSections-= -;   } +  if(mExportFlag) {+    if ((mHiiRsrc= Offset - mExportOffset) > 0) {+      CreateSect= ionHeader (".edata", mExportOffset, mHiiRsrcOffset - mExportOffse= t,+            =   EFI_IMAGE_SCN_CNT_INITIALIZED_DATA+     &nb= sp;        | EFI_IMAGE_SCN_MEM_READ);+&n= bsp;     NtHdr->Pe32Plus.OptionalHeader.DataDirector= y[EFI_IMAGE_DIRECTORY_ENTRY_EXPORT].Size =3D mHiiRsrcOffset - mExportOffset= ;+      NtHdr->Pe32Plus.OptionalHeader.DataDire= ctory[EFI_IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress =3D mExportOffset;+&= nbsp;     NtHdr->Pe32Plus.FileHeader.NumberOfSection= s++;+    } else {+      // Don't ma= ke a section of size 0.+      NtHdr->Pe32Plus.F= ileHeader.NumberOfSections--;+    }+  }+   if= ((mRelocOffset - mHiiRsrcOffset) > 0) {     CreateS= ectionHeader (".rsrc", mHiiRsrcOffset, mRelocOffset - mHiiRsrcOff= set,            = ; EFI_IMAGE_SCN_CNT_INITIALIZED_DATA@@ -1757,4 +1862,145 @@ CleanUp64 (

   }= } +STATIC+VOID+ScanSymbol64 (+  VOID+  )+{+  UINT32 &n= bsp;    shIndex;+  UINT32     = SymIndex;+  Elf_Sym     *Sym;+  UINT64 =      SymNum;+  const UINT8 *SymName;++  for (= shIndex =3D 0; shIndex < mEhdr->e_shnum; shIndex++) {+  &nb= sp; //+    // Determine if this is a symbol section.+ &= nbsp;  //+    Elf_Shdr *shdr =3D GetShdrByIndex(shIndex= );+    if (!IsSymbolShdr(shdr)) {+    &n= bsp; continue;+    }++    UINT8  &n= bsp; *Symtab =3D (UINT8*)mEhdr + shdr->sh_offset;+    Sym= Num =3D (shdr->sh_size) / (shdr->sh_entsize);++    //+=     // First Get PrmModuleExportDescriptor+   = ; //+    for (SymIndex =3D 0; SymIndex < SymNum; SymIndex= ++) {+      Sym =3D (Elf_Sym *)(Symtab + SymIndex = * shdr->sh_entsize);+      SymName =3D GetSymNa= me(Sym);+      if (SymName =3D=3D NULL) {+ &n= bsp;        continue;+   =    }++      if (strcmp((CHAR8*)SymName, = PRM_MODULE_EXPORT_DESCRIPTOR_NAME) =3D=3D 0) {+    &nbs= p;   //+        // Find PrmHan= dler Number and Name+        //+ &n= bsp;      FindPrmHandler(Sym->st_value);++ = ;       strcpy(mExportSymName[mExportSymNum],= (CHAR8*)SymName);+        mExportRVA[mE= xportSymNum] =3D (UINT32)(Sym->st_value);+     =    mExportSize +=3D 2 * EFI_IMAGE_EXPORT_ADDR_SIZE + EFI_IMAGE_EX= PORT_ORDINAL_SIZE + strlen((CHAR8 *)SymName) + 1;+    &= nbsp;   mExportSymNum ++;+      &nb= sp; break;+      }+    }++ &nb= sp;  //+    // Second Get PrmHandler+   = //+    for (SymIndex =3D 0; SymIndex < SymNum; SymIndex+= +) {+      UINT32   ExpIndex;+ &nbs= p;    Sym =3D (Elf_Sym *)(Symtab + SymIndex * shdr->sh_en= tsize);+      SymName =3D GetSymName(Sym);+ &= nbsp;    if (SymName =3D=3D NULL) {+    =       continue;+      }++=       for (ExpIndex =3D 0; ExpIndex < (mExportS= ymNum -1); ExpIndex++) {+        if (str= cmp((CHAR8*)SymName, mExportSymName[ExpIndex]) !=3D 0) {+   =        continue;+    &nbs= p;   }+        mExportRVA[ExpI= ndex] =3D (UINT32)(Sym->st_value);+      &= nbsp; mExportSize +=3D 2 * EFI_IMAGE_EXPORT_ADDR_SIZE + EFI_IMAGE_EXPORT_OR= DINAL_SIZE + strlen((CHAR8 *)SymName) + 1;+      }= +    }++    break;+  }+}++STATIC+VOID+Wr= iteExport64 (+  VOID+  )+{+  EFI_IMAGE_OPTIONAL_HEADER_UNION=      *NtHdr;+  EFI_IMAGE_EXPORT_DIRECTORY &nb= sp;        *ExportDir;+  EFI_IMAGE_= DATA_DIRECTORY          &= nbsp; *DataDir;+  UINT32       &nbs= p;            &= nbsp;         FileNameOffset;+ = ; UINT32           &= nbsp;           &nbs= p;      FuncOffset;+  UINT16   = ;            &n= bsp;            &nbs= p; Index;+  UINT8        =             &nb= sp;          *Tdata =3D NULL;+= +  ExportDir =3D (EFI_IMAGE_EXPORT_DIRECTORY*)(mCoffFile + mExportOffs= et);+  ExportDir->Characteristics =3D 0;+  ExportDir->TimeD= ateStamp =3D 0;+  ExportDir->MajorVersion =3D 0;+  ExportDir-&= gt;MinorVersion =3D0;+  ExportDir->Name =3D 0;+  ExportDir->= ;NumberOfFunctions =3D mExportSymNum;+  ExportDir->NumberOfNames = =3D mExportSymNum;+  ExportDir->Base =3D EFI_IMAGE_EXPORT_ORDINAL_B= ASE;+  ExportDir->AddressOfFunctions =3D mExportOffset + sizeof(EFI= _IMAGE_EXPORT_DIRECTORY);+  ExportDir->AddressOfNames =3D ExportDir= ->AddressOfFunctions + EFI_IMAGE_EXPORT_ADDR_SIZE * mExportSymNum;+ = ; ExportDir->AddressOfNameOrdinals =3D ExportDir->AddressOfNames + EF= I_IMAGE_EXPORT_ADDR_SIZE * mExportSymNum;++  FileNameOffset =3D Export= Dir->AddressOfNameOrdinals + EFI_IMAGE_EXPORT_ORDINAL_SIZE * mExportSymN= um;+  FuncOffset =3D FileNameOffset + strlen(mInImageName) + 1;++ = ; // Write Input image Name RVA+  Tdata =3D mCoffFile + 12;+  *(U= INT32 *)Tdata =3D FileNameOffset;++  // Write Input image Name+  = strcpy((char *)(mCoffFile + FileNameOffset), mInImageName);++  for (In= dex =3D 0; Index < mExportSymNum; Index++) {+    //+ = ;   // Write Export Address Table+    //+ &nb= sp;  Tdata =3D mCoffFile + ExportDir->AddressOfFunctions + Index * = EFI_IMAGE_EXPORT_ADDR_SIZE;+    *(UINT32 *)Tdata =3D mExport= RVA[Index];++    //+    // Write Export Name = Pointer Table+    //+    Tdata =3D mCoffFile = + ExportDir->AddressOfNames + Index * EFI_IMAGE_EXPORT_ADDR_SIZE;+ =    *(UINT32 *)Tdata =3D FuncOffset;++    //+ =    // Write Export Ordinal table+    //+ &nbs= p;  Tdata =3D mCoffFile + ExportDir->AddressOfNameOrdinals + Index = * EFI_IMAGE_EXPORT_ORDINAL_SIZE;+    *(UINT16 *)Tdata =3D In= dex;++    //+    // Write Export Name Table+&= nbsp;   //+    strcpy((char *)(mCoffFile + FuncOff= set), mExportSymName[Index]);+    FuncOffset +=3D strlen(mEx= portSymName[Index]) + 1;+  }++  NtHdr =3D (EFI_IMAGE_OPTIONAL_HEA= DER_UNION *)(mCoffFile + mNtHdrOffset);+  DataDir =3D &NtHdr->P= e32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_EXPORT];+&nb= sp; DataDir->VirtualAddress =3D mExportOffset;+  DataDir->Size = =3D mExportSize;++} diff --git a/BaseTools/Source/C/GenFw/ElfConvert.c b/Ba= seTools/Source/C/GenFw/ElfConvert.c

index 7db8721167..795cdbd743 100644

--- a/BaseTools/Source/C/= GenFw/ElfConvert.c

+++ b/BaseTools/Source/C/GenFw/ElfConvert.c

<= p class=3DMsoPlainText>@@ -223,6 +223,16 @@ ConvertElf (=

 &nbs= p; VerboseMsg ("Write debug info.");   ElfFunctions.Wri= teDebug (); +  //+  // For PRM Driver to Write export info.+ = ; //+  if (mExportFlag) {+    VerboseMsg ("Scan sy= mbol info.");+    ElfFunctions.ScanSymbol ();+ &nb= sp;  VerboseMsg ("Write export info.");+    E= lfFunctions.WriteExport ();+  }+   //   // Make su= re image size is correct before returning the new image.   //diff= --git a/BaseTools/Source/C/GenFw/ElfConvert.h b/BaseTools/Source/C/GenFw/E= lfConvert.h

index 801e8de4a2..7920765fbb 100644

--- a/BaseTools/Source/C/GenFw/ElfConvert.h<= /o:p>

+++ b/BaseTools/= Source/C/GenFw/ElfConvert.h

@@ -24,6 +24,7 @@ extern UINT8  *mCoffFile;  ext= ern UINT32 mTableOffset; extern UINT32 mOutImageType; extern UINT32 mFileBu= fferSize;+extern BOOLEAN mExportFlag;  // // Common EFI specific data.= @@ -31,6 +32,42 @@ extern UINT32 mFileBufferSize;

#define ELF_HII_SECTION_NAME ".= hii" #define ELF_STRTAB_SECTION_NAME ".strtab" #define MAX_C= OFF_ALIGNMENT 0x10000+#define ELF_SYMBOL_SECTION_NAME ".symtab"++= //+// Platform Runtime Mechanism (PRM) specific data.+//+#define PRM_MODULE= _EXPORT_SYMBOL_NUM 10+#define PRM_HANDLER_NAME_MAXIMUM_LENGTH 128++#define = PRM_MODULE_EXPORT_DESCRIPTOR_NAME       =   "PrmModuleExportDescriptor"+#define PRM_MODULE_EXPORT_DESC= RIPTOR_SIGNATURE    SIGNATURE_64 ('P', 'R', 'M', '_', 'M', '= E', 'D', 'T')+#define PRM_MODULE_EXPORT_REVISION    &nb= sp;           0x0++//+// = Platform Runtime Mechanism (PRM) Export Descriptor Structures+//+#pragma pa= ck(push, 1)++typedef struct {+  EFI_GUID     =             &nb= sp;            PrmHa= ndlerGuid;+  CHAR8        &nbs= p;            &= nbsp;           PrmHandle= rName[PRM_HANDLER_NAME_MAXIMUM_LENGTH];+} PRM_HANDLER_EXPORT_DESCRIPTOR_STR= UCT;++typedef struct {+  UINT64      &nb= sp;            =              Si= gnature;+  UINT16         = ;            &n= bsp;          Revision;+ = UINT16           &n= bsp;            = ;        NumberPrmHandlers;+  EFI_G= UID            =             &nb= sp;     PlatformGuid;+  EFI_GUID   =             &nb= sp;            =   ModuleGuid;+} PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER;++typedef s= truct {+  PRM_MODULE_EXPORT_DESCRIPTOR_STRUCT_HEADER  Header;+&nb= sp; PRM_HANDLER_EXPORT_DESCRIPTOR_STRUCT      = ;  PrmHandlerExportDescriptors[1];+} PRM_MODULE_EXPORT_DESCRIPTOR_STRU= CT;++#pragma pack(pop)  // // Filter Types@@ -38,7 +75,8 @@ extern UIN= T32 mFileBufferSize;

typedef enum {   SECTION_TEXT,   SECTION_HII,= -  SECTION_DATA+  SECTION_DATA,+  SECTION_SYMBOL  } SEC= TION_FILTER_TYPES; @@ -50,6 +88,8 @@ typedef struct {

=

   BOOLEAN (*WriteSect= ions) (SECTION_FILTER_TYPES  FilterType);   VOID  =   (*WriteRelocations) ();   VOID    (*WriteDe= bug) ();+  VOID    (*ScanSymbol) ();+  VOID &= nbsp;  (*WriteExport) ();   VOID    (*SetImag= eSize) ();   VOID    (*CleanUp) (); diff --git a/B= aseTools/Source/C/GenFw/GenFw.c b/BaseTools/Source/C/GenFw/GenFw.c

index 8cab70ba4d..c= 7de5b89d8 100644

--- a/BaseTools/Source/C/GenFw/GenFw.c

+++ b/BaseTools/Source/C/GenFw/GenFw.c

@@ -87,7 +87= ,7 @@ UINT32 mImageTimeStamp =3D 0;

UINT32 mImageSize =3D 0; UINT32 mOutImageType =3D = FW_DUMMY_IMAGE; BOOLEAN mIsConvertXip =3D FALSE;-+BOOLEAN mExportFlag =3D F= ALSE;  STATIC EFI_STATUS@@ -1436,6 +1436,15 @@ Returns:

    &= nbsp;  continue;     } +    if (str= icmp (argv[0], "--PRM") =3D=3D 0) {+     = ; if (!mExportFlag) {+        mExportFla= g =3D TRUE;+      }+     = argc --;+      argv ++;+    &= nbsp; continue;+    }+     if (argv[0][0= ] =3D=3D '-') {       Error (NULL, 0, 1000, &= quot;Unknown option", argv[0]);       go= to Finish;diff --git a/BaseTools/Source/C/Include/IndustryStandard/PeImage.= h b/BaseTools/Source/C/Include/IndustryStandard/PeImage.h=

index f17b8ee19b..21c968e650= 100644

---= a/BaseTools/Source/C/Include/IndustryStandard/PeImage.h<= /p>

+++ b/BaseTools/Source/C/Incl= ude/IndustryStandard/PeImage.h

@@ -571,6 +571,13 @@ typedef struct {=

   UINT32  Ad= dressOfNameOrdinals; } EFI_IMAGE_EXPORT_DIRECTORY; +//+// Based export type= s.+//+#define EFI_IMAGE_EXPORT_ORDINAL_BASE     1+#defi= ne EFI_IMAGE_EXPORT_ADDR_SIZE        4+#= define EFI_IMAGE_EXPORT_ORDINAL_SIZE     2+ /// /// DLL= support. /// Import Format--

2.26.2.windows.1

 

_._,_._,_

G= roups.io Links:

You receive all messages sent to this group.

Vi= ew/Reply Online (#85770) | | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [importer@patchew.org]
_._,_._,_=20 ------=_NextPart_001_0022_01D80C6E.2334D330-- ------=_NextPart_000_0021_01D80C6E.2334D330 Content-Type: image/png; name="image001.png" Content-Transfer-Encoding: base64 Content-ID: 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 ------=_NextPart_000_0021_01D80C6E.2334D330--