hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
/** @file
  Register definition for PSF component
 
  Conventions:
 
  - Prefixes:
    Definitions beginning with "R_" are registers
    Definitions beginning with "B_" are bits within registers
    Definitions beginning with "V_" are meaningful values within the bits
    Definitions beginning with "S_" are register sizes
    Definitions beginning with "N_" are the bit position
  - In general, PCH registers are denoted by "_PCH_" in register names
  - Registers / bits that are different between PCH generations are denoted by
    "_PCH_[generation_name]_" in register/bit names.
  - Registers / bits that are specific to PCH-H denoted by "_H_" in register/bit names.
    Registers / bits that are specific to PCH-LP denoted by "_LP_" in register/bit names.
    e.g., "_PCH_H_", "_PCH_LP_"
    Registers / bits names without _H_ or _LP_ apply for both H and LP.
  - Registers / bits that are different between SKUs are denoted by "_[SKU_name]"
    at the end of the register/bit names
  - Registers / bits of new devices introduced in a PCH generation will be just named
    as "_PCH_" without [generation_name] inserted.
 
Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
 
**/
#ifndef _PCH_REGS_PSF_H_
#define _PCH_REGS_PSF_H_
 
//
// Private chipset regsiter (Memory space) offset definition
// The PCR register defines is used for PCR MMIO programming and PCH SBI programming as well.
//
 
//
// PSFx segment registers
//
#define R_PCH_PCR_PSF_GLOBAL_CONFIG                     0x4000                  ///< PSF Segment Global Configuration Register
#define B_PCH_PCR_PSF_GLOBAL_CONFIG_ENTCG               BIT4
#define B_PCH_PCR_PSF_GLOBAL_CONFIG_ENLCG               BIT3
#define R_PCH_PCR_PSF_ROOTSPACE_CONFIG_RS0              0x4010                  ///< PSF Segment Rootspace Configuration Register
#define R_PCH_PCR_PSF_ROOTSPACE_CONFIG_RS1              0x4014
#define B_PCH_PCR_PSF_ROOTSPACE_CONFIG_RSX_ENADDRP2P    BIT1
#define B_PCH_PCR_PSF_ROOTSPACE_CONFIG_RSX_VTDEN        BIT0
#define R_PCH_PCR_PSF_PORT_CONFIG_PG0_PORT0             0x4018                  ///< PSF Segment Port Configuration Register
 
#define S_PCH_PSF_DEV_GNTCNT_RELOAD_DGCR                4
#define S_PCH_PSF_TARGET_GNTCNT_RELOAD                  4
#define B_PCH_PSF_DEV_GNTCNT_RELOAD_DGCR_GNT_CNT_RELOAD 0x1F
#define B_PCH_PSF_TARGET_GNTCNT_RELOAD_GNT_CNT_RELOAD   0x1F
 
//
// PSFx PCRs definitions
//
#define R_PCH_PCR_PSFX_T0_SHDW_BAR0                     0                       ///< PCI BAR0
#define R_PCH_PCR_PSFX_T0_SHDW_BAR1                     0x04                    ///< PCI BAR1
#define R_PCH_PCR_PSFX_T0_SHDW_BAR2                     0x08                    ///< PCI BAR2
#define R_PCH_PCR_PSFX_T0_SHDW_BAR3                     0x0C                    ///< PCI BAR3
#define R_PCH_PCR_PSFX_T0_SHDW_BAR4                     0x10                    ///< PCI BAR4
#define R_PCH_PCR_PSFX_T0_SHDW_PCIEN                    0x1C                    ///< PCI configuration space enable bits
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_BAR0DIS            BIT16                   ///< Disable BAR0
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_BAR1DIS            BIT17                   ///< Disable BAR1
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_BAR2DIS            BIT18                   ///< Disable BAR2
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_BAR3DIS            BIT19                   ///< Disable BAR3
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_BAR4DIS            BIT20                   ///< Disable BAR4
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_BAR5DIS            BIT21                   ///< Disable BAR5
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_FUNDIS             BIT8                    ///< Function disable
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_MEMEN              BIT1                    ///< Memory decoding enable
#define B_PCH_PCR_PSFX_T0_SHDW_PCIEN_IOEN               BIT0                    ///< IO decoding enable
#define R_PCH_PCR_PSFX_T0_SHDW_PMCSR                    0x20                    ///< PCI power management configuration
#define B_PCH_PCR_PSFX_T0_SHDW_PMCSR_PWRST              (BIT1 | BIT0)           ///< Power status
#define R_PCH_PCR_PSFX_T0_SHDW_CFG_DIS                  0x38                    ///< PCI configuration disable
#define B_PCH_PCR_PSFX_T0_SHDW_CFG_DIS_CFGDIS           BIT0                    ///< config disable
 
