| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | #pragma once#include "common.h"#define SPIFLASH_SECTOR_SIZE	4096 /* Erasable chunk */#define SPIFLASH_PAGE_SIZE	 256 /* Programmable chunk */struct spz_stream;typedef struct spz_stream spz_stream;/* Set data and data_len if the data to be written is not from the spz */extern_c int spiflash_write_spz(spz_stream *spz,				const void *data, unsigned int data_len);/* SPI flash command opcodes */enum romcmd {    /* Standard SPI mode commands */    ROM_WRITE_ENABLE			= 0x06,    ROM_VOLATILE_SR_WRITE_ENABLE	= 0x50,    ROM_WRITE_DISABLE			= 0x04,    ROM_RELEASE_POWERDOWN_ID		= 0xab,    ROM_MANUFACTURER_DEVICE_ID		= 0x90,    ROM_JEDEC_ID			= 0x9f,    ROM_READ_UNIQUE_ID			= 0x4b,    ROM_READ_DATA			= 0x03, /* DO NOT USE */    ROM_READ_DATA_32BIT			= 0x13, /* DO NOT USE */    ROM_FAST_READ			= 0x0b,    ROM_FAST_READ_32BIT			= 0x0c,    ROM_PAGE_PROGRAM			= 0x02,    ROM_PAGE_PROGRAM_32BIT		= 0x12,    ROM_ERASE_4K			= 0x20,    ROM_ERASE_4K_32BIT			= 0x21,    ROM_ERASE_32K			= 0x52,    ROM_ERASE_64K			= 0xd8,    ROM_ERASE_64K_32BIT			= 0xdc,    ROM_ERASE_ALL			= 0xc7,    ROM_READ_SR1			= 0x05,    ROM_WRITE_SR1			= 0x01,    ROM_READ_SR2			= 0x35,    ROM_WRITE_SR2			= 0x31,    ROM_READ_SR3			= 0x15,    ROM_WRITE_SR3			= 0x11,    ROM_READ_EAR			= 0xc8, /* Extended address register */    ROM_WRITE_EAR			= 0xc5,    ROM_READ_SFDP			= 0x5a,    ROM_ERASE_SECURITY			= 0x44,    ROM_PROGRAM_SECURITY		= 0x42,    ROM_READ_SECURITY			= 0x48,    ROM_GLOBAL_BLOCK_LOCK		= 0x7e,    ROM_GLOBAL_BLOCK_UNLOCK		= 0x98,    ROM_READ_BLOCK_LOCK			= 0x3d,    ROM_ONE_BLOCK_LOCK			= 0x36,    ROM_ONE_BLOCK_UNLOCK		= 0x39,    ROM_ERASE_PROGRAM_SUSPEND		= 0x75,    ROM_ERASE_PROGRAM_RESUME		= 0x7a,    ROM_POWER_DOWN			= 0xb9,    ROM_ENTER_32BIT			= 0xb7,    ROM_LEAVE_32BIT			= 0xe9,    ROM_ENTER_QPI			= 0x48,    ROM_ENABLE_RESET			= 0x66,    ROM_RESET				= 0x99,    /* Dual SPI commands */    ROM_FAST_READ_DUAL			= 0x3b,    ROM_FAST_READ_DUAL_32BIT		= 0x3c};#define SPIFLASH_SFDP_SIZE	256enum spiflash_addr_mode {    SPIFLASH_ADDR_DYNAMIC,	/* 24-bit for < 16 MB, otherwise 32 bit */    SPIFLASH_ADDR_24BIT,	/* 24-bit addressing only */    SPIFLASH_ADDR_32BIT		/* 32-bit addressing only */};
 |