summaryrefslogtreecommitdiffstats
path: root/include/asm-mips/galileo-boards/evb64120A/flashdrv.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-mips/galileo-boards/evb64120A/flashdrv.h')
-rw-r--r--include/asm-mips/galileo-boards/evb64120A/flashdrv.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/include/asm-mips/galileo-boards/evb64120A/flashdrv.h b/include/asm-mips/galileo-boards/evb64120A/flashdrv.h
new file mode 100644
index 000000000..f69251ec0
--- /dev/null
+++ b/include/asm-mips/galileo-boards/evb64120A/flashdrv.h
@@ -0,0 +1,81 @@
+/* flashdrv.h - FLASH memory interface header file */
+
+/* Copyright Galileo Technology. */
+
+#ifndef __INCflashdrvh
+#define __INCflashdrvh
+
+/* includes */
+
+#include "core.h"
+
+/* defines */
+
+/* Supported Flash Manufactures */
+
+#define AMD_FLASH 0x01
+#define ST_FLASH 0x20
+#define INTEL_FLASH 0x89
+#define MICRON_FLASH 0x89
+
+/* Supported Flash Devices */
+
+/* AMD Devices */
+#define AM29F400BT 0x2223
+#define AM29F400BB 0x22AB
+#define AM29LV800BT 0x22DA
+#define AM29LV400BT 0x22B9
+#define AM29LV400BB 0x22BA
+#define AM29LV040B 0x4f
+/* ST Devices */
+#define M29W040 0xE3
+/* INTEL Devices - We have added I before the name defintion.*/
+#define I28F320J3A 0x16
+#define I28F640J3A 0x17
+#define I28F128J3A 0x18
+#define I28F320B3_B 0x8897
+#define I28F320B3_T 0x8896
+#define I28F160B3_B 0x8891
+#define I28F160B3_T 0x8890
+
+#define POINTER_TO_FLASH flashParametrs[0]
+#define FLASH_BASE_ADDRESS flashParametrs[1]
+#define FLASH_WIDTH flashParametrs[2] /* In Bytes */
+#define FLASH_MODE flashParametrs[3] /* In bits */
+#define MANUFACTOR_ID POINTER_TO_FLASH + 0
+#define VENDOR_ID POINTER_TO_FLASH + 1
+#define NUMBER_OF_SECTORS POINTER_TO_FLASH + 2
+#define FIRST_SECTOR_SIZE POINTER_TO_FLASH + 3
+#define NUM_OF_DEVICES FLASH_WIDTH / (FLASH_MODE / 8)
+
+/* typedefs */
+
+typedef enum _FlashMode {PURE8,X8 = 8,X16 = 16} FLASHmode;
+/* PURE8 - when using a flash device whice can be configurated only as
+ 8 bit device. */
+/* X8 - when using a flash device which is 16 bit wide but configured to
+ operate in 8 bit mode.*/
+/* X16 - when using a flash device which is 16 bit wide */
+
+bool flashErase(void);
+bool flashEraseSector(unsigned int sectorNumber);
+bool flashWriteWord(unsigned int offset,unsigned int data);
+bool flashWriteShort(unsigned int offset,unsigned short sdata);
+bool flashWriteChar(unsigned int offset,unsigned char cdata);
+void flashReset(void);
+unsigned int flashInWhichSector(unsigned int offset);
+unsigned int flashGetSectorSize(unsigned int sectorNumber);
+unsigned int flashInit(unsigned int baseAddress,unsigned int flashWidth,
+ FLASHmode FlashMode);
+unsigned int flashGetNumOfSectors(void);
+unsigned int flashGetSize(void);
+unsigned int flashGetSectorOffset(unsigned int sectorNum);
+unsigned int flashWriteBlock(unsigned int offset,unsigned int numOfByte,
+ unsigned char * blockAddress);
+unsigned int flashReadWord(unsigned int offset);
+unsigned char flashReadChar(unsigned int offset);
+unsigned short flashReadShort(unsigned int offset);
+unsigned int flashReadBlock(unsigned int offset,unsigned int numOfByte,
+ unsigned char * blockAddress);
+#endif /* __INCflashdrvh */
+