#define R_PCH_PCR_PSFX_T1_SHDW_PCIEN                    0x3C                    ///< PCI configuration space enable bits
#define B_PCH_PCR_PSFX_T1_SHDW_PCIEN_FUNDIS             BIT8                    ///< Function disable
#define B_PCH_PCR_PSFX_T1_SHDW_PCIEN_MEMEN              BIT1                    ///< Memory decoding enable
#define B_PCH_PCR_PSFX_T1_SHDW_PCIEN_IOEN               BIT0                    ///< IO decoding enable
 
#define B_PCH_PCR_PSFX_TX_AGENT_FUNCTION_CONFIG_DEVICE          0x01F0                 ///< device number
#define N_PCH_PCR_PSFX_TX_AGENT_FUNCTION_CONFIG_DEVICE          4
#define B_PCH_PCR_PSFX_TX_AGENT_FUNCTION_CONFIG_FUNCTION        (BIT3 | BIT2 | BIT1)   ///< function number
#define N_PCH_PCR_PSFX_TX_AGENT_FUNCTION_CONFIG_FUNCTION        1
 
#define V_PCH_LP_PCR_PSFX_PSF_MC_AGENT_MCAST_TGT_P2SB   0x38A00
#define V_PCH_H_PCR_PSFX_PSF_MC_AGENT_MCAST_TGT_P2SB    0x38B00
 
//
// PSF1 PCRs
//
// PSF1 PCH-LP Specific Base Address
#define R_PCH_LP_PCR_PSF1_T0_SHDW_GBE_REG_BASE          0x0200                  ///< D31F6 PSF base address (GBE)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_CAM_REG_BASE          0x0300                  ///< D20F3 PSF base address (CAM)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_CSE_WLAN_REG_BASE     0x0500                  ///< D22F7 PSF base address (CSME: WLAN)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_HECI3_REG_BASE        0x0700                  ///< D22F4 PSF base address (CSME: HECI3)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_HECI2_REG_BASE        0x0800                  ///< D22F1 PSF base address (CSME: HECI2)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_CSE_UMA_REG_BASE      0x0900                  ///< D18F3 PSF base address (CSME: CSE UMA)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_HECI1_REG_BASE        0x0A00                  ///< D22F0 PSF base address (CSME: HECI1)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_KT_REG_BASE           0x0B00                  ///< D22F3 PSF base address (CSME: KT)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_IDER_REG_BASE         0x0C00                  ///< D22F2 PSF base address (CSME: IDER)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_CLINK_REG_BASE        0x0D00                  ///< D18F1 PSF base address (CSME: CLINK)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_PMT_REG_BASE          0x0E00                  ///< D18F2 PSF base address (CSME: PMT)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_KVM_REG_BASE          0x0F00                  ///< D18F0 PSF base address (CSME: KVM)
#define R_PCH_LP_PCR_PSF1_T0_SHDW_SATA_REG_BASE         0x1000                  ///< PCH-LP D23F0 PSF base address (SATA)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE12_REG_BASE       0x2000                  ///< PCH-LP D29F3 PSF base address (PCIE PORT 12)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE11_REG_BASE       0x2100                  ///< PCH-LP D29F2 PSF base address (PCIE PORT 11)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE10_REG_BASE       0x2200                  ///< PCH-LP D29F1 PSF base address (PCIE PORT 10)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE09_REG_BASE       0x2300                  ///< PCH-LP D29F0 PSF base address (PCIE PORT 09)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE08_REG_BASE       0x2400                  ///< PCH-LP D28F7 PSF base address (PCIE PORT 08)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE07_REG_BASE       0x2500                  ///< PCH-LP D28F6 PSF base address (PCIE PORT 07)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE06_REG_BASE       0x2600                  ///< PCH-LP D28F5 PSF base address (PCIE PORT 06)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE05_REG_BASE       0x2700                  ///< PCH-LP D28F4 PSF base address (PCIE PORT 05)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE04_REG_BASE       0x2800                  ///< PCH-LP D28F3 PSF base address (PCIE PORT 04)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE03_REG_BASE       0x2900                  ///< PCH-LP D28F2 PSF base address (PCIE PORT 03)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE02_REG_BASE       0x2A00                  ///< PCH-LP D28F1 PSF base address (PCIE PORT 02)
#define R_PCH_LP_PCR_PSF1_T1_SHDW_PCIE01_REG_BASE       0x2B00                  ///< PCH-LP D28F0 PSF base address (PCIE PORT 01)
 
