LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
spifi_rom_api.h File Reference
#include "chip.h"
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  protEnt
 
union  stat_t
 
struct  SPIFIobj
 
struct  SPIFIopers
 
struct  SPIFI_RTNS
 

Macros

#define S_FORCE_ERASE   4
 
#define S_ERASE_NOT_REQD   8
 
#define S_CALLER_ERASE   8
 
#define S_ERASE_AS_REQD   0
 
#define S_VERIFY_PROG   0x10
 
#define S_VERIFY_ERASE   0x20
 
#define S_NO_VERIFY   0
 
#define S_CALLER_PROT   0x200
 
#define S_DRIVER_PROT   0
 
#define NO_OPCODE_FOLLOWS   0xA5
 
#define OPCODE_FOLLOWS   0xFF
 
#define BASE_READ_CMD   (CMD_RD << OPCODE_SHIFT | 4 << FRAMEFORM_SHIFT | UNL_DATA)
 
#define FAST_READ_CMD   (CMD_READ_FAST << OPCODE_SHIFT | 4 << FRAMEFORM_SHIFT | 1 << INTLEN_SHIFT | UNL_DATA)
 
#define BASE_PROG_CMD   (CMD_PROG << OPCODE_SHIFT | 4 << FRAMEFORM_SHIFT | DOUT)
 
#define PROG_SIZE   256
 
#define OPT_SEND_A3   1
 
#define OPT_SEND_38   2
 
#define OPT_35_OR02_01   4
 
#define OPT_3F_OR80_3E   8
 
#define OPT_65_CLR_C0_61   0x10
 
#define OPT_81   0x20
 
#define OPT_NO_DEV_ERASE   0x40
 
#define OPT_WPSEL   0x80
 
#define OPT_PROT_READ   0x100
 
#define OPT_4BAD   0x200
 
#define OPT_DUAL   0x400
 
#define OPT_C0   0x800
 
#define OPT_05_OR40_01   0x1000
 
#define OPT_01_NO_BUSY   0x2000
 
#define OPT_PROT_STAT   0x4000
 
#define OPT_PROT_REG   0x8000
 
#define OPT_PROT_CMD3   0x10000
 
#define OPT_PROT_CMDE   0x20000
 
#define OPT_PROT_MASK   0x3C000
 
#define OPT_ALL_QUAD   0x40000
 
#define SPIFI_ROM_PTR   0x10400118
 
#define define_spifi_romPtr(name)   const SPIFI_RTNS * name = *((SPIFI_RTNS * *) SPIFI_ROM_PTR)
 

Functions

int32_t spifi_init (SPIFIobj *obj, uint32_t csHigh, uint32_t options, uint32_t mhz)
 
int32_t spifi_program (SPIFIobj *obj, char *source, SPIFIopers *opers)
 
int32_t spifi_erase (SPIFIobj *obj, SPIFIopers *opers)
 
void setSize (SPIFIobj *obj, int32_t value)
 
int32_t setDev (SPIFIobj *obj, uint32_t opts, uint32_t mem_cmd, uint32_t prog_cmd)
 
uint32_t read04 (SPIFIobj *obj, uc op, uc len)
 
int32_t write_stat (SPIFIobj *obj, uc len, uint16_t value)
 
void setProtEnts (SPIFIobj *obj, const protEnt *p, uint32_t protTabLen)
 
void pullMISO (int high)
 
#define LONGEST_PROT   68
 
#define NULL   ((void *) 0)
 
#define S_MODE3   1
 
#define S_MODE0   0
 
#define S_MINIMAL   2
 
#define S_MAXIMAL   0
 
#define S_RCVCLK   0x80
 
#define S_INTCLK   0
 
#define S_FULLCLK   0x40
 
#define S_HALFCLK   0
 
#define S_DUAL   0x100
 
enum  { RWPROT = 1 }
 
enum  inst_type { stat_inst, block_erase, prog_inst, chip_erase }
 
typedef uint8_t uc