5 * AMD IDS HyperTransport Definitions
7 * Contains AMD AGESA Integrated Debug HT related items.
9 * @xrefitem bom "File Content Label" "Release Content"
12 * @e \$Revision: 44324 $ @e \$Date: 2010-12-22 02:16:51 -0700 (Wed, 22 Dec 2010) $
14 /*****************************************************************************
16 * Copyright (C) 2012 Advanced Micro Devices, Inc.
17 * All rights reserved.
19 * Redistribution and use in source and binary forms, with or without
20 * modification, are permitted provided that the following conditions are met:
21 * * Redistributions of source code must retain the above copyright
22 * notice, this list of conditions and the following disclaimer.
23 * * Redistributions in binary form must reproduce the above copyright
24 * notice, this list of conditions and the following disclaimer in the
25 * documentation and/or other materials provided with the distribution.
26 * * Neither the name of Advanced Micro Devices, Inc. nor the names of
27 * its contributors may be used to endorse or promote products derived
28 * from this software without specific prior written permission.
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
31 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
32 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
33 * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
34 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
35 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
36 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
37 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
39 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 ***************************************************************************/
47 // Frequency equates for call backs which take an actual frequency setting
48 #define HT_FREQUENCY_200M 0
49 #define HT_FREQUENCY_400M 2
50 #define HT_FREQUENCY_600M 4
51 #define HT_FREQUENCY_800M 5
52 #define HT_FREQUENCY_1000M 6
53 #define HT_FREQUENCY_1200M 7
54 #define HT_FREQUENCY_1400M 8
55 #define HT_FREQUENCY_1600M 9
56 #define HT_FREQUENCY_1800M 10
57 #define HT_FREQUENCY_2000M 11
58 #define HT_FREQUENCY_2200M 12
59 #define HT_FREQUENCY_2400M 13
60 #define HT_FREQUENCY_2600M 14
61 #define HT_FREQUENCY_2800M 17
62 #define HT_FREQUENCY_3000M 18
63 #define HT_FREQUENCY_3200M 19
64 #define HT_FREQUENCY_3600M 20
67 * HT IDS: HT Link Port Override params.
69 * Provide an absolute override of HT Link Port settings. No checking is done that
70 * the settings obey limits or capabilities, this responsibility rests with the user.
72 * Rules for values of structure items:
74 * - HT_LIST_TERMINAL == end of port override list, rest of item is not accessed
75 * - HT_LIST_MATCH_ANY == Match Any Socket
76 * - 0 .. 7 == The matching socket
78 * - HT_LIST_MATCH_ANY == Match Any package link (that is not the internal links)
79 * - HT_LIST_MATCH_INTERNAL_LINK == Match the internal links
80 * - 0 .. 7 == The matching package link. 0 .. 3 are the ganged links or sublink 0's, 4 .. 7 are the sublink1's.
82 * - HT_LIST_TERMINAL == Do not override the frequency, AUTO setting
83 * - HT_FREQUENCY_200M .. HT_FREQUENCY_3600M = The frequency value to use
85 * - HT_LIST_TERMINAL == Do not override the width, AUTO setting
86 * - 2, 4, 8, 16, 32 == The width value to use
88 * - HT_LIST_TERMINAL == Do not override the width, AUTO setting
89 * - 2, 4, 8, 16, 32 == The width value to use
93 UINT8 Socket; ///< The Socket which this port is on.
94 UINT8 Link; ///< The port for this package link on that socket.
96 UINT8 Frequency; ///< Absolutely override the port's frequency.
97 UINT8 WidthIn; ///< Absolutely override the port's width.
98 UINT8 WidthOut; ///< Absolutely override the port's width.
99 } HTIDS_PORT_OVERRIDE;
102 * A list of port overrides to search.
104 typedef HTIDS_PORT_OVERRIDE *HTIDS_PORT_OVERRIDE_LIST;
106 HtIdsGetPortOverride (
107 IN BOOLEAN IsSourcePort,
108 IN OUT PORT_DESCRIPTOR *Port0,
109 IN OUT PORT_DESCRIPTOR *Port1,
110 IN OUT HTIDS_PORT_OVERRIDE_LIST *PortOverrideList,
116 F_HtIdsGetPortOverride (
117 IN BOOLEAN IsSourcePort,
118 IN OUT PORT_DESCRIPTOR *Port0,
119 IN OUT PORT_DESCRIPTOR *Port1,
120 IN OUT HTIDS_PORT_OVERRIDE_LIST *PortOverrideList,
123 typedef F_HtIdsGetPortOverride* PF_HtIdsGetPortOverride;