/** @file
*
*  Copyright (c) 2015, Hisilicon Limited. All rights reserved.
*  Copyright (c) 2015, Linaro Limited. All rights reserved.
*
*  This program and the accompanying materials
*  are licensed and made available under the terms and conditions of the BSD License
*  which accompanies this distribution.  The full text of the license may be found at
*  http://opensource.org/licenses/bsd-license.php
*
*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
*
**/

#ifndef _HW_MEM_INIT_LIB_H_
#define _HW_MEM_INIT_LIB_H_

#include <PlatformArch.h>

#define I2C_CHANNEL     2
#define MAX_I2C_DEV     6

#define SPD_MODULE_PART         18
#define SPD_MODULE_PART_DDR4    20

#define NVRAM_ADDR      0x00D00000

typedef enum {
    DDR_FREQ_AUTO = 0,
    DDR_FREQ_800,
    DDR_FREQ_1000,
    DDR_FREQ_1066,
    DDR_FREQ_1200,
    DDR_FREQ_1333,
    DDR_FREQ_1400,
    DDR_FREQ_1600,
    DDR_FREQ_1800,
    DDR_FREQ_1866,
    DDR_FREQ_2000,
    DDR_FREQ_2133,
    DDR_FREQ_2200,
    DDR_FREQ_2400,
    DDR_FREQ_2600,
    DDR_FREQ_2666,
    DDR_FREQ_2800,
    DDR_FREQ_2933,
    DDR_FREQ_3000,
    DDR_FREQ_3200,
    DDR_FREQ_MAX
} DDR_FREQUENCY_INDEX;

typedef struct _DDR_FREQ_TCK
{
    UINT32      ddrFreq;
    UINT32      ddrCk;
}DDR_FREQ_TCK;

typedef struct _GBL_CFG{


}GBL_CFG;

typedef struct _GBL_VAR{


}GBL_VAR;

typedef struct _GBL_NVDATA{


}GBL_NVDATA;

typedef struct _GOBAL {
    const GBL_CFG Config;  // constant input data
    GBL_VAR       Variable;    // variable, volatile data
    GBL_NVDATA    NvData;  // variable, non-volatile data for S3, warm boot path
    UINT32        PreBootFailed;
}GOBAL, *PGOBAL;

struct DDR_RANK {
    BOOLEAN     Status;
    UINT16      RttNom;
    UINT16      RttPark;
    UINT16      RttWr;
    UINT16      MR0;
    UINT16      MR1;
    UINT16      MR2;
    UINT16      MR3;
    UINT16      MR4;
    UINT16      MR5;
    UINT16      MR6[9];
};

struct baseMargin {
  INT16 n;
  INT16 p;
};

struct rankMargin {
  struct baseMargin rank[MAX_CHANNEL][MAX_RANK_CH];
};

typedef struct _DDR_DIMM{
    BOOLEAN     Status;
    UINT8       mapout;
    UINT8       DramType;           //Byte 2
    UINT8       ModuleType;         //Byte 3
    UINT8       ExtendModuleType;
    UINT8       SDRAMCapacity;      //Byte 4
    UINT8       BankNum;
    UINT8       BGNum;              //Byte 4 For DDR4
    UINT8       RowBits;            //Byte 5
    UINT8       ColBits;            //Byte 5
    UINT8       SpdVdd;             //Byte 6
    UINT8       DramWidth;          //Byte 7
    UINT8       RankNum;            //Byte 7
    UINT8       PrimaryBusWidth;    //Byte 8
    UINT8       ExtensionBusWidth;  //Byte 8
    UINT32      Mtb;
    UINT32      Ftb;
    UINT32      minTck;
    UINT8       MtbDividend;
    UINT8       MtbDivsor;
    UINT8       nCL;
    UINT8       nRCD;
    UINT8       nRP;
    UINT8       SPDftb;
    UINT8       SpdMinTCK;
    UINT8       SpdMinTCKFtb;
    UINT8       SpdMaxTCK;
    UINT8       SpdMinTCL;
    UINT8       SpdMinTCLFtb;
    UINT8       SpdMinTWR;
    UINT8       SpdMinTRCD;
    UINT8       SpdMinTRCDFtb;
    UINT8       SpdMinTRRD;
    UINT8       SpdMinTRRDL;
    UINT16      SpdMinTRAS;
    UINT16      SpdMinTRC;
    UINT16      SpdMinTRCFtb;
    UINT16      SpdMinTRFC;
    UINT8       SpdMinTWTR;
    UINT8       SpdMinTRTP;
    UINT8       SpdMinTAA;
    UINT8       SpdMinTAAFtb;
    UINT8       SpdMinTFAW;
    UINT8       SpdMinTRP;
    UINT8       SpdMinTRPFtb;
    UINT8       SpdMinTCCDL;
    UINT8       SpdMinTCCDLFtb;
    UINT8       SpdAddrMap;
    UINT8       SpdModuleAttr;

    UINT8       SpdModPart[SPD_MODULE_PART];         // Module Part Number
    UINT8       SpdModPartDDR4[SPD_MODULE_PART_DDR4];     // Module Part Number DDR4
    UINT16      SpdMMfgId;              // Module Mfg Id from SPD
    UINT16      SpdRMId;              // Register Manufacturer Id
    UINT16      SpdMMDate;              // Module Manufacturing Date
    UINT32      SpdSerialNum;
    UINT16      DimmSize;
    UINT16      DimmSpeed;
    UINT32      RankSize;
    struct DDR_RANK  Rank[MAX_RANK_DIMM];
}DDR_DIMM;

typedef struct {
    UINT32      ddrcTiming0;
    UINT32      ddrcTiming1;
    UINT32      ddrcTiming2;
    UINT32      ddrcTiming3;
    UINT32      ddrcTiming4;
    UINT32      ddrcTiming5;
    UINT32      ddrcTiming6;
    UINT32      ddrcTiming7;
}DDRC_TIMING;

