Skip to content

Commit 8545940

Browse files
Gregory Pricedavejiang
authored andcommitted
cxl: docs/platform/example-configs documentation
Add example ACPI Table configurations for different sample platforms. Signed-off-by: Gregory Price <gourry@gourry.net> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Link: https://patch.msgid.link/20250512162134.3596150-7-gourry@gourry.net Signed-off-by: Dave Jiang <dave.jiang@intel.com>
1 parent d1ba364 commit 8545940

File tree

6 files changed

+643
-0
lines changed

6 files changed

+643
-0
lines changed

Documentation/driver-api/cxl/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ that have impacts on each other. The docs here break up configurations steps.
2727

2828
platform/bios-and-efi
2929
platform/acpi
30+
platform/example-configs
3031

3132
.. toctree::
3233
:maxdepth: 1
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
Example Platform Configurations
4+
###############################
5+
6+
.. toctree::
7+
:maxdepth: 1
8+
:caption: Contents
9+
10+
example-configurations/one-dev-per-hb.rst
11+
example-configurations/multi-dev-per-hb.rst
12+
example-configurations/hb-interleave.rst
13+
example-configurations/flexible.rst
Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
=====================
4+
Flexible Presentation
5+
=====================
6+
This system has a single socket with two CXL host bridges. Each host bridge
7+
has two CXL memory expanders with a 4GB of memory (32GB total).
8+
9+
On this system, the platform designer wanted to provide the user flexibility
10+
to configure the memory devices in various interleave or NUMA node
11+
configurations. So they provided every combination.
12+
13+
Things 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+
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+
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+
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+
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+
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+
}

0 commit comments

Comments
 (0)