From nobody Thu Apr 25 08:44:14 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+43342+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+43342+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1562312565; cv=none; d=zoho.com; s=zohoarc; b=IwrozYI+76h6y9FHlSi6V5WLnRsJ73B4duMNj4Zw1QaucyZcOzGoBFiAx+yXC22Zwn+6HFLytcNMn9cXJMfs8XiVEEpA6SCEljixfFp8S8gwgv/9V68UqxwK/JvVephcspmIRufzimzjM6a/MjgM8eLqtqLqXkOcGgngAiNWm0w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1562312565; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To:ARC-Authentication-Results; bh=1rroCM696yfbfSXMiML13WVzYrwJvcakX6xe+S0byb8=; b=YdWZis5RsT1EqSvwzJPt4sUetY5FdjcC5157JUe7PpnjrDfEUDFO2GRYbGNYjIAs4L+UgtvWqdFuvxP3AXhA+fijV2TRrNz4cAXd1XNSwmVJIFTnRwGeaDGICGXt2Ylzajfm29UPLaBuXlHu3KfEkMb4NA4RNQ8gKC6Uo+lU7gI= 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+43342+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 1562312565085695.9761093149835; Fri, 5 Jul 2019 00:42:45 -0700 (PDT) Return-Path: X-Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by groups.io with SMTP; Fri, 05 Jul 2019 00:42:43 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jul 2019 00:42:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,454,1557212400"; d="scan'208";a="191561510" X-Received: from xiaoyu-dev.sh.intel.com ([10.239.47.27]) by fmsmga002.fm.intel.com with ESMTP; 05 Jul 2019 00:42:42 -0700 From: "Xiaoyu Lu" To: devel@edk2.groups.io Cc: Xiaoyu Lu , Liming Gao , Jiewen Yao Subject: [edk2-devel] [edk2-InfSpecification PATCH v2] Document: Add new MODULE_TYPE HOST_APPLICATION Date: Fri, 5 Jul 2019 07:43:18 +0000 Message-Id: <20190705074318.24666-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=1562312564; bh=zlPpI9ToYiYZ+ONBbb4nSArT0H8qNgJ3vEj9ji60/Lo=; h=Cc:Date:From:Reply-To:Subject:To; b=CQHq3EzcB6cj3R63hr+RemaKgmj8CKADsdymI+44WRReXYZZVGUFeI+8E52VrMo1G+B JGZcQRZcETED+VrOkRiyq0zfvu/zNBrIl+lBRHoZImRSPN4BivcF2XzXgWolK1FXiS9/I aEGQbKhsWK1pdcqqf5Vdg7i8byncIIaCf0o= 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, execuatable file, bin, acpi table, etc. HOST_APPLICATION identify it is a executable file. Add HOST_APPLICATION module type so it's easier to identify. Cc: Liming Gao Cc: Jiewen Yao Signed-off-by: Xiaoyu Lu Reviewed-by: Liming Gao --- 1_introduction/12_terms.md | 4 ++-- 2_inf_overview/215_[depex]_section.md | 4 ++-- 2_inf_overview/26_[buildoptions]_section.md | 2 +- 3_edk_ii_inf_file_format/314_[depex]_sections.md | 7 ++++--- 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, 19 insertions(+), 12 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..a710cae 100644 --- a/2_inf_overview/215_[depex]_section.md +++ b/2_inf_overview/215_[depex]_section.md @@ -72,8 +72,8 @@ Additionally, the rules for specifying DEPEX sections are= as follows. `DXE_SMM_DRIVER` to generate an `SMM_DEPEX` section. =20 * If the ModuleType is `SEC`, `UEFI_APPLICATION`, `UEFI_DRIVER`, `PEI_CORE= `, - `SMM_CORE` or `DXE_CORE`, no `[Depex]` sections are permitted and all li= brary - class `[Depex]` sections are ignored. + `SMM_CORE`, `DXE_CORE`, `HOST_APPLICATION`, no `[Depex]` sections are + permitted and all library class `[Depex]` sections are ignored. =20 * Module types `PEIM`, `DXE_DRIVER`, `DXE_RUNTIME_DRIVER`, `DXE_SAL_DRIVER= ` and `DXE_SMM_DRIVER` require a `[Depex]` section unless the dependencies are 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..75b0139 100644 --- a/3_edk_ii_inf_file_format/314_[depex]_sections.md +++ b/3_edk_ii_inf_file_format/314_[depex]_sections.md @@ -120,9 +120,10 @@ section. =20 If the module is not a library (no `LIBRARY_CLASS` in the `[Defines]` sect= ion) and the `MODULE_TYPE` is `SEC`, `SMM_CORE`, `DXE_CORE`, `PEI_CORE`, -`UEFI_DRIVER` or `UEFI_APPLICATION` a Depex section is not permitted. If o= ne is -found, the build tools must exit gracefully and provide the user with an e= rror -message stating the `[Depex]` section is not valid for the `MODULE_TYPE` +`UEFI_DRIVER`, `UEFI_APPLICATION` or `HOST_APPLICATION` a Depex section is +not permitted. If one is found, the build tools must exit gracefully and +provide the user with an error message stating the `[Depex]` section is not +valid for the `MODULE_TYPE` =20 If the module is a library (with a `LIBRARY_CLASS` statement in the `[Defi= nes]` section) and there is no module type defined in Depex section's modifier a= nd 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 (#43342): https://edk2.groups.io/g/devel/message/43342 Mute This Topic: https://groups.io/mt/32315447/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-