1/* Memory.h - Memory mappings and remapping functions declarations */
2
3/* Copyright - Galileo technology. */
4
5#ifndef __INCmemoryh
6#define __INCmemoryh
7
8/* includes */
9
10#include "core.h"
11
12/* defines */
13
14#define DONT_MODIFY     0xffffffff
15#define PARITY_SUPPORT  0x40000000
16
17#define _8BIT           0x00000000
18#define _16BIT          0x00010000
19#define _32BIT          0x00020000
20#define _64BIT          0x00030000
21
22/* typedefs */
23
24typedef enum __memBank{BANK0,BANK1,BANK2,BANK3} MEMORY_BANK;
25typedef enum __device{DEVICE0,DEVICE1,DEVICE2,DEVICE3,BOOT_DEVICE} DEVICE;
26
27
28unsigned int   getMemoryBankBaseAddress(MEMORY_BANK bank);
29unsigned int   getDeviceBaseAddress(DEVICE device);
30unsigned int   getMemoryBankSize(MEMORY_BANK bank);
31unsigned int   getDeviceSize(DEVICE device);
32unsigned int   getDeviceWidth(DEVICE device);
33
34bool mapMemoryBanks0and1(unsigned int bank0Base,unsigned int bank0Length,
35                         unsigned int bank1Base,unsigned int bank1Length);
36bool mapMemoryBanks2and3(unsigned int bank2Base,unsigned int bank2Length,
37                         unsigned int bank3Base,unsigned int bank3Length);
38bool mapDevices0_1and2MemorySpace(unsigned int device0Base,
39                                  unsigned int device0Length,
40                                  unsigned int device1Base,
41                                  unsigned int device1Length,
42                                  unsigned int device2Base,
43                                  unsigned int device2Length);
44bool mapDevices3andBootMemorySpace(unsigned int device3Base,
45                                   unsigned int device3Length,
46                                   unsigned int bootDeviceBase,
47                                   unsigned int bootDeviceLength);
48bool mapInternalRegistersMemorySpace(unsigned int internalRegBase);
49bool modifyDeviceParameters(DEVICE device,unsigned int TurnOff,
50                            unsigned int AccToFirst,unsigned int AccToNext,
51                            unsigned int ALEtoWr, unsigned int WrActive,
52                            unsigned int WrHigh,unsigned int Width,
53                            bool ParitySupport);
54
55bool remapAddress(unsigned int remapReg, unsigned int remapValue);
56#endif /* __INCmemoryh */
57
58