patch-2.4.19 linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/flashdrv.h

Next file: linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/i2o.h
Previous file: linux-2.4.19/include/asm-mips/galileo-boards/evb64120A/eeprom_param.h
Back to the patch index
Back to the overall index

diff -urN linux-2.4.18/include/asm-mips/galileo-boards/evb64120A/flashdrv.h linux-2.4.19/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 */
+

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)