flashdrv.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* flashdrv.h - FLASH memory interface header file */
  2. /* Copyright Galileo Technology. */
  3. #ifndef __INCflashdrvh
  4. #define __INCflashdrvh
  5. /* includes */
  6. #include "core.h"
  7. /* defines */
  8. /* Supported Flash Manufactures */
  9. #define AMD_FLASH       0x01
  10. #define ST_FLASH        0x20
  11. #define INTEL_FLASH     0x89
  12. #define MICRON_FLASH    0x89
  13. /* Supported Flash Devices */
  14. /* AMD Devices */
  15. #define AM29F400BT      0x2223
  16. #define AM29F400BB      0x22AB
  17. #define AM29LV800BT     0x22DA
  18. #define AM29LV400BT     0x22B9
  19. #define AM29LV400BB     0x22BA
  20. #define AM29LV040B      0x4f
  21. /* ST Devices */
  22. #define M29W040         0xE3
  23. /* INTEL Devices - We have added I before the name defintion.*/
  24. #define I28F320J3A      0x16
  25. #define I28F640J3A      0x17
  26. #define I28F128J3A      0x18
  27. #define I28F320B3_B     0x8897
  28. #define I28F320B3_T     0x8896
  29. #define I28F160B3_B     0x8891
  30. #define I28F160B3_T     0x8890
  31. #define POINTER_TO_FLASH           flashParametrs[0]
  32. #define FLASH_BASE_ADDRESS         flashParametrs[1]
  33. #define FLASH_WIDTH                flashParametrs[2] /* In Bytes */
  34. #define FLASH_MODE                 flashParametrs[3] /* In bits  */
  35. #define MANUFACTOR_ID              POINTER_TO_FLASH + 0
  36. #define VENDOR_ID                  POINTER_TO_FLASH + 1
  37. #define NUMBER_OF_SECTORS          POINTER_TO_FLASH + 2
  38. #define FIRST_SECTOR_SIZE          POINTER_TO_FLASH + 3
  39. #define NUM_OF_DEVICES             FLASH_WIDTH / (FLASH_MODE / 8)
  40. /* typedefs */
  41. typedef enum _FlashMode {PURE8,X8 = 8,X16 = 16} FLASHmode;
  42. /* PURE8 - when using a flash device whice can be configurated only as
  43.             8 bit device. */
  44. /* X8    - when using a flash device which is 16 bit wide but configured to
  45.            operate in 8 bit mode.*/
  46. /* X16   - when using a flash device which is 16 bit wide */
  47. bool    flashErase(void);
  48. bool    flashEraseSector(unsigned int sectorNumber);
  49. bool    flashWriteWord(unsigned int offset,unsigned int data);
  50. bool    flashWriteShort(unsigned int offset,unsigned short sdata);
  51. bool    flashWriteChar(unsigned int offset,unsigned char cdata);
  52. void    flashReset(void);
  53. unsigned int    flashInWhichSector(unsigned int offset);
  54. unsigned int    flashGetSectorSize(unsigned int sectorNumber);
  55. unsigned int    flashInit(unsigned int baseAddress,unsigned int flashWidth,
  56.                           FLASHmode FlashMode);
  57. unsigned int    flashGetNumOfSectors(void);
  58. unsigned int    flashGetSize(void);
  59. unsigned int    flashGetSectorOffset(unsigned int sectorNum);
  60. unsigned int    flashWriteBlock(unsigned int offset,unsigned int numOfByte,
  61.                         unsigned char * blockAddress);
  62. unsigned int    flashReadWord(unsigned int offset);
  63. unsigned char   flashReadChar(unsigned int offset);
  64. unsigned short  flashReadShort(unsigned int offset);
  65. unsigned int    flashReadBlock(unsigned int offset,unsigned int numOfByte,
  66.                                unsigned char * blockAddress);
  67. #endif /* __INCflashdrvh */