coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
pcie.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #include <console/console.h>
4 #include <device/pci.h>
5 #include <device/pciexp.h>
6 #include <device/pci_def.h>
7 #include <device/pci_ids.h>
8 #include <device/pci_ops.h>
9 
10 #define CACHE_LINE_SIZE 0x10
11 
12 static void pch_pcie_init(struct device *dev)
13 {
14  u16 reg16;
15 
16  printk(BIOS_DEBUG, "Initializing PCH PCIe bridge.\n");
17 
18  /* Enable SERR */
20 
21  /* Enable Bus Master */
23 
24  /* Set Cache Line Size to 0x10 */
26 
27  /* disable parity error response */
29 
30  if (CONFIG(PCIE_DEBUG_INFO)) {
31  printk(BIOS_SPEW, " MBL = 0x%08x\n",
33  printk(BIOS_SPEW, " PMBL = 0x%08x\n",
35  printk(BIOS_SPEW, " PMBU32 = 0x%08x\n",
37  printk(BIOS_SPEW, " PMLU32 = 0x%08x\n",
39  }
40 
41  /* Clear errors in status registers */
42  reg16 = pci_read_config16(dev, PCI_STATUS);
43  pci_write_config16(dev, PCI_STATUS, reg16);
44  reg16 = pci_read_config16(dev, PCI_SEC_STATUS);
46 }
47 
48 static void pcie_get_ltr_max_latencies(u16 *max_snoop, u16 *max_nosnoop)
49 {
52 }
53 
54 static struct pci_operations pcie_ops = {
55  .get_ltr_max_latencies = pcie_get_ltr_max_latencies,
56  .set_subsystem = pci_dev_set_subsystem,
57 };
58 
59 static struct device_operations device_ops = {
61  .set_resources = pci_dev_set_resources,
62  .enable_resources = pci_bus_enable_resources,
63  .init = pch_pcie_init,
64  .scan_bus = pciexp_scan_bridge,
65  .ops_pci = &pcie_ops,
66 };
67 
68 static const unsigned short pcie_device_ids[] = {
383  0
384 };
385 
386 static const struct pci_driver pch_pcie __pci_driver = {
387  .ops = &device_ops,
388  .vendor = PCI_VID_INTEL,
389  .devices = pcie_device_ids,
390 };
#define printk(level,...)
Definition: stdlib.h:16
@ CONFIG
Definition: dsi_common.h:201
static __always_inline void pci_or_config32(const struct device *dev, u16 reg, u32 ormask)
Definition: pci_ops.h:191
static __always_inline void pci_and_config16(const struct device *dev, u16 reg, u16 andmask)
Definition: pci_ops.h:147
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
Definition: pci_ops.h:52
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
Definition: pci_ops.h:58
static __always_inline void pci_write_config16(const struct device *dev, u16 reg, u16 val)
Definition: pci_ops.h:70
static __always_inline void pci_write_config8(const struct device *dev, u16 reg, u8 val)
Definition: pci_ops.h:64
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
Definition: loglevel.h:128
#define BIOS_SPEW
BIOS_SPEW - Excessively verbose output.
Definition: loglevel.h:142
#define PCI_PREF_BASE_UPPER32
Definition: pci_def.h:125
#define PCI_BRIDGE_CTL_PARITY
Definition: pci_def.h:136
#define PCI_SEC_STATUS
Definition: pci_def.h:113
#define PCI_STATUS
Definition: pci_def.h:23
#define PCI_COMMAND_SERR
Definition: pci_def.h:19
#define PCI_MEMORY_BASE
Definition: pci_def.h:114
#define PCI_PREF_MEMORY_BASE
Definition: pci_def.h:118
#define PCI_PREF_LIMIT_UPPER32
Definition: pci_def.h:126
#define PCI_BRIDGE_CONTROL
Definition: pci_def.h:134
#define PCI_COMMAND_MASTER
Definition: pci_def.h:13
#define PCI_CACHE_LINE_SIZE
Definition: pci_def.h:45
#define PCI_COMMAND
Definition: pci_def.h:10
void pci_bus_enable_resources(struct device *dev)
Definition: pci_device.c:758
void pci_dev_set_subsystem(struct device *dev, unsigned int vendor, unsigned int device)
Definition: pci_device.c:791
void pci_bus_read_resources(struct device *dev)
Definition: pci_device.c:540
void pci_dev_set_resources(struct device *dev)
Definition: pci_device.c:691
#define PCI_DID_INTEL_UPT_H_PCIE_RP8
Definition: pci_ids.h:3187
#define PCI_DID_INTEL_CNP_H_PCIE_RP10
Definition: pci_ids.h:3290
#define PCI_DID_INTEL_CMP_H_PCIE_RP22
Definition: pci_ids.h:3344
#define PCI_DID_INTEL_CNL_LP_PCIE_RP8
Definition: pci_ids.h:3212
#define PCI_DID_INTEL_CNL_LP_PCIE_RP15
Definition: pci_ids.h:3219
#define PCI_DID_INTEL_TGP_LP_PCIE_RP10
Definition: pci_ids.h:3248
#define PCI_DID_INTEL_CNL_LP_PCIE_RP4
Definition: pci_ids.h:3208
#define PCI_DID_INTEL_LWB_PCIE_RP12
Definition: pci_ids.h:3149
#define PCI_DID_INTEL_CNP_H_PCIE_RP18
Definition: pci_ids.h:3298
#define PCI_DID_INTEL_CMP_LP_PCIE_RP12
Definition: pci_ids.h:3317
#define PCI_DID_INTEL_CMP_H_PCIE_RP20
Definition: pci_ids.h:3342
#define PCI_DID_INTEL_CNP_H_PCIE_RP16
Definition: pci_ids.h:3296
#define PCI_DID_INTEL_ADP_P_PCIE_RP9
Definition: pci_ids.h:3377
#define PCI_DID_INTEL_TGP_H_PCIE_RP23
Definition: pci_ids.h:3278
#define PCI_DID_INTEL_LWB_PCIE_RP12_SUPER
Definition: pci_ids.h:3170
#define PCI_DID_INTEL_ADP_M_PCIE_RP5
Definition: pci_ids.h:3415
#define PCI_DID_INTEL_ADP_S_PCIE_RP26
Definition: pci_ids.h:3407
#define PCI_DID_INTEL_TGP_H_PCIE_RP10
Definition: pci_ids.h:3265
#define PCI_DID_INTEL_TGP_H_PCIE_RP20
Definition: pci_ids.h:3275
#define PCI_DID_INTEL_UPT_H_PCIE_RP4
Definition: pci_ids.h:3183
#define PCI_DID_INTEL_CMP_H_PCIE_RP9
Definition: pci_ids.h:3331
#define PCI_DID_INTEL_TGP_LP_PCIE_RP11
Definition: pci_ids.h:3249
#define PCI_DID_INTEL_JSP_PCIE_RP5
Definition: pci_ids.h:3352
#define PCI_DID_INTEL_CNP_H_PCIE_RP3
Definition: pci_ids.h:3283
#define PCI_DID_INTEL_TGP_H_PCIE_RP18
Definition: pci_ids.h:3273
#define PCI_DID_INTEL_CMP_LP_PCIE_RP2
Definition: pci_ids.h:3307
#define PCI_DID_INTEL_CMP_LP_PCIE_RP7
Definition: pci_ids.h:3312
#define PCI_DID_INTEL_CMP_H_PCIE_RP8
Definition: pci_ids.h:3330
#define PCI_DID_INTEL_ADP_S_PCIE_RP23
Definition: pci_ids.h:3404
#define PCI_DID_INTEL_CMP_H_PCIE_RP16
Definition: pci_ids.h:3338
#define PCI_DID_INTEL_TGP_LP_PCIE_RP8
Definition: pci_ids.h:3246
#define PCI_DID_INTEL_ADP_P_PCIE_RP4
Definition: pci_ids.h:3372
#define PCI_DID_INTEL_LWB_PCIE_RP8_SUPER
Definition: pci_ids.h:3166
#define PCI_DID_INTEL_CMP_LP_PCIE_RP16
Definition: pci_ids.h:3321
#define PCI_DID_INTEL_ADP_S_PCIE_RP16
Definition: pci_ids.h:3397
#define PCI_DID_INTEL_CMP_H_PCIE_RP1
Definition: pci_ids.h:3323
#define PCI_DID_INTEL_ICP_LP_PCIE_RP14
Definition: pci_ids.h:3235
#define PCI_DID_INTEL_LWB_PCIE_RP7_SUPER
Definition: pci_ids.h:3165
#define PCI_DID_INTEL_TGP_H_PCIE_RP11
Definition: pci_ids.h:3266
#define PCI_DID_INTEL_LWB_PCIE_RP2
Definition: pci_ids.h:3139
#define PCI_DID_INTEL_CNP_H_PCIE_RP19
Definition: pci_ids.h:3299
#define PCI_DID_INTEL_ADP_P_PCIE_RP5
Definition: pci_ids.h:3373
#define PCI_DID_INTEL_TGP_LP_PCIE_RP4
Definition: pci_ids.h:3242
#define PCI_DID_INTEL_CNP_H_PCIE_RP14
Definition: pci_ids.h:3294
#define PCI_DID_INTEL_MCC_PCIE_RP5
Definition: pci_ids.h:3361
#define PCI_DID_INTEL_TGP_H_PCIE_RP9
Definition: pci_ids.h:3264
#define PCI_DID_INTEL_LWB_PCIE_RP20
Definition: pci_ids.h:3157
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP9
Definition: pci_ids.h:3419
#define PCI_DID_INTEL_CNP_H_PCIE_RP11
Definition: pci_ids.h:3291
#define PCI_DID_INTEL_ICP_LP_PCIE_RP6
Definition: pci_ids.h:3227
#define PCI_DID_INTEL_LWB_PCIE_RP1_SUPER
Definition: pci_ids.h:3159
#define PCI_DID_INTEL_ICP_LP_PCIE_RP2
Definition: pci_ids.h:3223
#define PCI_DID_INTEL_CMP_H_PCIE_RP24
Definition: pci_ids.h:3346
#define PCI_DID_INTEL_MCC_PCIE_RP7
Definition: pci_ids.h:3363
#define PCI_DID_INTEL_ICP_LP_PCIE_RP3
Definition: pci_ids.h:3224
#define PCI_DID_INTEL_MCC_PCIE_RP4
Definition: pci_ids.h:3360
#define PCI_DID_INTEL_CMP_LP_PCIE_RP13
Definition: pci_ids.h:3318
#define PCI_DID_INTEL_ADP_N_PCIE_RP12
Definition: pci_ids.h:3422
#define PCI_DID_INTEL_CNP_H_PCIE_RP12
Definition: pci_ids.h:3292
#define PCI_DID_INTEL_ADP_S_PCIE_RP8
Definition: pci_ids.h:3389
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP4
Definition: pci_ids.h:3427
#define PCI_DID_INTEL_LWB_PCIE_RP17
Definition: pci_ids.h:3154
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP1
Definition: pci_ids.h:3411
#define PCI_DID_INTEL_CNL_LP_PCIE_RP12
Definition: pci_ids.h:3216
#define PCI_DID_INTEL_SPT_LP_PCIE_RP2
Definition: pci_ids.h:3105
#define PCI_DID_INTEL_LWB_PCIE_RP17_SUPER
Definition: pci_ids.h:3175
#define PCI_DID_INTEL_SPT_H_PCIE_RP12
Definition: pci_ids.h:3128
#define PCI_DID_INTEL_SPT_LP_PCIE_RP10
Definition: pci_ids.h:3113
#define PCI_DID_INTEL_LWB_PCIE_RP19
Definition: pci_ids.h:3156
#define PCI_DID_INTEL_CMP_H_PCIE_RP15
Definition: pci_ids.h:3337
#define PCI_DID_INTEL_LWB_PCIE_RP2_SUPER
Definition: pci_ids.h:3160
#define PCI_DID_INTEL_CMP_H_PCIE_RP3
Definition: pci_ids.h:3325
#define PCI_DID_INTEL_ADL_P_PCIE_RP1
Definition: pci_ids.h:3365
#define PCI_DID_INTEL_CNL_LP_PCIE_RP7
Definition: pci_ids.h:3211
#define PCI_DID_INTEL_SPT_LP_PCIE_RP3
Definition: pci_ids.h:3106
#define PCI_DID_INTEL_MTL_IOE_P_PCIE_RP11
Definition: pci_ids.h:3434
#define PCI_DID_INTEL_SPT_LP_PCIE_RP1
Definition: pci_ids.h:3104
#define PCI_DID_INTEL_SPT_H_PCIE_RP19
Definition: pci_ids.h:3135
#define PCI_DID_INTEL_UPT_H_PCIE_RP20
Definition: pci_ids.h:3199
#define PCI_DID_INTEL_SPT_H_PCIE_RP15
Definition: pci_ids.h:3131
#define PCI_DID_INTEL_ADP_S_PCIE_RP22
Definition: pci_ids.h:3403
#define PCI_DID_INTEL_LWB_PCIE_RP9
Definition: pci_ids.h:3146
#define PCI_DID_INTEL_CMP_LP_PCIE_RP10
Definition: pci_ids.h:3315
#define PCI_DID_INTEL_CNL_LP_PCIE_RP10
Definition: pci_ids.h:3214
#define PCI_DID_INTEL_ADP_P_PCIE_RP8
Definition: pci_ids.h:3376
#define PCI_DID_INTEL_CNP_H_PCIE_RP15
Definition: pci_ids.h:3295
#define PCI_DID_INTEL_CMP_H_PCIE_RP6
Definition: pci_ids.h:3328
#define PCI_DID_INTEL_CMP_H_PCIE_RP5
Definition: pci_ids.h:3327
#define PCI_DID_INTEL_SPT_H_PCIE_RP13
Definition: pci_ids.h:3129
#define PCI_DID_INTEL_CNP_H_PCIE_RP5
Definition: pci_ids.h:3285
#define PCI_DID_INTEL_TGP_LP_PCIE_RP5
Definition: pci_ids.h:3243
#define PCI_DID_INTEL_LWB_PCIE_RP6_SUPER
Definition: pci_ids.h:3164
#define PCI_DID_INTEL_UPT_H_PCIE_RP2
Definition: pci_ids.h:3181
#define PCI_DID_INTEL_CNP_H_PCIE_RP23
Definition: pci_ids.h:3303
#define PCI_DID_INTEL_TGP_LP_PCIE_RP15
Definition: pci_ids.h:3253
#define PCI_DID_INTEL_CNP_H_PCIE_RP13
Definition: pci_ids.h:3293
#define PCI_DID_INTEL_ADP_S_PCIE_RP11
Definition: pci_ids.h:3392
#define PCI_DID_INTEL_LWB_PCIE_RP6
Definition: pci_ids.h:3143
#define PCI_DID_INTEL_CMP_H_PCIE_RP17
Definition: pci_ids.h:3339
#define PCI_DID_INTEL_ADP_N_PCIE_RP11
Definition: pci_ids.h:3421
#define PCI_DID_INTEL_JSP_PCIE_RP1
Definition: pci_ids.h:3348
#define PCI_DID_INTEL_ADP_S_PCIE_RP28
Definition: pci_ids.h:3409
#define PCI_DID_INTEL_MTL_IOE_P_PCIE_RP12
Definition: pci_ids.h:3435
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP10
Definition: pci_ids.h:3420
#define PCI_DID_INTEL_SPT_LP_PCIE_RP9
Definition: pci_ids.h:3112
#define PCI_DID_INTEL_SPT_H_PCIE_RP20
Definition: pci_ids.h:3136
#define PCI_DID_INTEL_LWB_PCIE_RP3_SUPER
Definition: pci_ids.h:3161
#define PCI_DID_INTEL_LWB_PCIE_RP7
Definition: pci_ids.h:3144
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP5
Definition: pci_ids.h:3428
#define PCI_DID_INTEL_LWB_PCIE_RP14_SUPER
Definition: pci_ids.h:3172
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP3
Definition: pci_ids.h:3413
#define PCI_DID_INTEL_SPT_H_PCIE_RP7
Definition: pci_ids.h:3123
#define PCI_DID_INTEL_ADP_P_PCIE_RP6
Definition: pci_ids.h:3374
#define PCI_DID_INTEL_TGP_H_PCIE_RP15
Definition: pci_ids.h:3270
#define PCI_DID_INTEL_UPT_H_PCIE_RP18
Definition: pci_ids.h:3197
#define PCI_DID_INTEL_MTL_IOE_P_PCIE_RP10
Definition: pci_ids.h:3433
#define PCI_DID_INTEL_CNL_LP_PCIE_RP14
Definition: pci_ids.h:3218
#define PCI_DID_INTEL_MCC_PCIE_RP2
Definition: pci_ids.h:3358
#define PCI_DID_INTEL_ICP_LP_PCIE_RP13
Definition: pci_ids.h:3234
#define PCI_DID_INTEL_ADP_S_PCIE_RP27
Definition: pci_ids.h:3408
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP3
Definition: pci_ids.h:3426
#define PCI_DID_INTEL_LWB_PCIE_RP5
Definition: pci_ids.h:3142
#define PCI_DID_INTEL_UPT_H_PCIE_RP1
Definition: pci_ids.h:3180
#define PCI_DID_INTEL_ADP_P_PCIE_RP1
Definition: pci_ids.h:3369
#define PCI_DID_INTEL_CMP_H_PCIE_RP21
Definition: pci_ids.h:3343
#define PCI_DID_INTEL_JSP_PCIE_RP4
Definition: pci_ids.h:3351
#define PCI_DID_INTEL_CMP_H_PCIE_RP19
Definition: pci_ids.h:3341
#define PCI_DID_INTEL_TGP_H_PCIE_RP2
Definition: pci_ids.h:3257
#define PCI_DID_INTEL_CMP_LP_PCIE_RP9
Definition: pci_ids.h:3314
#define PCI_DID_INTEL_ADP_S_PCIE_RP2
Definition: pci_ids.h:3383
#define PCI_DID_INTEL_CNL_LP_PCIE_RP3
Definition: pci_ids.h:3207
#define PCI_DID_INTEL_SPT_H_PCIE_RP11
Definition: pci_ids.h:3127
#define PCI_DID_INTEL_UPT_H_PCIE_RP6
Definition: pci_ids.h:3185
#define PCI_DID_INTEL_LWB_PCIE_RP3
Definition: pci_ids.h:3140
#define PCI_DID_INTEL_UPT_H_PCIE_RP14
Definition: pci_ids.h:3193
#define PCI_DID_INTEL_MCC_PCIE_RP3
Definition: pci_ids.h:3359
#define PCI_DID_INTEL_LWB_PCIE_RP18_SUPER
Definition: pci_ids.h:3176
#define PCI_DID_INTEL_UPT_H_PCIE_RP16
Definition: pci_ids.h:3195
#define PCI_DID_INTEL_CNL_LP_PCIE_RP5
Definition: pci_ids.h:3209
#define PCI_DID_INTEL_CMP_H_PCIE_RP7
Definition: pci_ids.h:3329
#define PCI_DID_INTEL_ICP_LP_PCIE_RP7
Definition: pci_ids.h:3228
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP7
Definition: pci_ids.h:3430
#define PCI_DID_INTEL_LWB_PCIE_RP11
Definition: pci_ids.h:3148
#define PCI_DID_INTEL_LWB_PCIE_RP5_SUPER
Definition: pci_ids.h:3163
#define PCI_DID_INTEL_UPT_H_PCIE_RP9
Definition: pci_ids.h:3188
#define PCI_DID_INTEL_SPT_H_PCIE_RP1
Definition: pci_ids.h:3117
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP6
Definition: pci_ids.h:3429
#define PCI_DID_INTEL_LWB_PCIE_RP8
Definition: pci_ids.h:3145
#define PCI_DID_INTEL_ICP_LP_PCIE_RP5
Definition: pci_ids.h:3226
#define PCI_DID_INTEL_LWB_PCIE_RP4
Definition: pci_ids.h:3141
#define PCI_DID_INTEL_ADL_P_PCIE_RP3
Definition: pci_ids.h:3367
#define PCI_DID_INTEL_LWB_PCIE_RP4_SUPER
Definition: pci_ids.h:3162
#define PCI_DID_INTEL_MCC_PCIE_RP6
Definition: pci_ids.h:3362
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP1
Definition: pci_ids.h:3424
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP2
Definition: pci_ids.h:3425
#define PCI_DID_INTEL_ICP_LP_PCIE_RP11
Definition: pci_ids.h:3232
#define PCI_DID_INTEL_TGP_LP_PCIE_RP2
Definition: pci_ids.h:3240
#define PCI_DID_INTEL_TGP_LP_PCIE_RP16
Definition: pci_ids.h:3254
#define PCI_DID_INTEL_CNP_H_PCIE_RP4
Definition: pci_ids.h:3284
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP7
Definition: pci_ids.h:3417
#define PCI_DID_INTEL_CNL_LP_PCIE_RP1
Definition: pci_ids.h:3205
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP2
Definition: pci_ids.h:3412
#define PCI_DID_INTEL_CNL_LP_PCIE_RP6
Definition: pci_ids.h:3210
#define PCI_DID_INTEL_SPT_H_PCIE_RP17
Definition: pci_ids.h:3133
#define PCI_DID_INTEL_CNL_LP_PCIE_RP11
Definition: pci_ids.h:3215
#define PCI_DID_INTEL_ADP_S_PCIE_RP19
Definition: pci_ids.h:3400
#define PCI_DID_INTEL_UPT_H_PCIE_RP11
Definition: pci_ids.h:3190
#define PCI_DID_INTEL_ADP_S_PCIE_RP3
Definition: pci_ids.h:3384
#define PCI_DID_INTEL_ADP_S_PCIE_RP14
Definition: pci_ids.h:3395
#define PCI_DID_INTEL_ADP_S_PCIE_RP17
Definition: pci_ids.h:3398
#define PCI_DID_INTEL_UPT_H_PCIE_RP3
Definition: pci_ids.h:3182
#define PCI_DID_INTEL_UPT_H_PCIE_RP21
Definition: pci_ids.h:3200
#define PCI_DID_INTEL_SPT_H_PCIE_RP4
Definition: pci_ids.h:3120
#define PCI_DID_INTEL_TGP_H_PCIE_RP5
Definition: pci_ids.h:3260
#define PCI_DID_INTEL_CMP_LP_PCIE_RP3
Definition: pci_ids.h:3308
#define PCI_DID_INTEL_TGP_LP_PCIE_RP3
Definition: pci_ids.h:3241
#define PCI_DID_INTEL_TGP_H_PCIE_RP21
Definition: pci_ids.h:3276
#define PCI_DID_INTEL_JSP_PCIE_RP3
Definition: pci_ids.h:3350
#define PCI_DID_INTEL_CNL_LP_PCIE_RP2
Definition: pci_ids.h:3206
#define PCI_DID_INTEL_TGP_H_PCIE_RP14
Definition: pci_ids.h:3269
#define PCI_DID_INTEL_ICP_LP_PCIE_RP16
Definition: pci_ids.h:3237
#define PCI_DID_INTEL_TGP_LP_PCIE_RP13
Definition: pci_ids.h:3251
#define PCI_DID_INTEL_UPT_H_PCIE_RP12
Definition: pci_ids.h:3191
#define PCI_DID_INTEL_CNP_H_PCIE_RP21
Definition: pci_ids.h:3301
#define PCI_DID_INTEL_JSP_PCIE_RP2
Definition: pci_ids.h:3349
#define PCI_DID_INTEL_ADP_M_PCIE_RP8
Definition: pci_ids.h:3418
#define PCI_DID_INTEL_SPT_LP_PCIE_RP4
Definition: pci_ids.h:3107
#define PCI_DID_INTEL_ADP_S_PCIE_RP7
Definition: pci_ids.h:3388
#define PCI_DID_INTEL_ADP_S_PCIE_RP18
Definition: pci_ids.h:3399
#define PCI_DID_INTEL_TGP_LP_PCIE_RP7
Definition: pci_ids.h:3245
#define PCI_DID_INTEL_CNP_H_PCIE_RP22
Definition: pci_ids.h:3302
#define PCI_DID_INTEL_MCC_PCIE_RP1
Definition: pci_ids.h:3357
#define PCI_DID_INTEL_LWB_PCIE_RP9_SUPER
Definition: pci_ids.h:3167
#define PCI_DID_INTEL_CMP_H_PCIE_RP18
Definition: pci_ids.h:3340
#define PCI_DID_INTEL_CNP_H_PCIE_RP17
Definition: pci_ids.h:3297
#define PCI_DID_INTEL_CNL_LP_PCIE_RP9
Definition: pci_ids.h:3213
#define PCI_DID_INTEL_ICP_LP_PCIE_RP12
Definition: pci_ids.h:3233
#define PCI_DID_INTEL_SPT_H_PCIE_RP18
Definition: pci_ids.h:3134
#define PCI_DID_INTEL_ADP_P_PCIE_RP3
Definition: pci_ids.h:3371
#define PCI_DID_INTEL_CNP_H_PCIE_RP7
Definition: pci_ids.h:3287
#define PCI_DID_INTEL_SPT_H_PCIE_RP16
Definition: pci_ids.h:3132
#define PCI_DID_INTEL_ICP_LP_PCIE_RP15
Definition: pci_ids.h:3236
#define PCI_DID_INTEL_ADP_P_PCIE_RP7
Definition: pci_ids.h:3375
#define PCI_DID_INTEL_SPT_H_PCIE_RP3
Definition: pci_ids.h:3119
#define PCI_DID_INTEL_SPT_H_PCIE_RP6
Definition: pci_ids.h:3122
#define PCI_DID_INTEL_ADP_S_PCIE_RP15
Definition: pci_ids.h:3396
#define PCI_DID_INTEL_CMP_LP_PCIE_RP14
Definition: pci_ids.h:3319
#define PCI_DID_INTEL_UPT_H_PCIE_RP22
Definition: pci_ids.h:3201
#define PCI_DID_INTEL_SPT_H_PCIE_RP5
Definition: pci_ids.h:3121
#define PCI_DID_INTEL_TGP_H_PCIE_RP19
Definition: pci_ids.h:3274
#define PCI_DID_INTEL_CNP_H_PCIE_RP8
Definition: pci_ids.h:3288
#define PCI_DID_INTEL_SPT_LP_PCIE_RP11
Definition: pci_ids.h:3114
#define PCI_DID_INTEL_ADL_P_PCIE_RP2
Definition: pci_ids.h:3366
#define PCI_DID_INTEL_UPT_H_PCIE_RP7
Definition: pci_ids.h:3186
#define PCI_DID_INTEL_CNP_H_PCIE_RP20
Definition: pci_ids.h:3300
#define PCI_DID_INTEL_CMP_H_PCIE_RP12
Definition: pci_ids.h:3334
#define PCI_DID_INTEL_TGP_H_PCIE_RP16
Definition: pci_ids.h:3271
#define PCI_DID_INTEL_SPT_H_PCIE_RP10
Definition: pci_ids.h:3126
#define PCI_DID_INTEL_ICP_LP_PCIE_RP8
Definition: pci_ids.h:3229
#define PCI_DID_INTEL_ICP_LP_PCIE_RP4
Definition: pci_ids.h:3225
#define PCI_DID_INTEL_TGP_LP_PCIE_RP14
Definition: pci_ids.h:3252
#define PCI_DID_INTEL_ADP_S_PCIE_RP25
Definition: pci_ids.h:3406
#define PCI_DID_INTEL_SPT_H_PCIE_RP9
Definition: pci_ids.h:3125
#define PCI_DID_INTEL_CMP_LP_PCIE_RP15
Definition: pci_ids.h:3320
#define PCI_DID_INTEL_UPT_H_PCIE_RP23
Definition: pci_ids.h:3202
#define PCI_DID_INTEL_UPT_H_PCIE_RP15
Definition: pci_ids.h:3194
#define PCI_DID_INTEL_LWB_PCIE_RP10
Definition: pci_ids.h:3147
#define PCI_DID_INTEL_LWB_PCIE_RP20_SUPER
Definition: pci_ids.h:3178
#define PCI_DID_INTEL_JSP_PCIE_RP8
Definition: pci_ids.h:3355
#define PCI_DID_INTEL_CMP_LP_PCIE_RP5
Definition: pci_ids.h:3310
#define PCI_DID_INTEL_CNP_H_PCIE_RP1
Definition: pci_ids.h:3281
#define PCI_DID_INTEL_SPT_LP_PCIE_RP7
Definition: pci_ids.h:3110
#define PCI_DID_INTEL_ICP_LP_PCIE_RP9
Definition: pci_ids.h:3230
#define PCI_DID_INTEL_LWB_PCIE_RP16
Definition: pci_ids.h:3153
#define PCI_DID_INTEL_TGP_H_PCIE_RP12
Definition: pci_ids.h:3267
#define PCI_DID_INTEL_ADP_S_PCIE_RP12
Definition: pci_ids.h:3393
#define PCI_DID_INTEL_LWB_PCIE_RP15_SUPER
Definition: pci_ids.h:3173
#define PCI_DID_INTEL_ICP_LP_PCIE_RP1
Definition: pci_ids.h:3222
#define PCI_DID_INTEL_UPT_H_PCIE_RP19
Definition: pci_ids.h:3198
#define PCI_DID_INTEL_CMP_H_PCIE_RP11
Definition: pci_ids.h:3333
#define PCI_DID_INTEL_LWB_PCIE_RP16_SUPER
Definition: pci_ids.h:3174
#define PCI_DID_INTEL_CMP_H_PCIE_RP2
Definition: pci_ids.h:3324
#define PCI_DID_INTEL_ADP_S_PCIE_RP13
Definition: pci_ids.h:3394
#define PCI_VID_INTEL
Definition: pci_ids.h:2157
#define PCI_DID_INTEL_SPT_LP_PCIE_RP12
Definition: pci_ids.h:3115
#define PCI_DID_INTEL_ADP_S_PCIE_RP20
Definition: pci_ids.h:3401
#define PCI_DID_INTEL_LWB_PCIE_RP13
Definition: pci_ids.h:3150
#define PCI_DID_INTEL_LWB_PCIE_RP15
Definition: pci_ids.h:3152
#define PCI_DID_INTEL_TGP_H_PCIE_RP3
Definition: pci_ids.h:3258
#define PCI_DID_INTEL_TGP_H_PCIE_RP6
Definition: pci_ids.h:3261
#define PCI_DID_INTEL_SPT_LP_PCIE_RP8
Definition: pci_ids.h:3111
#define PCI_DID_INTEL_ADP_S_PCIE_RP1
Definition: pci_ids.h:3382
#define PCI_DID_INTEL_CMP_LP_PCIE_RP8
Definition: pci_ids.h:3313
#define PCI_DID_INTEL_TGP_H_PCIE_RP22
Definition: pci_ids.h:3277
#define PCI_DID_INTEL_ADP_S_PCIE_RP6
Definition: pci_ids.h:3387
#define PCI_DID_INTEL_CMP_LP_PCIE_RP6
Definition: pci_ids.h:3311
#define PCI_DID_INTEL_CNL_LP_PCIE_RP13
Definition: pci_ids.h:3217
#define PCI_DID_INTEL_TGP_LP_PCIE_RP12
Definition: pci_ids.h:3250
#define PCI_DID_INTEL_TGP_H_PCIE_RP13
Definition: pci_ids.h:3268
#define PCI_DID_INTEL_UPT_H_PCIE_RP5
Definition: pci_ids.h:3184
#define PCI_DID_INTEL_LWB_PCIE_RP11_SUPER
Definition: pci_ids.h:3169
#define PCI_DID_INTEL_CMP_LP_PCIE_RP1
Definition: pci_ids.h:3306
#define PCI_DID_INTEL_SPT_LP_PCIE_RP6
Definition: pci_ids.h:3109
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP9
Definition: pci_ids.h:3432
#define PCI_DID_INTEL_CMP_H_PCIE_RP13
Definition: pci_ids.h:3335
#define PCI_DID_INTEL_ADP_P_PCIE_RP2
Definition: pci_ids.h:3370
#define PCI_DID_INTEL_UPT_H_PCIE_RP13
Definition: pci_ids.h:3192
#define PCI_DID_INTEL_LWB_PCIE_RP10_SUPER
Definition: pci_ids.h:3168
#define PCI_DID_INTEL_TGP_LP_PCIE_RP6
Definition: pci_ids.h:3244
#define PCI_DID_INTEL_TGP_H_PCIE_RP1
Definition: pci_ids.h:3256
#define PCI_DID_INTEL_JSP_PCIE_RP6
Definition: pci_ids.h:3353
#define PCI_DID_INTEL_CNP_H_PCIE_RP2
Definition: pci_ids.h:3282
#define PCI_DID_INTEL_TGP_LP_PCIE_RP9
Definition: pci_ids.h:3247
#define PCI_DID_INTEL_SPT_H_PCIE_RP2
Definition: pci_ids.h:3118
#define PCI_DID_INTEL_SPT_LP_PCIE_RP5
Definition: pci_ids.h:3108
#define PCI_DID_INTEL_UPT_H_PCIE_RP10
Definition: pci_ids.h:3189
#define PCI_DID_INTEL_MTL_SOC_PCIE_RP8
Definition: pci_ids.h:3431
#define PCI_DID_INTEL_ADP_P_PCIE_RP10
Definition: pci_ids.h:3378
#define PCI_DID_INTEL_TGP_H_PCIE_RP4
Definition: pci_ids.h:3259
#define PCI_DID_INTEL_CMP_H_PCIE_RP10
Definition: pci_ids.h:3332
#define PCI_DID_INTEL_TGP_H_PCIE_RP7
Definition: pci_ids.h:3262
#define PCI_DID_INTEL_LWB_PCIE_RP19_SUPER
Definition: pci_ids.h:3177
#define PCI_DID_INTEL_ADP_P_PCIE_RP12
Definition: pci_ids.h:3380
#define PCI_DID_INTEL_ADP_S_PCIE_RP24
Definition: pci_ids.h:3405
#define PCI_DID_INTEL_LWB_PCIE_RP18
Definition: pci_ids.h:3155
#define PCI_DID_INTEL_CNP_H_PCIE_RP6
Definition: pci_ids.h:3286
#define PCI_DID_INTEL_ADP_S_PCIE_RP21
Definition: pci_ids.h:3402
#define PCI_DID_INTEL_ADP_S_PCIE_RP10
Definition: pci_ids.h:3391
#define PCI_DID_INTEL_CMP_H_PCIE_RP23
Definition: pci_ids.h:3345
#define PCI_DID_INTEL_SPT_H_PCIE_RP8
Definition: pci_ids.h:3124
#define PCI_DID_INTEL_CNL_LP_PCIE_RP16
Definition: pci_ids.h:3220
#define PCI_DID_INTEL_UPT_H_PCIE_RP24
Definition: pci_ids.h:3203
#define PCI_DID_INTEL_ADP_M_N_PCIE_RP4
Definition: pci_ids.h:3414
#define PCI_DID_INTEL_CNP_H_PCIE_RP24
Definition: pci_ids.h:3304
#define PCI_DID_INTEL_UPT_H_PCIE_RP17
Definition: pci_ids.h:3196
#define PCI_DID_INTEL_CMP_H_PCIE_RP14
Definition: pci_ids.h:3336
#define PCI_DID_INTEL_ADP_S_PCIE_RP5
Definition: pci_ids.h:3386
#define PCI_DID_INTEL_SPT_H_PCIE_RP14
Definition: pci_ids.h:3130
#define PCI_DID_INTEL_TGP_H_PCIE_RP24
Definition: pci_ids.h:3279
#define PCI_DID_INTEL_ICP_LP_PCIE_RP10
Definition: pci_ids.h:3231
#define PCI_DID_INTEL_CMP_LP_PCIE_RP11
Definition: pci_ids.h:3316
#define PCI_DID_INTEL_CMP_LP_PCIE_RP4
Definition: pci_ids.h:3309
#define PCI_DID_INTEL_ADP_P_PCIE_RP11
Definition: pci_ids.h:3379
#define PCI_DID_INTEL_LWB_PCIE_RP14
Definition: pci_ids.h:3151
#define PCI_DID_INTEL_TGP_H_PCIE_RP8
Definition: pci_ids.h:3263
#define PCI_DID_INTEL_CMP_H_PCIE_RP4
Definition: pci_ids.h:3326
#define PCI_DID_INTEL_ADP_S_PCIE_RP9
Definition: pci_ids.h:3390
#define PCI_DID_INTEL_TGP_LP_PCIE_RP1
Definition: pci_ids.h:3239
#define PCI_DID_INTEL_CNP_H_PCIE_RP9
Definition: pci_ids.h:3289
#define PCI_DID_INTEL_LWB_PCIE_RP13_SUPER
Definition: pci_ids.h:3171
#define PCI_DID_INTEL_JSP_PCIE_RP7
Definition: pci_ids.h:3354
#define PCI_DID_INTEL_TGP_H_PCIE_RP17
Definition: pci_ids.h:3272
#define PCI_DID_INTEL_ADP_S_PCIE_RP4
Definition: pci_ids.h:3385
#define PCI_DID_INTEL_LWB_PCIE_RP1
Definition: pci_ids.h:3138
#define PCI_DID_INTEL_ADP_M_PCIE_RP6
Definition: pci_ids.h:3416
#define PCIE_LTR_MAX_NO_SNOOP_LATENCY_3146US
Definition: pciexp.h:18
#define PCIE_LTR_MAX_SNOOP_LATENCY_3146US
Definition: pciexp.h:20
void pciexp_scan_bridge(struct device *dev)
static struct device_operations device_ops
Definition: pcie.c:59
static void pch_pcie_init(struct device *dev)
Definition: pcie.c:12
static void pcie_get_ltr_max_latencies(u16 *max_snoop, u16 *max_nosnoop)
Definition: pcie.c:48
static const struct pci_driver pch_pcie __pci_driver
Definition: pcie.c:386
static const unsigned short pcie_device_ids[]
Definition: pcie.c:68
static struct pci_operations pcie_ops
Definition: pcie.c:54
#define CACHE_LINE_SIZE
Definition: pcie.c:10
uint16_t u16
Definition: stdint.h:48
void(* read_resources)(struct device *dev)
Definition: device.h:39
Definition: device.h:107