typedef struct _DDR_Channel{
    BOOLEAN     Status;
    UINT8       CurrentDimmNum;
    UINT8       CurrentRankNum;
    UINT16      RankPresent;
    UINT8       DramType;
    UINT8       DramWidth;
    UINT8       ModuleType;
    UINT32      MemSize;
    UINT32      CLSupport;
    UINT32      minTck;
    UINT32      nCL;
    UINT32      nWR;
    UINT32      nRCD;
    UINT32      nRRD;
    UINT32      nRRDL;
    UINT32      nRAS;
    UINT32      nRC;
    UINT32      nRFC;
    UINT32      nWTR;
    UINT32      nRTP;
    UINT32      nAA;
    UINT32      nFAW;
    UINT32      nRP;
    UINT32      nCCDL;
    UINT8       cwl;  //tWL?
    UINT8       pl;     //parity latency
    UINT8       wr_pre_2t_en;
    UINT8       rd_pre_2t_en;
    UINT8       cmd_2t_en;
    UINT8       parity_en;
    UINT8       wr_dbi_en;
    UINT8       wr_dm_en;
    UINT8       ddr4_crc_en;
    UINT16      emrs0;
    UINT16      emrs1;
    UINT16      emrs1Wr;
    UINT16      emrs2;
    UINT16      emrs3;
    UINT16      emrs4;
    UINT16      emrs5;
    UINT16      emrs5Wr;
    UINT16      emrs6;
    UINT16      emrs7;
    UINT8       phy_rddata_set;
    UINT8       phyif_tim_rdcs;
    UINT8       phyif_tim_rden;
    UINT8       phyif_tim_wden;
    UINT8       phyif_tim_wdda;
    UINT8       phyif_tim_wdcs;
    UINT8       per_cs_training_en;
    UINT32      phyRdDataEnIeDly;
    UINT32      phyPadCalConfig;
    UINT32      phyDqsFailRiseDelay;
    UINT32      ddrcCfgDfiLat0;
    UINT32      ddrcCfgDfiLat1;
    UINT32      parityLatency;
    DDRC_TIMING ddrcTiming;
    DDR_DIMM    Dimm[MAX_DIMM];
}DDR_CHANNEL;

typedef struct _NVRAM_RANK{
    UINT16      MR6[9];
}NVRAM_RANK;

typedef struct _NVRAM_DIMM{
    NVRAM_RANK      Rank[MAX_RANK_DIMM];
}NVRAM_DIMM;


typedef struct _NVRAM_CHANNEL{
    NVRAM_DIMM      Dimm[MAX_DIMM];
    UINT32          DDRC_CFG_ECC;
    UINT32          DDRC_CFG_WORKMODE;
    UINT32          DDRC_CFG_WORKMODE1;
    UINT32          DDRC_CFG_WORKMODE2;
    UINT32          DDRC_CFG_DDRMODE;
    UINT32          DDRC_CFG_DIMM;
    UINT32          DDRC_CFG_RNKVOL_0;
    UINT32          DDRC_CFG_RNKVOL_1;
    UINT32          DDRC_CFG_RNKVOL_2;
    UINT32          DDRC_CFG_RNKVOL_3;
    UINT32          DDRC_CFG_RNKVOL_4;
    UINT32          DDRC_CFG_RNKVOL_5;
    UINT32          DDRC_CFG_RNKVOL_6;
    UINT32          DDRC_CFG_RNKVOL_7;
    UINT32          DDRC_CFG_RNKVOL_8;
    UINT32          DDRC_CFG_RNKVOL_9;
    UINT32          DDRC_CFG_RNKVOL_10;
    UINT32          DDRC_CFG_RNKVOL_11;
    UINT32          DDRC_CFG_ODT_0;
    UINT32          DDRC_CFG_ODT_1;
    UINT32          DDRC_CFG_ODT_2;
    UINT32          DDRC_CFG_ODT_3;
    UINT32          DDRC_CFG_ODT_4;
    UINT32          DDRC_CFG_ODT_5;
    UINT32          DDRC_CFG_ODT_6;
    UINT32          DDRC_CFG_ODT_7;
    UINT32          DDRC_CFG_ODT_8;
    UINT32          DDRC_CFG_ODT_9;
    UINT32          DDRC_CFG_ODT_10;
    UINT32          DDRC_CFG_ODT_11;
    UINT32          DDRC_CFG_TIMING0;
    UINT32          DDRC_CFG_TIMING1;
    UINT32          DDRC_CFG_TIMING2;
    UINT32          DDRC_CFG_TIMING3;
    UINT32          DDRC_CFG_TIMING4;
    UINT32          DDRC_CFG_TIMING5;
    UINT32          DDRC_CFG_TIMING6;
    UINT32          DDRC_CFG_TIMING7;
    UINT32          DDRC_CFG_DFI_LAT0;
    UINT32          DDRC_CFG_DFI_LAT1;
    UINT32          DDRC_CFG_DDRPHY;
    UINT32          Config[24];
    BOOLEAN         Status;
}NVRAM_CHANNEL;

typedef struct _NVRAM{
    UINT32          NvramCrc;
    NVRAM_CHANNEL   Channel[MAX_SOCKET][MAX_CHANNEL];
    UINT32          DdrFreqIdx;

}NVRAM;

typedef struct _MEMORY{
    UINT8           Config0;
    UINT8           marginTest;
    UINT8           Config1[5];
    UINT32          Config2;
}MEMORY;