// PSF1 PCH-H Specific Base Address
#define R_PCH_H_PCR_PSF1_T0_SHDW_CSE_WLAN_REG_BASE      0x0200                  ///< D22F7 PSF base address (CSME: WLAN)
#define R_PCH_H_PCR_PSF1_T0_SHDW_HECI3_REG_BASE         0x0300                  ///< SPT-H D22F4 PSF base address (CSME: HECI3)
#define R_PCH_H_PCR_PSF1_T0_SHDW_HECI2_REG_BASE         0x0400                  ///< SPT-H D22F1 PSF base address (CSME: HECI2)
#define R_PCH_H_PCR_PSF1_T0_SHDW_CSE_UMA_REG_BASE       0x0500                  ///< D18F3 PSF base address (CSME: CSE UMA)
#define R_PCH_H_PCR_PSF1_T0_SHDW_HECI1_REG_BASE         0x0600                  ///< SPT-H D22F0 PSF base address (CSME: HECI1)
#define R_PCH_H_PCR_PSF1_T0_SHDW_KT_REG_BASE            0x0700                  ///< SPT-H D22F3 PSF base address (CSME: KT)
#define R_PCH_H_PCR_PSF1_T0_SHDW_IDER_REG_BASE          0x0800                  ///< SPT-H D22F2 PSF base address (CSME: IDER)
#define R_PCH_H_PCR_PSF1_T0_SHDW_CLINK_REG_BASE         0x0900                  ///< D18F1 PSF base address (CSME: CLINK)
#define R_PCH_H_PCR_PSF1_T0_SHDW_PMT_REG_BASE           0x0A00                  ///< D18F2 PSF base address (CSME: PMT)
#define R_PCH_H_PCR_PSF1_T0_SHDW_KVM_REG_BASE           0x0B00                  ///< D18F0 PSF base address (CSME: KVM)
#define R_PCH_H_PCR_PSF1_T0_SHDW_SATA_REG_BASE          0x0C00                  ///< PCH-H D23F0 PSF base address (SATA)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE20_REG_BASE    0x2000                  ///< PCH-H D27F3 PSF base address (PCIE PORT 20)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE19_REG_BASE    0x2100                  ///< PCH-H D27F2 PSF base address (PCIE PORT 19)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE18_REG_BASE    0x2200                  ///< PCH-H D27F1 PSF base address (PCIE PORT 18)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE17_REG_BASE    0x2300                  ///< PCH-H D27F0 PSF base address (PCIE PORT 17)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE16_REG_BASE    0x2400                  ///< PCH-H D29F7 PSF base address (PCIE PORT 16)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE15_REG_BASE    0x2500                  ///< PCH-H D29F6 PSF base address (PCIE PORT 15)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE14_REG_BASE    0x2600                  ///< PCH-H D29F5 PSF base address (PCIE PORT 14)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE13_REG_BASE    0x2700                  ///< PCH-H D29F4 PSF base address (PCIE PORT 13)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE12_REG_BASE    0x2800                  ///< PCH-H D29F3 PSF base address (PCIE PORT 10)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE11_REG_BASE    0x2900                  ///< PCH-H D29F2 PSF base address (PCIE PORT 11)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE10_REG_BASE    0x2A00                  ///< PCH-H D29F1 PSF base address (PCIE PORT 10)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE09_REG_BASE    0x2B00                  ///< PCH-H D29F0 PSF base address (PCIE PORT 09)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE08_REG_BASE    0x2C00                  ///< PCH-H D28F7 PSF base address (PCIE PORT 08)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE07_REG_BASE    0x2D00                  ///< PCH-H D28F6 PSF base address (PCIE PORT 07)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE06_REG_BASE    0x2E00                  ///< PCH-H D28F5 PSF base address (PCIE PORT 06)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE05_REG_BASE    0x2F00                  ///< PCH-H D28F4 PSF base address (PCIE PORT 05)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE04_REG_BASE    0x3000                  ///< PCH-H D28F3 PSF base address (PCIE PORT 04)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE03_REG_BASE    0x3100                  ///< PCH-H D28F2 PSF base address (PCIE PORT 03)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE02_REG_BASE    0x3200                  ///< PCH-H D28F1 PSF base address (PCIE PORT 02)
#define R_SKL_PCH_H_PCR_PSF1_T1_SHDW_PCIE01_REG_BASE    0x3300                  ///< PCH-H D28F0 PSF base address (PCIE PORT 01)
 
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE24_REG_BASE    0x2000                  ///< PCH-H D27F7 PSF base address (PCIE PORT 24)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE23_REG_BASE    0x2100                  ///< PCH-H D27F6 PSF base address (PCIE PORT 23)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE22_REG_BASE    0x2200                  ///< PCH-H D27F5 PSF base address (PCIE PORT 22)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE21_REG_BASE    0x2300                  ///< PCH-H D27F4 PSF base address (PCIE PORT 21)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE20_REG_BASE    0x2400                  ///< PCH-H D27F3 PSF base address (PCIE PORT 20)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE19_REG_BASE    0x2500                  ///< PCH-H D27F2 PSF base address (PCIE PORT 19)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE18_REG_BASE    0x2600                  ///< PCH-H D27F1 PSF base address (PCIE PORT 18)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE17_REG_BASE    0x2700                  ///< PCH-H D27F0 PSF base address (PCIE PORT 17)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE16_REG_BASE    0x2800                  ///< PCH-H D29F7 PSF base address (PCIE PORT 16)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE15_REG_BASE    0x2900                  ///< PCH-H D29F6 PSF base address (PCIE PORT 15)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE14_REG_BASE    0x2A00                  ///< PCH-H D29F5 PSF base address (PCIE PORT 14)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE13_REG_BASE    0x2B00                  ///< PCH-H D29F4 PSF base address (PCIE PORT 13)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE12_REG_BASE    0x2C00                  ///< PCH-H D29F3 PSF base address (PCIE PORT 10)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE11_REG_BASE    0x2D00                  ///< PCH-H D29F2 PSF base address (PCIE PORT 11)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE10_REG_BASE    0x2E00                  ///< PCH-H D29F1 PSF base address (PCIE PORT 10)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE09_REG_BASE    0x2F00                  ///< PCH-H D29F0 PSF base address (PCIE PORT 09)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE08_REG_BASE    0x3000                  ///< PCH-H D28F7 PSF base address (PCIE PORT 08)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE07_REG_BASE    0x3100                  ///< PCH-H D28F6 PSF base address (PCIE PORT 07)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE06_REG_BASE    0x3200                  ///< PCH-H D28F5 PSF base address (PCIE PORT 06)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE05_REG_BASE    0x3300                  ///< PCH-H D28F4 PSF base address (PCIE PORT 05)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE04_REG_BASE    0x3400                  ///< PCH-H D28F3 PSF base address (PCIE PORT 04)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE03_REG_BASE    0x3500                  ///< PCH-H D28F2 PSF base address (PCIE PORT 03)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE02_REG_BASE    0x3600                  ///< PCH-H D28F1 PSF base address (PCIE PORT 02)
#define R_KBL_PCH_H_PCR_PSF1_T1_SHDW_PCIE01_REG_BASE    0x3700                  ///< PCH-H D28F0 PSF base address (PCIE PORT 01)
 
 
// Other PSF1 PCRs definition
#define R_PCH_H_PCR_PSF1_PSF_PORT_CONFIG_PG1_PORT7                  0x4038      ///< PSF Port Configuration Register
#define R_PCH_LP_PCR_PSF1_PSF_PORT_CONFIG_PG1_PORT7                 0x403C      ///< PSF Port Configuration Register
#define R_PCH_LP_PCR_PSF1_PSF_MC_CONTROL_MCAST0_EOI                 0x4050      ///< Multicast Control Register
#define R_PCH_LP_PCR_PSF1_PSF_MC_AGENT_MCAST0_TGT0_EOI              0x4060      ///< Destination ID
#define R_SKL_PCH_H_PCR_PSF1_PSF_MC_CONTROL_MCAST0_EOI              0x4048      ///< Multicast Control Register
#define R_SKL_PCH_H_PCR_PSF1_PSF_MC_AGENT_MCAST0_TGT0_EOI           0x4058      ///< Destination ID
#define R_KBL_PCH_H_PCR_PSF1_PSF_MC_CONTROL_MCAST0_EOI              0x404C      ///< Multicast Control Register
#define R_KBL_PCH_H_PCR_PSF1_PSF_MC_AGENT_MCAST0_TGT0_EOI           0x405C      ///< Destination ID
 
 
//PSF 1 Multicast Message Configuration
 
