xref: /linux/Documentation/driver-api/cxl/platform/example-configurations/flexible.rst (revision fb7399cf2d0b33825b8039f95c45395c7deba25c)
1.. SPDX-License-Identifier: GPL-2.0
2
3=====================
4Flexible Presentation
5=====================
6This system has a single socket with two CXL host bridges. Each host bridge
7has two CXL memory expanders with a 4GB of memory (32GB total).
8
9On this system, the platform designer wanted to provide the user flexibility
10to configure the memory devices in various interleave or NUMA node
11configurations.  So they provided every combination.
12
13Things to note:
14
15* Cross-Bridge interleave is described in one CFMWS that covers all capacity.
16* One CFMWS is also described per-host bridge.
17* One CFMWS is also described per-device.
18* This SRAT describes one node for each of the above CFMWS.
19* The HMAT describes performance for each node in the SRAT.
20
21:doc:`CEDT <../acpi/cedt>`::
22
23            Subtable Type : 00 [CXL Host Bridge Structure]
24                 Reserved : 00
25                   Length : 0020
26   Associated host bridge : 00000007
27    Specification version : 00000001
28                 Reserved : 00000000
29            Register base : 0000010370400000
30          Register length : 0000000000010000
31
32            Subtable Type : 00 [CXL Host Bridge Structure]
33                 Reserved : 00
34                   Length : 0020
35   Associated host bridge : 00000006
36    Specification version : 00000001
37                 Reserved : 00000000
38            Register base : 0000010380800000
39          Register length : 0000000000010000
40
41            Subtable Type : 01 [CXL Fixed Memory Window Structure]
42                 Reserved : 00
43                   Length : 002C
44                 Reserved : 00000000
45      Window base address : 0000001000000000
46              Window size : 0000000400000000
47 Interleave Members (2^n) : 01
48    Interleave Arithmetic : 00
49                 Reserved : 0000
50              Granularity : 00000000
51             Restrictions : 0006
52                    QtgId : 0001
53             First Target : 00000007
54            Second Target : 00000006
55
56            Subtable Type : 01 [CXL Fixed Memory Window Structure]
57                 Reserved : 00
58                   Length : 002C
59                 Reserved : 00000000
60      Window base address : 0000002000000000
61              Window size : 0000000200000000
62 Interleave Members (2^n) : 00
63    Interleave Arithmetic : 00
64                 Reserved : 0000
65              Granularity : 00000000
66             Restrictions : 0006
67                    QtgId : 0001
68             First Target : 00000007
69
70            Subtable Type : 01 [CXL Fixed Memory Window Structure]
71                 Reserved : 00
72                   Length : 002C
73                 Reserved : 00000000
74      Window base address : 0000002200000000
75              Window size : 0000000200000000
76 Interleave Members (2^n) : 00
77    Interleave Arithmetic : 00
78                 Reserved : 0000
79              Granularity : 00000000
80             Restrictions : 0006
81                    QtgId : 0001
82             First Target : 00000006
83
84            Subtable Type : 01 [CXL Fixed Memory Window Structure]
85                 Reserved : 00
86                   Length : 002C
87                 Reserved : 00000000
88      Window base address : 0000003000000000
89              Window size : 0000000100000000
90 Interleave Members (2^n) : 00
91    Interleave Arithmetic : 00
92                 Reserved : 0000
93              Granularity : 00000000
94             Restrictions : 0006
95                    QtgId : 0001
96             First Target : 00000007
97
98            Subtable Type : 01 [CXL Fixed Memory Window Structure]
99                 Reserved : 00
100                   Length : 002C
101                 Reserved : 00000000
102      Window base address : 0000003100000000
103              Window size : 0000000100000000
104 Interleave Members (2^n) : 00
105    Interleave Arithmetic : 00
106                 Reserved : 0000
107              Granularity : 00000000
108             Restrictions : 0006
109                    QtgId : 0001
110             First Target : 00000007
111
112            Subtable Type : 01 [CXL Fixed Memory Window Structure]
113                 Reserved : 00
114                   Length : 002C
115                 Reserved : 00000000
116      Window base address : 0000003200000000
117              Window size : 0000000100000000
118 Interleave Members (2^n) : 00
119    Interleave Arithmetic : 00
120                 Reserved : 0000
121              Granularity : 00000000
122             Restrictions : 0006
123                    QtgId : 0001
124             First Target : 00000006
125
126            Subtable Type : 01 [CXL Fixed Memory Window Structure]
127                 Reserved : 00
128                   Length : 002C
129                 Reserved : 00000000
130      Window base address : 0000003300000000
131              Window size : 0000000100000000
132 Interleave Members (2^n) : 00
133    Interleave Arithmetic : 00
134                 Reserved : 0000
135              Granularity : 00000000
136             Restrictions : 0006
137                    QtgId : 0001
138             First Target : 00000006
139
140:doc:`SRAT <../acpi/srat>`::
141
142         Subtable Type : 01 [Memory Affinity]
143                Length : 28
144      Proximity Domain : 00000001
145             Reserved1 : 0000
146          Base Address : 0000001000000000
147        Address Length : 0000000400000000
148             Reserved2 : 00000000
149 Flags (decoded below) : 0000000B
150             Enabled : 1
151       Hot Pluggable : 1
152        Non-Volatile : 0
153
154         Subtable Type : 01 [Memory Affinity]
155                Length : 28
156      Proximity Domain : 00000002
157             Reserved1 : 0000
158          Base Address : 0000002000000000
159        Address Length : 0000000200000000
160             Reserved2 : 00000000
161 Flags (decoded below) : 0000000B
162             Enabled : 1
163       Hot Pluggable : 1
164        Non-Volatile : 0
165
166         Subtable Type : 01 [Memory Affinity]
167                Length : 28
168      Proximity Domain : 00000003
169             Reserved1 : 0000
170          Base Address : 0000002200000000
171        Address Length : 0000000200000000
172             Reserved2 : 00000000
173 Flags (decoded below) : 0000000B
174             Enabled : 1
175       Hot Pluggable : 1
176        Non-Volatile : 0
177
178         Subtable Type : 01 [Memory Affinity]
179                Length : 28
180      Proximity Domain : 00000004
181             Reserved1 : 0000
182          Base Address : 0000003000000000
183        Address Length : 0000000100000000
184             Reserved2 : 00000000
185 Flags (decoded below) : 0000000B
186             Enabled : 1
187       Hot Pluggable : 1
188        Non-Volatile : 0
189
190         Subtable Type : 01 [Memory Affinity]
191                Length : 28
192      Proximity Domain : 00000005
193             Reserved1 : 0000
194          Base Address : 0000003100000000
195        Address Length : 0000000100000000
196             Reserved2 : 00000000
197 Flags (decoded below) : 0000000B
198             Enabled : 1
199       Hot Pluggable : 1
200        Non-Volatile : 0
201
202         Subtable Type : 01 [Memory Affinity]
203                Length : 28
204      Proximity Domain : 00000006
205             Reserved1 : 0000
206          Base Address : 0000003200000000
207        Address Length : 0000000100000000
208             Reserved2 : 00000000
209 Flags (decoded below) : 0000000B
210             Enabled : 1
211       Hot Pluggable : 1
212        Non-Volatile : 0
213
214         Subtable Type : 01 [Memory Affinity]
215                Length : 28
216      Proximity Domain : 00000007
217             Reserved1 : 0000
218          Base Address : 0000003300000000
219        Address Length : 0000000100000000
220             Reserved2 : 00000000
221 Flags (decoded below) : 0000000B
222             Enabled : 1
223       Hot Pluggable : 1
224        Non-Volatile : 0
225
226:doc:`HMAT <../acpi/hmat>`::
227
228               Structure Type : 0001 [SLLBI]
229                    Data Type : 00   [Latency]
230 Target Proximity Domain List : 00000000
231 Target Proximity Domain List : 00000001
232 Target Proximity Domain List : 00000002
233 Target Proximity Domain List : 00000003
234 Target Proximity Domain List : 00000004
235 Target Proximity Domain List : 00000005
236 Target Proximity Domain List : 00000006
237 Target Proximity Domain List : 00000007
238                        Entry : 0080
239                        Entry : 0100
240                        Entry : 0100
241                        Entry : 0100
242                        Entry : 0100
243                        Entry : 0100
244                        Entry : 0100
245                        Entry : 0100
246
247               Structure Type : 0001 [SLLBI]
248                    Data Type : 03   [Bandwidth]
249 Target Proximity Domain List : 00000000
250 Target Proximity Domain List : 00000001
251 Target Proximity Domain List : 00000002
252 Target Proximity Domain List : 00000003
253 Target Proximity Domain List : 00000004
254 Target Proximity Domain List : 00000005
255 Target Proximity Domain List : 00000006
256 Target Proximity Domain List : 00000007
257                        Entry : 1200
258                        Entry : 0400
259                        Entry : 0200
260                        Entry : 0200
261                        Entry : 0100
262                        Entry : 0100
263                        Entry : 0100
264                        Entry : 0100
265
266:doc:`SLIT <../acpi/slit>`::
267
268     Signature : "SLIT"    [System Locality Information Table]
269    Localities : 0000000000000003
270  Locality   0 : 10 20 20 20 20 20 20 20
271  Locality   1 : FF 0A FF FF FF FF FF FF
272  Locality   2 : FF FF 0A FF FF FF FF FF
273  Locality   3 : FF FF FF 0A FF FF FF FF
274  Locality   4 : FF FF FF FF 0A FF FF FF
275  Locality   5 : FF FF FF FF FF 0A FF FF
276  Locality   6 : FF FF FF FF FF FF 0A FF
277  Locality   7 : FF FF FF FF FF FF FF 0A
278
279:doc:`DSDT <../acpi/dsdt>`::
280
281  Scope (_SB)
282  {
283    Device (S0D0)
284    {
285        Name (_HID, "ACPI0016" /* Compute Express Link Host Bridge */)  // _HID: Hardware ID
286        ...
287        Name (_UID, 0x07)  // _UID: Unique ID
288    }
289    ...
290    Device (S0D5)
291    {
292        Name (_HID, "ACPI0016" /* Compute Express Link Host Bridge */)  // _HID: Hardware ID
293        ...
294        Name (_UID, 0x06)  // _UID: Unique ID
295    }
296  }
297