typedef struct _GBL_DATA
{
    DDR_CHANNEL Channel[MAX_SOCKET][MAX_CHANNEL];
    UINT8       DramType;
    UINT8       CurrentDimmNum;
    UINT8       CurrentRankNum;
    UINT8       MaxSPCNum;
    UINT32      Freq;
    UINT32      SpdTckMtb;
    UINT32      SpdTckFtb;
    UINT32      SpdTck;
    UINT32      Tck;
    UINT32      DdrFreqIdx;
    UINT32      MemSize;
    UINT32      EccEn;

    BOOLEAN     SetupExist;
    UINT8       warmReset;
    UINT8       needColdReset;

    UINT8       cl;
    UINT8       cwl;
    UINT8       pl;
    UINT8       wr_pre_2t_en;
    UINT8       rd_pre_2t_en;
    UINT8       cmd_2t_en;
    UINT8       ddr4_parity_en;
    UINT8       wr_dbi_en;
    UINT8       wr_dm_en;
    UINT8       ddr4_crc_en;
    UINT16      emrs0;
    UINT16      emrs1;
    UINT16      emrs2;
    UINT16      emrs3;
    UINT16      emrs4;
    UINT16      emrs5;
    UINT16      emrs6;
    UINT16      emrs7;
    UINT8       phy_rddata_set;
    UINT8       phyif_tim_rdcs;
    UINT8       phyif_tim_rden;
    UINT8       phyif_tim_wden;
    UINT8       phyif_tim_wdda;
    UINT8       phyif_tim_wdcs;
    UINT8       dimm_trtr;
    UINT8       dimm_twtw;
    UINT8       rnk_trtr;
    UINT8       rnk_twtw;
    UINT8       rnk_trtw;
    UINT8       rnk_twtr;
    UINT8       per_cs_training_en;
    UINT8       scale;
    UINT8       ddrFreq;
    UINT8       debugNeed;
    UINT8       ddr3OdtEnable;
    double      fprd;
    BOOLEAN     chipIsEc;
    NVRAM       nvram;
    MEMORY      mem;

}GBL_DATA, *pGBL_DATA;

typedef union {
    struct {
        UINT16  freqIndex:4;         //Frequency Index;
        UINT16  slot0:4;        //Channel slot0 for DIMM
        UINT16  slot1:4;        //Channel slot1 for DIMM
        UINT16  slot2:4;        //Channel slot2 for DIMM
    }Bits;
    UINT16      Data;
}ODT_VALUE_INDEX;

typedef union {
    struct {
        UINT8   RTTNom:3;
        UINT8   reserved_3:1;
        UINT8   RTTWr:2;
        UINT8   reserved_6:2;
    }Bits;
    UINT8      Data;
}ODT_RTT_VALUE_DDR3;

typedef union {
    struct {
        UINT8   RTTNom:3;
        UINT8   RTTPark:3;
        UINT8   RTTWr:2;
    }Bits;
    UINT8      Data;
}ODT_RTT_VALUE_DDR4;

typedef union {
    struct {
        UINT16  tarDimm:2;      // target DIMM
        UINT16  tarRank:2;      // target Rank
        UINT16  slot0:4;        // Channel slot0 for DIMM
        UINT16  slot1:4;        // Channel slot1 for DIMM
        UINT16  slot2:4;        // Channel slot2 for DIMM
    }Bits;
    UINT16      Data;
}ODT_ACTIVE_INDEX;

struct ODT_VALUE_STRUCT_DDR3 {
   UINT16       config;                                 // ODT_VALUE_INDEX
   UINT8        dramOdt[MAX_DIMM][MAX_RANK_DIMM];       // ODT_VALUE_RTT_DDR3
};

struct ODT_VALUE_STRUCT_DDR4 {
    UINT16      config;
    UINT8       dramOdt[MAX_DIMM][MAX_RANK_DIMM];
};

struct ODT_ACTIVE_STRUCT {
    UINT16      config;             // ODT config index
    UINT16      actBits[2];         // WR :Bits[3;0] = D0_R[3:0] Bits[7:4] = D1_R[3:0] Bits[11:8] = D2_R[3:0]
};

// JEDEC manufacturer IDs from JEP-106
#define MFGID_AENEON    0x5705
#define MFGID_QIMONDA   0x5105
#define MFGID_NEC       0x1000
#define MFGID_IDT       0xB300
#define MFGID_TI        0x9700
#define MFGID_HYNIX     0xAD00
#define MFGID_MICRON    0x2C00
#define MFGID_INFINEON  0xC100
#define MFGID_SAMSUNG   0xCE00
#define MFGID_TEK       0x3D00
#define MFGID_KINGSTON  0x9801
#define MFGID_ELPIDA    0xFE02
#define MFGID_SMART     0x9401
#define MFGID_AGILENT   0xC802
#define MFGID_NANYA     0x0B03
#define MFGID_INPHI     0xB304
#define MFGID_MONTAGE   0x3206
#define MFGID_RAMAXEL   0x4304

//
// DDR3 frequencies 800 - 2667
// DDR4 frequencies 1333 - 3200
//
#define DDR_800  0   // tCK(ns)=2.5
#define DDR_1000 1   // tCK(ns)=2.0
#define DDR_1066 2   // tCK(ns)=1.875
#define DDR_1200 3   // tCK(ns)=1.667
#define DDR_1333 4   // tCK(ns)=1.5
#define DDR_1400 5   // tCK(ns)=1.429
#define DDR_1600 6   // tCK(ns)=1.25
#define DDR_1800 7   // tCK(ns)=1.11
#define DDR_1866 8   // tCK(ns)=1.07
#define DDR_2000 9   // tCK(ns)=1.0
#define DDR_2133 10  // tCK(ns)=0.9375
#define DDR_2200 11  // tCK(ns)=0.909
#define DDR_2400 12  // tCK(ns)=0.833
#define DDR_2600 13  // tCK(ns)=0.769
#define DDR_2666 14  // tCK(ns)=0.750
#define DDR_2800 15  // tCK(ns)=0.714
#define DDR_2933 16  // tCK(ns)=0.682
#define DDR_3000 17  // tCK(ns)=0.667
#define DDR_3200 18  // tCK(ns)=0.625
#define DDR_MAX  (DDR_3200)

#define FREQUENCY_MTB_OFFSET            1000000
#define FREQUENCY_FTB_OFFSET               1000

//
#define DDR_800_TCK_MIN                 25000
#define DDR_1000_TCK_MIN                20000
#define DDR_1067_TCK_MIN                18750
#define DDR_1200_TCK_MIN                16670
#define DDR_1333_TCK_MIN                15000
#define DDR_1400_TCK_MIN                14290
#define DDR_1600_TCK_MIN                12500
#define DDR_1800_TCK_MIN                11100
#define DDR_1867_TCK_MIN                10710
#define DDR_2000_TCK_MIN                10000
#define DDR_2133_TCK_MIN                 9380
#define DDR_2200_TCK_MIN                 9090
#define DDR_2400_TCK_MIN                 8330
#define DDR_2600_TCK_MIN                 7690
#define DDR_2667_TCK_MIN                 7500
#define DDR_2800_TCK_MIN                 7140
#define DDR_2933_TCK_MIN                 6820
#define DDR_3000_TCK_MIN                 6670
#define DDR_3200_TCK_MIN                 6250


//
// Serial Presence Detect bytes (JEDEC revision 1.0)
//
#define SPD_SIZE              0     // Bytes used, Device size, CRC coverage
#define SPD_REVISION          1     // SPD Encoding Revision
#define SPD_KEY_BYTE          2     // DRAM Device Type
  #define SPD_TYPE_DDR3       0x0B  // DDR3 SDRAM
  #define SPD_TYPE_DDR4       0x0C  // DDR4 SDRAM
#define SPD_KEY_BYTE2         3     // Module Type and Thickness (RDIMM or UDIMM)
  #define SPD_RDIMM           1     // Module type is RDIMM
  #define SPD_UDIMM           2     // Module type is UDIMM
  #define SPD_SODIMM          3     // Module type is SODIMM
  #define SPD_MICRO_DIMM      4     // Module type is Micro-DIMM
  #define SPD_LRDIMM_DDR4     4     // Module type is LRDIMM (DDR4)
  #define SPD_MINI_RDIMM      5     // Module type is Mini-RDIMM
  #define SPD_MINI_UDIMM      6     // Module type is Mini-UDIMM
  #define SPD_MINI_CDIMM      7     // Module type is Mini-CDIMM
  #define SPD_ECC_SO_UDIMM    9     // Module type is 72b-SO-UDIMM
  #define SPD_ECC_SO_RDIMM    8     // Module type is 72b-SO-RDIMM
  #define SPD_ECC_SO_CDIMM    10    // Module type is 72b-SO-CDIMM
  #define SPD_LRDIMM          11    // Module type is LRDIMM
  #define SPD_UDIMM_ECC       18    // Module type is UDIMM-ECC
#define SPD_SDRAM_BANKS       4     // SDRAM Density and number of internal banks
  #define SPD_1Gb             2     // Total SDRAM Capacity 1 Gigabits
  #define SPD_2Gb             3     // Total SDRAM Capacity 2 Gigabits
  #define SPD_4Gb             4     // Total SDRAM Capacity 4 Gigabits
  #define SPD_8Gb             5     // Total SDRAM Capacity 8 Gigabits
  #define SPD_16Gb            6     // Total SDRAM Capacity 16 Gigabits
  #define SPD_32Gb            7     // Total SDRAM Capacity 32 Gigabits
#define SPD_SDRAM_ADDR        5     // Number of Row and Column address bits
  #define SPD_ROW_12          0     // 12 row bits
  #define SPD_ROW_13          1     // 13 row bits
  #define SPD_ROW_14          2     // 14 row bits
  #define SPD_ROW_15          3     // 15 row bits
  #define SPD_ROW_16          4     // 16 row bits
  #define SPD_ROW_17          5     // 17 row bits
  #define SPD_ROW_18          6     // 18 row bits
  #define SPD_COL_9           0     // 9 colum bits
  #define SPD_COL_10          1     // 10 colum bits
  #define SPD_COL_11          2     // 11 colum bits
  #define SPD_COL_12          3     // 12 colum bits
#define SPD_VDD_SUPPORT       6     // Vdd DIMM supports
  #define SPD_VDD_150         0     // Module Supports 1.50V
  #define SPD_VDD_135         BIT1  // Module Supports 1.35V
  #define SPD_VDD_125         BIT2  // Module Supports 1.25V
#define SPD_MODULE_ORG_DDR3   7     // Number of Ranks and SDRAM device width
#define SPD_MODULE_ORG_DDR4   12    // DDR4 Module Organization
  #define DEVICE_WIDTH_X4     0     // SDRAM device width = 4 bits
  #define DEVICE_WIDTH_X8     1     // SDRAM device width = 8 bits
  #define DEVICE_WIDTH_X16    2     // SDRAM device width = 16 bits
  #define SPD_NUM_RANKS_1   0
  #define SPD_NUM_RANKS_2   1
  #define SPD_NUM_RANKS_4   3
  #define SPD_NUM_RANKS_8   4
#define SPD_MEM_BUS_WID     8     // Width of SDRAM memory bus
#define SPD_FTB             9     // Timebase for fine grain timing calculations
#define SPD_MTB_DIVEND      10    // Medium Time Base Dividend
#define SPD_MTB_DIVISOR     11    // Medium Time Base Divisor
#define SPD_MIN_TCK         12    // Minimum cycle time (at max CL)
  #define SPD_TCKMIN_800      20    // tCK(MTB)=20, tCK(ns)=2.5
  #define SPD_TCKMIN_1067     15    // tCK(MTB)=15, tCK(ns)=1.875
  #define SPD_TCKMIN_1333     12    // tCK(MTB)=12, tCK(ns)=1.5
  #define SPD_TCKMIN_1600     10    // tCK(MTB)=10, tCK(ns)=1.25
  #define SPD_TCKMIN_1867     9     // tCK(MTB)=9, tCK(ns)=1.07
  #define SPD_TCKMIN_2133     8     // tCK(MTB)=8, tCK(ns)=0.9375
  #define SPD_TCKMIN_2400     7     // tCK(MTB)=7, tCK(ns)=.833
