152 lines
6.4 KiB
C
152 lines
6.4 KiB
C
|
/*
|
||
|
* $Log: V:/Flite/archives/TrueFFS5/Src/DOCSYS.H_V $
|
||
|
*
|
||
|
* Rev 1.12 Apr 15 2002 07:36:04 oris
|
||
|
* Reorganized for final release.
|
||
|
*
|
||
|
* Rev 1.11 Feb 19 2002 20:59:04 oris
|
||
|
* Removed flflash.h include directive.
|
||
|
*
|
||
|
* Rev 1.10 Jan 28 2002 21:24:20 oris
|
||
|
* Removed the use of back-slashes in macro definitions.
|
||
|
* Replaced FLFlash argument with DiskOnChip memory base pointer.
|
||
|
* Changed interface of write and set routines (those that handle more then 8/16 bits) so that instead of FLFlash record they receive the DiskOnChip memory window base pointer and offset (2 separated arguments). The previous implementation did not support address
|
||
|
* shifting properly.
|
||
|
* Changed memWinowSize to memWindowSize
|
||
|
* Removed FL_ACCESS_NO_STRING.
|
||
|
*
|
||
|
* Rev 1.9 Jan 17 2002 22:59:46 oris
|
||
|
* Completely revised, to support runtime customization and all M-Systems
|
||
|
* DiskOnChip devices
|
||
|
*
|
||
|
* Rev 1.8 Nov 16 2001 00:19:58 oris
|
||
|
* Added new line in the end, to remove warning.
|
||
|
*
|
||
|
* Rev 1.7 Sep 25 2001 15:35:04 oris
|
||
|
* Restored to OSAK 4.3 implementation.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* */
|
||
|
/* FAT-FTL Lite Software Development Kit */
|
||
|
/* Copyright (C) M-Systems Ltd. 1995-2001 */
|
||
|
/* */
|
||
|
/************************************************************************/
|
||
|
|
||
|
/************************************************************************/
|
||
|
/* I M P O R T E N T */
|
||
|
/* */
|
||
|
/* The file contains DiskOnChip memory access routines and macros */
|
||
|
/* defintions. */
|
||
|
/* */
|
||
|
/* In order to use the complete set of TrueFFS memory access routine */
|
||
|
/* that allows runtime configuration of each socket access type make */
|
||
|
/* sure the FL_NO_USE_FUNC is not defined in either: */
|
||
|
/* FLCUSTOME.H - when using TrueFFS SDK based application */
|
||
|
/* MTDSA.H - when using Boot SDK based application */
|
||
|
/* */
|
||
|
/* If you know the exact configuration of your application you can */
|
||
|
/* uncomment the FL_NO_USE_FUNC definition and set the proper access */
|
||
|
/* type using the macroe defintion bellow. */
|
||
|
/************************************************************************/
|
||
|
|
||
|
#ifndef DOCSYS_H
|
||
|
#define DOCSYS_H
|
||
|
|
||
|
#include "nanddefs.h"
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
#ifdef FL_NO_USE_FUNC
|
||
|
|
||
|
#error "current version does not support the FL_NO_USE_FUNC compilation flag\r\n"
|
||
|
|
||
|
/*
|
||
|
* If you chose to customize the memory access routine using macroes, simply
|
||
|
* add your implementation here.
|
||
|
*/
|
||
|
|
||
|
#define flWrite8bitReg(flash,offset,val)
|
||
|
#define flRead8bitReg(flash,offset)
|
||
|
|
||
|
#define docread
|
||
|
#define docwrite
|
||
|
#define docset
|
||
|
|
||
|
/* DiskOnChip Plus memory access routines */
|
||
|
|
||
|
#define flWrite8bitRegPlus(flash,offset,val)
|
||
|
#define flRead8bitRegPlus(flash,offset) 0x0
|
||
|
#define flWrite16bitRegPlus(flash,offset,val)
|
||
|
#define flRead16bitRegPlus(flash,offset) 0x0
|
||
|
|
||
|
#define docPlusRead(win,offset,dest,count)
|
||
|
#define docPlusWrite(win,offset,src,count)
|
||
|
#define docPlusSet(win,offset,count,val)
|
||
|
|
||
|
#define DOC_WIN 0x2000
|
||
|
#define setBusTypeOfFlash(flash,access) flOK
|
||
|
|
||
|
#else
|
||
|
|
||
|
/* DiskOnChip memory access routines */
|
||
|
|
||
|
#define flWrite8bitReg(flash,offset,val) flash->memWrite8bit(flash->win,offset,val)
|
||
|
#define flRead8bitReg(flash,offset) flash->memRead8bit(flash->win,offset)
|
||
|
|
||
|
#define docread flash->memRead
|
||
|
#define docwrite flash->memWrite
|
||
|
#define docset flash->memSet
|
||
|
|
||
|
/* DiskOnChip Plus memory access routines */
|
||
|
|
||
|
#define flWrite8bitRegPlus(flash,offset,val) flash->memWrite8bit(flash->win,offset,val)
|
||
|
#define flRead8bitRegPlus(flash,offset) flash->memRead8bit(flash->win,offset)
|
||
|
#define flWrite16bitRegPlus(flash,offset,val) flash->memWrite16bit(flash->win,offset,val)
|
||
|
#define flRead16bitRegPlus(flash,offset) flash->memRead16bit(flash->win,offset)
|
||
|
|
||
|
#define docPlusRead(win,offset,dest,count) flash->memRead(win,offset,dest,count)
|
||
|
#define docPlusWrite(win,offset,src,count) flash->memWrite(win,offset,src,count)
|
||
|
#define docPlusSet(win,offset,count,val) flash->memSet(win,offset,count,val)
|
||
|
|
||
|
#define DOC_WIN flash->memWindowSize()
|
||
|
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
/*--------------------------------------------------------------------------*/
|
||
|
|
||
|
/*
|
||
|
* DiskOnChip Access routines types
|
||
|
*/
|
||
|
|
||
|
/* (public) types of DiskOnChip access configurations */
|
||
|
|
||
|
#define FL_BUS_HAS_8BIT_ACCESS 0x00000001L /* Bus can access 8-bit */
|
||
|
#define FL_BUS_HAS_16BIT_ACCESS 0x00000002L /* Bus can access 16-bit */
|
||
|
#define FL_BUS_HAS_32BIT_ACCESS 0x00000004L /* Bus can access 32-bit */
|
||
|
#define FL_BUS_HAS_XX_ACCESS_MASK 0x0000000FL /* Bus can access mask */
|
||
|
|
||
|
#define FL_NO_ADDR_SHIFT 0x00000000L /* No address shift */
|
||
|
#define FL_SINGLE_ADDR_SHIFT 0x00000010L /* Single address shift */
|
||
|
#define FL_DOUBLE_ADDR_SHIFT 0x00000020L /* Double address shift */
|
||
|
#define FL_XX_ADDR_SHIFT_MASK 0x000000F0L /* Address shift mask */
|
||
|
|
||
|
/* (private) types of DiskOnChip access configurations */
|
||
|
|
||
|
#define FL_8BIT_DOC_ACCESS 0x00000000L /* Has 8 data bits */
|
||
|
#define FL_16BIT_DOC_ACCESS 0x00000100L /* Has 16 data bits */
|
||
|
#define FL_XX_DATA_BITS_MASK 0x00000300L /* Mask of the above */
|
||
|
#define FL_8BIT_FLASH_ACCESS 0x00000400L /* 8 bits of flash per cycle */
|
||
|
#define FL_16BIT_FLASH_ACCESS 0x00000800L /* 16 bits of flash per cycle */
|
||
|
#define FL_XX_FLASH_ACCESS_MASK 0x00000C00L /* Mask of the above */
|
||
|
|
||
|
#define FL_ACCESS_USER_DEFINED 0x00001000L /* User defined routines */
|
||
|
|
||
|
/* DiskOnChip routines prototypes */
|
||
|
|
||
|
extern FLStatus setBusTypeOfFlash(FLFlash * flash,dword access);
|
||
|
|
||
|
#endif /* FL_NO_USE_FUNC */
|
||
|
#endif /* DOCSYS_H */
|