⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flcustom.h

📁 H3 M-system NAND flash driver in Linux OS, M-DOC driver
💻 H
字号:
/****************************************************************************** *                                                                            * * Project: DOC Driver for Linux 2.6 Block device driver for mDOC H3  family  * * of devices under Linux kernel 2.6.                                         * *                                                                            * *   Version: 1.0                                                             * *   Email questions to: oemsupport@sandisk.com                               * *   Copyright (C) SanDisk IL Ltd. 1995 - 2007                                * *   SanDisk IL Ltd., 7 Atir Yeda Street, Kfar Saba 44425, Israel             * *                                                                            * ****************************************************************************** *                                                                            * * This program is free software; you can redistribute it and/or modify it    * * under the terms of the GNU General Public License as published by the Free * * Software Foundation; either version 2 of the License, or any later version.* * This program is distributed in the hope that it will be useful, but WITHOUT* * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or      * * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for  * * more details, which is set forth in the readme.txt file.                   * * You should have received a copy of the GNU General Public License along    * * with this program; if not, write to the Free Software Foundation, Inc., 51 * * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA                    * *                                                                            * * This License does not grant you any right to use the trademarks, service   * * marks or logos of SanDisk IL Ltd. or SanDisk Corporation.                  * * Subject to the foregoing, SanDisk IL Ltd., for itself and on behalf of its * * licensors, hereby reserves all intellectual property rights in the program,* * except for the rights expressly granted in this License.                   * *                                                                            * ******************************************************************************//* * $Log$ */#ifndef FLCUSTOM_H#define FLCUSTOM_H/* Driver & TrueFFS Version numbers (Previously named OSAK) * * The string must not be greater than 10 characters. * * Note: Other then being returned by the the flVolumeInfo() routine this * value has no actual affect on the TrueFFS software. */#define driverVersion "1.0.2"#define OSAKVersion   "1.0.2"#define TFFS_SUPPORTED_DEVICE "H3"/*  * debug/diagnostic messages */#define TFFS_DEBUG_DRIVER#ifdef TFFS_DEBUG_DRIVER/* EXT filter debug messages */# define TFFS_DEBUG_EXTFILTER/* enable TFFS debug messages and fl_debug insmod argument */# define TFFS_MESSAGES_ENABLED/* default for fl_debug parameter: 0 - no messages, 1 - errors, 2 - warnings, 4 - flow */# define FL_DEBUG_DEF	2/* #define TFFS_COUNT_REQ_SECTORS */#endif /* TFFS_DEBUG_DRIVER *//*  * Collect various driver statistics */#define TFFS_STATISTIC/*  * comment out this macro if you want to get "MTD-style" */#define TFFS_PARTITIONABLE/*  * Scatter/gather of read/write requests in tffsdrv<ver>.c */#define TFFS_REQ_CACHE_SIZE (4096 * 16)#define DEV2PART_SHIFT                4  /* at most 15 file system partitions per disk */#define TFFS_DEVICE_NAME             "tffs"#define TFFS_MAXHW_SECTOR_SIZE_BITS   0/*  * allow using of unformatted DiskOnChip devices */#define TFFS_ALLOW_UNFORMATTED/* * allow yielding CPU during flash write/erase operations */#define TFFS_USE_SLEEP/* Number of sockets * * Defines the maximum number of supported physical DiskOnChip devices. * * The actual number of sockets depends on which socket controllers are * actually registered and the number of physical devices in the system. */#define FL_SOCKETS  1/* Number of volumes * * Defines the maximum number of supported Disk (BDTL) partitions. * * The actual number of drives depends on which socket controllers are * actually registered, the amount of devices in the system and the * flash format placed on each device. */#define FL_VOLUMES (14 * FL_SOCKETS)/* Environment Variables * * Enable environment variables control of the TrueFFS features. * */#define FL_ENVIRONMENT_VARS/* #define DOCH_ACCESS_LAYER_NOR *//* #define DOCH_ACCESS_LAYER_SPI *//* Forces the device into the deep power down mode after every driver operation *//* Compile the auto DPD code * * TrueFFS supports a mode, where TrueFFS automatically enters and exit DPD * after every operation.  * * The compilation bellow compiles that code. Note that it's operation is  * also under the affect of the dedicated environment variable. */#define FL_BD_AUTO_DPD_MODE#define FL_DEFAULT_BD_DPD_MODE(socket)  tffs_auto_dpdextern int tffs_auto_dpd;/* Upon completion of every read/write access, DiskOnChip H3 devices * immediately switch from the normal mode into the idle mode, and stay * in the idle mode for 'DOCH_DPD_DEFAULT_DPD_TIMEOUT' milliseconds before * switching into deep-power-down mode. */#define DOCH_DPD_DEFAULT_DPD_TIMEOUT  tffs_dpd_timeoutextern int tffs_dpd_timeout;/*  * Remove all flash write functionalities from the code.  * * When this option is selected, only API functions that do not involve write * operations to the media can be called.  *  * This option can be used to create read-only applications with low RAM/ROM * requirements. *//* #define TFFS_RO */#ifdef TFFS_RO# define FL_READ_ONLY#endif/* IO Controll Interface * * Support standard IOCTL interface. * */#define FL_IOCTL_INTERFACE#ifdef FL_IOCTL_INTERFACE/* Low level operations * * Uncomment the following line if you want to do low level operations * (i.e. read from a physical address, write to a physical address, * erase a unit according to its physical unit number, OTP and unique ID * operations. */# define FL_LOW_LEVEL/* Flash Formatting (Block device format) * * Uncomment the following line if you need to prepare a virgin DiskOnChip * for work or in case you want to re-partition your existing device.  * * This routine compiles the following 3 API routines: *    flFlashFormat(), flEraseBD() and flUnformat() */# ifndef TFFS_RO#  define FL_FORMAT_VOLUME# endif/* H/W OTP * * Enable H/W One Time Programing capability including unique ID * */# define HW_OTP#endif /* FL_IOCTL_INTERFACE *//* Application exit * * If the FLite application ever exits, it needs to call flEXit before * exiting. Uncomment the following line to enable this. */#define FL_EXIT /* H/W Protection * * Enable H/W protection of the device. * */#define HW_PROTECTION/* Compile the code for reading after write * * Compiles the code and buffers for reading after every write operation * This mode is used for debugging when you are still debugging the platform's  * H/W. */#define FL_VERIFY_WRITE/* Verify entire volume * * Compile the flVerifyVolume() routine - this routine scans the entire disk * partition for power failures symptoms and correct them while initializing  * the TL cache. * *//* #define VERIFY_VOLUME */#ifdef FL_IOCTL_INTERFACE/* Binary Partition * * Enables access to the Binary partition. * */# define BDK_ACCESS#endif#ifdef BDK_ACCESS/* Number of Binary partitions on the DiskOnChip. * * Defines Maximum Number of Binary partitions on the DiskOnChip. * The actual number of partitions depends on the format placed * on each device. */# define FL_BINARY_PARTITIONS (3 * FL_SOCKETS)#endif /* BDK_ACCESS *//* Remove runtime controll over memory access routines  * * If defined memory access routines will be set at compile time using  * dedicated defintions in flsystem.h * Note : when compile time customization is chosen, you must sepcify * the bus width even when working with DiskOnChip Millennium Plus. * Refer to Trueffs manual for more infromation. *//* #define FL_NO_USE_FUNC *//* * Removes the code used for writing and reading the IPL code. * */#ifndef FL_IOCTL_INTERFACE# define NO_IPL_CODE#endif/* Little-endian/big-endian * * FAT and translation layer structures use the little-endian (Intel) * format for integers. * If your machine uses the big-endian (Motorola) format, uncomment the * following line. * Note that even on big-endian machines you may omit the BIG_ENDIAN * definition for smaller code size and better performance, but your media * will not be compatible with standard FAT and FTL. *//* #define FL_BIG_ENDIAN *//* #define FL_NO_INIT_MMU_PAGES *//* Compile the extended Disk information routine * * TrueFFS 6.0 and up provide an extended information routine for internal * M-Systems utilities named flGetExtendedDiskInfo().  * To compile its code define */#define FL_EXTENDED_DISK_INFO/* #define FL_NO_QUICK_MOUNT_FEATURE *//* Disable the automatic argument check * * You can remove code and even slightly improve the overall performance by * allowing TrueFFS to skip its internal argument check by defining * *//* #define FL_SKIP_ARGS_CHECK *//* Absolute read & write * * Uncomment the following line if you want to be able to read & write * sectors by absolute sector number (i.e. without regard to files and * directories). */#define FL_ABS_READ_WRITE#define DOCH_CHECK_CHIP_ID#if 0  /* andrayk June 23 2006: added for H3 burst */  /*    * Include code related to DiskOnChip H3 burst mode   */  # define DOCH_USE_BURST_MODE_READ  # define DOCH_BURST_LENGTH      tffs_burst_length  # define DOCH_BURST_LATENCY     tffs_burst_latency  # define DOCH_BURST_HOLD        tffs_burst_hold  # define DOCH_BURST_WAIT_STATE  tffs_burst_ws  extern int tffs_burst;  extern int tffs_burst_length;  extern int tffs_burst_latency;  extern int tffs_burst_hold;  extern int tffs_burst_ws;#endifextern unsigned int profiling[];#endif /* FLCUSTOM_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -