UEFI Platform Initialization Specification
Version 1.9
  • Specification Organization
  • Revision History
  • Volume I: Pre-EFI Initialization Core Interface
  • List of Figures
  • List of Tables
  • 1. Introduction
  • 2. Overview
  • 3. PEI Services Table
  • 4. Services - PEI
  • 5. PEI Foundation
  • 6. Architectural PPIs
  • 7. PEIMs
  • 8. Additional PPIs
  • 9. PEI to DXE Handoff
  • 10. Boot Paths
  • 11. PEI Physical Memory Usage
  • 12. Special Paths Unique to the Itanium® Processor Family
  • 13. Security (SEC) Phase Information
  • 14. Dependency Expression Grammar
  • 15. TE Image
  • 16. TE Image Creation
  • 17. TE Image Loading
  • Volume II: Driver Execution Environment Core Interface
  • List of Figures
  • List of Tables
  • 1. Introduction
  • 2. Overview
  • 3. Boot Manager
  • 4. UEFI System Table
  • 5. Services - Boot Services
  • 6. Runtime Capabilities
  • 7. Services - DXE Services
  • 8. Protocols - Device Path Protocol
  • 9. DXE Foundation
  • 10. DXE Dispatcher
  • 11. DXE Drivers
  • 12. DXE Architectural Protocols
  • 13. DXE Boot Services Protocol
  • 14. DXE Runtime Protocols
  • 15. Dependency Expression Grammar
  • Appendix: Error Codes
  • Appendix: GUID Definitions
  • Volume III: Shared Architectural Elements
  • List of Figures
  • List of Tables
  • 1. Introduction
  • 2. Firmware Storage Design Discussion
  • 3. Firmware Storage Code Definitions
  • 4. HOB Design Discussion
  • 5. HOB Code Definitions
  • 6. Status Codes
  • 7. Report Status Code Routers
  • 8. PCD
  • Volume IV: Management Mode Core Interface
  • List of Figures
  • List of Tables
  • 1. Overview
  • 2. MM Foundation Entry Point
  • 3. Management Mode System Table (MMST)
  • 4. MM Protocols
  • 5. UEFI Protocols
  • 6. PI PEI PPIs
  • 7. MM Child Dispatch Protocols
  • 8. Interactions with PEI, DXE, and BDS
  • 9. Other Related Notes For Support Of MM Drivers
    • 9.1. File Types
      • 9.1.1. File Type EFI_FV_FILETYPE_MM
      • 9.1.2. File Type EFI_FV_FILETYPE_COMBINED_MM_DXE
    • 9.2. File Type EFI_FV_FILETYPE_MM_STANDALONE
    • 9.3. File Section Types
      • 9.3.1. File Section Type EFI_SECTION_MM_DEPEX
  • 10. MCA/INIT/PMI Protocol
  • 11. Extended SAL Services
  • 12. SMM SPI Protocol Stack
  • Appendix: Management Mode Backward Compatibility Types
  • Volume V: Standards
  • List of Figures
  • List of Tables
  • 1. Introduction
  • 2. SMBus Host Controller Design Discussion
  • 3. SMBus Host Controller Code Definitions
  • 4. SMBus Design Discussion
  • 5. SMBus PPI Code Definitions
  • 6. SMBIOS Protocol
  • 7. IDE Controller
  • 8. S3 Resume
  • 9. ACPI System Description Table Protocol
  • 10. PCI Host Bridge
  • 11. PCI Platform
  • 12. Hot Plug PCI
  • 13. Super I/O Protocol
  • 14. Super I/O and ISA Host Controller Interactions
  • 15. CPU I/O Protocol
  • 16. Legacy Region Protocol
  • 17. I2C Protocol Stack
  • 18. SPI Protocol Stack
  • Appendix: Error Codes
Index
UEFI Platform Initialization Specification
  • 9. Other Related Notes For Support Of MM Drivers

9. Other Related Notes For Support Of MM Drivers

9.1. File Types

The following new file types are added:

