view flash.h @ 70:aaf0603d7f88

Add routine to CRC a block of flash. Use it to verify a flash block write.
author Daniel O'Connor <darius@dons.net.au>
date Sun, 14 Apr 2013 22:53:50 +0930
parents 03592ca4d37e
children
line wrap: on
line source

void		flashcmd(int argc, char **argv);
uint16_t	flashreadid(void);
uint8_t		flashreadstatus(void);
void		flashwritestatus(uint8_t status);
void		flashwritectl(int enable);
void		flash4kerase(uint32_t addr);
uint8_t		flashread(uint32_t addr);
void		flashenablewrite(void);
void		flashwrite(uint32_t addr, uint8_t data);
void		flashwait(void);
int		flashreadblock(uint32_t addr, uint32_t len, void *_data);
int		flashwriteblock(uint32_t addr, uint32_t len, void *_data);
uint32_t	flashcrcblock(uint32_t addr, uint32_t len);

/* Streaming read/write */
void		flashstartread(uint32_t addr);
uint8_t		flashreadbyte(void);
void		flashstartwrite(uint32_t addr, uint16_t data);
void		flashwriteword(uint16_t data);
void		flashstopread(void);
void		flashstopwrite(void);

#define FL_BUSY		(1<<0)
#define FL_WEL		(1<<1)
#define FL_BP0		(1<<2)
#define FL_BP1		(1<<3)
#define FL_BP2		(1<<4)
#define FL_BP3		(1<<5)
#define FL_AAI		(1<<6)
#define FL_BPL		(1<<7)

#define FL_READ		0x03
#define FL_HSREAD	0x0b
#define FL_4KERASE	0x20
#define FL_32KERASE	0x52
#define FL_64KERASE	0xd8
#define FL_CHIPERASE	0x60
#define FL_BYTEPROG	0x02
#define FL_AAIWP	0xad
#define FL_RDSR		0x05
#define FL_EWSR		0x50
#define FL_WRSR		0x01
#define FL_WREN		0x06
#define FL_WRDI		0x04
#define FL_RDID		0x90
#define FL_JEDECID	0x9f
#define FL_EBSY		0x70
#define FL_DBSY		0x80