Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOC] Add PI1.5 standalone SMM support in INF file (Bugzilla Bug 550) #12

Open
tianocore-issues opened this issue May 18, 2017 · 4 comments

Comments

@tianocore-issues
Copy link

This issue was created automatically with bugzilla2github

Bugzilla Bug 550

Date: 2017-05-18T02:38:09+00:00
From: @jyao1
To: @mdkinney
CC: yonghong.zhu

Last updated: 2017-05-18T20:15:15+00:00

@tianocore-issues
Copy link
Author

Comment 2060

Date: 2017-05-18 02:38:09 +0000
From: @jyao1

  • Industry Specification: ---
  • Releases to Fix: EDK II Master
  • Target OS: ---
  • Bugzilla Assignee(s): @mdkinney

See below change request based upon EDK II INF File Spec V1.25.

@tianocore-issues
Copy link
Author

Comment 2061

Date: 2017-05-18 02:56:16 +0000
From: @jyao1

2.15 [Depex] Section (page 34)

If the ModuleType is SEC, UEFI_APPLICATION, UEFI_DRIVER, PEI_CORE, SMM_CORE, SMM_CORE_STANDALONE, or DXE_CORE, no [Depex] sections are permitted and all library class [Depex] sections are ignored.

Module types PEIM, DXE_DRIVER, DXE_RUNTIME_DRIVER, DXE_SAL_DRIVER, SMM_STANDALONE and DXE_SMM_DRIVER require a [Depex] section unless the dependencies are specified by a PEI_DEPEX, DXE_DEPEX or SMM_DEPEX in the [Binaries] section.

3.2 Component INF Definition (page 39)
elif (MODULE_TYPE == "PEIM"
|| MODULE_TYPE == "DXE_DRIVER"
|| MODULE_TYPE == "DXE_RUNTIME_DRIVER"
|| MODULE_TYPE == "DXE_SAL_DRIVER"
|| MODULE_TYPE == "SMM_STANDALONE"
|| MODULE_TYPE == "DXE_SMM_DRIVER"):
<Depex>+
elif (MODULE_TYPE == "PEI_CORE"
|| MODULE_TYPE == "DXE_CORE"
|| MODULE_TYPE == "SMM_CORE"
|| MODULE_TYPE == "SMM_CORE_STANDALONE"
|| MODULE_TYPE == "UEFI_APPLCIATION"):
Do not specify a depex section.

3.2.1 Common Definitions (page 44)
<ModuleType> ::= {"BASE"} {"SEC"} {"PEI_CORE"} {"PEIM"}
{"DXE_CORE"} {"DXE_DRIVER"} {"SMM_CORE"} {"SMM_CORE_STANDALONE"}
{"DXE_RUNTIME_DRIVER"} {"DXE_SAL_DRIVER"}
{"DXE_SMM_DRIVER"} {"SMM_STANDALONE"} {"UEFI_DRIVER"}
{"UEFI_APPLICATION"} {"USER_DEFINED"}

<Edk2ModuleType> ::= {"BASE"} {"SEC"} {"PEI_CORE"} {"PEIM"}
{"DXE_CORE"} {"DXE_DRIVER"}
{"DXE_SAL_DRIVER"}
{"DXE_RUNTIME_DRIVER"}
{"SMM_CORE"} {"DXE_SMM_DRIVER"}
{"SMM_CORE_STANDALONE"} {"SMM_STANDALONE"}
{"UEFI_DRIVER"} {"UEFI_APPLICATION"}

3.6 [LibraryClasses] Sections (page 67)
<ModuleType> ::= {"BASE"} {"SEC"} {"PEI_CORE"} {"PEIM"}
{"DXE_CORE"} {"DXE_DRIVER"} {"SMM_CORE"} {"SMM_CORE_STANDALONE"}
{"DXE_SMM_DRIVER"} {"SMM_STANDALONE"} {"DXE_RUNTIME_DRIVER"}
{"DXE_SAL_DRIVER"} {"UEFI_DRIVER"}
{"UEFI_APPLICATION"} {"USER_DEFINED"}

3.14 [Depex] Sections (page 87)
Drivers with MODULE_TYPE set to SEC, PEI_CORE, DXE_CORE, SMM_CORE, SMM_CORE_STANDALONE, UEFI_DRIVER and UEFI_APPLICATION cannot have [Depex] sections. Libraries and modules that are USER_DEFINED may have a [Depex] section. All remaining drivers, PEIM, DXE_DRIVER, DXE_SAL_DRIVER, DXE_RUNTIME_DRIVER, SMM_STANDALONE and DXE_SMM_DRIVER module types must have a [Depex] section.

Libraries of type SEC, PEI_CORE, DXE_CORE, SMM_CORE, SMM_CORE_STANDALONE and UEFI_APPLICATION are not allowed to have a [Depex].

If the module is not a library (no LIBRARY_CLASS in the [Defines] section) and the MODULE_TYPE is SEC, SMM_CORE, SMM_CORE_STANDALONE, DXE_CORE, PEI_CORE, UEFI_DRIVER or UEFI_APPLICATION a Depex section is not permitted.

If the module is a library (...) and there is no module type defined in Depex section's modifier and there is a MTL defined (...) and each module type in MTL is PEIM,
DXE_DRIVER, DXE_SAL_DRIVER, DXE_RUNTIME_DRIVER, DXE_SMM_DRIVER, SMM_STANDALONE or UEFI_DRIVER the build tools must create a related Depex section for each module type in XML.

Appendix G Module Types
Table 9. EDK II Module Types (page 139)

Library: BASE | SEC | PEI_CORE | PEIM | DXE_CORE | DXE_DRIVER | DXE_RUNTIME_DRIVER | DXE_SAL_DRIVER | DXE_SMM_DRIVER | SMM_STANDALONE | SMM_CORE | SMM_CORE_STANDALONE | UEFI_DRIVER | UEFI_APPLICATION | USER_DEFINED

Table 9. EDK II Module Types (page 141)

SMM_CORE SMM_CORE .efi This module is the SMM Core.
SMM_CORE_STANDALONE SMM_CORE_STANDALONE .efi This module is the standalone SMM Core.
SMM_STANDALONE SMM_STANDALONE .efi This module is the standalone SMM driver. It can only be loaded by the standalone SMM core into SMRAM. These modules only execute in physical mode, and are never destroyed. This means the services that these modules produce are available after ExitBootServices().
DXE_SMM_DRIVER DXE_SMM_DRIVER .efi

@tianocore-issues
Copy link
Author

Comment 2064

Date: 2017-05-18 02:59:55 +0000
From: @jyao1

*** Bug 549 has been marked as a duplicate of this bug. ***

@tianocore-issues
Copy link
Author

Comment 2085

Date: 2017-05-18 20:15:15 +0000
From: Yonghong Zhu <<yonghong.zhu>>

Bug scrub: Assign to module owner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant