summaryrefslogtreecommitdiff
path: root/ReferenceCode/Chipset/SystemAgent/MemoryInit/Pei/Source/Include/McAddress.h
blob: ddd677b397e7579d2b0416c238bb0c27f278b56a (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/** @file
  The contents of this file has all the memory controller register addresses
  and register bit fields for the MRC.

@copyright
  Copyright (c) 1999 - 2012 Intel Corporation. All rights reserved
  This software and associated documentation (if any) is furnished
  under a license and may only be used or copied in accordance
  with the terms of the license. Except as permitted by such
  license, no part of this software or documentation may be
  reproduced, stored in a retrieval system, or transmitted in any
  form or by any means without the express written consent of
  Intel Corporation.

  This file contains an 'Intel Peripheral Driver' and uniquely
  identified as "Intel Reference Module" and is
  licensed for Intel CPUs and chipsets under the terms of your
  license agreement with Intel or your vendor.  This file may
  be modified by the user, subject to additional terms of the
  license agreement
**/
#ifndef __McAddress_h__
#define __McAddress_h__

#include "McGdxcbar.h"
#include "McIoCkeCtl.h"
#include "McIoClk.h"
#include "McIoCmd.h"
#include "McIoComp.h"
#include "McIoData.h"
#include "McMain.h"
#include "McScramble.h"
#include "Msa.h"
#include "Pci000.h"

///
/// The following is a copy of M_PCU_CR_SSKPD_PCU_STRUCT, modified to add in the
/// definition of the scratch pad bit fields.
///
typedef union {
  struct {
    U64 OldWM0     : 4;  ///< Bits 3:0
    U64 WM1        : 8;  ///< Bits 11:4
    U64 WM2        : 8;  ///< Bits 19:12
    U64 WM3        : 9;  ///< Bits 28:20
    U64            : 3;  ///< Bits 31:29
    U64 WM4        : 9;  ///< Bits 40:32
    U64            : 15; ///< Bits 55:41
    U64 NewWM0     : 8;  ///< Bits 63:56
  } Bits;
  U64 Data;
  U32 Data32[2];
  U16 Data16[4];
  U8  Data8[8];
} M_PCU_CR_SSKPD_PCU_STRUCT;

///
/// Number of microseconds for level 0 old field (0.1us granularity).
/// 00h 0 us
/// 01h 0.1 us
/// Fh 1.5 us
///
#define PCU_CR_SSKPD_PCU_OLD_WM0_OFF  (0)
#define PCU_CR_SSKPD_PCU_OLD_WM0_WID  (4)
#define PCU_CR_SSKPD_PCU_OLD_WM0_MSK  (0xF)
#define PCU_CR_SSKPD_PCU_OLD_WM0_MAX  (0xF)
#define PCU_CR_SSKPD_PCU_OLD_WM0_DEF  (0xF)

///
/// Number of microseconds for level 0 new field (0.1us granularity).
/// 00h 0 us
/// 01h 0.1 us
/// FFh 25.5 us
///
#define PCU_CR_SSKPD_PCU_NEW_WM0_OFF  (56)
#define PCU_CR_SSKPD_PCU_NEW_WM0_WID  (8)
#define PCU_CR_SSKPD_PCU_NEW_WM0_MSK  (0xFF)
#define PCU_CR_SSKPD_PCU_NEW_WM0_MAX  (0xFF)
#define PCU_CR_SSKPD_PCU_NEW_WM0_DEF  (0x14)
///
/// Number of microseconds for level 1 (0.5us granularity).
/// 00h 0 us
/// 01h 0.5 us
/// FFh 127.5 us
///
#define PCU_CR_SSKPD_PCU_WM1_OFF  (4)
#define PCU_CR_SSKPD_PCU_WM1_WID  (8)
#define PCU_CR_SSKPD_PCU_WM1_MSK  (0xFF)
#define PCU_CR_SSKPD_PCU_WM1_MAX  (0xFF)
#define PCU_CR_SSKPD_PCU_WM1_DEF  (4)

///
/// Number of microseconds for level 2 (0.5us granularity).
/// 00h 0 us
/// 01h 0.5 us
/// FFh 127.5 us
///
#define PCU_CR_SSKPD_PCU_WM2_OFF  (12)
#define PCU_CR_SSKPD_PCU_WM2_WID  (8)
#define PCU_CR_SSKPD_PCU_WM2_MSK  (0xFF)
#define PCU_CR_SSKPD_PCU_WM2_MAX  (0xFF)
#define PCU_CR_SSKPD_PCU_WM2_DEF  (36)

///
/// Number of microseconds for level 3 (0.5us granularity).
/// 00h 0 us
/// 01h 0.5 us
/// 01FFh 255.5 us
///
#define PCU_CR_SSKPD_PCU_WM3_OFF  (20)
#define PCU_CR_SSKPD_PCU_WM3_WID  (9)
#define PCU_CR_SSKPD_PCU_WM3_MSK  (0x1FF)
#define PCU_CR_SSKPD_PCU_WM3_MAX  (0x1FF)
#define PCU_CR_SSKPD_PCU_WM3_DEF  (90)

///
/// Number of microseconds for level 4 (0.5us granularity).
/// 00h 0 us
/// 01h 0.5 us
/// 01FFh 255.5 us
///
#define PCU_CR_SSKPD_PCU_WM4_OFF  (32)
#define PCU_CR_SSKPD_PCU_WM4_WID  (9)
#define PCU_CR_SSKPD_PCU_WM4_MSK  (0x1FF)
#define PCU_CR_SSKPD_PCU_WM4_MAX  (0x1FF)
#define PCU_CR_SSKPD_PCU_WM4_DEF  (160)


#define NCDECS_CR_GDXCBAR_NCU_MAX (0xFFFFF000)

#endif // __McAddress_h__