#define R_PCH_PCR_PSF1_RC_OWNER_RS0                                                     0x4008      ///< Destination ID
 
#define B_PCH_PCR_PSF1_TARGET_CHANNELID                                                 0xFF
#define B_PCH_PCR_PSF1_TARGET_PORTID                                                    0x7F00
#define N_PCH_PCR_PSF1_TARGET_PORTID                                                    8
#define B_PCH_PCR_PSF1_TARGET_PORTGROUPID                                               BIT15
#define N_PCH_PCR_PSF1_TARGET_PORTGROUPID                                               15
#define B_PCH_PCR_PSF1_TARGET_PSFID                                                     0xFF0000
#define N_PCH_PCR_PSF1_TARGET_PSFID                                                     16
#define B_PCH_PCR_PSF1_TARGET_CHANMAP                                                   BIT31
 
#define V_PCH_PCR_PSF1_RC_OWNER_RS0_CHANNELID                                           0
#define V_PCH_PCR_PSF1_RC_OWNER_RS0_PORTID                                              10
#define V_PCH_PCR_PSF1_RC_OWNER_RS0_PORTGROUPID_DOWNSTREAM                              1
#define V_PCH_PCR_PSF1_RC_OWNER_RS0_PSFID_PMT                                           0
#define V_PCH_PCR_PSF1_RC_OWNER_RS0_PSFID_PSF1                                          1
 
