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
|
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2013 Google Inc.
* Copyright (C) 2015-2016 Intel Corp.
* Copyright (C) 2017 Siemens AG
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _SOC_PCI_DEVS_H_
#define _SOC_PCI_DEVS_H_
#include <device/pci_def.h>
#define BUS0 0
#define SOC_DEV 0
#define SOC_FUNC 0
#define SOC_DEV_FUNC PCI_DEVFN(SOC_DEV, SOC_FUNC)
/* DMI2/PCIe link to PCH */
#define PCIE_IIO_PORT_0_DEV 0x00
#define PCIE_IIO_PORT_0_FUNC 0x00
/* IOU2, x8 PCIe Gen3 port */
#define PCIE_IIO_PORT_1_DEV 0x01
#define PCIE_IIO_PORT_1A_FUNC 0x00
#define PCIE_IIO_PORT_1B_FUNC 0x01
/* IOU0: Internal IOSF bridge to 10 GbE and CBDMA */
#define PCIE_IIO_PORT_2_DEV 0x02
#define PCIE_IIO_PORT_2A_FUNC 0x00
#define PCIE_IIO_PORT_2B_FUNC 0x01
#define PCIE_IIO_PORT_2C_FUNC 0x02
#define PCIE_IIO_PORT_2D_FUNC 0x03
/* IOU1: x16 PCIe Gen3 port */
#define PCIE_IIO_PORT_3_DEV 0x03
#define PCIE_IIO_PORT_3A_FUNC 0x00
#define PCIE_IIO_PORT_3B_FUNC 0x01
#define PCIE_IIO_PORT_3C_FUNC 0x02
#define PCIE_IIO_PORT_3D_FUNC 0x03
#define VTD_DEV 5
#define VTD_FUNC 0
#define VTD_DEV_FUNC PCI_DEVFN(VTD_DEV, VTD_FUNC)
#define VTD_PCI_DEV PCI_DEV(BUS0, VTD_DEV, VTD_FUNC)
#define LPC_DEV 31
#define LPC_FUNC 0
#define LPC_DEV_FUNC PCI_DEVFN(LPC_DEV, LPC_FUNC)
#define SATA_DEV 31
#define SATA_FUNC 2
#define SATA_DEV_FUNC PCI_DEVFN(SATA_DEV, SATA_FUNC)
#define SMBUS_DEV 31
#define SMBUS_FUNC 3
#define SMBUS_DEV_FUNC PCI_DEVFN(SMBUS_DEV, SMBUS_FUNC)
#define SATA2_DEV 31
#define SATA2_FUNC 5
#define SATA2_DEV_FUNC PCI_DEVFN(SATA2_DEV, SATA2_FUNC)
#define EHCI1_DEV 29
#define EHCI1_FUNC 0
#define EHCI1_DEV_FUNC PCI_DEVFN(EHCI_DEV1, EHCI_FUNC1)
#define EHCI2_DEV 26
#define EHCI2_FUNC 0
#define EHCI2_DEV_FUNC PCI_DEVFN(EHCI_DEV2, EHCI_FUNC2)
#define XHCI_DEV 20
#define XHCI_FUNC 0
#define XHCI_FUS_REG 0xE0
#define XHCI_FUNC_DISABLE (1 << 0)
#define XHCI_USB2PR_REG 0xD0
#define XHCI_DEV_FUNC PCI_DEVFN(XHCI_DEV, XHCI_FUNC)
#define GBE_DEV 25
#define GBE_FUNC 0
#define GBE_DEV_FUNC PCI_DEVFN(GBE_DEV, GBE_FUNC)
#define ME_DEV 22
#define ME_FUNC 0
#define ME_DEV_FUNC PCI_DEVFN(ME_DEV, ME_FUNC)
#define HDA_DEV 27
#define HDA_FUNC 0
#define HDA_DEV_FUNC PCI_DEVFN(HDA_DEV, HDA_FUNC)
/* Ports from PCH block with adjustable burification settings */
#define PCIE_DEV 28
#define PCIE_PORT1_DEV PCIE_DEV
#define PCIE_PORT1_FUNC 0
#define PCIE_PORT2_DEV PCIE_DEV
#define PCIE_PORT2_FUNC 1
#define PCIE_PORT3_DEV PCIE_DEV
#define PCIE_PORT3_FUNC 2
#define PCIE_PORT4_DEV PCIE_DEV
#define PCIE_PORT4_FUNC 3
#define PCIE_PORT5_DEV PCIE_DEV
#define PCIE_PORT5_FUNC 4
#define PCIE_PORT6_DEV PCIE_DEV
#define PCIE_PORT6_FUNC 5
#define PCIE_PORT7_DEV PCIE_DEV
#define PCIE_PORT7_FUNC 6
#define PCIE_PORT8_DEV PCIE_DEV
#define PCIE_PORT8_FUNC 7
#define PCIE_PORT1_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT1_FUNC)
#define PCIE_PORT2_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT2_FUNC)
#define PCIE_PORT3_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT3_FUNC)
#define PCIE_PORT4_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT4_FUNC)
#define PCIE_PORT5_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT5_FUNC)
#define PCIE_PORT6_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT6_FUNC)
#define PCIE_PORT7_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT7_FUNC)
#define PCIE_PORT8_DEV_FUNC PCI_DEVFN(PCIE_DEV, PCIE_PORT8_FUNC)
/* The SMM device is located on bus 0xff (QPI) */
#define QPI_BUS 0xff
#define SMM_DEV 0x10
#define SMM_FUNC 0x06
#define SMM_DEV_FUNC PCI_DEVFN(SMM_DEV, SMM_FUNC)
#define IMC_DEV0 19
#define IMC_FUNC0 0
#define IMC_DEV PCI_DEV(QPI_BUS, IMC_DEV0, IMC_FUNC0)
#define PCU1_DEV 30
#define PCU1_FUNC 01
#define UBOX_DEV 16
#define UBOX_FUNC 7
#define SOC_DEVID 0x2F00
#define SOC_DEVID_ES2 0x6F00
#define VTD_DEVID 0x6f28
#define LPC_DEVID 0x8C42
#define LPC_DEVID_ES2 0x8C54
#define AHCI_DEVID 0x8C02
#define SMBUS_DEVID 0x8C22
#define EHCI1_DEVID 0x8C26
#define EHCI2_DEVID 0x8C2D
#define XHCI_DEVID 0x8C31
#define GBE_DEVID 0x8C33
#define ME_DEVID 0x8C3A
#define HDA_DEVID 0x8C20
#define PCIE_PORT1_DEVID 0x8C10
#define PCIE_PORT2_DEVID 0x8C12
#define PCIE_PORT3_DEVID 0x8C14
#define PCIE_PORT4_DEVID 0x8C16
#define PCIE_PORT5_DEVID 0x8C18
#define PCIE_PORT6_DEVID 0x8C1A
#define PCIE_PORT7_DEVID 0x8C1C
#define PCIE_PORT8_DEVID 0x8C1E
#endif /* _SOC_PCI_DEVS_H_ */
|