blob: f69251ec0483fe0a5172ddb0afe61919a7ee1405 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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 */
|