From nobody Fri Apr 26 19:56:41 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+43205+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+43205+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1562142092; cv=none; d=zoho.com; s=zohoarc; b=MK99FUdn+n+ZJHfaM2aLUxzbJTAqY+7peiV9K4NovOGxOd20mFYUeoQiqCDS8RE/wBL+IWg2MNx+lMMy7tJGhg5iUhjigEPNyXlr9EB6tuN6BjgZD2LFOuNLXeKK2Nvj7GEi6JHGhJqKqnoYjl/RxBafoppRqsf7PAY+SbAZI4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1562142092; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To:ARC-Authentication-Results; bh=3CBOVHhbKlmoT6okWTaWKWD6mANWwTvbZuLY8sLV2Vc=; b=AiXbeiTMi5KAEipZdHjA3m4f8nJg9lFDzzW+NgRym7NQF23srS4F1Jcn0AYysLiE67VEpx4L9o1RuE+I9XitT+xERwtCUTHouFtpNJNiMkpiwLWJOMaEZW0jWqDRtoKpFK6GqwI7EJN18hYKkt2ezTW3wByyO2d3GpXWLiqsJtg= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+43205+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1562142092371557.607273807416; Wed, 3 Jul 2019 01:21:32 -0700 (PDT) Return-Path: X-Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by groups.io with SMTP; Wed, 03 Jul 2019 01:21:31 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Jul 2019 01:21:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,446,1557212400"; d="scan'208";a="174860889" X-Received: from xiaoyu-dev.sh.intel.com ([10.239.47.27]) by orsmga002.jf.intel.com with ESMTP; 03 Jul 2019 01:21:29 -0700 From: "Xiaoyu Lu" To: devel@edk2.groups.io Cc: Xiaoyu Lu , Liming Gao , Jiewen Yao Subject: [edk2-devel] [edk2-InfSpecification PATCH] Document: Add new MODULE_TYPE HOST_APPLICATION Date: Wed, 3 Jul 2019 08:21:54 +0000 Message-Id: <20190703082154.21392-1-xiaoyux.lu@intel.com> Precedence: Bulk List-Unsubscribe: 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,xiaoyux.lu@intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1562142091; bh=wgAGhvoWxl58F8R6nUy4WwJGM6Z8WYfa3M/8StZPiR0=; h=Cc:Date:From:Reply-To:Subject:To; b=gSzzzWvyeAKKOeCQCLv+0GKw4TzJm8Nd7i0uOz/+ePPGp5vsJ1IwPNdydTzCtHO/qHh AQM06PX1fnitSVUp3OLRpyEeB46I7s6xfOIaQuOOJOiQuhAzw+R+bw58sWTqJGP7cI4gM T+Xv/xzuaPbxxpjSNY72sEuSxAhahombjUI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1952 Background: Host-based Firmware Analyzer (HBFA) is a opensouce tools enables advanced testing of UEFI and UEFI PI drivers in developer's OS environment. It will generate OS application which can run directly in OS environment. But there is no explicit MODULE_TYPE to indicate those modules. Difference: USER_DEFINED can be anyting, exe, bin, acpi table, etc. HOST_APPLICATION identify it is exe file. Add HOST_APPLICATION module type so it's easier to identify. Cc: Liming Gao Cc: Jiewen Yao Signed-off-by: Xiaoyu Lu --- 1_introduction/12_terms.md | 4 ++-- 2_inf_overview/215_[depex]_section.md | 2 +- 2_inf_overview/26_[buildoptions]_section.md | 2 +- 3_edk_ii_inf_file_format/314_[depex]_sections.md | 6 +++--- 3_edk_ii_inf_file_format/32_component_inf_definition.md | 4 +++- 3_edk_ii_inf_file_format/34_[defines]_section.md | 6 ++++-- README.md | 3 ++- appendix_f_module_types.md | 1 + 8 files changed, 17 insertions(+), 11 deletions(-) diff --git a/1_introduction/12_terms.md b/1_introduction/12_terms.md index 14827fd..ba96813 100644 --- a/1_introduction/12_terms.md +++ b/1_introduction/12_terms.md @@ -232,8 +232,8 @@ with a similar set of requirements. A module that is of= module type `BASE`, depends only on headers and libraries provided in the MDE, while a module = that is of module type DXE_DRIVER depends on common DXE components. For a defin= ition of the various module types, see module type. The EDK II build system also -permits modules of type `USER_DEFINED`. These modules will not be processe= d by -the EDK II Build system. +permits modules of type `USER_DEFINED` and `HOST_APPLICATION`. These modul= es +will not be processed by the EDK II Build system. =20 **Package** =20 diff --git a/2_inf_overview/215_[depex]_section.md b/2_inf_overview/215_[de= pex]_section.md index 912228f..e144d08 100644 --- a/2_inf_overview/215_[depex]_section.md +++ b/2_inf_overview/215_[depex]_section.md @@ -65,7 +65,7 @@ Additionally, the rules for specifying DEPEX sections are= as follows. [Depex.IA32]) are not permitted. It is permitted to have a Depex section= if one ModuleType modifier is specified (i.e., [Depex.common.PEIM). =20 -* If the ModuleType is `USER_DEFINED`, then a `[Depex]` section is optiona= l. If +* If the ModuleType is `USER_DEFINED` or `HOST_APPLICATION`, then a `[Depe= x]` section is optional. If a PEI, SMM or DXE DEPEX section is required, the user must specify a ModuleType of `PEIM` to generate a `PEI_DEPEX` section, a ModuleType of `DXE_DRIVER` to generate a `DXE_DEPEX` section, or a ModuleType of diff --git a/2_inf_overview/26_[buildoptions]_section.md b/2_inf_overview/2= 6_[buildoptions]_section.md index 667d8d9..5e9059c 100644 --- a/2_inf_overview/26_[buildoptions]_section.md +++ b/2_inf_overview/26_[buildoptions]_section.md @@ -74,7 +74,7 @@ shown above. | `TAGNAME` | YES | Yes =3D * | `Conf/tools_def.txt` file defi= nes several different tag names - these are defined by developers; the defa= ult tag name, `MYTOOLS`, is provided in the template for tools_def.txt and = set in the `Conf/target.txt` file. | | `ARCH` | YES | Yes =3D * | `Conf/tools_def.txt` defines a= t least four architectures: `IA32`, `X64` and `EBC`. This tag must use all = capital letters for the tag. Additional Architectures, such as PPC or ARM m= ay be added as support becomes available. | | `TOOLCODE` | YES | NO | The tool code must be one of the= defined tool codes in the `Conf/tools_def.txt` file. The flags defined in = this section are appended to flags defined in the `tools_def.txt` file for = individual tools. | -| | | | EXCEPTION: If the INF `MODULE_TY= PE`, defined in the `[Defines]` section is `USER_DEFINED`, then the flags l= isted in this section are the only flags used for the TOOLCODE command spec= ified in `Conf/ tools_def.txt`. | +| | | | EXCEPTION: If the INF `MODULE_TY= PE`, defined in the `[Defines]` section is `USER_DEFINED` or `HOST_APPLICAT= ION`, then the flags listed in this section are the only flags used for the= TOOLCODE command specified in `Conf/ tools_def.txt`. = | | `ATTRIBUTE` | YES | NO | The attribute must be specific t= o the tool code and must be a valid attribute handled by the build system. = = | =20 Developers should use extreme caution when specifying items in this sectio= n. diff --git a/3_edk_ii_inf_file_format/314_[depex]_sections.md b/3_edk_ii_in= f_file_format/314_[depex]_sections.md index 02d5bb4..de307a2 100644 --- a/3_edk_ii_inf_file_format/314_[depex]_sections.md +++ b/3_edk_ii_inf_file_format/314_[depex]_sections.md @@ -84,9 +84,9 @@ of a new section or the end of file. =20 Drivers with `MODULE_TYPE` set to `SEC`, `PEI_CORE`, `DXE_CORE`, `SMM_CORE= `, `UEFI_DRIVER` and `UEFI_APPLICATION` cannot have `[Depex]` sections. Libra= ries -and modules that are `USER_DEFINED` may have a `[Depex]` section. All rema= ining -drivers, `PEIM`, `DXE_DRIVER`, `DXE_SAL_DRIVER`, `DXE_RUNTIME_DRIVER` and -`DXE_SMM_DRIVER` module types must have a `[Depex]` section. +and modules that are `USER_DEFINED` or `HOST_APPLICATION` may have a `[Dep= ex]` +section. All remaining drivers, `PEIM`, `DXE_DRIVER`, `DXE_SAL_DRIVER`, +`DXE_RUNTIME_DRIVER` and `DXE_SMM_DRIVER` module types must have a `[Depex= ]` section. =20 Libraries of type `SEC`, `PEI_CORE`, `DXE_CORE`, `SMM_CORE and` `UEFI_APPLICATION` are not allowed to have a `[Depex]`. The `MODULE_TYPE` = entry diff --git a/3_edk_ii_inf_file_format/32_component_inf_definition.md b/3_ed= k_ii_inf_file_format/32_component_inf_definition.md index b80218b..164771c 100644 --- a/3_edk_ii_inf_file_format/32_component_inf_definition.md +++ b/3_edk_ii_inf_file_format/32_component_inf_definition.md @@ -62,7 +62,8 @@ EBNF). if (LIBRARY_CLASS is declared in Defines Section): * elif (MODULE_TYPE =3D=3D "USER_DEFINED" - || MODULE_TYPE =3D=3D "UEFI_DRIVER"): + || MODULE_TYPE =3D=3D "UEFI_DRIVER" + || MODULE_TYPE =3D=3D "HOST_APPLICATION"): * elif (MODULE_TYPE =3D=3D "PEIM" || MODULE_TYPE =3D=3D "DXE_DRIVER" @@ -257,6 +258,7 @@ The following are common definitions used by multiple s= ection types. {"DXE_RUNTIME_DRIVER"} {"DXE_SAL_DRIVER"} {"DXE_SMM_DRIVER"} {"UEFI_DRIVER"} {"UEFI_APPLICATION"} {"USER_DEFINED"} + {"HOST_APPLICATION"} ::=3D [" " ]* ::=3D {} {} ::=3D {} {} diff --git a/3_edk_ii_inf_file_format/34_[defines]_section.md b/3_edk_ii_in= f_file_format/34_[defines]_section.md index 69be2b0..78ac58d 100644 --- a/3_edk_ii_inf_file_format/34_[defines]_section.md +++ b/3_edk_ii_inf_file_format/34_[defines]_section.md @@ -191,8 +191,10 @@ the `MODULE_UNI_FILE` entry must be a Unicode file wit= h an extension of .uni, Drivers and applications are not allowed to have a `MODULE_TYPE` of `"BASE= `". Only libraries are permitted to a have a `MODULE_TYPE` of `"BASE`". A INF = file can be used to specify other binary files types, such as logo images or -legacy16 option ROMs. The `USER_DEFINED` module type must be used in all c= ases -where the module type is not a member of ``. +legacy16 option ROMs. `HOST_APPLICATION` module should be used to sepcify = host +application that can run in OS environment directly. The `USER_DEFINED` mo= dule type +must be used in all cases where the module type is not a member of +``. =20 **_INF_VERSION_** =20 diff --git a/README.md b/README.md index 6819441..60fba19 100644 --- a/README.md +++ b/README.md @@ -201,4 +201,5 @@ Copyright (c) 2007-2017, Intel Corporation. All rights = reserved. | | Add clarification that !error statement is not permitted in= INF file = = | = | | | INF Spec: FixedAtBuild (VOID*) PCD use in the [DEPEX] secti= on = = | = | | | [#1162](https://bugzilla.tianocore.org/show_bug.cgi?id=3D11= 62) Correct the item in Table 1 to align with 3.4 section = = | = | -| 1.28 | [#1453](https://bugzilla.tianocore.org/show_bug.cgi?id=3D14= 53) Update INF spec to remove EDK related contents = = = = | Mar 2019 = | \ No newline at end of file +| 1.28 | [#1453](https://bugzilla.tianocore.org/show_bug.cgi?id=3D14= 53) Update INF spec to remove EDK related contents = = = = | Mar 2019 = | +| 1.29 | [#1952](https://bugzilla.tianocore.org/show_bug.cgi?id=3D19= 52) Add new MODULE_TYPE HOST_APPLICATION = = | July= 2019 | diff --git a/appendix_f_module_types.md b/appendix_f_module_types.md index 7082332..f7c2200 100644 --- a/appendix_f_module_types.md +++ b/appendix_f_module_types.md @@ -57,6 +57,7 @@ | UEFI_DRIVER | UEFI_DRIVER = = | .efi | This module type = is used by UEFI Drivers that are compliant with the EFI 1.10 Specification = or the UEFI 2.x Specification. These modules provide services in the boot s= ervices execution environment. UEFI Drivers that return EFI_SUCCESS are not= unloaded from memory. UEFI Drivers that return an error are unloaded from = memory. = = | | UEFI_APPLICATION | UEFI_APPLICATION = = | .efi | This module type = is used by UEFI Applications that are compliant with the EFI 1.10 Specifica= tion or the UEFI 2.x Specification. UEFI Applications are always unloaded w= hen they exit. = = = = | | USER_DEFINED | USER_DEFINED = = | .bin or .rom | User defined exte= nsion = = = = = = | +| HOST_APPLICATION | HOST_APPLICATION = = | .exe or NULL | This module type = is for building applications which can run in host OS directly. = = = = = = | | EFI Dependency Section | Any - the code for these sections is includ= ed as part of any module, and no separate INF is required. = | .dpx | This is the compi= led dependency section for SMM, PEIM or DXE modules. A dependency section m= ay also be generated from a dependency source (.dxs) file, if specified in = the `[Sources]` section. = = = = | | EFI User Interface Section | Any - the code for these sections is includ= ed as part of any module, and no separate INF is required. = | .ui | This is a process= ed User Interface section = = = = = = | | EFI Version Section | Any - the code for these sections is includ= ed as part of any module, and no separate INF is required. = | .ver | This is a process= ed Version section | --=20 2.17.1 -=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 (#43205): https://edk2.groups.io/g/devel/message/43205 Mute This Topic: https://groups.io/mt/32295526/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-