Read the 3 byte manufacture and device ID from the SPI flash.
This routine must be called at or below TPL_NOTIFY. This routine reads the 3 byte manufacture and device ID from the flash part filling the buffer provided.
- Parameters
-
[in] | This | Pointer to an EFI_SPI_NOR_FLASH_PROTOCOL data structure. |
[out] | Buffer | Pointer to a 3 byte buffer to receive the manufacture and device ID. |
- Return values
-
EFI_SUCCESS | The manufacture and device ID was read successfully. |
EFI_INVALID_PARAMETER | Buffer is NULL |
EFI_DEVICE_ERROR | Invalid data received from SPI flash part. |
Read data from the SPI flash.
This routine must be called at or below TPL_NOTIFY. This routine reads data from the SPI part in the buffer provided.
- Parameters
-
[in] | This | Pointer to an EFI_SPI_NOR_FLASH_PROTOCOL data structure. |
[in] | FlashAddress | Address in the flash to start reading |
[in] | LengthInBytes | Read length in bytes |
[out] | Buffer | Address of a buffer to receive the data |
- Return values
-
EFI_SUCCESS | The data was read successfully. |
EFI_INVALID_PARAMETER | Buffer is NULL, or FlashAddress >= This->FlashSize, or LengthInBytes > This->FlashSize - FlashAddress |
Read the flash status register.
This routine must be called at or below TPL_NOTIFY. This routine reads the flash part status register.
- Parameters
-
[in] | This | Pointer to an EFI_SPI_NOR_FLASH_PROTOCOL data structure. |
[in] | LengthInBytes | Number of status bytes to read. |
[out] | FlashStatus | Pointer to a buffer to receive the flash status. |
- Return values
-
EFI_SUCCESS | The status register was read successfully. |
Write the flash status register.
This routine must be called at or below TPL_N OTIFY. This routine writes the flash part status register.
- Parameters
-
[in] | This | Pointer to an EFI_SPI_NOR_FLASH_PROTOCOL data structure. |
[in] | LengthInBytes | Number of status bytes to write. |
[in] | FlashStatus | Pointer to a buffer containing the new status. |
- Return values
-
EFI_SUCCESS | The status write was successful. |
EFI_OUT_OF_RESOURCES | Failed to allocate the write buffer. |
Write data to the SPI flash.
This routine must be called at or below TPL_NOTIFY. This routine breaks up the write operation as necessary to write the data to the SPI part.
- Parameters
-
[in] | This | Pointer to an EFI_SPI_NOR_FLASH_PROTOCOL data structure. |
[in] | FlashAddress | Address in the flash to start writing |
[in] | LengthInBytes | Write length in bytes |
[in] | Buffer | Address of a buffer containing the data |
- Return values
-
EFI_SUCCESS | The data was written successfully. |
EFI_INVALID_PARAMETER | Buffer is NULL, or FlashAddress >= This->FlashSize, or LengthInBytes > This->FlashSize - FlashAddress |
EFI_OUT_OF_RESOURCES | Insufficient memory to copy buffer. |
Efficiently erases one or more 4KiB regions in the SPI flash.
This routine must be called at or below TPL_NOTIFY. This routine uses a combination of 4 KiB and larger blocks to erase the specified area.
- Parameters
-
[in] | This | Pointer to an EFI_SPI_NOR_FLASH_PROTOCOL data structure. |
[in] | FlashAddress | Address within a 4 KiB block to start erasing |
[in] | BlockCount | Number of 4 KiB blocks to erase |
- Return values
-
EFI_SUCCESS | The erase was completed successfully. |
EFI_INVALID_PARAMETER | FlashAddress >= This->FlashSize, or BlockCount * 4 KiB > This->FlashSize - FlashAddress |