| // Licensed under the Apache-2.0 license |
| // SPDX-License-Identifier: Apache-2.0 |
| |
| //! Flash-specific error codes. |
| |
| use crate::{ErrorCode, ErrorModule}; |
| use pw_status::Error; |
| |
| // TODO: review the pw_status error codes. |
| |
| /// The generic flash error module. |
| pub const FLASH_GENERIC: ErrorModule = ErrorModule::new(0x464c); //ascii `FL`. |
| /// The flash device is busy. |
| pub const FLASH_GENERIC_BUSY: ErrorCode = FLASH_GENERIC.from_pw(0, Error::Unavailable); |
| /// The erase address is invalid (e.g., not page-aligned). |
| pub const FLASH_GENERIC_ERASE_INVALID_ADDR: ErrorCode = |
| FLASH_GENERIC.from_pw(1, Error::InvalidArgument); |
| /// The operation has bad alignment. |
| pub const FLASH_GENERIC_BAD_ALIGNMENT: ErrorCode = FLASH_GENERIC.from_pw(2, Error::InvalidArgument); |
| /// The read request is too long. |
| pub const FLASH_GENERIC_READ_TOO_LONG: ErrorCode = FLASH_GENERIC.from_pw(3, Error::InvalidArgument); |
| /// The program operation exceeds the hardware window size. |
| pub const FLASH_GENERIC_PROGRAM_EXCEEDS_WINDOW_SIZE: ErrorCode = |
| FLASH_GENERIC.from_pw(4, Error::InvalidArgument); |
| /// The program operation spans a hardware window boundary. |
| pub const FLASH_GENERIC_PROGRAM_SPANS_WINDOW_BOUNDARY: ErrorCode = |
| FLASH_GENERIC.from_pw(5, Error::InvalidArgument); |
| /// The address is out of bounds. |
| pub const FLASH_GENERIC_ADDR_OUT_OF_BOUNDS: ErrorCode = |
| FLASH_GENERIC.from_pw(6, Error::InvalidArgument); |
| /// The flash page size is invalid. |
| pub const FLASH_GENERIC_INVALID_PAGE_SIZE: ErrorCode = |
| FLASH_GENERIC.from_pw(7, Error::InvalidArgument); |
| /// The flash size is invalid. |
| pub const FLASH_GENERIC_INVALID_SIZE: ErrorCode = FLASH_GENERIC.from_pw(8, Error::InvalidArgument); |
| /// The erase size is invalid. |
| pub const FLASH_GENERIC_ERASE_INVALID_SIZE: ErrorCode = |
| FLASH_GENERIC.from_pw(9, Error::InvalidArgument); |
| |
| /// SFDP: Invalid memory density. |
| pub const FLASH_GENERIC_SFDP_INVALID_MEMORY_DENSITY: ErrorCode = |
| FLASH_GENERIC.from_pw(1024, Error::InvalidArgument); |
| /// SFDP: Invalid signature. |
| pub const FLASH_GENERIC_SFDP_INVALID_SIGNATURE: ErrorCode = |
| FLASH_GENERIC.from_pw(1025, Error::InvalidArgument); |
| /// SFDP: No valid parameter header found. |
| pub const FLASH_GENERIC_SFDP_NO_VALID_PARAMETER_HEADER_FOUND: ErrorCode = |
| FLASH_GENERIC.from_pw(1026, Error::InvalidArgument); |
| /// SFDP: Parameters are too short. |
| pub const FLASH_GENERIC_SFDP_PARAMETERS_TOO_SHORT: ErrorCode = |
| FLASH_GENERIC.from_pw(1027, Error::InvalidArgument); |
| /// SFDP: Unsupported header major revision. |
| pub const FLASH_GENERIC_SFDP_UNSUPPORTED_HEADER_MAJOR_REV: ErrorCode = |
| FLASH_GENERIC.from_pw(1028, Error::InvalidArgument); |
| /// SFDP: Unsupported parameters major revision. |
| pub const FLASH_GENERIC_SFDP_UNSUPPORTED_PARAMS_MAJOR_REV: ErrorCode = |
| FLASH_GENERIC.from_pw(1029, Error::InvalidArgument); |
| /// SFDP: Parameters are too long. |
| pub const FLASH_GENERIC_SFDP_PARAMETERS_TOO_LONG: ErrorCode = |
| FLASH_GENERIC.from_pw(1030, Error::InvalidArgument); |
| |
| /// The OpenTitan flash error module. |
| pub const FLASH_OPENTITAN: ErrorModule = ErrorModule::new(0x464f); //ascii `FO`. |