#define SPD_CAS_LT_SUP_LSB  14    // CAS Latencies Supported, Least Significant Byte
#define SPD_CAS_LT_SUP_MSB  15    // CAS Latencies Supported, Most Significant Byte
#define SPD_MIN_TAA         16    // Minimum CAS Latency Time (tAAmin)
#define SPD_MIN_TWR         17    // Minimum Write Recovery Time
#define SPD_MIN_TRCD        18    // Minimum RAS to CAS delay
#define SPD_MIN_TRRD        19    // Minimum Row active to row active delay
#define SPD_MIN_TRP         20    // Minimum Row Precharge time
#define SPD_EXT_TRC_TRAS    21    // Upper nibbles for min tRAS and tRC
#define SPD_MIN_TRAS        22    // Minimum Active to Precharge time
#define SPD_MIN_TRC         23    // Minimum Active to Active/Refresh time
#define SPD_MIN_TRFC_LSB    24    // Minimum Refresh Recovery time least-significant byte
#define SPD_MIN_TRFC_MSB    25    // Minimum Refresh Recovery time most-significant byte
#define SPD_MIN_TWTR        26    // Minimum Internal Write to Read command delay
#define SPD_MIN_TRTP        27    // Minimum Internal Read to Precharge command delay
#define SPD_UN_TFAW         28    // Upper Nibble for tFAW
#define SPD_MIN_TFAW        29    // Minimum Four Activate Window Delay Time (tFAWmin)
#define SPD_OD_SUP          30    // SDRAM Output Drivers Supported
#define SPD_RFSH_OPT        31    // SDRAM Refresh Options
  #define ETR                 BIT0  // Bit location for Extended Temp Range
  #define ETRR                BIT1  // Bit location for Extended Temp Refresh Rate
  #define ASR                 BIT2  // Bit location for Automatic Self Refresh
  #define ODTS                BIT3  // Bit location for On-die Thermal Sensor
#define SPD_DIMM_TS         32    // Module Temperature Sensor
#define SPD_SDRAM_TYPE      33    // SDRAM device type
#define SPD_FTB_TCK         34    // Fine Offset for SDRAM tCK
#define SPD_FTB_TAA         35    // Fine Offset for SDRAM tAA
#define SPD_FTB_TRCD        36    // Fine Offset for SDRAM tRCD
#define SPD_FTB_TRP         37    // Fine Offset for SDRAM tRP
#define SPD_FTB_TRC         38    // Fine Offset for SDRAM tRC
#define SPD_OPT_FEAT        41    // SDRAM Optional Features
  #define SPD_PTRR          BIT7  // Indicates if the DIMM is pTRR compliant

  // UDIMM specific bytes
  // Applicable when Module Type (key byte 3) = 2, 3, 4, 6, or 8

#define SPD_ADDR_MAP_FECTD  63    // Address Mapping from Edge Connector to DRAM

  // RDIMM specific bytes
  // Applicable when Module Type (key byte 3) = 1, 5, or 9

#define SPD_RDIMM_ATTR      63    // RDIMM module attributes
#define SPD_DIMM_HS         64    // Module Heat Spreader Solution
#define SPD_REG_VEN_LSB     65    // Register Vendor ID LSB
#define SPD_REG_VEN_MSB     66    // Register Vendor ID MSB
#define SPD_REG_REV         67    // Register Revision
#define SPD_CNTL_0          69    // Register Control Word 0 & 1
#define SPD_CNTL_1          70    // Register Control Word 2 & 3
#define SPD_CNTL_2          71    // Register Control Word 4 & 5
#define SPD_CNTL_3          72    // Register Control Word 6 & 7   (reserved)
#define SPD_CNTL_4          73    // Register Control Word 8 & 9   (reserved)
#define SPD_CNTL_5          74    // Register Control Word 10 & 11 (reserved)
#define SPD_CNTL_6          75    // Register Control Word 12 & 13 (reserved)
#define SPD_CNTL_7          76    // Register Control Word 14 & 15 (reserved)

  // LRDIMM specific bytes
  // Applicable when Module Type (key byte 3) = 0xB
  // Based on DDR3 SPD 1.0 Document Release 2.1 draft, dated May 27, 2011

#define SPD_LRDIMM_ATTR       63    // LRDIMM module attributes
#define SPD_LRBUF_REV         64    // LR Buffer Revision
#define SPD_LRBUF_VEN_LSB     65    // LR Buffer Vendor ID LSB
#define SPD_LRBUF_VEN_MSB     66    // LR Buffer Vendor ID MSB
#define SPD_LR_F0_RC2_3       67    // LR Buffer Function 0, Control Word 2 & 3
#define SPD_LR_F0_RC4_5       68    // LR Buffer Function 0, Control Word 4 & 5
#define SPD_LR_F1_RC8_11      69    // LR Buffer Function 1, Control Word 8 & 11
#define SPD_LR_F1_RC12_13     70    // LR Buffer Function 1, Control Word 12 & 13
#define SPD_LR_F1_RC14_15     71    // LR Buffer Function 1, Control Word 14 & 15

  // Speed bin 0 = 800 & 1066
#define SPD_LR_SB0_MDQ_DS_ODT       72    // LR Buffer Function 3, Control Word 8 & 9
#define SPD_LR_SB0_DR01_QODT_ACT    73    // LR Buffer Function 3 & 4, Control Word 10 & 11
#define SPD_LR_SB0_DR23_QODT_ACT    74    // LR Buffer Function 5 & 6, Control Word 10 & 11
#define SPD_LR_SB0_DR45_QODT_ACT    75    // LR Buffer Function 7 & 8, Control Word 10 & 11
#define SPD_LR_SB0_DR67_QODT_ACT    76    // LR Buffer Function 9 & 10, Control Word 10 & 11
#define SPD_LR_SB0_MR1_2_RTT        77    // LR Buffer SMBus offsets 0xC0 - 0xC7

  // Speed bin 1 = 1333 & 1600
