Zsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftargetP/translations/zh_CN/driver-api/cxl/linux/example-configurations/multi-interleavemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetP/translations/zh_TW/driver-api/cxl/linux/example-configurations/multi-interleavemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetP/translations/it_IT/driver-api/cxl/linux/example-configurations/multi-interleavemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetP/translations/ja_JP/driver-api/cxl/linux/example-configurations/multi-interleavemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetP/translations/ko_KR/driver-api/cxl/linux/example-configurations/multi-interleavemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftargetP/translations/sp_SP/driver-api/cxl/linux/example-configurations/multi-interleavemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhj/var/lib/git/docbuild/linux/Documentation/driver-api/cxl/linux/example-configurations/multi-interleave.rsthKubhsection)}(hhh](htitle)}(hMulti-Level Interleaveh]hMulti-Level Interleave}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hGThis cxl-cli configuration dump shows the following host configuration:h]hGThis cxl-cli configuration dump shows the following host configuration:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh bullet_list)}(hhh](h list_item)}(h(A single socket system with one CXL rooth]h)}(hhh]h(A single socket system with one CXL root}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(h&CXL Root has Four (4) CXL Host Bridgesh]h)}(hhh]h&CXL Root has Four (4) CXL Host Bridges}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hCTwo CXL Host Bridges have a two CXL Memory Expanders Attached each.h]h)}(hjh]hCTwo CXL Host Bridges have a two CXL Memory Expanders Attached each.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hjubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hEThe CXL root is configured to interleave across the two host bridges.h]h)}(hj'h]hEThe CXL root is configured to interleave across the two host bridges.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj%ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh)}(hBEach host bridge with expanders interleaves across two endpoints. h]h)}(hAEach host bridge with expanders interleaves across two endpoints.h]hAEach host bridge with expanders interleaves across two endpoints.}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hj<ubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubeh}(h]h ]h"]h$]h&]bullet*uh1hhhhKhhhhubh)}(hThis output is generated by :code:`cxl list -v` and describes the relationships between objects exposed in :code:`/sys/bus/cxl/devices/`.h](hThis output is generated by }(hj\hhhNhNubhliteral)}(h:code:`cxl list -v`h]h cxl list -v}(hjfhhhNhNubah}(h]h ]codeah"]h$]h&]languagehuh1jdhj\ubh< and describes the relationships between objects exposed in }(hj\hhhNhNubje)}(h:code:`/sys/bus/cxl/devices/`h]h/sys/bus/cxl/devices/}(hjzhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj\ubh.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh literal_block)}(hXA[ { "bus":"root0", "provider":"ACPI.CXL", "nr_dports":4, "dports":[ { "dport":"pci0000:00", "alias":"ACPI0016:01", "id":0 }, { "dport":"pci0000:a8", "alias":"ACPI0016:02", "id":4 }, { "dport":"pci0000:2a", "alias":"ACPI0016:03", "id":1 }, { "dport":"pci0000:d2", "alias":"ACPI0016:00", "id":5 } ],h]hXA[ { "bus":"root0", "provider":"ACPI.CXL", "nr_dports":4, "dports":[ { "dport":"pci0000:00", "alias":"ACPI0016:01", "id":0 }, { "dport":"pci0000:a8", "alias":"ACPI0016:02", "id":4 }, { "dport":"pci0000:2a", "alias":"ACPI0016:03", "id":1 }, { "dport":"pci0000:d2", "alias":"ACPI0016:00", "id":5 } ],}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhhhhubh)}(hThis chunk shows the CXL "bus" (root0) has 4 downstream ports attached to CXL Host Bridges. The `Root` can be considered the singular upstream port attached to the platform's memory controller - which routes memory requests to it.h](heThis chunk shows the CXL “bus” (root0) has 4 downstream ports attached to CXL Host Bridges. The }(hjhhhNhNubhtitle_reference)}(h`Root`h]hRoot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh can be considered the singular upstream port attached to the platform’s memory controller - which routes memory requests to it.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK/hhhhubh)}(hThe `ports:root0` section lays out how each of these downstream ports are configured. If a port is not configured (id's 0 and 1), they are omitted.h](hThe }(hjhhhNhNubj)}(h `ports:root0`h]h ports:root0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh section lays out how each of these downstream ports are configured. If a port is not configured (id’s 0 and 1), they are omitted.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK3hhhhubj)}(hX"ports:root0":[ { "port":"port1", "host":"pci0000:d2", "depth":1, "nr_dports":3, "dports":[ { "dport":"0000:d2:01.1", "alias":"device:02", "id":0 }, { "dport":"0000:d2:01.3", "alias":"device:05", "id":2 }, { "dport":"0000:d2:07.1", "alias":"device:0d", "id":113 } ],h]hX"ports:root0":[ { "port":"port1", "host":"pci0000:d2", "depth":1, "nr_dports":3, "dports":[ { "dport":"0000:d2:01.1", "alias":"device:02", "id":0 }, { "dport":"0000:d2:01.3", "alias":"device:05", "id":2 }, { "dport":"0000:d2:07.1", "alias":"device:0d", "id":113 } ],}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK8hhhhubh)}(hThis chunk shows the available downstream ports associated with the CXL Host Bridge :code:`port1`. In this case, :code:`port1` has 3 available downstream ports: :code:`dport0`, :code:`dport2`, and :code:`dport113`.h](hTThis chunk shows the available downstream ports associated with the CXL Host Bridge }(hjhhhNhNubje)}(h :code:`port1`h]hport1}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh. In this case, }(hjhhhNhNubje)}(h :code:`port1`h]hport1}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh# has 3 available downstream ports: }(hjhhhNhNubje)}(h:code:`dport0`h]hdport0}(hj!hhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh, }(hjhhhNhNubje)}(h:code:`dport2`h]hdport2}(hj4hhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh, and }(hjhhhNhNubje)}(h:code:`dport113`h]hdport113}(hjGhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKPhhhhubj)}(hX"endpoints:port1":[ { "endpoint":"endpoint5", "host":"mem0", "parent_dport":"0000:d2:01.1", "depth":2, "memdev":{ "memdev":"mem0", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:d3:00.0" }, "decoders:endpoint5":[ { "decoder":"decoder5.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] }, { "endpoint":"endpoint6", "host":"mem1", "parent_dport":"0000:d2:01.3", "depth":2, "memdev":{ "memdev":"mem1", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:d3:00.0" }, "decoders:endpoint6":[ { "decoder":"decoder6.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] } ],h]hX"endpoints:port1":[ { "endpoint":"endpoint5", "host":"mem0", "parent_dport":"0000:d2:01.1", "depth":2, "memdev":{ "memdev":"mem0", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:d3:00.0" }, "decoders:endpoint5":[ { "decoder":"decoder5.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] }, { "endpoint":"endpoint6", "host":"mem1", "parent_dport":"0000:d2:01.3", "depth":2, "memdev":{ "memdev":"mem1", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:d3:00.0" }, "decoders:endpoint6":[ { "decoder":"decoder6.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] } ],}hj`sbah}(h]h ]h"]h$]h&]hhuh1jhhhKVhhhhubh)}(hIThis chunk shows the endpoints attached to the host bridge :code:`port1`.h](h;This chunk shows the endpoints attached to the host bridge }(hjnhhhNhNubje)}(h :code:`port1`h]hport1}(hjvhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjnubh.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h:code:`endpoint5` contains a single configured decoder :code:`decoder5.0` which has the same interleave configuration as :code:`region0` (shown later).h](je)}(h:code:`endpoint5`h]h endpoint5}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh& contains a single configured decoder }(hjhhhNhNubje)}(h:code:`decoder5.0`h]h decoder5.0}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh0 which has the same interleave configuration as }(hjhhhNhNubje)}(h:code:`region0`h]hregion0}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh (shown later).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h:code:`endpoint6` contains a single configured decoder :code:`decoder5.0` which has the same interleave configuration as :code:`region0` (shown later).h](je)}(h:code:`endpoint6`h]h endpoint6}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh& contains a single configured decoder }(hjhhhNhNubje)}(h:code:`decoder5.0`h]h decoder5.0}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh0 which has the same interleave configuration as }(hjhhhNhNubje)}(h:code:`region0`h]hregion0}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh (shown later).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h7Next we have the decoders belonging to the host bridge:h]h7Next we have the decoders belonging to the host bridge:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubj)}(hX "decoders:port1":[ { "decoder":"decoder1.0", "resource":825975898112, "size":549755813888, "interleave_ways":2, "interleave_granularity":512, "region":"region0", "nr_targets":2, "targets":[ { "target":"0000:d2:01.1", "alias":"device:02", "position":0, "id":0 }, { "target":"0000:d2:01.3", "alias":"device:05", "position":2, "id":0 } ] } ] },h]hX "decoders:port1":[ { "decoder":"decoder1.0", "resource":825975898112, "size":549755813888, "interleave_ways":2, "interleave_granularity":512, "region":"region0", "nr_targets":2, "targets":[ { "target":"0000:d2:01.1", "alias":"device:02", "position":0, "id":0 }, { "target":"0000:d2:01.3", "alias":"device:05", "position":2, "id":0 } ] } ] },}hj#sbah}(h]h ]h"]h$]h&]hhuh1jhhhKhhhhubh)}(hHost Bridge :code:`port1` has a single decoder (:code:`decoder1.0`), whose targets are :code:`dport0` and :code:`dport2` - which are attached to :code:`endpoint5` and :code:`endpoint6` respectively.h](h Host Bridge }(hj1hhhNhNubje)}(h :code:`port1`h]hport1}(hj9hhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj1ubh has a single decoder (}(hj1hhhNhNubje)}(h:code:`decoder1.0`h]h decoder1.0}(hjLhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj1ubh), whose targets are }(hj1hhhNhNubje)}(h:code:`dport0`h]hdport0}(hj_hhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj1ubh and }(hj1hhhNhNubje)}(h:code:`dport2`h]hdport2}(hjrhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj1ubh - which are attached to }(hj1hhhNhNubje)}(h:code:`endpoint5`h]h endpoint5}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj1ubh and }hj1sbje)}(h:code:`endpoint6`h]h endpoint6}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhj1ubh respectively.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe following chunk shows a similar configuration for Host Bridge :code:`port3`, the second host bridge with a memory device attached.h](hBThe following chunk shows a similar configuration for Host Bridge }(hjhhhNhNubje)}(h :code:`port3`h]hport3}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh7, the second host bridge with a memory device attached.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubj)}(hX { "port":"port3", "host":"pci0000:a8", "depth":1, "nr_dports":1, "dports":[ { "dport":"0000:a8:01.1", "alias":"device:c3", "id":0 }, { "dport":"0000:a8:01.3", "alias":"device:c5", "id":0 } ], "endpoints:port3":[ { "endpoint":"endpoint7", "host":"mem2", "parent_dport":"0000:a8:01.1", "depth":2, "memdev":{ "memdev":"mem2", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:a9:00.0" }, "decoders:endpoint7":[ { "decoder":"decoder7.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] }, { "endpoint":"endpoint8", "host":"mem3", "parent_dport":"0000:a8:01.3", "depth":2, "memdev":{ "memdev":"mem3", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:a9:00.0" }, "decoders:endpoint8":[ { "decoder":"decoder8.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] } ], "decoders:port3":[ { "decoder":"decoder3.0", "resource":825975898112, "size":549755813888, "interleave_ways":2, "interleave_granularity":512, "region":"region0", "nr_targets":1, "targets":[ { "target":"0000:a8:01.1", "alias":"device:c3", "position":1, "id":0 }, { "target":"0000:a8:01.3", "alias":"device:c5", "position":3, "id":0 } ] } ] },h]hX { "port":"port3", "host":"pci0000:a8", "depth":1, "nr_dports":1, "dports":[ { "dport":"0000:a8:01.1", "alias":"device:c3", "id":0 }, { "dport":"0000:a8:01.3", "alias":"device:c5", "id":0 } ], "endpoints:port3":[ { "endpoint":"endpoint7", "host":"mem2", "parent_dport":"0000:a8:01.1", "depth":2, "memdev":{ "memdev":"mem2", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:a9:00.0" }, "decoders:endpoint7":[ { "decoder":"decoder7.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] }, { "endpoint":"endpoint8", "host":"mem3", "parent_dport":"0000:a8:01.3", "depth":2, "memdev":{ "memdev":"mem3", "ram_size":137438953472, "serial":0, "numa_node":0, "host":"0000:a9:00.0" }, "decoders:endpoint8":[ { "decoder":"decoder8.0", "resource":825975898112, "size":549755813888, "interleave_ways":4, "interleave_granularity":256, "region":"region0", "dpa_resource":0, "dpa_size":137438953472, "mode":"ram" } ] } ], "decoders:port3":[ { "decoder":"decoder3.0", "resource":825975898112, "size":549755813888, "interleave_ways":2, "interleave_granularity":512, "region":"region0", "nr_targets":1, "targets":[ { "target":"0000:a8:01.1", "alias":"device:c3", "position":1, "id":0 }, { "target":"0000:a8:01.3", "alias":"device:c5", "position":3, "id":0 } ] } ] },}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhhhhubh)}(hIThe next chunk shows the two CXL host bridges without attached endpoints.h]hIThe next chunk shows the two CXL host bridges without attached endpoints.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hhhhubj)}(hX { "port":"port2", "host":"pci0000:00", "depth":1, "nr_dports":2, "dports":[ { "dport":"0000:00:01.3", "alias":"device:55", "id":2 }, { "dport":"0000:00:07.1", "alias":"device:5d", "id":113 } ] }, { "port":"port4", "host":"pci0000:2a", "depth":1, "nr_dports":1, "dports":[ { "dport":"0000:2a:01.1", "alias":"device:d0", "id":0 } ] } ],h]hX { "port":"port2", "host":"pci0000:00", "depth":1, "nr_dports":2, "dports":[ { "dport":"0000:00:01.3", "alias":"device:55", "id":2 }, { "dport":"0000:00:07.1", "alias":"device:5d", "id":113 } ] }, { "port":"port4", "host":"pci0000:2a", "depth":1, "nr_dports":1, "dports":[ { "dport":"0000:2a:01.1", "alias":"device:d0", "id":0 } ] } ],}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhM$hhhhubh)}(hNext we have the `Root Decoders` belonging to :code:`root0`. This root decoder applies the interleave across the downstream ports :code:`port1` and :code:`port3` - with a granularity of 256 bytes.h](hNext we have the }(hjhhhNhNubj)}(h`Root Decoders`h]h Root Decoders}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh belonging to }(hjhhhNhNubje)}(h :code:`root0`h]hroot0}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubhH. This root decoder applies the interleave across the downstream ports }(hjhhhNhNubje)}(h :code:`port1`h]hport1}(hj)hhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh and }(hjhhhNhNubje)}(h :code:`port3`h]hport3}(hj<hhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjubh# - with a granularity of 256 bytes.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMEhhhhubh)}(hLThis information is generated by the CXL driver reading the ACPI CEDT CMFWS.h]hLThis information is generated by the CXL driver reading the ACPI CEDT CMFWS.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhhhhubj)}(hXr"decoders:root0":[ { "decoder":"decoder0.0", "resource":825975898112, "size":549755813888, "interleave_ways":2, "interleave_granularity":256, "max_available_extent":0, "volatile_capable":true, "nr_targets":2, "targets":[ { "target":"pci0000:a8", "alias":"ACPI0016:02", "position":1, "id":4 }, { "target":"pci0000:d2", "alias":"ACPI0016:00", "position":0, "id":5 } ],h]hXr"decoders:root0":[ { "decoder":"decoder0.0", "resource":825975898112, "size":549755813888, "interleave_ways":2, "interleave_granularity":256, "max_available_extent":0, "volatile_capable":true, "nr_targets":2, "targets":[ { "target":"pci0000:a8", "alias":"ACPI0016:02", "position":1, "id":4 }, { "target":"pci0000:d2", "alias":"ACPI0016:00", "position":0, "id":5 } ],}hjcsbah}(h]h ]h"]h$]h&]hhuh1jhhhMMhhhhubh)}(hXFinally we have the `Memory Region` associated with the `Root Decoder` :code:`decoder0.0`. This region describes the overall interleave configuration of the interleave set. So we see there are a total of :code:`4` interleave targets across 4 endpoint decoders.h](hFinally we have the }(hjqhhhNhNubj)}(h`Memory Region`h]h Memory Region}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh associated with the }(hjqhhhNhNubj)}(h`Root Decoder`h]h Root Decoder}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh }(hjqhhhNhNubje)}(h:code:`decoder0.0`h]h decoder0.0}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjqubhu. This region describes the overall interleave configuration of the interleave set. So we see there are a total of }(hjqhhhNhNubje)}(h :code:`4`h]h4}(hjhhhNhNubah}(h]h ]jqah"]h$]h&]languagehuh1jdhjqubh/ interleave targets across 4 endpoint decoders.}(hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMfhhhhubj)}(hX  "regions:decoder0.0":[ { "region":"region0", "resource":825975898112, "size":549755813888, "type":"ram", "interleave_ways":4, "interleave_granularity":256, "decode_state":"commit", "mappings":[ { "position":3, "memdev":"mem3", "decoder":"decoder8.0" }, { "position":2, "memdev":"mem1", "decoder":"decoder6.0" } { "position":1, "memdev":"mem2", "decoder":"decoder7.0" }, { "position":0, "memdev":"mem0", "decoder":"decoder5.0" } ] } ] } ] } ]h]hX  "regions:decoder0.0":[ { "region":"region0", "resource":825975898112, "size":549755813888, "type":"ram", "interleave_ways":4, "interleave_granularity":256, "decode_state":"commit", "mappings":[ { "position":3, "memdev":"mem3", "decoder":"decoder8.0" }, { "position":2, "memdev":"mem1", "decoder":"decoder6.0" } { "position":1, "memdev":"mem2", "decoder":"decoder7.0" }, { "position":0, "memdev":"mem0", "decoder":"decoder5.0" } ] } ] } ] } ]}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhMmhhhhubeh}(h]multi-level-interleaveah ]h"]multi-level interleaveah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jjs nametypes}jsh}jhs footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.