Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / u-boot / include / galileo / memory.h
diff --git a/qemu/roms/u-boot/include/galileo/memory.h b/qemu/roms/u-boot/include/galileo/memory.h
new file mode 100644 (file)
index 0000000..0c46c24
--- /dev/null
@@ -0,0 +1,85 @@
+/* Memory.h - Memory mappings and remapping functions declarations */
+
+/* Copyright - Galileo technology. */
+
+#ifndef __INCmemoryh
+#define __INCmemoryh
+
+/* includes */
+
+#include "core.h"
+
+/* defines */
+
+#define DONT_MODIFY     0xffffffff
+#define PARITY_SUPPORT  0x40000000
+
+#define _8BIT           0x00000000
+#define _16BIT          0x00100000
+#define _32BIT          0x00200000
+#define _64BIT          0x00300000
+
+/* typedefs */
+
+ typedef struct deviceParam
+{                               /* boundary values  */
+    unsigned int    turnOff;    /* 0x0 - 0xf        */
+    unsigned int    acc2First;  /* 0x0 - 0x1f       */
+    unsigned int    acc2Next;   /* 0x0 - 0x1f       */
+    unsigned int    ale2Wr;     /* 0x0 - 0xf        */
+    unsigned int    wrLow;      /* 0x0 - 0xf        */
+    unsigned int    wrHigh;     /* 0x0 - 0xf        */
+    unsigned int    deviceWidth;    /* in Bytes  */
+} DEVICE_PARAM;
+
+typedef enum __memBank{BANK0,BANK1,BANK2,BANK3} MEMORY_BANK;
+typedef enum __memDevice{DEVICE0,DEVICE1,DEVICE2,DEVICE3,BOOT_DEVICE} DEVICE;
+
+typedef enum __memoryProtectRegion{MEM_REGION0,MEM_REGION1,MEM_REGION2,       \
+                                  MEM_REGION3,MEM_REGION4,MEM_REGION5,       \
+                                  MEM_REGION6,MEM_REGION7}                   \
+                                  MEMORY_PROTECT_REGION;
+typedef enum __memoryAccess{MEM_ACCESS_ALLOWED,MEM_ACCESS_FORBIDEN}           \
+                           MEMORY_ACCESS;
+typedef enum __memoryWrite{MEM_WRITE_ALLOWED,MEM_WRITE_FORBIDEN}              \
+                          MEMORY_ACCESS_WRITE;
+typedef enum __memoryCacheProtect{MEM_CACHE_ALLOWED,MEM_CACHE_FORBIDEN}       \
+                                 MEMORY_CACHE_PROTECT;
+typedef enum __memorySnoopType{MEM_NO_SNOOP,MEM_SNOOP_WT,MEM_SNOOP_WB}        \
+                              MEMORY_SNOOP_TYPE;
+typedef enum __memorySnoopRegion{MEM_SNOOP_REGION0,MEM_SNOOP_REGION1,         \
+                                MEM_SNOOP_REGION2,MEM_SNOOP_REGION3}         \
+                                MEMORY_SNOOP_REGION;
+
+/* functions */
+unsigned int memoryGetBankBaseAddress(MEMORY_BANK bank);
+unsigned int memoryGetDeviceBaseAddress(DEVICE device);
+unsigned int memoryGetBankSize(MEMORY_BANK bank);
+unsigned int memoryGetDeviceSize(DEVICE device);
+unsigned int memoryGetDeviceWidth(DEVICE device);
+
+/* when given base Address and size Set new WINDOW for SCS_X. (X = 0,1,2 or 3*/
+bool memoryMapBank(MEMORY_BANK bank, unsigned int bankBase,unsigned int bankLength);
+bool memoryMapDeviceSpace(DEVICE device, unsigned int deviceBase,unsigned int deviceLength);
+
+/* Change the Internal Register Base Address to a new given Address. */
+bool memoryMapInternalRegistersSpace(unsigned int internalRegBase);
+/* returns internal Register Space Base Address. */
+unsigned int memoryGetInternalRegistersSpace(void);
+/* Configurate the protection feature to a given space. */
+bool memorySetProtectRegion(MEMORY_PROTECT_REGION region,
+                           MEMORY_ACCESS memoryAccess,
+                           MEMORY_ACCESS_WRITE memoryWrite,
+                           MEMORY_CACHE_PROTECT cacheProtection,
+                           unsigned int baseAddress,
+                           unsigned int regionLength);
+/* Configurate the snoop feature to a given space. */
+bool memorySetRegionSnoopMode(MEMORY_SNOOP_REGION region,
+                             MEMORY_SNOOP_TYPE snoopType,
+                             unsigned int baseAddress,
+                             unsigned int regionLength);
+
+bool memoryRemapAddress(unsigned int remapReg, unsigned int remapValue);
+bool memoryGetDeviceParam(DEVICE_PARAM *deviceParam, DEVICE deviceNum);
+bool memorySetDeviceParam(DEVICE_PARAM *deviceParam, DEVICE deviceNum);
+#endif  /* __INCmemoryh */