#define V_PCH_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGTX_MCTP1_PORTGROUPID_UPSTREAM          0
#define V_PCH_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGTX_MCTP1_PORTGROUPID_DOWNSTREAM        1
#define V_PCH_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGTX_MCTP1_PSFID_PSF1                    1
 
#define R_PCH_LP_PCR_PSF1_PSF_MC_CONTROL_MCAST1_RS0_MCTP1                               0x4058      ///< Multicast Control Register
#define R_PCH_LP_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGT0_MCTP1                            0x409C      ///< Destination ID
#define R_SKL_PCH_H_PCR_PSF1_PSF_MC_CONTROL_MCAST1_RS0_MCTP1                            0x4050      ///< Multicast Control Register
#define R_SKL_PCH_H_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGT0_MCTP1                         0x40B4      ///< Destination ID
#define R_KBL_PCH_H_PCR_PSF1_PSF_MC_CONTROL_MCAST1_RS0_MCTP1                            0x4054      ///< Multicast Control Register
#define R_KBL_PCH_H_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGT0_MCTP1                         0x40C8      ///< Destination ID
 
#define B_PCH_PCR_PSF1_PSF_MC_CONTROL_MCAST1_RS0_MCTP1_MULTCEN                          BIT0
#define B_PCH_PCR_PSF1_PSF_MC_CONTROL_MCAST1_RS0_MCTP1_NUMMC                            0xFE
#define N_PCH_PCR_PSF1_PSF_MC_CONTROL_MCAST1_RS0_MCTP1_NUMMC                            1
 
