PebbleOS
Loading...
Searching...
No Matches
Data Structures | Enumerations
QSPI flash parts

Description of a QSPI NOR flash part: instructions, status bits and timings. More...

Data Structures

struct  QSPIFlashPart
 QSPI flash part description. More...
 
struct  QSPIFlashPart.instructions
 Instruction opcodes. More...
 
struct  QSPIFlashPart.status_bit_masks
 Status register 1 bits. More...
 
struct  QSPIFlashPart.flag_status_bit_masks
 Status register 2 bits. More...
 
struct  QSPIFlashPart.dummy_cycles
 Dummy cycles. More...
 
struct  QSPIFlashPart.block_lock
 Block locking. More...
 

Enumerations

enum  JESD216Dw15QerType {
  JESD216_DW15_QER_NONE = 0 , JESD216_DW15_QER_S2B1v1 = 1 , JESD216_DW15_QER_S1B6 = 2 , JESD216_DW15_QER_S2B7 = 3 ,
  JESD216_DW15_QER_S2B1v4 = 4 , JESD216_DW15_QER_S2B1v5 = 5 , JESD216_DW15_QER_S2B1v6 = 6
}
 Quad Enable bit location, as in the JESD216 Basic Flash Parameter Table, DWORD 15. More...
 

Detailed Description

Description of a QSPI NOR flash part: instructions, status bits and timings.

Each part driver defines one QSPIFlashPart. Unused instructions are left at 0.


Data Structure Documentation

◆ QSPIFlashPart

struct QSPIFlashPart

QSPI flash part description.

Data Fields
struct QSPIFlashPart.block_lock block_lock Block locking.
struct QSPIFlashPart.dummy_cycles dummy_cycles Dummy cycles.
struct QSPIFlashPart.flag_status_bit_masks flag_status_bit_masks Status register 2 bits.
struct QSPIFlashPart.instructions instructions Instruction opcodes.
uint32_t low_power_to_standby_latency_us Time to leave deep power-down, in microseconds.
const char * name Part name.
JESD216Dw15QerType qer_type Quad Enable bit location.
uint32_t qspi_id_value Expected JEDEC ID.
uint32_t reset_latency_ms Time after a reset before the part accepts commands, in milliseconds.
FlashSecurityRegisters sec_registers Security registers.
uint32_t size Size in bytes.
uint32_t standby_to_low_power_latency_us Time to enter deep power-down, in microseconds.
struct QSPIFlashPart.status_bit_masks status_bit_masks Status register 1 bits.
bool supports_block_lock Block locking is supported.
bool supports_fast_read_ddr Double data rate fast read is supported.
uint32_t suspend_to_read_latency_us Time from an erase suspend until reads are allowed, in microseconds.

◆ QSPIFlashPart.instructions

struct QSPIFlashPart.instructions

Instruction opcodes.

Data Fields
uint8_t block_lock Lock a block.
uint8_t block_lock_status Read a block's lock status.
uint8_t block_unlock_all Unlock all blocks.
uint8_t en4b Enter 4-byte address mode.
uint8_t enter_low_power Enter deep power-down.
uint8_t enter_quad_mode Enter quad (QPI) mode.
uint8_t erase_block_64k 64 KiB block (sector) erase.
uint8_t erase_resume Erase resume.
uint8_t erase_sec Erase a security register.
uint8_t erase_sector_4k 4 KiB sector (subsector) erase.
uint8_t erase_suspend Erase suspend.
uint8_t exit_low_power Exit deep power-down.
uint8_t exit_quad_mode Exit quad (QPI) mode.
uint8_t fast_read Fast read (1-1-1).
uint8_t fast_read_ddr Fast read, double data rate.
uint8_t pp Page program (1-1-1).
uint8_t pp2o Dual input page program (1-1-2).
uint8_t pp4io Quad I/O page program (1-4-4).
uint8_t pp4o Quad input page program (1-1-4).
uint8_t program_sec Program a security register.
uint8_t qspi_id Read JEDEC ID.
uint8_t rdsr1 Read status register 1.
uint8_t rdsr2 Read status register 2.
uint8_t read2io Dual I/O read (1-2-2).
uint8_t read2o Dual output read (1-1-2).
uint8_t read4io Quad I/O read (1-4-4).
uint8_t read4o Quad output read (1-1-4).
uint8_t read_protection_status Read the write protection status.
uint8_t read_sec Read a security register.
uint8_t reset Reset.
uint8_t reset_enable Reset enable.
uint8_t write_disable Write disable.
uint8_t write_enable Write enable.
uint8_t write_protection_enable Enable write protection.
uint8_t wrsr Write status register (1, or 1 and 2).
uint8_t wrsr2 Write status register 2.

◆ QSPIFlashPart.status_bit_masks

struct QSPIFlashPart.status_bit_masks

Status register 1 bits.

Data Fields
uint8_t busy Write in progress.
uint8_t write_enable Write enable latch.

◆ QSPIFlashPart.flag_status_bit_masks

struct QSPIFlashPart.flag_status_bit_masks

Status register 2 bits.

Data Fields
uint8_t erase_suspend Erase suspended.
uint8_t sec_lock Security register lock bits.

◆ QSPIFlashPart.dummy_cycles

struct QSPIFlashPart.dummy_cycles

Dummy cycles.

Data Fields
uint8_t fast_read For fast_read.
uint8_t fast_read_ddr For fast_read_ddr.

◆ QSPIFlashPart.block_lock

struct QSPIFlashPart.block_lock

Block locking.

Data Fields
bool has_lock_data Data must be sent with the block_lock instruction.
uint8_t lock_data Data sent with the block_lock instruction, if has_lock_data.
uint8_t locked_check Value returned by block_lock_status for a locked block.
uint8_t protection_enabled_mask Mask applied to read_protection_status to check that protection is enabled.

Enumeration Type Documentation

◆ JESD216Dw15QerType

Quad Enable bit location, as in the JESD216 Basic Flash Parameter Table, DWORD 15.

Enumerator
JESD216_DW15_QER_NONE 

No Quad Enable bit.

JESD216_DW15_QER_S2B1v1 

Bit 1 of status register 2, written together with status register 1.

JESD216_DW15_QER_S1B6 

Bit 6 of status register 1.

JESD216_DW15_QER_S2B7 

Bit 7 of status register 2.

JESD216_DW15_QER_S2B1v4 

Bit 1 of status register 2, written together with status register 1.

JESD216_DW15_QER_S2B1v5 

Bit 1 of status register 2, written together with status register 1.

JESD216_DW15_QER_S2B1v6 

Bit 1 of status register 2, writable on its own.