Struct spi_flash::sfdp::FlashParams
source · [−]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: u8
Parameter header major version field.
version_minor: u8
Parameter header minor version field.
address_bytes: SFDPAddressBytes
Number of address bytes to use in read/write commands.
density: u64
Flash memory density in bits.
legacy_4kb_erase_supported: bool
If true, 4kB erase is supported.
Newer memories indicate all erase sizes with erase_*
fields.
legacy_4kb_erase_inst: u8
Instruction for 4kB erase, or 0xFF if unsupported.
Newer memories also include this instruction in erase_*
fields.
legacy_volatile_write_en_inst: u8
Write enable instruction for volatile status register, either 0x50 or 0x06.
Newer memories use status_1_vol
instead.
legacy_block_protect_volatile: bool
If 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: bool
If 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
sourceimpl 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
sourceimpl Clone for FlashParams
impl Clone for FlashParams
sourcefn clone(&self) -> FlashParams
fn clone(&self) -> FlashParams
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for FlashParams
impl Debug for FlashParams
sourceimpl Display for FlashParams
impl Display for FlashParams
impl Copy for FlashParams
Auto Trait Implementations
impl RefUnwindSafe for FlashParams
impl Send for FlashParams
impl Sync for FlashParams
impl Unpin for FlashParams
impl UnwindSafe for FlashParams
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more