#define SPD_LR_SB1_MDQ_DS_ODT       78    // LR Buffer Function 3, Control Word 8 & 9
#define SPD_LR_SB1_DR01_QODT_ACT    79    // LR Buffer Function 3 & 4, Control Word 10 & 11
#define SPD_LR_SB1_DR23_QODT_ACT    80    // LR Buffer Function 5 & 6, Control Word 10 & 11
#define SPD_LR_SB1_DR45_QODT_ACT    81    // LR Buffer Function 7 & 8, Control Word 10 & 11
#define SPD_LR_SB1_DR67_QODT_ACT    82    // LR Buffer Function 9 & 10, Control Word 10 & 11
#define SPD_LR_SB1_MR1_2_RTT        83    // LR Buffer SMBus offsets 0xC0 - 0xC7

  // Speed bin 2 = 1866 & 2133
#define SPD_LR_SB2_MDQ_DS_ODT       84    // LR Buffer Function 3, Control Word 8 & 9
#define SPD_LR_SB2_DR01_QODT_ACT    85    // LR Buffer Function 3 & 4, Control Word 10 & 11
#define SPD_LR_SB2_DR23_QODT_ACT    86    // LR Buffer Function 5 & 6, Control Word 10 & 11
#define SPD_LR_SB2_DR45_QODT_ACT    87    // LR Buffer Function 7 & 8, Control Word 10 & 11
#define SPD_LR_SB2_DR67_QODT_ACT    88    // LR Buffer Function 9 & 10, Control Word 10 & 11
#define SPD_LR_SB2_MR1_2_RTT        89    // LR Buffer SMBus offsets 0xC0 - 0xC7

#define SPD_LR_150_MIN_MOD_DELAY    90    // LR DIMM minimum DQ Read propagation delay at 1.5V
#define SPD_LR_150_MAX_MOD_DELAY    91    // LR DIMM maximum DQ Read propagation delay at 1.5V
#define SPD_LR_135_MIN_MOD_DELAY    92    // LR DIMM minimum DQ Read propagation delay at 1.35V
#define SPD_LR_135_MAX_MOD_DELAY    93    // LR DIMM maximum DQ Read propagation delay at 1.35V
#define SPD_LR_12x_MIN_MOD_DELAY    94    // LR DIMM minimum DQ Read propagation delay at 1.2xV
#define SPD_LR_12x_MAX_MOD_DELAY    95    // LR DIMM maximum DQ Read propagation delay at 1.2xV

#define SPD_LR_PERS_BYTE_0          102   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_1          103   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_2          104   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_3          105   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_4          106   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_5          107   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_6          108   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_7          109   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_8          110   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_9          111   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_10         112   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_11         113   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_12         114   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_13         115   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTE_14         116   // LR DIMM Personality Byte
#define SPD_LR_PERS_BYTES_TOTAL     15    // LR DIMM Total number of Personality Bytes

  // End module specific section

#define SPD_MMID_LSB        117   // Module Manufacturer ID Code, Least Significant Byte
#define SPD_MMID_MSB        118   // Module Manufacturer ID Code, Mostst Significant Byte
#define SPD_MM_LOC          119   // Module Manufacturing Location
#define SPD_MM_DATE         120   // Module Manufacturing Date 120-121
#define SPD_MODULE_SN       122   // Module Serial Number 122-125
#define SPD_CRC_LSB         126   // LSB of 16-bit CRC
#define SPD_CRC_MSB         127   // MSB of 16-bit CRC

#define SPD_MODULE_PN       128   // Module Part Number 128-145
#define SPD_MODULE_RC       146   // Module Revision Code 146-147
#define SPD_DRAM_MIDC_LSB   148   // DRAM Manufacturer ID Code, Least Significant Byte
#define SPD_DRAM_MIDC_MSB   149   // DRAM Manufacturer ID Code, Most Significant Byte
#ifdef  MEM_NVDIMM_EN
#define SPD_NVDIMM_ID_N     174   // If NVDIMM value will be 'N'
#define SPD_NVDIMM_ID_V     175   // If NVDIMM value will be 'V'
#endif  //MEM_NVDIMM_EN
#define SPD_BYTE_200        200   // Fixed value 0xBE

  //
  // DDR4 Specific Bytes
  //
#define SPD_SDRAM_TYPE_DDR4   6     // SDRAM Device Type (DDR4)
#define SPD_OPT_FEAT_DDR4     7     // SDRAM Optional Features (DDR4)
  #define SPD_MAC_MASK        BIT0 | BIT1 | BIT2  // Mask for Maximum Active Count field
  #define SPD_TRR_IMMUNE      BIT3  // Indicates this DIMM does not require DRAM Maintenance
#define SPD_RFSH_OPT_DDR4     8     // SDRAM Refresh Options (DDR4)
#define SPD_VDD_DDR4          11    // Vdd DIMM supports (DDR4)
  #define SPD_VDD_120         3     // Module operable and endurant 1.20V
#define SPD_MODULE_ORG_DDR4   12    // Number of Ranks and SDRAM device width (DDR4)
#define SPD_MEM_BUS_WID_DDR4  13    // Width of SDRAM memory bus
#define SPD_DIMM_TS_DDR4      14    // Module Thermal Sensor
#define SPD_TB_DDR4           17    // Timebase [3:2] MTB, [1:0] FTB
#define SPD_MIN_TCK_DDR4      18    // Minimum cycle time
  #define SPD_TCKMIN_DDR4_1600      10  // tCK(MTB)=10, tCK(ns)=1.25
  #define SPD_TCKMIN_DDR4_1866      9   // tCK(MTB)=9, tCK(ns)=1.071
  #define SPD_TCKMIN_DDR4_2133      8   // tCK(MTB)=8, tCK(ns)=.938
  #define SPD_TCKMIN_DDR4_2400      7   // tCK(MTB)=7, tCK(ns)=.833
