]> git.proxmox.com Git - mirror_edk2.git/blobdiff - QuarkSocPkg/QuarkNorthCluster/Include/DdrMemoryController.h
edk2: Remove packages moved to edk2-platforms
[mirror_edk2.git] / QuarkSocPkg / QuarkNorthCluster / Include / DdrMemoryController.h
diff --git a/QuarkSocPkg/QuarkNorthCluster/Include/DdrMemoryController.h b/QuarkSocPkg/QuarkNorthCluster/Include/DdrMemoryController.h
deleted file mode 100644 (file)
index fe96af4..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/** @file\r
-Memory controller configuration.\r
-\r
-Copyright (c) 2013-2015 Intel Corporation.\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-#ifndef __DDR_MEMORY_CONTROLLER_H__\r
-#define __DDR_MEMORY_CONTROLLER_H__\r
-\r
-//\r
-// DDR timing data definitions.\r
-// These are used to create bitmaps of valid timing configurations.\r
-//\r
-\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_FREQUENCY_UNKNOWN    0xFF\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_REFRESH_RATE_UNKNOWN 0xFF\r
-\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TCL_20    0x01\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TCL_25    0x00\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TCL_30    0x02\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TCL_ALL   0x03\r
-\r
-\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRCD_02   0x02\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRCD_03   0x01\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRCD_04   0x00\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRCD_ALL  0x03\r
-\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRP_02    0x02\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRP_03    0x01\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRP_04    0x00\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRP_ALL   0x03\r
-\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_05   0x05\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_06   0x04\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_07   0x03\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_08   0x02\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_09   0x01\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_10   0x00\r
-#define DUAL_CHANNEL_DDR_TIMING_DATA_TRAS_ALL  0x07\r
-\r
-#define DUAL_CHANNEL_DDR_DATA_TYPE_REGISTERED    0x01\r
-#define DUAL_CHANNEL_DDR_DATA_TYPE_UNREGISTERED  0x02\r
-#define DUAL_CHANNEL_DDR_DATA_TYPE_BUFFERED      0x04\r
-#define DUAL_CHANNEL_DDR_DATA_TYPE_UNBUFFERED    0x08\r
-#define DUAL_CHANNEL_DDR_DATA_TYPE_SDR           0x10\r
-#define DUAL_CHANNEL_DDR_DATA_TYPE_DDR           0x20\r
-\r
-\r
-//\r
-// Maximum number of SDRAM channels supported by the memory controller\r
-//\r
-#define MAX_CHANNELS 1\r
-\r
-//\r
-// Maximum number of DIMM sockets supported by the memory controller\r
-//\r
-#define MAX_SOCKETS 1\r
-\r
-//\r
-// Maximum number of sides supported per DIMM\r
-//\r
-#define   MAX_SIDES                         2\r
-\r
-//\r
-// Maximum number of "Socket Sets", where a "Socket Set is a set of matching\r
-// DIMM's from the various channels\r
-//\r
-#define   MAX_SOCKET_SETS                   2\r
-\r
-//\r
-// Maximum number of rows supported by the memory controller\r
-//\r
-#define MAX_ROWS (MAX_SIDES * MAX_SOCKETS)\r
-\r
-//\r
-// Maximum number of memory ranges supported by the memory controller\r
-//\r
-#define MAX_RANGES (MAX_ROWS + 5)\r
-\r
-//\r
-// Maximum Number of Log entries\r
-//\r
-#define   MEMORY_LOG_MAX_INDEX          16\r
-\r
-\r
-typedef struct _MEMORY_LOG_ENTRY {\r
-  EFI_STATUS_CODE_VALUE                     Event;\r
-  EFI_STATUS_CODE_TYPE                      Severity;\r
-  UINT8                                     Data;\r
-} MEMORY_LOG_ENTRY;\r
-\r
-typedef struct _MEMORY_LOG {\r
-  UINT8                                     Index;\r
-  MEMORY_LOG_ENTRY                      Entry[MEMORY_LOG_MAX_INDEX];\r
-} MEMORY_LOG;\r
-\r
-\r
-\r
-//\r
-// Defined ECC types\r
-//\r
-#define DUAL_CHANNEL_DDR_ECC_TYPE_NONE             0x01   // No error checking\r
-#define DUAL_CHANNEL_DDR_ECC_TYPE_EC               0x02   // Error checking only\r
-#define DUAL_CHANNEL_DDR_ECC_TYPE_SECC             0x04   // Software Scrubbing ECC\r
-#define DUAL_CHANNEL_DDR_ECC_TYPE_HECC             0x08   // Hardware Scrubbing ECC\r
-#define DUAL_CHANNEL_DDR_ECC_TYPE_CKECC            0x10   // Chip Kill ECC\r
-\r
-//\r
-// Row configuration status values\r
-//\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_SUCCESS        0x00  // No error\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_UNKNOWN        0x01  // Pattern mismatch, no memory\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_UNSUPPORTED    0x02  // Memory type not supported\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_ADDRESS_ERROR  0x03  // Row/Col/Bnk mismatch\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_ECC_ERROR      0x04  // Received ECC error\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_NOT_PRESENT    0x05  // Row is not present\r
-#define DUAL_CHANNEL_DDR_ROW_CONFIG_DISABLED       0x06  // Row is disabled\r
-\r
-\r
-//\r
-// Memory range types\r
-//\r
-typedef enum {\r
-  DualChannelDdrMainMemory,\r
-  DualChannelDdrSmramCacheable,\r
-  DualChannelDdrSmramNonCacheable,\r
-  DualChannelDdrGraphicsMemoryCacheable,\r
-  DualChannelDdrGraphicsMemoryNonCacheable,\r
-  DualChannelDdrReservedMemory,\r
-  DualChannelDdrMaxMemoryRangeType\r
-} DUAL_CHANNEL_DDR_MEMORY_RANGE_TYPE;\r
-\r
-//\r
-// Memory map range information\r
-//\r
-typedef struct {\r
-  EFI_PHYSICAL_ADDRESS                          PhysicalAddress;\r
-  EFI_PHYSICAL_ADDRESS                          CpuAddress;\r
-  EFI_PHYSICAL_ADDRESS                          RangeLength;\r
-  DUAL_CHANNEL_DDR_MEMORY_RANGE_TYPE                 Type;\r
-} DUAL_CHANNEL_DDR_MEMORY_MAP_RANGE;\r
-typedef struct {\r
-    unsigned    dramType        :1;                 /**< Type: 0 = RESERVED; 1 = DDR2 */\r
-    unsigned    dramWidth       :1;                 /**< Width: 0 = x8; 1 = x16 */\r
-    unsigned    dramDensity     :2;                 /**< Density: 00b = 2Gb; 01b = 1Gb; 10b = 512Mb; 11b = 256Mb */\r
-    unsigned    dramSpeed       :1;                 /**< Speed Grade: 0 = RESERVED; 1 = 800MT/s;*/\r
-    unsigned    dramTimings     :3;                 /**< Timings: 4-4-4, 5-5-5, 6-6-6 */\r
-    unsigned    dramRanks       :1;                 /**< Ranks: 0 = Single Rank; 1 = Dual Rank */\r
-} DramGeometry;                                     /**< DRAM Geometry Descriptor */\r
-\r
-typedef union _RegDRP {\r
-    UINT32    raw;\r
-    struct {\r
-        unsigned rank0Enabled       :1;     /**< Rank 0 Enable */\r
-        unsigned rank0DevWidth      :2;     /**< DRAM Device Width (x8,x16) */\r
-        unsigned rank0DevDensity    :2;     /**< DRAM Device Density (256Mb,512Mb,1Gb,2Gb) */\r
-        unsigned reserved2          :1;\r
-        unsigned rank1Enabled       :1;     /**< Rank 1 Enable */\r
-        unsigned reserved3          :5;\r
-        unsigned dramType           :1;     /**< DRAM Type (0=DDR2) */\r
-        unsigned reserved4          :5;\r
-        unsigned reserved5          :14;\r
-      } field;\r
-} RegDRP;                                   /**< DRAM Rank Population and Interface Register */\r
-\r
-\r
-typedef union {\r
-    UINT32    raw;\r
-    struct {\r
-        unsigned dramFrequency      :3;     /**< DRAM Frequency (000=RESERVED,010=667,011=800) */\r
-        unsigned tRP                :2;     /**< Precharge to Activate Delay (3,4,5,6) */\r
-        unsigned reserved1          :1;\r
-        unsigned tRCD               :2;     /**< Activate to CAS Delay (3,4,5,6) */\r
-        unsigned reserved2          :1;\r
-        unsigned tCL                :2;     /**< CAS Latency (3,4,5,6) */\r
-        unsigned reserved3          :21;\r
-      } field;\r
-} RegDTR0;                                  /**< DRAM Timing Register 0 */\r
-\r
-typedef union {\r
-    UINT32    raw;\r
-    struct {\r
-        unsigned tWRRD_dly          :2;     /**< Additional Write to Read Delay (0,1,2,3) */\r
-        unsigned reserved1          :1;\r
-        unsigned tRDWR_dly          :2;     /**< Additional Read to Write Delay (0,1,2,3) */\r
-        unsigned reserved2          :1;\r
-        unsigned tRDRD_dr_dly       :1;     /**< Additional Read to Read Delay (1,2) */\r
-        unsigned reserved3          :1;\r
-        unsigned tRD_dly            :3;     /**< Additional Read Data Sampling Delay (0-7) */\r
-        unsigned reserved4          :1;\r
-        unsigned tRCVEN_halfclk_dly :4;     /**< Additional RCVEN Half Clock Delay Control */\r
-        unsigned reserved5          :1;\r
-        unsigned readDqDelay        :2;     /**< Read DQ Delay */\r
-        unsigned reserved6          :13;\r
-      } field;\r
-} RegDTR1;                                  /**< DRAM Timing Register 1 */\r
-\r
-typedef union {\r
-    UINT32    raw;\r
-    struct {\r
-        unsigned ckStaticDisable    :1;     /**< CK/CK# Static Disable */\r
-        unsigned reserved1          :3;\r
-        unsigned ckeStaticDisable   :2;     /**< CKE Static Disable */\r
-        unsigned reserved2          :8;\r
-        unsigned refreshPeriod      :2;     /**< Refresh Period (disabled,128clks,3.9us,7.8us) */\r
-        unsigned refreshQueueDepth  :2;     /**< Refresh Queue Depth (1,2,4,8) */\r
-        unsigned reserved5          :13;\r
-        unsigned initComplete       :1;     /**< Initialization Complete */\r
-      } field;\r
-} RegDCO;\r
-\r
-//\r
-// MRC Data Structure\r
-//\r
-typedef struct {\r
-    RegDRP          drp;\r
-    RegDTR0         dtr0;\r
-    RegDTR1         dtr1;\r
-    RegDCO          dco;\r
-    UINT32          reg0104;\r
-    UINT32          reg0120;\r
-    UINT32          reg0121;\r
-    UINT32          reg0123;\r
-    UINT32          reg0111;\r
-    UINT32          reg0130;\r
-    UINT8           refreshPeriod;      /**< Placeholder for the chosen refresh\r
-                                         *   period.  This value will NOT be\r
-                                         *   programmed into DCO until all\r
-                                         *   initialization is done.\r
-                                         */\r
-    UINT8           ddr2Odt;            /**< 0 = Disabled, 1 = 75 ohm, 2 = 150ohm, 3 = 50ohm */\r
-    UINT8           sku;                /**< Detected QuarkNcSocId SKU */\r
-    UINT8           capabilities;       /**< Capabilities Available on this part */\r
-    UINT8           state;              /**< NORMAL_BOOT, S3_RESUME */\r
-    UINT32          memSize;            /**< Memory size */\r
-    UINT16          pmBase;             /**< PM Base */\r
-    UINT16          mrcVersion;         /**< MRC Version */\r
-    UINT32          hecbase;            /**< HECBASE shifted left 16 bits */\r
-    DramGeometry    geometry;          /**< DRAM Geometry */\r
-} MRC_DATA_STRUCTURE;             /**< QuarkNcSocId Memory Parameters for MRC */\r
-\r
-typedef struct _EFI_MEMINIT_CONFIG_DATA {\r
-  MRC_DATA_STRUCTURE                        MrcData;\r
-} EFI_MEMINIT_CONFIG_DATA;\r
-\r
-\r
-\r
-#endif\r