|
@@ -1,7 +1,7 @@
|
|
|
/** @file
|
|
|
Header file for SMM Access Driver.
|
|
|
|
|
|
- Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
|
|
+ Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
|
|
**/
|
|
@@ -53,23 +53,22 @@ typedef struct {
|
|
|
This driver installs an SMM Access Protocol
|
|
|
- <b>Introduction</b> \n
|
|
|
This module publishes the SMM access protocol. The protocol is used by the SMM Base driver to access the SMRAM region when the processor is not in SMM.
|
|
|
- The SMM Base driver uses the services provided by the SMM access protocol to open SMRAM during post and copy the SMM handler.
|
|
|
+ The SMM Base driver uses the services provided by the SMM access protocol to open SMRAM during POST and copy the SMM handler.
|
|
|
SMM access protocol is also used to close the SMRAM region once the copying is done.
|
|
|
Finally, the SMM access protocol provides services to "Lock" the SMRAM region.
|
|
|
Please refer the SMM Protocols section in the attached SMM CIS Specification version 0.9 for further details.
|
|
|
This driver is required if SMM is supported. Proper configuration of SMM registers is recommended even if SMM is not supported.
|
|
|
|
|
|
- - @result
|
|
|
- Publishes the _EFI_SMM_ACCESS_PROTOCOL: Documented in the System Management Mode Core Interface Specification, available at the URL: http://www.intel.com/technology/framework/spec.htm
|
|
|
-
|
|
|
- <b>Porting Recommendations</b> \n
|
|
|
No modification of this module is recommended. Any modification should be done in compliance with the _EFI_SMM_ACCESS_PROTOCOL protocol definition.
|
|
|
|
|
|
- @param[in] ImageHandle - Handle for the image of this driver
|
|
|
- @param[in] SystemTable - Pointer to the EFI System Table
|
|
|
+ @param[in] ImageHandle - Handle for the image of this driver
|
|
|
+ @param[in] SystemTable - Pointer to the EFI System Table
|
|
|
|
|
|
- @retval EFI_SUCCESS - Protocol was installed successfully
|
|
|
- @exception EFI_UNSUPPORTED - Protocol was not installed
|
|
|
+ @retval EFI_SUCCESS - Protocol was installed successfully
|
|
|
+ @retval EFI_UNSUPPORTED - Protocol was not installed
|
|
|
+ @retval EFI_NOT_FOUND - Protocol can't be found.
|
|
|
+ @retval EFI_OUT_OF_RESOURCES - Protocol does not have enough resources to initialize the driver.
|
|
|
**/
|
|
|
EFI_STATUS
|
|
|
EFIAPI
|
|
@@ -87,8 +86,7 @@ SmmAccessDriverEntryPoint (
|
|
|
@param[in] This - Pointer to the SMM Access Interface.
|
|
|
|
|
|
@retval EFI_SUCCESS - The region was successfully opened.
|
|
|
- @retval EFI_DEVICE_ERROR - The region could not be opened because locked by
|
|
|
- chipset.
|
|
|
+ @retval EFI_DEVICE_ERROR - The region could not be opened because locked by chipset.
|
|
|
@retval EFI_INVALID_PARAMETER - The descriptor index was out of bounds.
|
|
|
**/
|
|
|
EFI_STATUS
|
|
@@ -103,11 +101,10 @@ Open (
|
|
|
The use of "close" means that the memory is only visible from SMM agents,
|
|
|
not from BS or RT code.
|
|
|
|
|
|
- @param[in] This - Pointer to the SMM Access Interface.
|
|
|
+ @param[in] This - Pointer to the SMM Access Interface.
|
|
|
|
|
|
@retval EFI_SUCCESS - The region was successfully closed.
|
|
|
- @retval EFI_DEVICE_ERROR - The region could not be closed because locked by
|
|
|
- chipset.
|
|
|
+ @retval EFI_DEVICE_ERROR - The region could not be closed because locked by chipset.
|
|
|
@retval EFI_INVALID_PARAMETER - The descriptor index was out of bounds.
|
|
|
**/
|
|
|
EFI_STATUS
|
|
@@ -122,11 +119,11 @@ Close (
|
|
|
The use of "lock" means that the memory can no longer be opened
|
|
|
to BS state..
|
|
|
|
|
|
- @param[in] This - Pointer to the SMM Access Interface.
|
|
|
+ @param[in] This - Pointer to the SMM Access Interface.
|
|
|
|
|
|
@retval EFI_SUCCESS - The region was successfully locked.
|
|
|
@retval EFI_DEVICE_ERROR - The region could not be locked because at least
|
|
|
- one range is still open.
|
|
|
+ one range is still open.
|
|
|
@retval EFI_INVALID_PARAMETER - The descriptor index was out of bounds.
|
|
|
**/
|
|
|
EFI_STATUS
|
|
@@ -142,13 +139,13 @@ Lock (
|
|
|
memory controller capabilities.
|
|
|
|
|
|
@param[in] This - Pointer to the SMRAM Access Interface.
|
|
|
- @param[in] SmramMapSize - Pointer to the variable containing size of the
|
|
|
- buffer to contain the description information.
|
|
|
- @param[in] SmramMap - Buffer containing the data describing the Smram
|
|
|
- region descriptors.
|
|
|
+ @param[in, out] SmramMapSize - Pointer to the variable containing size of the
|
|
|
+ buffer to contain the description information.
|
|
|
+ @param[in, out] SmramMap - Buffer containing the data describing the Smram
|
|
|
+ region descriptors.
|
|
|
|
|
|
- @retval EFI_BUFFER_TOO_SMALL - The user did not provide a sufficient buffer.
|
|
|
- @retval EFI_SUCCESS - The user provided a sufficiently-sized buffer.
|
|
|
+ @retval EFI_BUFFER_TOO_SMALL - The user did not provide a sufficient buffer.
|
|
|
+ @retval EFI_SUCCESS - The user provided a sufficiently-sized buffer.
|
|
|
**/
|
|
|
EFI_STATUS
|
|
|
EFIAPI
|