pub struct FlashParams {Show 17 fields
pub version_major: u8,
pub version_minor: u8,
pub address_bytes: SFDPAddressBytes,
pub density: u64,
pub legacy_4kb_erase_supported: bool,
pub legacy_4kb_erase_inst: u8,
pub legacy_volatile_write_en_inst: u8,
pub legacy_block_protect_volatile: bool,
pub legacy_byte_write_granularity: bool,
pub erase_insts: [Option<SFDPEraseInst>; 4],
pub timing: Option<SFDPTiming>,
pub page_size: Option<u32>,
pub busy_poll_flag: Option<bool>,
pub busy_poll_status: Option<bool>,
pub reset_inst_f0: Option<bool>,
pub reset_inst_66_99: Option<bool>,
pub status_1_vol: Option<SFDPStatus1Volatility>,
}Expand description
SFDP JEDEC Basic Flash Parameter Table
This table contains standard SFDP information which may be read from a flash memory. Only fields relevant to single I/O operation are parsed.
Fields are taken from JESD216D-01, supporting parameter versions up to 1.7.
Fields§
§version_major: u8Parameter header major version field.
version_minor: u8Parameter header minor version field.
address_bytes: SFDPAddressBytesNumber of address bytes to use in read/write commands.
density: u64Flash memory density in bits.
legacy_4kb_erase_supported: boolIf true, 4kB erase is supported.
Newer memories indicate all erase sizes with erase_* fields.
legacy_4kb_erase_inst: u8Instruction for 4kB erase, or 0xFF if unsupported.
Newer memories also include this instruction in erase_* fields.
legacy_volatile_write_en_inst: u8Write enable instruction for volatile status register, either 0x50 or 0x06.
Newer memories use status_1_vol instead.
legacy_block_protect_volatile: boolIf true, Block Protect bits in status register are only volatile,
otherwise they may be only non-volatile or may be programmed either
as volatile with instruction 0x50 or non-volatile with instruction 0x06.
Newer memories use status_1_vol instead.
legacy_byte_write_granularity: boolIf true, writes can be performed with byte granularity.
Newer memories use page_size.
erase_insts: [Option<SFDPEraseInst>; 4]Erase instructions.
Up to four erase instructions may be available, each specifying the opcode for the instruction and the number of bytes erased.
timing: Option<SFDPTiming>Chip erase and programming times, if available.
page_size: Option<u32>Page size, in bytes.
busy_poll_flag: Option<bool>If true, polling busy status via the flag status register is supported. Instruction 0x70 reads the flag register, where bit 7 is 0 if busy and 1 if ready.
busy_poll_status: Option<bool>If true, polling busy status via the status register is supported. Instruction 0x05 reads the status register, where bit 0 is 0 if ready and 1 if busy.
reset_inst_f0: Option<bool>If true, the device may be reset using instruction 0xF0.
reset_inst_66_99: Option<bool>If true, the device may be reset using instruction 0x66 followed by 0x99.
status_1_vol: Option<SFDPStatus1Volatility>Status register 1 volatility and write-enable instruction.
Implementations§
Source§impl FlashParams
impl FlashParams
pub fn from_bytes(major: u8, minor: u8, data: &[u8]) -> Result<Self>
Sourcepub fn capacity_bytes(&self) -> usize
pub fn capacity_bytes(&self) -> usize
Get the flash capacity in bytes.
Sourcepub fn sector_erase(&self) -> Option<(usize, u8)>
pub fn sector_erase(&self) -> Option<(usize, u8)>
Get the smallest erase granularity and its opcode.
Trait Implementations§
Source§impl Clone for FlashParams
impl Clone for FlashParams
Source§fn clone(&self) -> FlashParams
fn clone(&self) -> FlashParams
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more