Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*
* $Log: V:/Flite/archives/TrueFFS5/Src/DISKONC.H_V $ * * Rev 1.8 Jan 17 2002 22:58:12 oris * Removed EXTRA_LEN * * Rev 1.7 Nov 08 2001 10:44:40 oris * Added BBT_MAX_DISTANCE definition * * Rev 1.6 Jul 13 2001 00:59:52 oris * Moved VERIFY_WRITE and VERIFY_ERASE compilation flag to flcustom.h. * Added file header. * */
/*******************************************************************
* * DESCRIPTION: basic mtd functions for the DiskOnChip 2000 family * * AUTHOR: Dimitry Shmidt * * HISTORY: OSAK 1.23 * *******************************************************************/ /***********************************************************************************/ /* 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 = [email protected] */ /***********************************************************************************/
#ifndef DISKONC_H
#define DISKONC_H
#include "docsys.h"
#ifndef MTD_STANDALONE
extern FLBoolean checkWinForDOC(unsigned driveNo, NDOC2window memWinPtr); #endif /* MTD_STANDALONE */
/*���������������������������.*/ /* Feature list */ /*���������������������������.*/
/* #define MULTI_ERASE */ /* use multiple block erase feature */ /* #define WIN_FROM_SS */ /* call Socket Services to get window location */ /* #define BIG_PAGE_ENABLED */ /* compile support for 2MB flashes */ /* #define SEPARATED_CASCADED */ /* export each floor as a SEPARATED device */
#define BUSY_DELAY 30000
#define START_ADR 0xC8000L
#define STOP_ADR 0xF0000L
#define PAGES_PER_BLOCK 16 /* 16 pages per block on a single chip */
#define CHIP_PAGE_SIZE 0x100 /* Page Size of 2 Mbyte Flash */
/* miscellaneous limits */
/*#define MAX_FLASH_DEVICES_MDOC 2 *//* Removed in osak 5.0 */ #define MAX_FLASH_DEVICES_DOC 16
#define MAX_FLOORS 4
#define CHIP_ID_DOC 0x20
#define CHIP_ID_MDOC 0x30
#define MDOC_ALIAS_RANGE 0x100
#define ALIAS_RESOLUTION (MAX_FLASH_DEVICES_DOC + 10)
/*������������������������������������Ŀ
� Definition for writing boot image � ��������������������������������������*/
#define SPL_SIZE 0x2000 /* 8 KBytes */
#define MAX_CODE_MODULES 6 /* max number of code modules in boot area (incl. SPL) */
/*������������������������������������Ŀ
� Definition for doc2000 tsop bbt � ��������������������������������������*/
#define BBT_SIGN_SIZE 8
#define BBT_SIGN "MSYS_BBT"
#define MAX_BAD_PER_512 40
#define BBT_MAX_DISTANCE 0x20
/*���������������������������������������Ŀ
� Definition of DOC 2000 memory window � �����������������������������������������*/
/*
DOC 2000 memory window layout :
0000 .... 003F IPL ROM ( part 1 ) 0040 .... 07FF (aliased 20H times) 0800 .... 083F IPL ROM ( part 2 ) 0840 .... 0FFF (aliased 20H times) 1000 Chip Id 1001 DOC_Status_reg 1002 DOC_Control_reg 1003 ASIC_Control_reg CDSN window -----> 1004 CDSN_Control_reg 1005 CDSN_Device_Selector 1006 ECC_Config_reg 1007 ECC_Status_reg 1008 .... 100C Test registers [5] 100D CDSN_Slow_IO_reg 100E .... 100F reserved ( 2 bytes ) 1010 .... 1015 ECC_Syndrom [6] 1016 .... 17FF reserved ( 2027 bytes ) 1800 .... 1FFF CDSN_IO (aliased 800H times) */
/*-----------------------------------------
| Definition of MDOC 2000 memory window | ----------------------------------------*/
/* MDOC 2000 memory window layout :
0000 .... 01FF IPL SRAM ( part 1 ) 0200 .... 07FF (aliased 4 times) 0800 .... 0FFF CDSN_IO (aliased 800H times) 1000 Chip Id 1001 DOC_Status_reg 1002 DOC_Control_reg 1003 ASIC_Control_reg CDSN window -----> 1004 CDSN_Control_reg 1005 CDSN_Device_Selector 1006 ECC_Config_reg 1007 .... 100C reserved ( 6 bytes ) 100D CDSN_Slow_IO_reg 100E .... 100F reserved ( 2 bytes ) 1010 .... 1015 ECC_Syndrom [6] 1016 .... 101A reserved ( 5 bytes ) 101B Alias_Resolution_reg 101C Config_Input_reg 101D Read_Pipeline_Init_reg 101E Write_Pipeline_Term_reg 101F Last_Data_Read_reg 1020 NOP_reg 1021 .... 103E reserved ( 30 ) 103F Foundary_Test_reg 1040 .... 17FF reserved ( 1984 bytes (7C0) ) 1800 .... 19FF IPL SRAM ( part 1 ) 1A00 .... 1FFF (aliased 4 times) */
#define NIPLpart1 0x0 /* read */
#define NIPLpart2 0x800 /* read */
#define NchipId 0x1000 /* read */
#define NDOCstatus 0x1001 /* read */
#define NDOCcontrol 0x1002 /* write */
#define NASICselect 0x1003 /* read write */
#define Nsignals 0x1004 /* read write */
#define NdeviceSelector 0x1005 /* read write */
#define NECCconfig 0x1006 /* write */
#define NECCstatus 0x1007 /* read */
#define NslowIO 0x100d /* read write */
#define Nsyndrom 0x1010 /* read */
#define NaliasResolution 0x101B /* read write MDOC only */
#define NconfigInput 0x101C /* read write - || - */
#define NreadPipeInit 0x101D /* read - || - */
#define NwritePipeTerm 0x101E /* write - || - */
#define NreadLastData 0x101F /* read write - || - */
#define NNOPreg 0x1020 /* read write - || - */
#define NfoudaryTest 0x103F /* write */
#define Nio 0x1800 /* read write */
/* bits for writing to DOC2window.DOCcontrol reg */
#define ASIC_NORMAL_MODE 0x85
#define ASIC_RESET_MODE 0x84
#define ASIC_CHECK_RESET 0x00
/* bits for writing to DOC2window.signals ( CDSN_Control reg ) */
#define CE 0x01 /* 1 - Chip Enable */
#define CLE 0x02 /* 1 - Command Latch Enable */
#define ALE 0x04 /* 1 - Address Latch Enable */
#define WP 0x08 /* 1 - Write-Protect flash */
#define FLASH_IO 0x10
#define ECC_IO 0x20 /* 1 - turn ECC on */
#define PWDO 0x40
/* bits for reading from DOC2window.signals ( CDSN_Control reg ) */
#define RB 0x80 /* 1 - ready */
/* bits for writing to DOC2window.ECCconfig */
#define ECC_RESET 0x00
#define ECC_IGNORE 0x01
#define ECC_RESERVED 0x02 /* reserved bits */
#define ECC_EN (0x08 | ECC_RESERVED) /* 1 - enable ECC */
#define ECC_RW (0x20 | ECC_RESERVED) /* 1 - write mode, 0 - read mode */
/* bits for reading from DOC2window.ECCstatus */
#define ECC_ERROR 0x80
#define TOGGLE 0x04 /* used for DOC 2000 detection */
#define MDOC_ASIC 0x08 /* MDOC asic */
/*----------------------------------------------------------------------*/ /* c h e c k W i n F o r D o c */ /* */ /* Checks if a given window is valid DOC window. */ /* */ /* Parameters: */ /* memWinPtr host base address of the window */ /* */ /* Returns: */ /* TRUE if there is DOC FALSE otherwise */ /*----------------------------------------------------------------------*/
/* extern FLBoolean checkWinForDOC(unsigned driveNo, NDOC2window memWinPtr); */
#endif /* DISKONC_H */
|