#define V_PCH_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGTX_MCTP1_CHANNELID_DMI                 0
#define V_PCH_PCR_PSF1_PSF_MC_AGENT_MCAST1_RS0_TGTX_MCTP1_PORTID_DMI                    0
 
 
 
//
// controls the PCI configuration header of a PCI function
//
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F0       0x4198   ///< SPA
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F1       0x419C   ///< SPA
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F2       0x41A0   ///< SPA
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F3       0x41A4   ///< SPA
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F4       0x41A8   ///< SPB
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F5       0x41AC   ///< SPB
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F6       0x41B0   ///< SPB
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F7       0x41B4   ///< SPB
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F0       0x41B8   ///< SPC
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F1       0x41BC   ///< SPC
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F2       0x41C0   ///< SPC
#define R_PCH_LP_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F3       0x41C4   ///< SPC
 
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F0    0x41C0   ///< SPA
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F1    0x41C4   ///< SPA
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F2    0x41C8   ///< SPA
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F3    0x41CC   ///< SPA
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F4    0x41D0   ///< SPB
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F5    0x41D4   ///< SPB
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F6    0x41D8   ///< SPB
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F7    0x41DC   ///< SPB
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F0    0x41E0   ///< SPC
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F1    0x41E4   ///< SPC
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F2    0x41E8   ///< SPC
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F3    0x41EC   ///< SPC
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F4    0x41F0   ///< SPD
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F5    0x41F4   ///< SPD
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F6    0x41F8   ///< SPD
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F7    0x41FC   ///< SPD
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F0    0x4200   ///< SPE
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F1    0x4204   ///< SPE
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F2    0x4208   ///< SPE
#define R_SKL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F3    0x420C   ///< SPE
 
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F0    0x4274   ///< SPA
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F1    0x4278   ///< SPA
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F2    0x427C   ///< SPA
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPA_D28_F3    0x4280   ///< SPA
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F4    0x4284   ///< SPB
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F5    0x4288   ///< SPB
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F6    0x428C   ///< SPB
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPB_D28_F7    0x4290   ///< SPB
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F0    0x4294   ///< SPC
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F1    0x4298   ///< SPC
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F2    0x429C   ///< SPC
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPC_D29_F3    0x42A0   ///< SPC
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F4    0x42A4   ///< SPD
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F5    0x42A8   ///< SPD
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F6    0x42AC   ///< SPD
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPD_D29_F7    0x42B0   ///< SPD
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F0    0x42B4   ///< SPE
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F1    0x42B8   ///< SPE
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F2    0x42BC   ///< SPE
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPE_D27_F3    0x42C0   ///< SPE
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPF_D27_F4    0x42C4   ///< SPF
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPF_D27_F5    0x42C8   ///< SPF
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPF_D27_F6    0x42CC   ///< SPF
#define R_KBL_PCH_H_PCR_PSF1_T1_AGENT_FUNCTION_CONFIG_SPF_D27_F7    0x42D0   ///< SPF
 
