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

Windows CE

开发平台:

Windows_Unix

  1. /******************************************************************************
  2.  *
  3.  * System On Chip(SOC)
  4.  *
  5.  * Copyright (c) 2002 Software Center, Samsung Electronics, Inc.
  6.  * All rights reserved.
  7.  *
  8.  * This software is the confidential and proprietary information of Samsung 
  9.  * Electronics, Inc("Confidential Information"). You Shall not disclose such 
  10.  * Confidential Information and shall use it only in accordance with the terms 
  11.  * of the license agreement you entered into Samsung.
  12.  *
  13.  *-----------------------------------------------------------------------------
  14.  *
  15.  * S3C2440 BSP (WinCE3.0 & PocketPC2002)
  16.  *
  17.  * nand.h : S3C2440 NAND Smart Media READ/WRITE Routine Header File
  18.  *
  19.  * @author zartoven@samsung.com (SOC, SWC, SAMSUNG Electronics)
  20.  *
  21.  * @date 2002/05/14
  22.  * 
  23.  * Log:
  24.  * 2002/05/14  Start(with SOC's S3C2410 Boot Loader NAND Routines)
  25.  *      
  26.  ******************************************************************************
  27.  */
  28. #ifndef __NAND_H__
  29. #define __NAND_H__
  30. #define NAND_BLOCK_CNT          (1024 * 4)      /* Each Plane has 1024 Blocks   */
  31. #define NAND_PAGE_CNT           (32)            /* Each Block has 32 Pages      */
  32. #define NAND_PAGE_SIZE          (512)           /* Each Page has 512 Bytes      */
  33. #define NAND_BLOCK_SIZE         (NAND_PAGE_CNT * NAND_PAGE_SIZE)
  34. #define CMD_READID                  0x90        //  ReadID
  35. #define CMD_READ                    0x00        //  Read
  36. #define CMD_READ2                   0x50        //  Read2
  37. #define CMD_RESET                   0xff        //  Reset
  38. #define CMD_ERASE                   0x60        //  Erase phase 1
  39. #define CMD_ERASE2                  0xd0        //  Erase phase 2
  40. #define CMD_WRITE                   0x80        //  Write phase 1
  41. #define CMD_WRITE2                  0x10        //  Write phase 2
  42. /* !!! Maximum Delay Setting, Please Adjust these value to Optimize */
  43. #define TACLS 7   
  44. #define TWRPH0 7
  45. #define TWRPH1 7
  46. #define NF_CMD(cmd)         {s2440NAND->rNFCMMD   =  (cmd);}
  47. #define NF_ADDR(addr) {s2440NAND->rNFADDR  =  (volatile unsigned char)(addr);}
  48. #define NF_nFCE_L() {s2440NAND->rNFCONF &= ~(1 << 11);}
  49. #define NF_nFCE_H() {s2440NAND->rNFCONF |=  (1 << 11);}
  50. #define NF_RSTECC() {s2440NAND->rNFCONF |=  (1 << 12);}
  51. #define NF_RDDATA() (s2440NAND->rNFDATA)
  52. #define NF_WRDATA(data) {s2440NAND->rNFDATA  =  (data);}
  53. #define NF_WAITRB() {while (!(s2440NAND->rNFSTAT & (1 << 0)));} 
  54. #endif