32 #ifndef __SPIFI_ROM_API_H_
33 #define __SPIFI_ROM_API_H_
50 #define LONGEST_PROT 68
55 #define NULL ((void *) 0)
93 uc erase_shifts[4], erase_ops[4];
134 #define S_RCVCLK 0x80
142 #define S_FULLCLK 0x40
163 #define S_FORCE_ERASE 4
166 #define S_ERASE_NOT_REQD 8
169 #define S_CALLER_ERASE 8
172 #define S_ERASE_AS_REQD 0
175 #define S_VERIFY_PROG 0x10
178 #define S_VERIFY_ERASE 0x20
181 #define S_NO_VERIFY 0
184 #define S_CALLER_PROT 0x200
187 #define S_DRIVER_PROT 0
195 #define NO_OPCODE_FOLLOWS 0xA5
196 #define OPCODE_FOLLOWS 0xFF
199 #define BASE_READ_CMD (CMD_RD << OPCODE_SHIFT | 4 << FRAMEFORM_SHIFT | UNL_DATA)
200 #define FAST_READ_CMD (CMD_READ_FAST << OPCODE_SHIFT | 4 << FRAMEFORM_SHIFT | 1 << INTLEN_SHIFT | UNL_DATA)
201 #define BASE_PROG_CMD (CMD_PROG << OPCODE_SHIFT | 4 << FRAMEFORM_SHIFT | DOUT)
204 #define PROG_SIZE 256
208 #define OPT_SEND_A3 1
210 #define OPT_SEND_38 2
213 #define OPT_35_OR02_01 4
215 #define OPT_3F_OR80_3E 8
217 #define OPT_65_CLR_C0_61 0x10
222 #define OPT_NO_DEV_ERASE 0x40
225 #define OPT_WPSEL 0x80
227 #define OPT_PROT_READ 0x100
229 #define OPT_4BAD 0x200
231 #define OPT_DUAL 0x400
235 #define OPT_05_OR40_01 0x1000
237 #define OPT_01_NO_BUSY 0x2000
239 #define OPT_PROT_STAT 0x4000
240 #define OPT_PROT_REG 0x8000
241 #define OPT_PROT_CMD3 0x10000
242 #define OPT_PROT_CMDE 0x20000
243 #define OPT_PROT_MASK 0x3C000
245 #define OPT_ALL_QUAD 0x40000
247 #ifndef OMIT_ROM_TABLE
282 #define SPIFI_ROM_PTR 0x10400118
284 #define define_spifi_romPtr(name) const SPIFI_RTNS * name = *((SPIFI_RTNS * *) SPIFI_ROM_PTR)
341 unsigned short getProtBytes (
SPIFIobj *obj,
unsigned short *sectors);
344 void wait_sample (
volatile unsigned *addr,
unsigned mask,
unsigned value);