//
// PSF1 grant count registers
//
#define R_PCH_LP_PSF1_DEV_GNTCNT_RELOAD_DGCR0           0x41CC
#define R_PCH_LP_PSF1_TARGET_GNTCNT_RELOAD_PG1_TGT0     0x45D0
 
#define R_SKL_PCH_H_PSF1_DEV_GNTCNT_RELOAD_DGCR0        0x4214
#define R_KBL_PCH_H_PSF1_DEV_GNTCNT_RELOAD_DGCR0        0x42D8
#define R_SKL_PCH_H_PSF1_TARGET_GNTCNT_RELOAD_PG1_TGT0  0x46DC
#define R_KBL_PCH_H_PSF1_TARGET_GNTCNT_RELOAD_PG1_TGT0  0x4834
 
//
// PSF2 PCRs (PID:PSF2)
//
#define R_PCH_PCR_PSF2_T0_SHDW_TRH_REG_BASE             0x0100                  ///< D20F2 PSF base address (Thermal). // LP&H
// PSF2 PCH-LP Specific Base Address
#define R_PCH_LP_PCR_PSF2_T0_SHDW_UFS_REG_BASE          0x0200                  ///< D30F7 PSF base address (SCC: UFS)
#define R_PCH_LP_PCR_PSF2_T0_SHDW_SDCARD_REG_BASE       0x0300                  ///< D30F6 PSF base address (SCC: SDCard)
#define R_PCH_LP_PCR_PSF2_T0_SHDW_SDIO_REG_BASE         0x0400                  ///< D30F5 PSF base address (SCC: SDIO)
#define R_PCH_LP_PCR_PSF2_T0_SHDW_EMMC_REG_BASE         0x0500                  ///< D30F4 PSF base address (SCC: eMMC)
#define R_PCH_LP_PCR_PSF2_T0_SHDW_OTG_REG_BASE          0x0600                  ///< D20F1 PSF base address (USB device controller: OTG)
#define R_PCH_LP_PCR_PSF2_T0_SHDW_XHCI_REG_BASE         0x0700                  ///< D20F0 PSF base address (XHCI)
// PSF2 PCH-H Specific Base Address
#define R_PCH_H_PCR_PSF2_T0_SHDW_OTG_REG_BASE           0x0200                  ///< D20F1 PSF base address (USB device controller: OTG)
#define R_PCH_H_PCR_PSF2_T0_SHDW_XHCI_REG_BASE          0x0300                  ///< D20F0 PSF base address (XHCI)
 
