hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
/** @file
 
  @copyright
  Copyright 2010 - 2021 Intel Corporation. <BR>
 
  SPDX-License-Identifier: BSD-2-Clause-Patent
**/
 
#ifndef _IIO_REGS_H_
#define _IIO_REGS_H_
 
#include <IioSetupDefinitions.h>
 
/**
==================================================================================================
==================================  General Definitions          ==================================
==================================================================================================
**/
//-----------------------------------------------------------------------------------
// PCIE port index for SKX
//------------------------------------------------------------------------------------
#define SOCKET_0_INDEX           0
#define SOCKET_1_INDEX           21
#define SOCKET_2_INDEX           42
#define SOCKET_3_INDEX           63
#define SOCKET_4_INDEX           84
#define SOCKET_5_INDEX           105
#define SOCKET_6_INDEX           126
#define SOCKET_7_INDEX           147
 
//-----------------------------------------------------------------------------------
// Number's ports per stack definitions for 10nm
//------------------------------------------------------------------------------------
 
// STACK0 for: ICX-SP
#define NUMBER_PORTS_PER_STACK0_10NM       1
 
// NON-STACK0 for: ICX-SP
#define NUMBER_PORTS_PER_NON_STACK0_10NM   4
 
#define MAX_UNCORE_STACK                   2  // MAX_LOGIC_IIO_STACK - MAX_IIO_STACK
 
#define MaxIIO                        MAX_SOCKET
 
#define TOTAL_CB3_DEVICES             64   // IOAT_TOTAL_FUNCS * MAX_SOCKET. Note: this covers up to 8S.
#define MAX_TOTAL_PORTS               (MAX_SOCKET * NUMBER_PORTS_PER_SOCKET)   //NUMBER_PORTS_PER_SOCKET * MaxIIO. As now, treats setup S0-S3 = S4_S7 as optimal
 
  #define NUM_IAX                       1    //number of IAX per Socket
  #define NUM_DSA                       1    //number of DSA per Socket
  #define NUM_CPM                       1    //number of CPM per Socket
  #define NUM_HQM                       1    //number of HQM per Socket
 
#define TOTAL_IIO_STACKS              48   // MAX_SOCKET * MAX_IIO_STACK. Not reflect architecture but only sysHost structure!
 
#define NUMBER_NTB_PORTS_PER_SOCKET       5
 
#ifndef MAX_STACKS_PER_SOCKET
    #define MAX_STACKS_PER_SOCKET     6
    #define MAX_IIO_PORTS_PER_STACK   NUMBER_PORTS_PER_NON_STACK0_10NM
#endif
 
#define MAX_IOU_PER_SOCKET            5     // Max IOU number per socket for all silicon generation, SKX, ICX
 
#define MAX_VMD_ROOTPORTS_PER_PCH     20    // Max number of rootports in PCH
#define MAX_VMD_STACKS_PER_SOCKET     6     // Max number of stacks per socket supported by VMD
 
#define MAX_RETIMERS_PER_STACK        2            // Max number of retimers per pcie controller (ICX-SP)
 
#ifndef NELEMENTS
#define NELEMENTS(Array) (sizeof(Array)/sizeof((Array)[0]))
#endif
 
 
/**
==================================================================================================
==================================  IIO Root Port Definitions              ====================
==================================================================================================
**/
// Max BDFs definitions
#define MAX_FUNC_NUM            8
#define MAX_DEV_NUM             32
#define MAX_BUS_NUM             256
 
#define PORT_0_INDEX             0
#define PORT_A_INDEX             1
#define PORT_B_INDEX             2
#define PORT_C_INDEX             3
#define PORT_D_INDEX             4
#define PORT_E_INDEX             5
#define PORT_F_INDEX             6
#define PORT_G_INDEX             7
#define PORT_H_INDEX             8
 
//-----------------------------------------------------------------------------------
// Port Index definition for SKX
//------------------------------------------------------------------------------------
#define PCIE_PORT_2_DEV          0x02
// IOU0
#define PORT_1A_INDEX            1
#define PORT_1B_INDEX            2
#define PORT_1C_INDEX            3
#define PORT_1D_INDEX            4
// IOU1
#define PORT_2A_INDEX            5
#define PORT_2B_INDEX            6
#define PORT_2C_INDEX            7
#define PORT_2D_INDEX            8
// IOU2
#define PORT_3A_INDEX            9
#define PORT_3B_INDEX            10
#define PORT_3C_INDEX            11
#define PORT_3D_INDEX            12
//MCP0
#define PORT_4A_INDEX            13
#define PORT_4B_INDEX            14
#define PORT_4C_INDEX            15
#define PORT_4D_INDEX            16
//MCP1
#define PORT_5A_INDEX            17
#define PORT_5B_INDEX            18
#define PORT_5C_INDEX            19
#define PORT_5D_INDEX            20
 
//-----------------------------------------------------------------------------------
// Port Index definition for ICX-SP
//------------------------------------------------------------------------------------
 
// IOU0
#define PORT_1A_INDEX_1           1
#define PORT_1B_INDEX_1           2
#define PORT_1C_INDEX_1           3
#define PORT_1D_INDEX_1           4
// IOU1
#define PORT_2A_INDEX_2           5
#define PORT_2B_INDEX_2           6
#define PORT_2C_INDEX_2           7
#define PORT_2D_INDEX_2           8
// IOU2
#define PORT_3A_INDEX_3           9
#define PORT_3B_INDEX_3           10
#define PORT_3C_INDEX_3           11
#define PORT_3D_INDEX_3           12
// IOU3
#define PORT_4A_INDEX_4           13
#define PORT_4B_INDEX_4           14
#define PORT_4C_INDEX_4           15
#define PORT_4D_INDEX_4           16
// IOU4
#define PORT_5A_INDEX_5           17
#define PORT_5B_INDEX_5           18
#define PORT_5C_INDEX_5           19
#define PORT_5D_INDEX_5           20
 
//
// Port Config Mode
//
#define REGULAR_PCIE_OWNERSHIP        0
#define VMD_OWNERSHIP                 3
#define PCIEAIC_OCL_OWNERSHIP         4
 
#define NUMBER_TRACE_HUB_PER_SOCKET                           1
 
//
// 8 stacks per each socket:
//   - 6 IIO stacks (used only on 14nm systems - 10nm doesn't hide per-IP)
//   - 2 uncore stacks (used only for 10nm systems - 14nm doesn't have such stacks)
//
#define NUM_DEVHIDE_REGS_PER_STACK                  8  // devHide 32-bit register for each function on stack
#define NUM_DEVHIDE_UNCORE_STACKS                   2  // number of uncore stacks in setup structure
#define NUM_DEVHIDE_IIO_STACKS                      6  // number of IIO stacks ins etup structure
 
#if MaxIIO > 4
#define MAX_DEVHIDE_REGS_PER_SYSTEM                  512 // MAX_DEVHIDE_REGS_PER_SOCKET * MaxIIO
#else
#define MAX_DEVHIDE_REGS_PER_SYSTEM                  256 // MAX_DEVHIDE_REGS_PER_SOCKET * MaxIIO
#endif
 
#endif //_IIO_REGS_H_