
/*---------------------------------------------------------------------*
        Copyright (C) 1998 Nintendo.
 *---------------------------------------------------------------------*/
/* 
 * defines for FLASH
 */
#define FLASH_START_ADDR	0x08000000

#define FLASH_SIZE		0x20000
#define FLASH_LATENCY		0x5
#define FLASH_PULSE		0x0c
#define FLASH_PAGE_SIZE		0xf
#define FLASH_REL_DURATION	0x2
#define DEVICE_TYPE_FLASH	8

#define FLASH_VERSION_MX_PROTO_A	0x00c20000
#define FLASH_VERSION_MX_A		0x00c20001
#define FLASH_VERSION_MX_C		0x00c2001e
#define FLASH_VERSION_MX_B_AND_D	0x00c2001d

extern OSPiHandle *osFlashReInit(u8 latency, u8 pulse, 
				 u8 page_size, u8 rel_duration, u32 start);
extern OSPiHandle *osFlashInit(void);
extern void    osFlashReadStatus(u8 *flash_status);
extern void    osFlashReadId(u32 *flash_type, u32 *flash_maker);
extern void    osFlashClearStatus(void);
extern s32     osFlashAllErase(void);
extern s32     osFlashSectorErase(u32 page_num);
extern s32     osFlashWriteBuffer(OSIoMesg *mb, s32 priority, 
				void *dramAddr, OSMesgQueue *mq);
extern s32    osFlashWriteArray(u32 page_num);
extern s32    osFlashReadArray(OSIoMesg *mb, s32 priority, u32 page_num, 
				void *dramAddr, u32 n_pages, OSMesgQueue *mq);