//
// PSF3 PCRs (PID:PSF3)
//
#define R_PCH_PCR_PSF3_T0_SHDW_P2SB_REG_BASE            0x0100                  ///< D31F1 PSF base address (P2SB) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_TRACE_HUB_ACPI_REG_BASE  0x0200                  ///< D20F4 PSF base address (TraceHub ACPI) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_TRACE_HUB_REG_BASE       0x0300                  ///< D31F7 PSF base address (TraceHub PCI) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_LPC_REG_BASE             0x0400                  ///< D31F0 PSF base address (LPC) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_SMBUS_REG_BASE           0x0500                  ///< D31F4 PSF base address (SMBUS) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_PMC_REG_BASE             0x0700                  ///< D31F2 PSF base address (PMC) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_ISH_REG_BASE             0x0800                  ///< D19F0 PSF base address (ISH) // LP&H
#define R_PCH_PCR_PSF3_T0_SHDW_AUD_REG_BASE             0x1900                  ///< D31F3 PSF base address (HDA, ADSP) // LP&H
// PSF3 PCH-LP Specific Base Address
#define R_PCH_LP_PCR_PSF3_T0_SHDW_I2C4_REG_BASE         0x0900                  ///< D25F2 PSF base address (SerialIo: I2C4)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_SPI1_REG_BASE         0x0A00                  ///< D30F3 PSF base address (SerialIo: SPI1)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_SPI0_REG_BASE         0x0B00                  ///< D30F2 PSF base address (SerialIo: SPI0)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_UART1_REG_BASE        0x0C00                  ///< D30F1 PSF base address (SerialIo: UART1)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_UART0_REG_BASE        0x0D00                  ///< D30F0 PSF base address (SerialIo: UART0)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_I2C5_REG_BASE         0x0E00                  ///< D25F1 PSF base address (SerialIo: I2C5)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_UART2_REG_BASE        0x0F00                  ///< D25F0 PSF base address (SerialIo: UART2)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_I2C3_REG_BASE         0x1000                  ///< D21F3 PSF base address (SerialIo: I2C3)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_I2C2_REG_BASE         0x1100                  ///< D21F2 PSF base address (SerialIo: I2C2)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_I2C1_REG_BASE         0x1200                  ///< D21F1 PSF base address (SerialIo: I2C1)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_I2C0_REG_BASE         0x1300                  ///< D21F0 PSF base address (SerialIo: I2C0)
#define R_PCH_LP_PCR_PSF3_T0_SHDW_SPI_SPI_REG_BASE      0x1600                  ///< D31F5 PSF base address (SPI SPI)
// PSF3 PCH-H Specific Base Address
#define R_PCH_H_PCR_PSF3_T0_SHDW_SPI1_REG_BASE          0x0900                  ///< D30F3 PSF base address (SerialIo: SPI1)
#define R_PCH_H_PCR_PSF3_T0_SHDW_SPI0_REG_BASE          0x0A00                  ///< D30F2 PSF base address (SerialIo: SPI0)
#define R_PCH_H_PCR_PSF3_T0_SHDW_UART1_REG_BASE         0x0B00                  ///< D30F1 PSF base address (SerialIo: UART1)
#define R_PCH_H_PCR_PSF3_T0_SHDW_UART0_REG_BASE         0x0C00                  ///< D30F0 PSF base address (SerialIo: UART0)
#define R_PCH_H_PCR_PSF3_T0_SHDW_UART2_REG_BASE         0x0D00                  ///< D25F0 PSF base address (SerialIo: UART2)
#define R_PCH_H_PCR_PSF3_T0_SHDW_I2C3_REG_BASE          0x0E00                  ///< D21F3 PSF base address (SerialIo: I2C3)
#define R_PCH_H_PCR_PSF3_T0_SHDW_I2C2_REG_BASE          0x0F00                  ///< D21F2 PSF base address (SerialIo: I2C2)
#define R_PCH_H_PCR_PSF3_T0_SHDW_I2C1_REG_BASE          0x1000                  ///< D21F1 PSF base address (SerialIo: I2C1)
#define R_PCH_H_PCR_PSF3_T0_SHDW_I2C0_REG_BASE          0x1100                  ///< D21F0 PSF base address (SerialIo: I2C0)
#define R_PCH_H_PCR_PSF3_T0_SHDW_SPI_SPI_REG_BASE       0x1400                  ///< D31F5 PSF base address (SPI SPI)
#define R_PCH_H_PCR_PSF3_T0_SHDW_GBE_REG_BASE           0x1700                  ///< D31F6 PSF base address (GBE)
 
#define R_PCH_PCR_PSF3_PSF_MC_CONTROL_MCAST0_EOI        0x404C                  ///< Multicast Control Register  // LP&H
#define R_PCH_PCR_PSF3_PSF_MC_AGENT_MCAST0_TGT0_EOI     0x4054                  ///< Destination ID  // LP&H
 
#define R_PCH_H_PCR_PSF3_PSF_PORT_CONFIG_PG1_PORT1      0x4020                  ///< PSF Port Configuration Register
 
#endif