cfnand.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:3k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright (c) 2001  Microsoft Corporation
  7. Module Name: S3C2440.H
  8. Abstract: FLASH Media Driver Interface Samsung S3C2440 CPU with NAND Flash 
  9.                 controller.
  10.   
  11. Environment: As noted, this media driver works on behalf of the FAL to directly
  12. access the underlying FLASH hardware.  Consquently, this module 
  13. needs to be linked with FLASHFAL.LIB to produce the device driver 
  14. named FLASHDRV.DLL.
  15. -----------------------------------------------------------------------------*/
  16. #ifndef _S3C2440_DEVBOARD_
  17. #define _S3C2440_DEVBOARD_
  18. //  Flash Chip Capability
  19. //
  20. #define NUM_BLOCKS                  0x1000       //  64 MB On-board NAND flash.
  21. #define SECTOR_SIZE                 512
  22. #define SPARE_SIZE                  16
  23. #define PAGES_PER_BLOCK             32
  24. #define LOG_2_PAGES_PER_BLOCK 5 // Used to avoid multiplications
  25. //  For flash chip that is bigger than 32 MB, we need to have 4 step address
  26. //
  27. //  Since we are using 64 MB NAND flash on SMDK2440, define NAND_SIZE_GT_32MB
  28. //
  29. #define NAND_SIZE_GT_32MB
  30. #ifdef NAND_SIZE_GT_32MB
  31. #define NEED_EXT_ADDR               1
  32. #else
  33. #define NEED_EXT_ADDR               0
  34. #endif
  35. //  Initialization value for configuration register
  36. #define NFCONF_INIT                 0xF850
  37. //  NAND Flash Command. This appears to be generic across all NAND flash chips
  38. #define CMD_READ                    0x00        //  Read
  39. #define CMD_READ1                   0x01        //  Read1
  40. #define CMD_READ2                   0x50        //  Read2
  41. #define CMD_READID                  0x90        //  ReadID
  42. #define CMD_WRITE                   0x80        //  Write phase 1
  43. #define CMD_WRITE2                  0x10        //  Write phase 2
  44. #define CMD_ERASE                   0x60        //  Erase phase 1
  45. #define CMD_ERASE2                  0xd0        //  Erase phase 2
  46. #define CMD_STATUS                  0x70        //  Status read
  47. #define CMD_RESET                   0xff        //  Reset
  48. //  Status bit pattern
  49. #define STATUS_READY                0x40        //  Ready
  50. #define STATUS_ERROR                0x01        //  Error
  51. //  For fast read / write
  52. #ifdef __cplusplus
  53. extern "C"  {
  54. #endif
  55. void ReadPage512(BYTE *pBuf, PULONG pReg);
  56. void WritePage512(BYTE *pBuf, PULONG pReg);
  57. #ifdef __cplusplus
  58. }
  59. #endif
  60. #endif _S3C2440_DEVBOARD_