#define SPD_MAX_TCK_DDR4      19    // Maximum cycle time
#define SPD_CAS_LT_SUP_1_DDR4 20    // CAS Latencies Supported, first byte
#define SPD_CAS_LT_SUP_2_DDR4 21    // CAS Latencies Supported, second byte
#define SPD_CAS_LT_SUP_3_DDR4 22    // CAS Latencies Supported, third byte
#define SPD_CAS_LT_SUP_4_DDR4 23    // CAS Latencies Supported, fourth byte
#define SPD_MIN_TAA_DDR4      24    // Minimum CAS Latency Time (tAAmin)
#define SPD_MIN_TRCD_DDR4     25    // Minimum RAS to CAS delay
#define SPD_MIN_TRP_DDR4      26    // Minimum Row Precharge time
#define SPD_EXT_TRC_TRAS_DDR4 27    // Upper nibbles for min tRAS and tRC
#define SPD_MIN_TRAS_DDR4     28    // Minimum Active to Precharge time
#define SPD_MIN_TRC_DDR4      29    // Minimum Active to Active/Refresh time
#define SPD_MIN_TRFC1_LSB_DDR4 30    // Minimum Refresh Recovery time least-significant byte
#define SPD_MIN_TRFC1_MSB_DDR4 31    // Minimum Refresh Recovery time most-significant byte
#define SPD_MIN_TRFC2_LSB_DDR4 32    // Minimum Refresh Recovery time least-significant byte
#define SPD_MIN_TRFC2_MSB_DDR4 33    // Minimum Refresh Recovery time most-significant byte
#define SPD_MIN_TRFC3_LSB_DDR4 34    // Minimum Refresh Recovery time least-significant byte
#define SPD_MIN_TRFC3_MSB_DDR4 35    // Minimum Refresh Recovery time most-significant byte
#define SPD_TFAW_UPPER_DDR4   36    // Upper nibble for tFAW
#define SPD_MIN_TFAW_DDR4     37    // Minimum For Active Window Delay Time (tFAW)
#define SPD_MIN_TRRDS_DDR4    38    // Minimum Active to Active Delay Time tRRD_S Different Bank Group
#define SPD_MIN_TRRDL_DDR4    39    // Minimum Active to Active Delay Time tRRD_L Same Bank Group
#define SPD_MIN_TCCDL_DDR4    40    // Minimum CAS to CAS Delay Time (tCCD_Lmin), same bank group
#define SPD_FTB_TCCDL_DDR4    117   // Fine offset for tCCD_L
#define SPD_FTB_TRRDL_DDR4    118   // Fine offset for tRRD_L
#define SPD_FTB_TRRDS_DDR4    119   // Fine offset for tRRD_S
#define SPD_FTB_TRC_DDR4      120   // Fine offset for TRC
#define SPD_FTB_TRP_DDR4      121   // Fine offset for TRP
#define SPD_FTB_TRCD_DDR4     122   // Fine offset for TRCD
#define SPD_FTB_TAA_DDR4      123   // Fine offset for TAA
#define SPD_FTB_MAX_TCK_DDR4  124   // Fine offset for max TCK
#define SPD_FTB_MIN_TCK_DDR4  125   // Fine offset for min TCK

#define SPD_MMID_LSB_DDR4     320   // Module Manufacturer ID Code, Least Significant Byte
#define SPD_MMID_MSB_DDR4     321   // Module Manufacturer ID Code, Most Significant Byte
#define SPD_MM_LOC_DDR4       322   // Module Manufacturing Location
#define SPD_MM_DATE_DDR4      323   // Module Manufacturing Date 323-324
#define SPD_MODULE_SN_DDR4    325   // Module Serial Number 325-328
#define SPD_MODULE_PN_DDR4    329   // Module Part Number 329-348
#define SPD_MODULE_RC_DDR4    349   // Module Revision Code
#define SPD_DRAM_MIDC_LSB_DDR4 350  // DRAM Manufacturer ID Code, Least Significant Byte
#define SPD_DRAM_MIDC_MSB_DDR4 351  // DRAM Manufacturer ID Code, Most Significant Byte
#define SPD_DRAM_REV_DDR4     352   // DRAM Revision ID
#define SPD_CRC_LSB_DDR4      382   // LSB of 16-bit CRC
#define SPD_CRC_MSB_DDR4      383   // MSB of 16-bit CRC

  // Begin DDR4 module specific section
#define SPD_MODULE_NH_DDR4    128    // Module Nominal Height
#define SPD_MODULE_MT_DDR4    129    // Module Maximum Thickness
#define SPD_REF_RAW_CARD_DDR4 130    // Reference Raw Card Used

  // UDIMM specific bytes
  // Applicable when Module Type (key byte 3) = 2
#define SPD_ADDR_MAP_FECTD_DDR4 131    // Address Mapping from Edge Connector to DRAM

  // RDIMM specific bytes
  // Applicable when Module Type (key byte 3) = 1
#define SPD_RDIMM_ATTR_DDR4    131   // RDIMM module attributes
#define SPD_DIMM_HS_DDR4       132   // Module Heat Spreader Solution
#define SPD_REG_VEN_LSB_DDR4   133   // Register Vendor ID LSB
#define SPD_REG_VEN_MSB_DDR4   134   // Register Vendor ID MSB
#define SPD_REG_REV_DDR4       135   // Register Revision
#define SPD_ADD_MAPPING_DDR4   136   // Address mapping from Reg to DRAM
#define SPD_REG_OD_CTL_DDR4    137   // Register Output Drive Strength for Control
#define SPD_REG_OD_CK_DDR4     138   // Register Output Drive Strength for Clock

  // LRDIMM specific bytes
  // Applicable when Module Type (key byte 3) = 0x4
