Skip to content

Latest commit

 

History

History
91 lines (74 loc) · 6.03 KB

71_optional_features.md

File metadata and controls

91 lines (74 loc) · 6.03 KB

7.1 Optional Features

This section summarizes optional features impacting the implementation of the driver entry point of a UEFI Driver. This is not a complete summary of all the optional UEFI driver features.

Table 21 below provides the list of optional features and set of UEFI driver categories.

If an entry in the table is empty, the feature does not ever apply to that category of UEFI Driver and must never be implemented. If the entry in the table contains a value such as 1.1 or 2.0, it means the feature optionally applies to that category of UEFI Driver if, and only if, the UEFI Driver is required to run correctly on platform firmware that conforms to that specific version of the EFI Specification or UEFI Specification.

For example, 2.0 refers to the UEFI 2.0 Specification, and 1.02 refers to the EFI 1.02 Specification. If the entry in the table contains a value followed by a '+' such as 1.1+ or 2.1+, then that means the feature optionally applies to that category of UEFI Driver if the UEFI Driver is required to run correctly on platform firmware that conforms to the version of the EFI Specification or UEFI Specification specified by the value or higher values. For example, 2.0+ refers to the UEFI 2.0, 2.1, 2.2, 2.3, and 2.3.1 Specifications.

This table can be used to select features that apply to a specific UEFI Driver implementation once the UEFI Driver writer knows what types of UEFI platforms with which the UEFI Driver must be compatible as well as the set of optional features the UEFI Driver must support.

For example, if a UEFI Driver is required to run on platforms that support UEFI 2.1 or higher, the Component Name Protocol, Driver Configuration Protocol, Driver Configuration 2 Protocol, and Driver Diagnostics Protocol need not be implemented because they apply only to UEFI platforms prior to UEFI 2.1.

The Driver Health Protocol may be optionally implemented, but the Driver Health Protocol is expected to be used only by a platform that is UEFI 2.2 or higher. In this case, the UEFI Driver must not depend on the Driver Health Protocol being called to function correctly because it is not called by a UEFI 2.1 platform.

Table 21-UEFI Driver Feature Selection Matrix

| UEFI Driver Model Non-UEFI Driver Model | | ----------------------------- | ------------------ | ------ | ----------------------- | ------ | ------ | ------ | ------ | ------ | | Driver Binding Protocol | 1.1+ | 1.1+ | 1.1+ | 1.1+ | | | | | | Component Name 2 Protocol | 2.0+ | 2.0+ | 2.0+ | 2.0+ | | | | | | HII Packages | 2.1+ | 2.1+ | 2.1+ | 2.1+ | 2.1+ | 2.1+ | 2.1+ | | | HII Config Access Protocol | | | | | 2.1+ | 2.1+ | 2.1+ | | | Driver Health Protocol | 2.2+ | 2.2+ | 2.2+ | 2.2+ | | | | | | Driver Diagnostics 2 Protocol | 2.0+ | 2.0+ | 2.0+ | 2.0+ | | | | | | Driver Family Override Protocol | 2.1+ | 2.1+ | 2.1+ | 2.1+ | | | | | | Driver Supported EFI Version Protocol | 2.1+ | 2.1+ | 2.1+ | 2.1+ | 2.1+ | 2.1+ | 2.1+ | | | Unload() | 1.02+ | 1.02 + | 1.02+ | 1.02 + | 1.02 + | 1.02+ | 1.02+ | | | Exit Boot Services Event | 1.02+ | 1.02 + | 1.02+ | 1.02 + | 1.02 + | 1.02+ | 1.02+ | | | Set Virtual Address Map Event | | | | 1.02 + | 1.02 + | | | | | Component Name Protocol | 1.1 | 1.1 | 1.1 | 1.1 | | | | | | Driver Configuration Protocol | 1.1 | 1.1 | 1.1 | 1.1 | | | | | | Driver Configuration 2 Protocol | 2.0 | 2.0 | 2.0 | 2.0 | | | | | | Driver Diagnostics Protocol | 1.1 | 1.1 | 1.1 | 1.1 | | | | |