blob: 9780cd2031339a3a4a9f6e1b1d0a030c2e0038db [file] [log] [blame]
Frank Vibrans2b4c8312011-02-14 18:30:54 +00001/* $NoKeywords:$ */
2/**
3 * @file
4 *
5 * Internal access to HT Interface for coherent features.
6 *
7 * This file provides definitions used by HT internal modules. The
8 * external HT interface (in agesa.h) is accessed using these methods.
9 * This keeps the HT Feature implementations abstracted from the HT
10 * interface.
11 *
12 * @xrefitem bom "File Content Label" "Release Content"
13 * @e project: AGESA
14 * @e sub-project: HyperTransport
15 * @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
16 *
17 */
18/*
19 *****************************************************************************
20 *
21 * Copyright (c) 2011, Advanced Micro Devices, Inc.
22 * All rights reserved.
Edward O'Callaghane963b382014-07-06 19:27:14 +100023 *
Frank Vibrans2b4c8312011-02-14 18:30:54 +000024 * Redistribution and use in source and binary forms, with or without
25 * modification, are permitted provided that the following conditions are met:
26 * * Redistributions of source code must retain the above copyright
27 * notice, this list of conditions and the following disclaimer.
28 * * Redistributions in binary form must reproduce the above copyright
29 * notice, this list of conditions and the following disclaimer in the
30 * documentation and/or other materials provided with the distribution.
Edward O'Callaghane963b382014-07-06 19:27:14 +100031 * * Neither the name of Advanced Micro Devices, Inc. nor the names of
32 * its contributors may be used to endorse or promote products derived
Frank Vibrans2b4c8312011-02-14 18:30:54 +000033 * from this software without specific prior written permission.
Edward O'Callaghane963b382014-07-06 19:27:14 +100034 *
Frank Vibrans2b4c8312011-02-14 18:30:54 +000035 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
36 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
37 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
39 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
40 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
41 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
42 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
43 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
44 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Edward O'Callaghane963b382014-07-06 19:27:14 +100045 *
Frank Vibrans2b4c8312011-02-14 18:30:54 +000046 * ***************************************************************************
47 *
48 */
49
50#ifndef _HT_INTERFACE_COHERENT_H_
51#define _HT_INTERFACE_COHERENT_H_
52
53/*----------------------------------------------------------------------------
54 * Mixed (DEFINITIONS AND MACROS / TYPEDEFS, STRUCTURES, ENUMS)
55 *
56 *----------------------------------------------------------------------------
57 */
58
59/*-----------------------------------------------------------------------------
60 * DEFINITIONS AND MACROS
61 *
62 *-----------------------------------------------------------------------------
63 */
64
65/*----------------------------------------------------------------------------
66 * TYPEDEFS, STRUCTURES, ENUMS
67 *
68 *----------------------------------------------------------------------------
69 */
70
71/*----------------------------------------------------------------------------
72 * Prototypes to Interface from Feature Code
73 *
74 *----------------------------------------------------------------------------
75 */
76
77/**
78 * Get limits for CPU to CPU Links.
79 *
80 */
81VOID
82GetCpu2CpuPcbLimits (
83 IN UINT8 NodeA,
84 IN UINT8 LinkA,
85 IN UINT8 NodeB,
86 IN UINT8 LinkB,
87 IN OUT UINT8 *ABLinkWidthLimit,
88 IN OUT UINT8 *BALinkWidthLimit,
89 IN OUT UINT32 *PcbFreqCap,
90 IN STATE_DATA *State
91 );
92
93/**
94 * Skip reganging of subLinks.
95 *
96 */
97FINAL_LINK_STATE
98GetSkipRegang (
99 IN UINT8 NodeA,
100 IN UINT8 LinkA,
101 IN UINT8 NodeB,
102 IN UINT8 LinkB,
103 IN STATE_DATA *State
104 );
105
106/**
107 * Get a new, empty Hop Count Table, to make one for the installed topology.
108 *
109 */
110VOID
111NewHopCountTable (
112 IN OUT STATE_DATA *State
113 );
114
115#endif /* _HT_INTERFACE_COHERENT_H_ */