€•úTŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ:/translations/zh_CN/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ:/translations/zh_TW/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ:/translations/it_IT/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ:/translations/ja_JP/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ:/translations/ko_KR/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ:/translations/pt_BR/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ:/translations/sp_SP/driver-api/cxl/platform/device-hotplug”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒT/var/lib/git/docbuild/linux/Documentation/driver-api/cxl/platform/device-hotplug.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒCXL Device Hotplug”h]”hŒCXL Device Hotplug”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒtDevice hotplug refers to *physical* hotplug of a device (addition or removal of a physical device from the machine).”h]”(hŒDevice hotplug refers to ”…””}”(hhßh²hh³Nh´NubhŒemphasis”“”)”}”(hŒ *physical*”h]”hŒphysical”…””}”(hhéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hçhhßubhŒQ hotplug of a device (addition or removal of a physical device from the machine).”…””}”(hhßh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒÓBIOS/EFI software is expected to configure sufficient resources **at boot time** to allow hotplugged devices to be configured by software (such as proximity domains, HPA regions, and host-bridge configurations).”h]”(hŒ@BIOS/EFI software is expected to configure sufficient resources ”…””}”(hjh²hh³Nh´NubhŒstrong”“”)”}”(hŒ**at boot time**”h]”hŒ at boot time”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubhŒƒ to allow hotplugged devices to be configured by software (such as proximity domains, HPA regions, and host-bridge configurations).”…””}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)”}”(hŒBIOS/EFI is not expected (**nor suggested**) to configure hotplugged devices at hotplug time (i.e. HDM decoders should be left unprogrammed).”h]”(hŒBIOS/EFI is not expected (”…””}”(hj#h²hh³Nh´Nubj )”}”(hŒ**nor suggested**”h]”hŒ nor suggested”…””}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj#ubhŒb) to configure hotplugged devices at hotplug time (i.e. HDM decoders should be left unprogrammed).”…””}”(hj#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒ_This document covers some examples of those resources, but should not be considered exhaustive.”h]”hŒ_This document covers some examples of those resources, but should not be considered exhaustive.”…””}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒ Hot-Remove”h]”hŒ Hot-Remove”…””}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjQh²hh³hÇh´KubhÞ)”}”(hŒ’Hot removal of a device typically requires careful removal of software constructs (memory regions, associated drivers) which manage these devices.”h]”hŒ’Hot removal of a device typically requires careful removal of software constructs (memory regions, associated drivers) which manage these devices.”…””}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjQh²hubhÞ)”}”(hŒºHard-removing a CXL.mem device without carefully tearing down driver stacks is likely to cause the system to machine-check (or at least SIGBUS if memory access is limited to user space).”h]”hŒºHard-removing a CXL.mem device without carefully tearing down driver stacks is likely to cause the system to machine-check (or at least SIGBUS if memory access is limited to user space).”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhjQh²hubeh}”(h]”Œ hot-remove”ah ]”h"]”Œ hot-remove”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒMemory Device Hot-Add”h]”hŒMemory Device Hot-Add”…””}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj†h²hh³hÇh´KubhÞ)”}”(hŒ×A device present at boot may be associated with a CXL Fixed Memory Window reported in :doc:`CEDT`. That CFMWS may match the size of the device, but the construction of the CEDT CFMWS is platform-defined.”h]”(hŒVA device present at boot may be associated with a CXL Fixed Memory Window reported in ”…””}”(hj—h²hh³Nh´Nubh)”}”(hŒ:doc:`CEDT`”h]”hŒinline”“”)”}”(hj¡h]”hŒCEDT”…””}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œstd”Œstd-doc”eh"]”h$]”h&]”uh1j£hjŸubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ&driver-api/cxl/platform/device-hotplug”Œ refdomain”j°Œreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆŒ reftarget”Œ acpi/cedt”uh1hh³hÇh´Khj—ubhŒk. That CFMWS may match the size of the device, but the construction of the CEDT CFMWS is platform-defined.”…””}”(hj—h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj†h²hubhÞ)”}”(hŒ|Hot-adding a memory device requires this pre-defined, **static** CFMWS to have sufficient HPA space to describe that device.”h]”(hŒ6Hot-adding a memory device requires this pre-defined, ”…””}”(hjÎh²hh³Nh´Nubj )”}”(hŒ **static**”h]”hŒstatic”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÎubhŒ< CFMWS to have sufficient HPA space to describe that device.”…””}”(hjÎh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K#hj†h²hubhÞ)”}”(hŒ-There are a few common scenarios to consider.”h]”hŒ-There are a few common scenarios to consider.”…””}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K&hj†h²hubhÉ)”}”(hhh]”(hÎ)”}”(hŒ-Single-Endpoint Memory Device Present at Boot”h]”hŒ-Single-Endpoint Memory Device Present at Boot”…””}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjüh²hh³hÇh´K)ubhÞ)”}”(hŒÜA device present at boot likely had its capacity reported in the :doc:`CEDT`. If a device is removed and a new device hotplugged, the capacity of the new device will be limited to the original CFMWS capacity.”h]”(hŒAA device present at boot likely had its capacity reported in the ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:doc:`CEDT`”h]”j¤)”}”(hjh]”hŒCEDT”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j¯Œstd”Œstd-doc”eh"]”h$]”h&]”uh1j£hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¼Œ refdomain”j#Œreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆjÂŒ acpi/cedt”uh1hh³hÇh´K*hj ubhŒ…. If a device is removed and a new device hotplugged, the capacity of the new device will be limited to the original CFMWS capacity.”…””}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K*hjüh²hubhÞ)”}”(hŒŒAdding capacity larger than the original device will cause memory region creation to fail if the region size is greater than the CFMWS size.”h]”hŒŒAdding capacity larger than the original device will cause memory region creation to fail if the region size is greater than the CFMWS size.”…””}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K.hjüh²hubhÞ)”}”(hŒÐThe CFMWS is **static** and cannot be adjusted. Platforms which may expect different sized devices to be hotplugged must allocate sufficient CFMWS space **at boot time** to cover all future expected devices.”h]”(hŒ The CFMWS is ”…””}”(hjMh²hh³Nh´Nubj )”}”(hŒ **static**”h]”hŒstatic”…””}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjMubhŒƒ and cannot be adjusted. Platforms which may expect different sized devices to be hotplugged must allocate sufficient CFMWS space ”…””}”(hjMh²hh³Nh´Nubj )”}”(hŒ**at boot time**”h]”hŒ at boot time”…””}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjMubhŒ& to cover all future expected devices.”…””}”(hjMh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K1hjüh²hubeh}”(h]”Œ-single-endpoint-memory-device-present-at-boot”ah ]”h"]”Œ-single-endpoint memory device present at boot”ah$]”h&]”uh1hÈhj†h²hh³hÇh´K)ubhÉ)”}”(hhh]”(hÎ)”}”(hŒ,Multi-Endpoint Memory Device Present at Boot”h]”hŒ,Multi-Endpoint Memory Device Present at Boot”…””}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj‡h²hh³hÇh´K6ubhÞ)”}”(hŒáNon-switch-based Multi-Endpoint devices are outside the scope of what the CXL specification describes, but they are technically possible. We describe them here for instructive reasons only - this does not imply Linux support.”h]”hŒáNon-switch-based Multi-Endpoint devices are outside the scope of what the CXL specification describes, but they are technically possible. We describe them here for instructive reasons only - this does not imply Linux support.”…””}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K7hj‡h²hubhÞ)”}”(hŒÁA hot-plug capable CXL memory device, such as one which presents multiple expanders as a single large-capacity device, should report the **maximum possible capacity** for the device at boot. ::”h]”(hŒ‰A hot-plug capable CXL memory device, such as one which presents multiple expanders as a single large-capacity device, should report the ”…””}”(hj¦h²hh³Nh´Nubj )”}”(hŒ**maximum possible capacity**”h]”hŒmaximum possible capacity”…””}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¦ubhŒ for the device at boot.”…””}”(hj¦h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K;hj‡h²hubhŒ literal_block”“”)”}”(hŒ“ HB0 RP0 | [Multi-Endpoint Memory Device] _____|_____ | | [Endpoint0] [Empty]”h]”hŒ“ HB0 RP0 | [Multi-Endpoint Memory Device] _____|_____ | | [Endpoint0] [Empty]”…””}”hjÈsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´K?hj‡h²hubhÞ)”}”(hŒ{Limiting the size to the capacity preset at boot will limit hot-add support to replacing capacity that was present at boot.”h]”hŒ{Limiting the size to the capacity preset at boot will limit hot-add support to replacing capacity that was present at boot.”…””}”(hjÖh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KHhj‡h²hubeh}”(h]”Œ,multi-endpoint-memory-device-present-at-boot”ah ]”h"]”Œ,multi-endpoint memory device present at boot”ah$]”h&]”uh1hÈhj†h²hh³hÇh´K6ubhÉ)”}”(hhh]”(hÎ)”}”(hŒNo CXL Device Present at Boot”h]”hŒNo CXL Device Present at Boot”…””}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjìh²hh³hÇh´KLubhÞ)”}”(hŒ–When no CXL memory device is present on boot, some platforms omit the CFMWS in the :doc:`CEDT`. When this occurs, hot-add is not possible.”h]”(hŒSWhen no CXL memory device is present on boot, some platforms omit the CFMWS in the ”…””}”(hjýh²hh³Nh´Nubh)”}”(hŒ:doc:`CEDT`”h]”j¤)”}”(hjh]”hŒCEDT”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j¯Œstd”Œstd-doc”eh"]”h$]”h&]”uh1j£hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¼Œ refdomain”jŒreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆjÂŒ acpi/cedt”uh1hh³hÇh´KMhjýubhŒ-. When this occurs, hot-add is not possible.”…””}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KMhjìh²hubhÞ)”}”(hŒÈThis describes the base case for any given device not being present at boot. If a future possible device is not described in the CEDT at boot, hot-add of that device is either limited or not possible.”h]”hŒÈThis describes the base case for any given device not being present at boot. If a future possible device is not described in the CEDT at boot, hot-add of that device is either limited or not possible.”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KPhjìh²hubhÞ)”}”(hŒÙFor a platform to support hot-add of a full memory device, it must allocate a CEDT CFMWS region with sufficient memory capacity to cover all future potentially added capacity (along with any relevant CEDT CHBS entry).”h]”hŒÙFor a platform to support hot-add of a full memory device, it must allocate a CEDT CFMWS region with sufficient memory capacity to cover all future potentially added capacity (along with any relevant CEDT CHBS entry).”…””}”(hj=h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KThjìh²hubhÞ)”}”(hŒýTo support memory hotplug directly on the host bridge/root port, or on a switch downstream of the host bridge, a platform must construct a CEDT CFMWS at boot with sufficient resources to support the max possible (or expected) hotplug memory capacity. ::”h]”hŒúTo support memory hotplug directly on the host bridge/root port, or on a switch downstream of the host bridge, a platform must construct a CEDT CFMWS at boot with sufficient resources to support the max possible (or expected) hotplug memory capacity.”…””}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KXhjìh²hubjÇ)”}”(hX HB0 HB1 RP0 RP1 RP2 | | | Empty Empty USP ________|________ | | | | DSP DSP DSP DSP | | | | All Empty”h]”hX HB0 HB1 RP0 RP1 RP2 | | | Empty Empty USP ________|________ | | | | DSP DSP DSP DSP | | | | All Empty”…””}”hjYsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1jÆh³hÇh´K]hjìh²hubhÞ)”}”(hXFor example, a BIOS/EFI may expose an option to configure a CEDT CFMWS with a pre-configured amount of memory capacity (per host bridge, or host bridge interleave set), even if no device is attached to Root Ports or Downstream Ports at boot (as depicted in the figure above).”h]”hXFor example, a BIOS/EFI may expose an option to configure a CEDT CFMWS with a pre-configured amount of memory capacity (per host bridge, or host bridge interleave set), even if no device is attached to Root Ports or Downstream Ports at boot (as depicted in the figure above).”…””}”(hjgh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kghjìh²hubeh}”(h]”Œno-cxl-device-present-at-boot”ah ]”h"]”Œno cxl device present at boot”ah$]”h&]”uh1hÈhj†h²hh³hÇh´KLubeh}”(h]”Œmemory-device-hot-add”ah ]”h"]”Œmemory device hot-add”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)”}”(hhh]”(hÎ)”}”(hŒInterleave Sets”h]”hŒInterleave Sets”…””}”(hjˆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj…h²hh³hÇh´KnubhÉ)”}”(hhh]”(hÎ)”}”(hŒHost Bridge Interleave”h]”hŒHost Bridge Interleave”…””}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj–h²hh³hÇh´KqubhÞ)”}”(hX*Host-bridge interleaved memory regions are defined **statically** in the :doc:`CEDT`. To apply cross-host-bridge interleave, a CFMWS entry describing that interleave must have been provided **at boot**. Hotplugged devices cannot add host-bridge interleave capabilities at hotplug time.”h]”(hŒ3Host-bridge interleaved memory regions are defined ”…””}”(hj§h²hh³Nh´Nubj )”}”(hŒ**statically**”h]”hŒ statically”…””}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj§ubhŒ in the ”…””}”(hj§h²hh³Nh´Nubh)”}”(hŒ:doc:`CEDT`”h]”j¤)”}”(hjÃh]”hŒCEDT”…””}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”(j¯Œstd”Œstd-doc”eh"]”h$]”h&]”uh1j£hjÁubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¼Œ refdomain”jÏŒreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆjÂŒ acpi/cedt”uh1hh³hÇh´Krhj§ubhŒk. To apply cross-host-bridge interleave, a CFMWS entry describing that interleave must have been provided ”…””}”(hj§h²hh³Nh´Nubj )”}”(hŒ **at boot**”h]”hŒat boot”…””}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj§ubhŒU. Hotplugged devices cannot add host-bridge interleave capabilities at hotplug time.”…””}”(hj§h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Krhj–h²hubhÞ)”}”(hXSee the :doc:`Flexible CEDT Configuration` example to see how a platform can provide this kind of flexibility regarding hotplugged memory devices. BIOS/EFI software should consider options to present flexible CEDT configurations with hotplug support.”h]”(hŒSee the ”…””}”(hjýh²hh³Nh´Nubh)”}”(hŒC:doc:`Flexible CEDT Configuration`”h]”j¤)”}”(hjh]”hŒFlexible CEDT Configuration”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j¯Œstd”Œstd-doc”eh"]”h$]”h&]”uh1j£hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j¼Œ refdomain”jŒreftype”Œdoc”Œ refexplicit”ˆŒrefwarn”ˆjÂŒexample-configurations/flexible”uh1hh³hÇh´KwhjýubhŒÑ example to see how a platform can provide this kind of flexibility regarding hotplugged memory devices. BIOS/EFI software should consider options to present flexible CEDT configurations with hotplug support.”…””}”(hjýh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kwhj–h²hubeh}”(h]”Œhost-bridge-interleave”ah ]”h"]”Œhost bridge interleave”ah$]”h&]”uh1hÈhj…h²hh³hÇh´KqubhÉ)”}”(hhh]”(hÎ)”}”(hŒHDM Interleave”h]”hŒHDM Interleave”…””}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj7h²hh³hÇh´K}ubhÞ)”}”(hŒrDecoder-applied interleave can flexibly handle hotplugged devices, as decoders can be re-programmed after hotplug.”h]”hŒrDecoder-applied interleave can flexibly handle hotplugged devices, as decoders can be re-programmed after hotplug.”…””}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K~hj7h²hubhÞ)”}”(hŒzTo add or remove a device to/from an existing HDM-applied interleaved region, that region must be torn down an re-created.”h]”hŒzTo add or remove a device to/from an existing HDM-applied interleaved region, that region must be torn down an re-created.”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj7h²hubeh}”(h]”Œhdm-interleave”ah ]”h"]”Œhdm interleave”ah$]”h&]”uh1hÈhj…h²hh³hÇh´K}ubeh}”(h]”Œinterleave-sets”ah ]”h"]”Œinterleave sets”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´Knubeh}”(h]”Œcxl-device-hotplug”ah ]”h"]”Œcxl device hotplug”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jŸŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”(jyjvjƒj€j‚jj„jjéjæjzjwjqjnj4j1jijfuŒ nametypes”}”(jy‰jƒ‰j‚‰j„‰jé‰jz‰jq‰j4‰ji‰uh}”(jvhÊj€jQjj†jjüjæj‡jwjìjnj…j1j–jfj7uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.