Add support for enabling PCIe Common Clock and ASPM
[coreboot.git] / src / include / device / path.h
1 #ifndef DEVICE_PATH_H
2 #define DEVICE_PATH_H
3
4 enum device_path_type {
5         DEVICE_PATH_NONE = 0,
6         DEVICE_PATH_ROOT,
7         DEVICE_PATH_PCI,
8         DEVICE_PATH_PNP,
9         DEVICE_PATH_I2C,
10         DEVICE_PATH_APIC,
11         DEVICE_PATH_PCI_DOMAIN,
12         DEVICE_PATH_APIC_CLUSTER,
13         DEVICE_PATH_CPU,
14         DEVICE_PATH_CPU_BUS,
15 };
16
17 struct pci_domain_path
18 {
19         unsigned domain;
20 };
21
22 struct pci_path
23 {
24         unsigned devfn;
25 };
26
27 struct pnp_path
28 {
29         unsigned port;
30         unsigned device;
31 };
32
33 struct i2c_path
34 {
35         unsigned device;
36 };
37
38 struct apic_path
39 {
40         unsigned apic_id;
41         unsigned node_id;
42         unsigned core_id;
43 };
44
45 struct apic_cluster_path
46 {
47         unsigned cluster;
48 };
49
50 struct cpu_path
51 {
52         unsigned id;
53 };
54
55 struct cpu_bus_path
56 {
57         unsigned id;
58 };
59
60
61 struct device_path {
62         enum device_path_type type;
63         union {
64                 struct pci_path          pci;
65                 struct pnp_path          pnp;
66                 struct i2c_path          i2c;
67                 struct apic_path         apic;
68                 struct pci_domain_path   pci_domain;
69                 struct apic_cluster_path apic_cluster;
70                 struct cpu_path          cpu;
71                 struct cpu_bus_path      cpu_bus;
72         };
73 };
74
75
76 #define DEVICE_PATH_MAX 30
77 #define BUS_PATH_MAX (DEVICE_PATH_MAX+10)
78
79 extern int path_eq(struct device_path *path1, struct device_path *path2);
80
81 #endif /* DEVICE_PATH_H */