TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | _EFI_LEGACY_SPI_CONTROLLER_PROTOCOL |
Macros | |
#define | EFI_LEGACY_SPI_CONTROLLER_GUID |
Variables | |
EFI_GUID | gEfiLegacySpiControllerProtocolGuid |
This file defines the Legacy SPI Controller Protocol.
Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file LegacySpiController.h.
#define EFI_LEGACY_SPI_CONTROLLER_GUID |
Note: The UEFI PI 1.6 specification uses the character 'l' in the GUID definition. This definition assumes it was supposed to be '1'.
Global ID for the Legacy SPI Controller Protocol
Definition at line 21 of file LegacySpiController.h.
Definition at line 27 of file LegacySpiController.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_BIOS_BASE_ADDRESS) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This, IN UINT32 BiosBaseAddress) |
Set the BIOS base address.
This routine must be called at or below TPL_NOTIFY. The BIOS base address works with the protect range registers to protect portions of the SPI NOR flash from erase and write operat ions. The BIOS calls this API prior to passing control to the OS loader.
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
[in] | BiosBaseAddress | The BIOS base address. |
EFI_SUCCESS | The BIOS base address was properly set |
EFI_ACCESS_ERROR | The SPI controller is locked |
EFI_INVALID_PARAMETER | The BIOS base address is greater than This->Maxi.mumOffset |
EFI_UNSUPPORTED | The BIOS base address was already set |
Definition at line 98 of file LegacySpiController.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_CLEAR_SPI_PROTECT) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This) |
Clear the SPI protect range registers.
This routine must be called at or below TPL_NOTIFY. The BIOS uses this routine to set an initial condition on the SPI protect range registers.
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
EFI_SUCCESS | The registers were successfully cleared |
EFI_ACCESS_ERROR | The SPI controller is locked |
Definition at line 118 of file LegacySpiController.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_ERASE_BLOCK_OPCODE) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This, IN UINT8 EraseBlockOpcode) |
Set the erase block opcode.
This routine must be called at or below TPL_NOTIFY. The menu table contains SPI transaction opcodes which are accessible after the legacy SPI flash controller's configuration is locked. The board layer specifies the erase block size for the SPI NOR flash part. The SPI NOR flash peripheral driver selects the erase block opcode which matches the erase block size and uses this API to load the opcode into the opcode menu table.
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
[in] | EraseBlockOpcode | Erase block opcode to be placed into the opcode menu table. |
EFI_SUCCESS | The opcode menu table was updated |
EFI_ACCESS_ERROR | The SPI controller is locked |
Definition at line 48 of file LegacySpiController.h.
typedef BOOLEAN(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_IS_RANGE_PROTECTED) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This, IN UINT32 BiosAddress, IN UINT32 BlocksToProtect) |
Determine if the SPI range is protected.
This routine must be called at or below TPL_NOTIFY. The BIOS uses this routine to verify a range in the SPI is protected.
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
[in] | BiosAddress | Address within a 4 KiB block to start protecting. |
[in] | BytesToProtect | The number of 4 KiB blocks to protect. |
TRUE | The range is protected |
FALSE | The range is not protected |
Definition at line 139 of file LegacySpiController.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_LOCK_CONTROLLER) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This) |
Lock the SPI controller configuration.
This routine must be called at or below TPL_NOTIFY. This routine locks the SPI controller's configuration so that the software is no longer able to update: Prefix table Opcode menu Opcode type table BIOS base address Protect range registers
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
EFI_SUCCESS | The SPI controller was successfully locked |
EFI_ALREADY_STARTED | The SPI controller was already locked |
Definition at line 197 of file LegacySpiController.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_PROTECT_NEXT_RANGE) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This, IN UINT32 BiosAddress, IN UINT32 BlocksToProtect) |
Set the next protect range register.
This routine must be called at or below TPL_NOTIFY. The BIOS sets the protect range register to prevent write and erase operations to a portion of the SPI NOR flash device.
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
[in] | BiosAddress | Address within a 4 KiB block to start protecting. |
[in] | BlocksToProtect | The number of 4 KiB blocks to protect. |
EFI_SUCCESS | The register was successfully updated |
EFI_ACCESS_ERROR | The SPI controller is locked |
EFI_INVALID_PARAMETER | BiosAddress < This->BiosBaseAddress, or BlocksToProtect * 4 KiB > This->MaximumRangeBytes, or BiosAddress - This->BiosBaseAddress
|
EFI_OUT_OF_RESOURCES | No protect range register available |
EFI_UNSUPPORTED | Call This->SetBaseAddress because the BIOS base address is not set |
Definition at line 172 of file LegacySpiController.h.
typedef EFI_STATUS(EFIAPI * EFI_LEGACY_SPI_CONTROLLER_PROTOCOL_WRITE_STATUS_PREFIX) (IN CONST EFI_LEGACY_SPI_CONTROLLER_PROTOCOL *This, IN UINT8 WriteStatusPrefix) |
Set the write status prefix opcode.
This routine must be called at or below TPL_NOTIFY. The prefix table contains SPI transaction write prefix opcodes which are accessible after the legacy SPI flash controller's configuration is locked. The board layer specifies the write status prefix opcode for the SPI NOR flash part. The SPI NOR flash peripheral driver uses this API to load the opcode into the prefix table.
[in] | This | Pointer to an EFI_LEGACY_SPI_CONTROLLER_PROTOCOL structure. |
[in] | WriteStatusPrefix | Prefix opcode for the write status command. |
EFI_SUCCESS | The prefix table was updated |
EFI_ACCESS_ERROR | The SPI controller is locked |
Definition at line 73 of file LegacySpiController.h.