#define SPD_LRDIMM_ATTR_DDR4   131   // LRDIMM module attributes
#define SPD_LRBUF_HS_DDR4      132   // LR Buffer Heat Spreader Solution
#define SPD_LRBUF_VEN_LSB_DDR4 133   // LR Buffer Vendor ID LSB
#define SPD_LRBUF_VEN_MSB_DDR4 134   // LR Buffer Vendor ID MSB
#define SPD_LRBUF_REV_DDR4     135   // LR Buffer Register Revision
#define SPD_LRBUF_DB_REV_DDR4  139   // LR Buffer Data Buffer Revision
#define SPD_LRBUF_DRAM_VREFDQ_R0_DDR4 140 // LR Buffer DRAM VrefDQ for Package Rank 0
#define SPD_LRBUF_DRAM_VREFDQ_R1_DDR4 141 // LR Buffer DRAM VrefDQ for Package Rank 1
#define SPD_LRBUF_DRAM_VREFDQ_R2_DDR4 142 // LR Buffer DRAM VrefDQ for Package Rank 2
#define SPD_LRBUF_DRAM_VREFDQ_R3_DDR4 143 // LR Buffer DRAM VrefDQ for Package Rank 3
#define SPD_LRBUF_DB_VREFDQ_DDR4 144 // LR Data Buffer VrefDQ for DRAM Interface
#define SPD_LRBUF_DB_DS_RTT_LE1866_DDR4 145 // LR Data Buffer MDQ Drive Strength and RTT for data rate <= 1866
#define SPD_LRBUF_DB_DS_RTT_GT1866_LE2400_DDR4 146 // LR Data Buffer MDQ Drive Strength and RTT for data rate > 1866 and <= 2400
#define SPD_LRBUF_DB_DS_RTT_GT2400_LE3200_DDR4 147 // LR Data Buffer MDQ Drive Strength and RTT for data rate > 2400 and <= 3200
#define SPD_LRBUF_DRAM_DS_DDR4 148   // LR Buffer DRAM Drive Strength (for data rates <= 1866, 1866 < data rate <= 2400, and 2400 < data rate <= 3200)
#define SPD_LRBUF_DRAM_ODT_WR_NOM_LE1866_DDR4 149 // LR Buffer DRAM ODT (RTT_WR and RTT_NOM) for data rate <= 1866
#define SPD_LRBUF_DRAM_ODT_WR_NOM_GT1866_LE2400_DDR4 150 // LR Buffer DRAM ODT (RTT_WR and RTT_NOM) for data rate > 1866 and <= 2400
#define SPD_LRBUF_DRAM_ODT_WR_NOM_GT2400_LE3200_DDR4 151 // LR Buffer DRAM ODT (RTT_WR and RTT_NOM) for data rate > 2400 and <= 3200
#define SPD_LRBUF_DRAM_ODT_PARK_LE1866_DDR4 152 // LR Buffer DRAM ODT (RTT_PARK) for data rate <= 1866
#define SPD_LRBUF_DRAM_ODT_PARK_GT1866_LE2400_DDR4 153 // LR Buffer DRAM ODT (RTT_PARK) for data rate > 1866 and <= 2400
#define SPD_LRBUF_DRAM_ODT_PARK_GT2400_LE3200_DDR4 154 // LR Buffer DRAM ODT (RTT_PARK) for data rate > 2400 and <= 3200

  //
  // End DDR4 Specific Bytes
  //
#define BANK0   0
#define BANK1   BIT0
#define BANK2   BIT1
#define BANK3   BIT0 + BIT1
#define BANK4   BIT2
#define BANK5   BIT2 + BIT0
#define BANK6   BIT2 + BIT1
#define BANK7   BIT2 + BIT1 + BIT0

#define RDIMM_RC00     0x00
#define RDIMM_RC01     0x01
#define RDIMM_RC02     0x02
#define RDIMM_RC03     0x03
#define RDIMM_RC04     0x04
#define RDIMM_RC05     0x05
#define RDIMM_RC08     0x08
#define RDIMM_RC09     0x09
#define RDIMM_RC0A     0x0A
#define RDIMM_RC0B     0x0B
#define RDIMM_RC0C     0x0C
#define RDIMM_RC0D     0x0D
#define RDIMM_RC0E     0x0E
#define RDIMM_RC0F     0x0F
#define RDIMM_RC1x     0x10
#define RDIMM_RC2x     0x20
#define RDIMM_RC3x     0x30
#define RDIMM_RC4x     0x40
#define RDIMM_RC5x     0x50
#define RDIMM_RC6x     0x60
#define RDIMM_RC7x     0x70
#define RDIMM_RC8x     0x80
#define RDIMM_RC9x     0x90
#define RDIMM_RCAx     0xA0

#define LRDIMM_BC00    0x00
#define LRDIMM_BC01    0x01
#define LRDIMM_BC02    0x02
#define LRDIMM_BC03    0x03
#define LRDIMM_BC04    0x04
#define LRDIMM_BC05    0x05
#define LRDIMM_BC06    0x06
#define LRDIMM_BC07    0x07
#define LRDIMM_BC08    0x08
#define LRDIMM_BC09    0x09
#define LRDIMM_BC0A    0x0A
#define LRDIMM_BC0B    0x0B
#define LRDIMM_BC0C    0x0C
#define LRDIMM_BC0E    0x0E

#define LRDIMM_BC0x    0x00
#define LRDIMM_BC1x    0x10
#define LRDIMM_BC2x    0x20
#define LRDIMM_BC3x    0x30
#define LRDIMM_BC4x    0x40
#define LRDIMM_BC5x    0x50
#define LRDIMM_BC6x    0x60
#define LRDIMM_BC7x    0x70
#define LRDIMM_BC8x    0x80
#define LRDIMM_BC9x    0x90
#define LRDIMM_BCAx    0xA0
#define LRDIMM_BCBx    0xB0
#define LRDIMM_BCCx    0xC0
#define LRDIMM_BCDx    0xD0
#define LRDIMM_BCEx    0xE0
#define LRDIMM_BCFx    0xF0
#define LRDIMM_F0      0x0
#define LRDIMM_F1      0x1
#define LRDIMM_F5      0x5
#define LRDIMM_F6      0x6
#define LRDIMM_F7      0x7
#define LRDIMM_F8      0x8
#define LRDIMM_F9      0x9

#endif /* _HW_MEM_INIT_LIB_H_ */
