AGESA F15: AMD family15 AGESA code
[coreboot.git] / src / vendorcode / amd / agesa / f15 / Proc / Recovery / Mem / NB / OR / mrnor.h
1 /* $NoKeywords:$ */
2 /**
3  * @file
4  *
5  * mnor.h
6  *
7  * Northbridge Orochi Recovery
8  *
9  * @xrefitem bom "File Content Label" "Release Content"
10  * @e project: AGESA
11  * @e sub-project: (Proc/Recovery/Mem)
12  * @e \$Revision: 49947 $ @e \$Date: 2011-03-30 17:32:05 -0600 (Wed, 30 Mar 2011) $
13  *
14  **/
15 /*****************************************************************************
16   *
17  * Copyright (C) 2012 Advanced Micro Devices, Inc.
18  * All rights reserved.
19  *
20  * Redistribution and use in source and binary forms, with or without
21  * modification, are permitted provided that the following conditions are met:
22  *     * Redistributions of source code must retain the above copyright
23  *       notice, this list of conditions and the following disclaimer.
24  *     * Redistributions in binary form must reproduce the above copyright
25  *       notice, this list of conditions and the following disclaimer in the
26  *       documentation and/or other materials provided with the distribution.
27  *     * Neither the name of Advanced Micro Devices, Inc. nor the names of
28  *       its contributors may be used to endorse or promote products derived
29  *       from this software without specific prior written permission.
30  *
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
32  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
33  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34  * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
35  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
38  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
39  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41   *
42   * ***************************************************************************
43   *
44  */
45
46 #ifndef _MRNOR_H_
47 #define _MRNOR_H_
48
49 /*----------------------------------------------------------------------------
50  *   Mixed (DEFINITIONS AND MACROS / TYPEDEFS, STRUCTURES, ENUMS)
51  *
52  *----------------------------------------------------------------------------
53  */
54 #define MAX_DIES_PER_SOCKET_OR        2
55 #define MAX_DCTS_PER_NODE_OR          2
56 #define MAX_CHANNELS_PER_DCT_OR       1
57
58 #define _4GB_RJ8    ((UINT32)4 << (30 - 8))
59 #define MTRR_VALID  11
60
61 /*-----------------------------------------------------------------------------
62  *                         DEFINITIONS AND MACROS
63  *
64  *-----------------------------------------------------------------------------
65  */
66
67 /*----------------------------------------------------------------------------
68  *                         TYPEDEFS, STRUCTURES, ENUMS
69  *
70  *----------------------------------------------------------------------------
71  */
72
73 /*----------------------------------------------------------------------------
74  *                           FUNCTIONS PROTOTYPE
75  *
76  *----------------------------------------------------------------------------
77  */
78
79 BOOLEAN
80 MemRecConstructNBBlockOr (
81   IN OUT   MEM_NB_BLOCK *NBPtr,
82   IN OUT   MEM_DATA_STRUCT *MemPtr,
83   IN       UINT8 NodeID
84   );
85
86 VOID
87 MemRecNSwitchDctOr (
88   IN OUT   MEM_NB_BLOCK *NBPtr,
89   IN       UINT8 Dct
90   );
91
92 VOID
93 MemRecNSwitchChannelOr (
94   IN OUT   MEM_NB_BLOCK *NBPtr,
95   IN       UINT8 Channel
96   );
97
98 VOID
99 MemRecNSetDramOdtOr (
100   IN OUT   MEM_NB_BLOCK *NBPtr,
101   IN       ODT_MODE OdtMode,
102   IN       UINT8 ChipSelect,
103   IN       UINT8 TargetCS
104   );
105
106 AGESA_STATUS
107 MemRecNMemInitOr (
108   IN OUT   MEM_NB_BLOCK *NBPtr
109   );
110
111 BOOLEAN
112 MemRecNPlatformSpecOr (
113   IN OUT   MEM_NB_BLOCK *NBPtr
114   );
115
116 VOID
117 MemRecNStartupDCTOr (
118   IN OUT   MEM_NB_BLOCK *NBPtr
119   );
120
121 VOID
122 MemRecNSetMaxLatencyOr (
123   IN OUT   MEM_NB_BLOCK *NBPtr,
124   IN       UINT16 MaxRcvEnDly
125   );
126
127 #endif  /* _MRNOR_H_ */
128
129