xref: /aosp_15_r20/external/coreboot/src/mainboard/bytedance/bd_egs/include/sprsp_bd_iio.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _SPRSP_BD_IIO_H_
4 #define _SPRSP_BD_IIO_H_
5 
6 #include <defs_iio.h>
7 
8 /* For now only set 3 fields and hard-coded others, should be extended in the future */
9 #define CFG_UPD_PCIE_PORT(pexphide, slotimp, slotpsp)	\
10 	{						\
11 		.SLOTEIP = 0,				\
12 		.SLOTHPCAP = 0,				\
13 		.SLOTHPSUP = 0,				\
14 		.SLOTPIP = 0,				\
15 		.SLOTAIP = 0,				\
16 		.SLOTMRLSP = 0,				\
17 		.SLOTPCP = 0,				\
18 		.SLOTABP = 0,				\
19 		.SLOTIMP = slotimp,			\
20 		.SLOTSPLS = 0,				\
21 		.SLOTSPLV = 0,				\
22 		.SLOTPSP = slotpsp,			\
23 		.VppEnabled = 0,			\
24 		.VppPort = 0,				\
25 		.VppAddress = 0,			\
26 		.MuxAddress = 0,			\
27 		.ChannelID = 0,				\
28 		.PciePortEnable = 1,			\
29 		.PEXPHIDE = pexphide,			\
30 		.HidePEXPMenu = 0,			\
31 		.PciePortOwnership = 0,			\
32 		.RetimerConnectCount = 0,		\
33 	}
34 
35 /*
36  * ByteDance IIO PCIe Port Table
37  */
38 static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY bd_iio_pci_port_skt0[] = {
39 	/* DMI port: array index 0 */
40 	CFG_UPD_PCIE_PORT(0, 0, 0),
41 	/* IOU0 (PE0): array index 1 ~ 8 */
42 	CFG_UPD_PCIE_PORT(0, 1, 101), /* 15:01.0 */
43 	CFG_UPD_PCIE_PORT(1, 0, 0),
44 	CFG_UPD_PCIE_PORT(0, 1, 103), /* 15:03.0 */
45 	CFG_UPD_PCIE_PORT(1, 0, 0),
46 	CFG_UPD_PCIE_PORT(0, 1, 105), /* 15:05.0 */
47 	CFG_UPD_PCIE_PORT(1, 0, 0),
48 	CFG_UPD_PCIE_PORT(0, 1, 107), /* 15:07.0 */
49 	CFG_UPD_PCIE_PORT(1, 0, 0),
50 	/* IOU1 (PE1): array index 9 ~ 16 */
51 	CFG_UPD_PCIE_PORT(0, 1, 109), /* 26:01.0 */
52 	CFG_UPD_PCIE_PORT(1, 0, 0),
53 	CFG_UPD_PCIE_PORT(0, 1, 111), /* 26:03.0 */
54 	CFG_UPD_PCIE_PORT(1, 0, 0),
55 	CFG_UPD_PCIE_PORT(0, 1, 113), /* 26:05.0 */
56 	CFG_UPD_PCIE_PORT(1, 0, 0),
57 	CFG_UPD_PCIE_PORT(0, 1, 115), /* 26:07.0 */
58 	CFG_UPD_PCIE_PORT(1, 0, 0),
59 	/* IOU2 (PE2): array index 17 ~ 24 */
60 	CFG_UPD_PCIE_PORT(0, 1, 17), /* 37:01.0 */
61 	CFG_UPD_PCIE_PORT(1, 0, 0),
62 	CFG_UPD_PCIE_PORT(1, 0, 0),
63 	CFG_UPD_PCIE_PORT(1, 0, 0),
64 	CFG_UPD_PCIE_PORT(1, 0, 0),
65 	CFG_UPD_PCIE_PORT(1, 0, 0),
66 	CFG_UPD_PCIE_PORT(1, 0, 0),
67 	CFG_UPD_PCIE_PORT(1, 0, 0),
68 	/* IOU3 (PE3): array index 25 ~ 32 */
69 	CFG_UPD_PCIE_PORT(0, 1, 25), /* 48:01.0 */
70 	CFG_UPD_PCIE_PORT(1, 0, 0),
71 	CFG_UPD_PCIE_PORT(1, 0, 0),
72 	CFG_UPD_PCIE_PORT(1, 0, 0),
73 	CFG_UPD_PCIE_PORT(0, 1, 129),
74 	CFG_UPD_PCIE_PORT(1, 0, 0),
75 	CFG_UPD_PCIE_PORT(0, 1, 131),
76 	CFG_UPD_PCIE_PORT(1, 0, 0),
77 	/* IOU4 (PE4): array index 33 ~ 40 */
78 	CFG_UPD_PCIE_PORT(0, 1, 133), /* 59:01.0 */
79 	CFG_UPD_PCIE_PORT(1, 0, 0),
80 	CFG_UPD_PCIE_PORT(0, 1, 135), /* 59:03.0 */
81 	CFG_UPD_PCIE_PORT(1, 0, 0),
82 	CFG_UPD_PCIE_PORT(0, 1, 137), /* 59:05.0 */
83 	CFG_UPD_PCIE_PORT(1, 0, 0),
84 	CFG_UPD_PCIE_PORT(0, 1, 139), /* 59:07.0 */
85 	CFG_UPD_PCIE_PORT(1, 0, 0),
86 	/* Bytedance doesn't use IOU5 ~ IOU6. */
87 };
88 
89 static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY bd_iio_pci_port_skt1[] = {
90 	/* DMI port: array index 0 */
91 	CFG_UPD_PCIE_PORT(1, 0, 0),
92 	/* IOU0 (PE0): array index 1 ~ 8 */
93 	CFG_UPD_PCIE_PORT(0, 1, 41), /* 97:01.0 */
94 	CFG_UPD_PCIE_PORT(1, 0, 0),
95 	CFG_UPD_PCIE_PORT(1, 0, 0),
96 	CFG_UPD_PCIE_PORT(1, 0, 0),
97 	CFG_UPD_PCIE_PORT(1, 0, 0),
98 	CFG_UPD_PCIE_PORT(1, 0, 0),
99 	CFG_UPD_PCIE_PORT(1, 0, 0),
100 	CFG_UPD_PCIE_PORT(1, 0, 0),
101 	/* IOU1 (PE1): array index 9 ~ 16 */
102 	CFG_UPD_PCIE_PORT(0, 1, 149), /* a7:01.0 */
103 	CFG_UPD_PCIE_PORT(1, 0, 0),
104 	CFG_UPD_PCIE_PORT(0, 1, 151), /* a7:03.0 */
105 	CFG_UPD_PCIE_PORT(1, 0, 0),
106 	CFG_UPD_PCIE_PORT(0, 1, 153), /* a7:05.0 */
107 	CFG_UPD_PCIE_PORT(1, 0, 0),
108 	CFG_UPD_PCIE_PORT(0, 1, 155), /* a7:07.0 */
109 	CFG_UPD_PCIE_PORT(0, 0, 0),
110 	/* IOU2 (PE2): array index 17 ~ 24 */
111 	CFG_UPD_PCIE_PORT(0, 1, 157), /* b7:01.0 */ //only use 1 x4.
112 	CFG_UPD_PCIE_PORT(1, 0, 0),
113 	CFG_UPD_PCIE_PORT(1, 1, 100),
114 	CFG_UPD_PCIE_PORT(1, 0, 0),
115 	CFG_UPD_PCIE_PORT(1, 1, 100),
116 	CFG_UPD_PCIE_PORT(1, 0, 0),
117 	CFG_UPD_PCIE_PORT(1, 1, 100),
118 	CFG_UPD_PCIE_PORT(1, 0, 0),
119 	/* IOU3 (PE3): array index 25 ~ 32 */
120 	CFG_UPD_PCIE_PORT(0, 1, 165), /* c7:01.0 */
121 	CFG_UPD_PCIE_PORT(1, 0, 0),
122 	CFG_UPD_PCIE_PORT(0, 1, 167), /* c7:03.0 */
123 	CFG_UPD_PCIE_PORT(1, 0, 0),
124 	CFG_UPD_PCIE_PORT(0, 1, 169), /* c7:05.0 */
125 	CFG_UPD_PCIE_PORT(1, 0, 0),
126 	CFG_UPD_PCIE_PORT(0, 1, 171), /* c7:07.0 */
127 	CFG_UPD_PCIE_PORT(1, 0, 0),
128 	/* IOU4 (PE4): array index 33 ~ 40 */
129 	CFG_UPD_PCIE_PORT(0, 1, 173), /* d7:01.0 */
130 	CFG_UPD_PCIE_PORT(1, 0, 0),
131 	CFG_UPD_PCIE_PORT(0, 1, 175), /* d7:03.0 */
132 	CFG_UPD_PCIE_PORT(1, 0, 0),
133 	CFG_UPD_PCIE_PORT(0, 1, 177), /* d7:05.0 */
134 	CFG_UPD_PCIE_PORT(1, 0, 0),
135 	CFG_UPD_PCIE_PORT(0, 1, 179), /* d7:07.0 */
136 	CFG_UPD_PCIE_PORT(1, 0, 0),
137 	/* Bytedance doesn't use IOU5 ~ IOU6. */
138 };
139 #endif /* _SPRSP_BD_IIO_H_ */
140