#define EFI_FV_FILETYPE_MM  0x0A
#define EFI_FV_FILETYPE_COMBINED_MM_DXE  0x0C
#define EFI_FV_FILETYPE_MM_STANDALONE  0x0E

9.1.1. File Type EFI_FV_FILETYPE_MM

The file type EFI_FV_FILETYPE_MM denotes a file that contains a PE32+ image that will be loaded into MMRAM in MM Tradition Mode.

This file type is a sectioned file that must be constructed in accordance with the following rules:

  • The file must contain at least one EFI_SECTION_PE32 section. There are no restrictions on encapsulation of this section.

  • The file must contain no more than one EFI_SECTION_VERSION section.

  • The file must contain no more than one EFI_SECTION_MM_DEPEX section.

There are no restrictions on the encapsulation of the leaf sections. In the event that more than one EFI_SECTION_PE32 section is present in the file, the selection algorithm for choosing which one represents the DXE driver that will be dispatched is defined by the LoadImage() boot service, which is used by the DXE Dispatcher. See the Platform Initialization Specification, Volume 2 for details. The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

9.1.2. File Type EFI_FV_FILETYPE_COMBINED_MM_DXE

The file type EFI_FV_FILETYPE_COMBINED_MM_DXE denotes a file that contains a PE32+ image that will be dispatched by the DXE Dispatcher and will also be loaded into MMRAM in MM Tradition Mode.

This file type is a sectioned file that must be constructed in accordance with the following rules:

  • The file must contain at least one EFI_SECTION_PE32 section. There are no restrictions on encapsulation of this section.

  • The file must contain no more than one EFI_SECTION_VERSION section.

  • The file must contain no more than one EFI_SECTION_DXE_DEPEX section. This section is ignored when the file is loaded into MMRAM.

  • The file must contain no more than one EFI_SECTION_MM_DEPEX section. This section is ignored when the file is dispatched by the DXE Dispatcher.

There are no restrictions on the encapsulation of the leaf sections. In the event that more than one EFI_SECTION_PE32 section is present in the file, the selection algorithm for choosing which one represents the DXE driver that will be dispatched is defined by the LoadImage() boot service, which is used by the DXE Dispatcher. See the Platform Initialization Specification, Volume 2 for details. The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

9.2. File Type EFI_FV_FILETYPE_MM_STANDALONE

The file type EFI_FV_FILETYPE_MM_STANDALONE denotes a file that contains a PE32+ image that will be loaded into MMRAM in MM Standalone Mode.

This file type is a sectioned file that must be constructed in accordance with the following rules:

  • The file must contain at least one EFI_SECTION_PE32 section. There are no restrictions on encapsulation of this section.

  • The file must contain no more than one EFI_SECTION_VERSION section.

  • The file must contain no more than one EFI_SECTION_MM_DEPEX section.

There are no restrictions on the encapsulation of the leaf sections. In the event that more than one EFI_SECTION_PE32 section is present in the file, the selection algorithm for choosing which one represents the MM driver that will be dispatched is defined by MM Foundation Dispatcher. See the Platform Initialization Specification, Volume 4 for details. The file may contain other leaf and encapsulation sections as required or enabled by the platform design.

9.3. File Section Types

The following new section type must be added:

#define EFI_SECTION_MM_DEPEX  0x1c

9.3.1. File Section Type EFI_SECTION_MM_DEPEX

Summary

A leaf section type that is used to determine the dispatch order for an MM Driver.

Prototype

typedef EFI_COMMON_SECTION_HEADER EFI_MM_DEPEX_SECTION;

Description

The MM dependency expression section is a leaf section that contains a dependency expression that is used to determine the dispatch order for MM Drivers. Before the MMRAM invocation of the MM Driver’s entry point, this dependency expression must evaluate to TRUE. See the Platform Initialization Specification, Volume 2 for details regarding the format of the dependency expression.

The dependency expression may refer to protocols installed in either the UEFI or the MM protocol database.

Previous Next

© Copyright 2024, UEFI Forum, Inc..

Built with Sphinx using a theme provided by Read the Docs.