📄 flcustom.c
字号:
/***********************************************************************************
* *
* M-Systems Confidential *
* Copyright (C) M-Systems Flash Disk Pioneers Ltd. 1995-2001 *
* All Rights Reserved *
* *
***********************************************************************************
* *
* NOTICE OF M-SYSTEMS OEM *
* SOFTWARE LICENSE AGREEMENT *
* *
* THE USE OF THIS SOFTWARE IS GOVERNED BY A SEPARATE LICENSE *
* AGREEMENT BETWEEN THE OEM AND M-SYSTEMS. REFER TO THAT AGREEMENT *
* FOR THE SPECIFIC TERMS AND CONDITIONS OF USE, *
* OR CONTACT M-SYSTEMS FOR LICENSE ASSISTANCE: *
* E-MAIL = info@m-sys.com *
* *
***********************************************************************************/
/*
* $Log: V:/Flite/archives/OSAK/examples/drivers/VxWorks/custom/FLCUSTOM.C_V $
*
* Rev 1.8 16 May 2003 20:00:44 andrayk
* TrueFFS-5.1.4
*
* Rev 1.7 24 Apr 2002 02:37:42 andreyk
* TrueFFS-5.1 update
*
* Rev 1.6 12 Feb 2002 01:56:20 andreyk
* TrueFFS-5.1
*
* Rev 1.5 21 Sep 2001 17:45:16 andreyk
* flMsecToYieldCPU added
*
* Rev 1.4 03 Sep 2001 03:41:22 andreyk
* alignment of file system's bufers
*
* Rev 1.3 Jun 20 2001 19:55:06 oris
* minor change to copyright statement
*
* Rev 1.2 17 May 2001 02:48:40 andreyk
* bug fixes in osak-5
*
*
* Rev 1.1 May 28 2000 11:40:48 vadimk
* OSAK-4.1 with IOCTL support
*
* Rev 1.3 Jan 16 2000 14:41:50 vadimk
* "fl" prefix was added to the environment variables
*
* Rev 1.2 Jan 13 2000 18:36:10 vadimk
* TrueFFS OSAK 4.1
*
* Rev 1.6 22 Apr 1999 16:06:42 marina
* flRegisterComponents returns status.
*
* Rev 1.5 23 Feb 1998 20:04:26 Yair
* Added #include "flsystem.h"
*
* Rev 1.4 17 Sep 1997 17:11:32 danig
*
* Rev 1.3 28 Aug 1997 16:38:32 danig
* IRQ received as PCIC registration parameter
*
* Rev 1.2 18 Aug 1997 16:06:36 danig
* flRegisterPCIC receives window base address
*
* Rev 1.1 24 Jul 1997 18:10:26 amirban
* Moved stuff to flsystem.c
*
* Rev 1.0 07 Jul 1997 15:21:38 amirban
* Initial revision.
*/
/*
* Configuration
*/
#undef FL_DRV_SIMDOC /* include support for DiskOnChip simulation */
#undef FL_DRV_MULTIDOC /* include Multi-Doc */
/*
* includes
*/
#include "stdcomp.h"
#ifdef FL_DRV_SIMDOC
#include "flsim.h"
#endif
/*
* Globals
*/
int fl_vols = 0; /* set by tffsSetup(), fldrvvxw.c */
long fl_volsAddr[2* VOLUMES] = {0l, 0l}; /* set by tffsSetup(), fldrvvxw.c */
extern int doc_noOfTLs; /* No. of translation layers actually registered */
/*
* Runtime configuration variables.
*/
/* set to non-zero to enable 8-bit data transfer (default is 32-bit) */
unsigned char flUse8Bit = (unsigned char) 1;
/* set to zero to disable NFTL cache (not recommended) */
unsigned char flUseNFTLCache = (unsigned char) 1;
/* set to non-zero to enable RAM probe (not recommended) */
unsigned char flUseisRAM = (unsigned char) 0;
/* set to non-zero to yield the CPU during flash erase operation */
unsigned char flDelay = (unsigned char) 0;
/* set to zero to disable internal diagnostic messages */
int fl_useDebug = 32;
/* buffer alignment */
int flBufferAlignment = ((int) sizeof(char));
/* milliseconds to yield CPU */
int flMsecToYieldCPU = 1;
/* to install simDoc socket, set respective bit to 1 */
#ifdef FL_DRV_SIMDOC
#if (CPU == SIMNT)
int flUseSimDoc = -1;
#else
int flUseSimDoc = 0;
#endif
#endif /* FL_DRV_SIMDOC */
/* -------------------------------------------------------------------- *
* *
* f l S e t E n v V a r *
* *
* Called during driver startup to set driver's runtime configuration *
* variables. *
* *
* Parameters: *
* None *
* *
* -------------------------------------------------------------------- */
void flSetEnvVar (void)
{
/*
* Don't touch runtime config. vars - they might have been changed
* by tffsSetOption() and tffsMultidoc().
*/
}
/* -------------------------------------------------------------------- *
* *
* f l R e g i s t e r C o m p o n e n t s *
* *
* Register socket, MTD and translation layer components. *
* *
* Parameters: *
* None *
* *
* Returns : always flOK *
* *
* -------------------------------------------------------------------- */
FLStatus doc_flRegisterComponents (void)
{
int i;
FLStatus status;
if (fl_vols == 0) {
/* tffsSetup() has not been called. Assume single socket. */
fl_vols = 1;
}
/* installing socket drivers */
for (i = 0; i < fl_vols; i++) {
#ifdef FL_DRV_SIMDOC
if( (i < sizeof(int)) && ((flUseSimDoc & (1 << i)) != 0) ) {
/* define simDoc configuration */
(void) flRegisterSimSoc( (FLSimConf_t *) fl_volsAddr[2*i] );
}
else
#endif /* FL_DRV_SIMDOC */
{
/* register M+ socket first; if no luck, register DiskOnChip socket */
status = flRegisterDOCPLUSSOC( (dword) fl_volsAddr[2*i],
(dword) fl_volsAddr[2*i + 1] );
if (status != flOK) {
(void) flRegisterDOCSOC( (dword) fl_volsAddr[2*i],
(dword) fl_volsAddr[2*i + 1] );
}
}
}
/*
* Linking in Memory Technology Drivers (MTDs).
*
* NOTE: simDoc MTD must be first MTD to install
*/
#ifdef FL_DRV_SIMDOC
if (flUseSimDoc != 0)
(void) flRegisterSimMTD (); /* simDoc MTD */
#endif
(void) flRegisterDOC2000 (); /* DiskOnChip MTD */
printf("doc_noOfTLs=%d\n",doc_noOfTLs);
(void) flRegisterDOCPLUS (); /* M+ MTD */
printf("doc_noOfTLs=%d\n",doc_noOfTLs);
/* linking in Translation Layers (TLs) */
printf("doc_noOfTLs=%d\n",doc_noOfTLs);
(void) flRegisterINFTL();
printf("doc_noOfTLs=%d\n",doc_noOfTLs);
(void) flRegisterNFTL();
printf("doc_noOfTLs=%d\n",doc_noOfTLs);
#ifdef FL_DRV_MULTIDOC
if (flUseMultiDoc == 1) {
/* (void) flRegisterMTL (); */ /* multi-doc TL is linked in BLOCKDEV */
}
#endif
return flOK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -