€•DøŒ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/mmc/mmc-test”Œ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/mmc/mmc-test”Œ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/mmc/mmc-test”Œ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/mmc/mmc-test”Œ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/mmc/mmc-test”Œ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/mmc/mmc-test”Œ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/mmc/mmc-test”Œ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³ŒE/var/lib/git/docbuild/linux/Documentation/driver-api/mmc/mmc-test.rst”h´KubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒMMC Test Framework”h]”hŒMMC Test Framework”…”�”}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒOverview”h]”hŒOverview”…”�”}”(hhàh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÝh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hŒøThe `mmc_test` framework is designed to test the performance and reliability of host controller drivers and all devices handled by the MMC subsystem. This includes not only MMC devices but also SD cards and other devices supported by the subsystem.”h]”(hŒThe ”…”�”}”(hhðh²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ `mmc_test`”h]”hŒmmc_test”…”�”}”(hhúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1høhhðubhŒê framework is designed to test the performance and reliability of host controller drivers and all devices handled by the MMC subsystem. This includes not only MMC devices but also SD cards and other devices supported by the subsystem.”…”�”}”(hhðh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhï)�”}”(hX0The framework provides a variety of tests to evaluate different aspects of the host controller and device interactions, such as read and write performance, data integrity, and error handling. These tests help ensure that the host controller drivers and devices operate correctly under various conditions.”h]”hX0The framework provides a variety of tests to evaluate different aspects of the host controller and device interactions, such as read and write performance, data integrity, and error handling. These tests help ensure that the host controller drivers and devices operate correctly under various conditions.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K hhÝh²hubhï)�”}”(hŒ4The `mmc_test` framework is particularly useful for:”h]”(hŒThe ”…”�”}”(hj h²hh³Nh´Nubhù)�”}”(hŒ `mmc_test`”h]”hŒmmc_test”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1høhj ubhŒ& framework is particularly useful for:”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubhŒ bullet_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒRVerifying the functionality and performance of MMC and SD host controller drivers.”h]”hï)�”}”(hjIh]”hŒRVerifying the functionality and performance of MMC and SD host controller drivers.”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBh²hh³hÇh´NubjF)�”}”(hŒ=Ensuring compatibility and reliability of MMC and SD devices.”h]”hï)�”}”(hj`h]”hŒ=Ensuring compatibility and reliability of MMC and SD devices.”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBh²hh³hÇh´NubjF)�”}”(hŒ8Identifying and diagnosing issues in the MMC subsystem. ”h]”hï)�”}”(hŒ7Identifying and diagnosing issues in the MMC subsystem.”h]”hŒ7Identifying and diagnosing issues in the MMC subsystem.”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjuubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhjBh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1j@h³hÇh´KhhÝh²hubhï)�”}”(hŒ‰The results of the tests are logged in the kernel log, providing detailed information about the test outcomes and any encountered issues.”h]”hŒ‰The results of the tests are logged in the kernel log, providing detailed information about the test outcomes and any encountered issues.”…”�”}”(hj•h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubhï)�”}”(hŒBNote: whatever is on your card will be overwritten by these tests.”h]”hŒBNote: whatever is on your card will be overwritten by these tests.”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhhÝh²hubeh}”(h]”Œoverview”ah ]”h"]”Œoverview”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒInitialization”h]”hŒInitialization”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj¹h²hh³hÇh´Kubhï)�”}”(hŒ6To use the ``mmc_test`` framework, follow these steps:”h]”(hŒ To use the ”…”�”}”(hjÊh²hh³Nh´NubhŒliteral”“”)�”}”(hŒ ``mmc_test``”h]”hŒmmc_test”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjÊubhŒ framework, follow these steps:”…”�”}”(hjÊh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khj¹h²hubhŒenumerated_list”“”)�”}”(hhh]”(jF)�”}”(hXç**Enable the MMC Test Framework**: Ensure that the ``CONFIG_MMC_TEST`` kernel configuration option is enabled. This can be done by configuring the kernel: .. code-block:: none make menuconfig Navigate to: Device Drivers ---> <*> MMC/SD/SDIO card support ---> [*] MMC host test driver Alternatively, you can enable it directly in the kernel configuration file: .. code-block:: none echo "CONFIG_MMC_TEST=y" >> .config Rebuild and install the kernel if necessary. ”h]”(hï)�”}”(hŒ"**Enable the MMC Test Framework**:”h]”(hŒstrong”“”)�”}”(hŒ!**Enable the MMC Test Framework**”h]”hŒEnable the MMC Test Framework”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjõubhŒ:”…”�”}”(hjõh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khjñubhï)�”}”(hŒwEnsure that the ``CONFIG_MMC_TEST`` kernel configuration option is enabled. This can be done by configuring the kernel:”h]”(hŒEnsure that the ”…”�”}”(hjh²hh³Nh´NubjÓ)�”}”(hŒ``CONFIG_MMC_TEST``”h]”hŒCONFIG_MMC_TEST”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjubhŒT kernel configuration option is enabled. This can be done by configuring the kernel:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KhjñubhŒ literal_block”“”)�”}”(hŒmake menuconfig”h]”hŒmake menuconfig”…”�”}”hj5sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”Œnone”Œhighlight_args”}”uh1j3h³hÇh´K!hjñubhï)�”}”(hŒ Navigate to:”h]”hŒ Navigate to:”…”�”}”(hjHh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K%hjñubhŒdefinition_list”“”)�”}”(hhh]”hŒdefinition_list_item”“”)�”}”(hŒUDevice Drivers ---> <*> MMC/SD/SDIO card support ---> [*] MMC host test driver ”h]”(hŒterm”“”)�”}”(hŒDevice Drivers --->”h]”hŒDevice Drivers --->”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jah³hÇh´K)hj]ubhŒ definition”“”)�”}”(hhh]”jW)�”}”(hhh]”j\)�”}”(hŒ><*> MMC/SD/SDIO card support ---> [*] MMC host test driver ”h]”(jb)�”}”(hŒ"<*> MMC/SD/SDIO card support --->”h]”hŒ"<*> MMC/SD/SDIO card support --->”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jah³hÇh´K)hjyubjr)�”}”(hhh]”hï)�”}”(hŒ[*] MMC host test driver”h]”hŒ[*] MMC host test driver”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K)hj‹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhjyubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[h³hÇh´K)hjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1jqhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j[h³hÇh´K)hjXubah}”(h]”h ]”h"]”h$]”h&]”uh1jVhjñubhï)�”}”(hŒKAlternatively, you can enable it directly in the kernel configuration file:”h]”hŒKAlternatively, you can enable it directly in the kernel configuration file:”…”�”}”(hjÀh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K+hjñubj4)�”}”(hŒ#echo "CONFIG_MMC_TEST=y" >> .config”h]”hŒ#echo "CONFIG_MMC_TEST=y" >> .config”…”�”}”hjÎsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒnone”jF}”uh1j3h³hÇh´K-hjñubhï)�”}”(hŒ,Rebuild and install the kernel if necessary.”h]”hŒ,Rebuild and install the kernel if necessary.”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K1hjñubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjîh²hh³hÇh´NubjF)�”}”(hŒ§**Load the MMC Test Module**: If the ``mmc_test`` framework is built as a module, you need to load it using ``modprobe``: .. code-block:: none modprobe mmc_test ”h]”(hï)�”}”(hŒ**Load the MMC Test Module**:”h]”(jú)�”}”(hŒ**Load the MMC Test Module**”h]”hŒLoad the MMC Test Module”…”�”}”(hjúh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjöubhŒ:”…”�”}”(hjöh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K3hjòubhï)�”}”(hŒ[If the ``mmc_test`` framework is built as a module, you need to load it using ``modprobe``:”h]”(hŒIf the ”…”�”}”(hjh²hh³Nh´NubjÓ)�”}”(hŒ ``mmc_test``”h]”hŒmmc_test”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjubhŒ; framework is built as a module, you need to load it using ”…”�”}”(hjh²hh³Nh´NubjÓ)�”}”(hŒ ``modprobe``”h]”hŒmodprobe”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjubhŒ:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K5hjòubj4)�”}”(hŒmodprobe mmc_test”h]”hŒmodprobe mmc_test”…”�”}”hjDsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒnone”jF}”uh1j3h³hÇh´K7hjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjîh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jìhj¹h²hh³hÇh´Kubeh}”(h]”Œinitialization”ah ]”h"]”Œinitialization”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´KubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Binding the MMC Card for Testing”h]”hŒ Binding the MMC Card for Testing”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjmh²hh³hÇh´Khjmh²hubjí)�”}”(hhh]”(jF)�”}”(hŒ€Identify the MMC card: .. code-block:: sh ls /sys/bus/mmc/devices/ This will list the MMC devices, such as ``mmc0:0001``. ”h]”(hï)�”}”(hŒIdentify the MMC card:”h]”hŒIdentify the MMC card:”…”�”}”(hjÉh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K@hjÅubj4)�”}”(hŒls /sys/bus/mmc/devices/”h]”hŒls /sys/bus/mmc/devices/”…”�”}”hj×sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´KBhjÅubhï)�”}”(hŒ6This will list the MMC devices, such as ``mmc0:0001``.”h]”(hŒ(This will list the MMC devices, such as ”…”�”}”(hjçh²hh³Nh´NubjÓ)�”}”(hŒ ``mmc0:0001``”h]”hŒ mmc0:0001”…”�”}”(hjïh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjçubhŒ.”…”�”}”(hjçh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KFhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjÂh²hh³hÇh´NubjF)�”}”(hŒ~Unbind the MMC card from the ``mmcblk`` driver: .. code-block:: sh echo 'mmc0:0001' > /sys/bus/mmc/drivers/mmcblk/unbind ”h]”(hï)�”}”(hŒ/Unbind the MMC card from the ``mmcblk`` driver:”h]”(hŒUnbind the MMC card from the ”…”�”}”(hjh²hh³Nh´NubjÓ)�”}”(hŒ ``mmcblk``”h]”hŒmmcblk”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjubhŒ driver:”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KHhj ubj4)�”}”(hŒ5echo 'mmc0:0001' > /sys/bus/mmc/drivers/mmcblk/unbind”h]”hŒ5echo 'mmc0:0001' > /sys/bus/mmc/drivers/mmcblk/unbind”…”�”}”hj1sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´KJhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjÂh²hh³Nh´NubjF)�”}”(hŒ|Bind the MMC card to the ``mmc_test`` driver: .. code-block:: sh echo 'mmc0:0001' > /sys/bus/mmc/drivers/mmc_test/bind ”h]”(hï)�”}”(hŒ-Bind the MMC card to the ``mmc_test`` driver:”h]”(hŒBind the MMC card to the ”…”�”}”(hjKh²hh³Nh´NubjÓ)�”}”(hŒ ``mmc_test``”h]”hŒmmc_test”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÒhjKubhŒ driver:”…”�”}”(hjKh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KNhjGubj4)�”}”(hŒ5echo 'mmc0:0001' > /sys/bus/mmc/drivers/mmc_test/bind”h]”hŒ5echo 'mmc0:0001' > /sys/bus/mmc/drivers/mmc_test/bind”…”�”}”hjksbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´KPhjGubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjÂh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j`jajbhjcjduh1jìhjmh²hh³hÇh´K@ubhï)�”}”(hŒmAfter binding, you should see a line in the kernel log indicating that the card has been claimed for testing:”h]”hŒmAfter binding, you should see a line in the kernel log indicating that the card has been claimed for testing:”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KThjmh²hubj4)�”}”(hŒ-mmc_test mmc0:0001: Card claimed for testing.”h]”hŒ-mmc_test mmc0:0001: Card claimed for testing.”…”�”}”hj•sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒnone”jF}”uh1j3h³hÇh´KVhjmh²hubeh}”(h]”Œ binding-the-mmc-card-for-testing”ah ]”h"]”Œ binding the mmc card for testing”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K > /sys/kernel/debug/mmc0/mmc0:0001/test The test result is indicated in the kernel log info. You can view the kernel log using the `dmesg` command or by checking the log file in `/var/log/`. .. code-block:: sh dmesg | grep mmc0 Example: To run test number 4 (Basic read with data verification): .. code-block:: sh echo 4 > /sys/kernel/debug/mmc0/mmc0:0001/test Check the kernel log for the result: .. code-block:: sh dmesg | grep mmc0 ”h]”(hï)�”}”(hŒ **test**:”h]”(jú)�”}”(hŒ**test**”h]”hŒtest”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj÷ubhŒ:”…”�”}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K`hjóubhï)�”}”(hŒ^This file is used to run specific tests. Write the test number to this file to execute a test.”h]”hŒ^This file is used to run specific tests. Write the test number to this file to execute a test.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kbhjóubj4)�”}”(hŒ:echo > /sys/kernel/debug/mmc0/mmc0:0001/test”h]”hŒ:echo > /sys/kernel/debug/mmc0/mmc0:0001/test”…”�”}”hj!sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´Kdhjóubhï)�”}”(hŒ–The test result is indicated in the kernel log info. You can view the kernel log using the `dmesg` command or by checking the log file in `/var/log/`.”h]”(hŒ[The test result is indicated in the kernel log info. You can view the kernel log using the ”…”�”}”(hj1h²hh³Nh´Nubhù)�”}”(hŒ`dmesg`”h]”hŒdmesg”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1høhj1ubhŒ( command or by checking the log file in ”…”�”}”(hj1h²hh³Nh´Nubhù)�”}”(hŒ `/var/log/`”h]”hŒ /var/log/”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1høhj1ubhŒ.”…”�”}”(hj1h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Khhjóubj4)�”}”(hŒdmesg | grep mmc0”h]”hŒdmesg | grep mmc0”…”�”}”hjcsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´Kjhjóubhï)�”}”(hŒExample:”h]”hŒExample:”…”�”}”(hjsh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Knhjóubhï)�”}”(hŒ9To run test number 4 (Basic read with data verification):”h]”hŒ9To run test number 4 (Basic read with data verification):”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kphjóubj4)�”}”(hŒ.echo 4 > /sys/kernel/debug/mmc0/mmc0:0001/test”h]”hŒ.echo 4 > /sys/kernel/debug/mmc0/mmc0:0001/test”…”�”}”hj�sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´Krhjóubhï)�”}”(hŒ$Check the kernel log for the result:”h]”hŒ$Check the kernel log for the result:”…”�”}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kvhjóubj4)�”}”(hŒdmesg | grep mmc0”h]”hŒdmesg | grep mmc0”…”�”}”hj­sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´Kxhjóubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjðh²hh³Nh´NubjF)�”}”(hŒÿ**testlist**: This file lists all available tests. You can read this file to see the list of tests and their corresponding numbers. .. code-block:: sh cat /sys/kernel/debug/mmc0/mmc0:0001/testlist The available tests are listed in the table below: ”h]”(hï)�”}”(hŒ **testlist**:”h]”(jú)�”}”(hŒ **testlist**”h]”hŒtestlist”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjÇubhŒ:”…”�”}”(hjÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K|hjÃubhï)�”}”(hŒuThis file lists all available tests. You can read this file to see the list of tests and their corresponding numbers.”h]”hŒuThis file lists all available tests. You can read this file to see the list of tests and their corresponding numbers.”…”�”}”(hjãh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K~hjÃubj4)�”}”(hŒ-cat /sys/kernel/debug/mmc0/mmc0:0001/testlist”h]”hŒ-cat /sys/kernel/debug/mmc0/mmc0:0001/testlist”…”�”}”hjñsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒsh”jF}”uh1j3h³hÇh´K€hjÃubhï)�”}”(hŒ2The available tests are listed in the table below:”h]”hŒ2The available tests are listed in the table below:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K„hjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jEhjðh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j`jajbhjcjduh1jìhj­h²hh³hÇh´K`ubhŒtable”“”)�”}”(hhh]”hŒtgroup”“”)�”}”(hhh]”(hŒcolspec”“”)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j%hj"ubj&)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K uh1j%hj"ubj&)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”K-uh1j%hj"ubhŒthead”“”)�”}”(hhh]”hŒrow”“”)�”}”(hhh]”(hŒentry”“”)�”}”(hhh]”hï)�”}”(hŒTest”h]”hŒTest”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‡hjQubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjLubjP)�”}”(hhh]”hï)�”}”(hŒ Test Name”h]”hŒ Test Name”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‡hjhubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjLubjP)�”}”(hhh]”hï)�”}”(hŒTest Description”h]”hŒTest Description”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‡hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjLubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhj"ubhŒtbody”“”)�”}”(hhh]”(jK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ0”h]”hŒ0”…”�”}”(hj­h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‰hjªubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj§ubjP)�”}”(hhh]”hï)�”}”(hŒ Run all tests”h]”hŒ Run all tests”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‰hjÁubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj§ubjP)�”}”(hhh]”hï)�”}”(hŒRuns all available tests”h]”hŒRuns all available tests”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‰hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj§ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ1”h]”hŒ1”…”�”}”(hjûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‹hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjõubjP)�”}”(hhh]”hï)�”}”(hŒ Basic write”h]”hŒ Basic write”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‹hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjõubjP)�”}”(hhh]”hï)�”}”(hŒfPerforms a basic write operation of a single 512-Byte block to the MMC card without data verification.”h]”hŒfPerforms a basic write operation of a single 512-Byte block to the MMC card without data verification.”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‹hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ2”h]”hŒ2”…”�”}”(hjIh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K�hjFubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjCubjP)�”}”(hhh]”hï)�”}”(hŒ Basic read”h]”hŒ Basic read”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K�hj]ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjCubjP)�”}”(hhh]”hï)�”}”(hŒ Same for read”h]”hŒ Same for read”…”�”}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K�hjtubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ3”h]”hŒ3”…”�”}”(hj—h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‘hj”ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‘ubjP)�”}”(hhh]”hï)�”}”(hŒ$Basic write (with data verification)”h]”hŒ$Basic write (with data verification)”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‘hj«ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‘ubjP)�”}”(hhh]”hï)�”}”(hŒ•Performs a basic write operation of a single 512-Byte block to the MMC card with data verification by reading back the written data and comparing it.”h]”hŒ•Performs a basic write operation of a single 512-Byte block to the MMC card with data verification by reading back the written data and comparing it.”…”�”}”(hjÅh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K‘hjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‘ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ4”h]”hŒ4”…”�”}”(hjåh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K–hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjßubjP)�”}”(hhh]”hï)�”}”(hŒ#Basic read (with data verification)”h]”hŒ#Basic read (with data verification)”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K–hjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjßubjP)�”}”(hhh]”hï)�”}”(hŒ Same for read”h]”hŒ Same for read”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K–hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjßubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ5”h]”hŒ5”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K™hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj-ubjP)�”}”(hhh]”hï)�”}”(hŒMulti-block write”h]”hŒMulti-block write”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K™hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj-ubjP)�”}”(hhh]”hï)�”}”(hŒTPerforms a multi-block write operation of 8 blocks (each 512 bytes) to the MMC card.”h]”hŒTPerforms a multi-block write operation of 8 blocks (each 512 bytes) to the MMC card.”…”�”}”(hjah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K™hj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj-ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ6”h]”hŒ6”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kœhj~ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj{ubjP)�”}”(hhh]”hï)�”}”(hŒMulti-block read”h]”hŒMulti-block read”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kœhj•ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj{ubjP)�”}”(hhh]”hï)�”}”(hŒ Same for read”h]”hŒ Same for read”…”�”}”(hj¯h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kœhj¬ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ7”h]”hŒ7”…”�”}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KžhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÉubjP)�”}”(hhh]”hï)�”}”(hŒPower of two block writes”h]”hŒPower of two block writes”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kžhjãubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÉubjP)�”}”(hhh]”hï)�”}”(hŒyPerforms write operations with block sizes that are powers of two, starting from 1 byte up to 256 bytes, to the MMC card.”h]”hŒyPerforms write operations with block sizes that are powers of two, starting from 1 byte up to 256 bytes, to the MMC card.”…”�”}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kžhjúubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ8”h]”hŒ8”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¢hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubjP)�”}”(hhh]”hï)�”}”(hŒPower of two block reads”h]”hŒPower of two block reads”…”�”}”(hj4 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¢hj1 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubjP)�”}”(hhh]”hï)�”}”(hŒ Same for read”h]”hŒ Same for read”…”�”}”(hjK h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¢hjH ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ9”h]”hŒ9”…”�”}”(hjk h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¤hjh ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhje ubjP)�”}”(hhh]”hï)�”}”(hŒWeird sized block writes”h]”hŒWeird sized block writes”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¤hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhje ubjP)�”}”(hhh]”hï)�”}”(hŒ”Performs write operations with varying block sizes starting from 3 bytes and increasing by 7 bytes each iteration, up to 511 bytes, to the MMC card.”h]”hŒ”Performs write operations with varying block sizes starting from 3 bytes and increasing by 7 bytes each iteration, up to 511 bytes, to the MMC card.”…”�”}”(hj™ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¤hj– ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhje ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ10”h]”hŒ10”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K©hj¶ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj³ ubjP)�”}”(hhh]”hï)�”}”(hŒWeird sized block reads”h]”hŒWeird sized block reads”…”�”}”(hjÐ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K©hjÍ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj³ ubjP)�”}”(hhh]”hï)�”}”(hŒ same for read”h]”hŒ same for read”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K©hjä ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj³ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ11”h]”hŒ11”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K«hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubjP)�”}”(hhh]”hï)�”}”(hŒBadly aligned write”h]”hŒBadly aligned write”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K«hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubjP)�”}”(hhh]”hï)�”}”(hŒ˜Performs write operations with buffers starting at different alignments (0 to 7 bytes offset) to test how the MMC card handles unaligned data transfers.”h]”hŒ˜Performs write operations with buffers starting at different alignments (0 to 7 bytes offset) to test how the MMC card handles unaligned data transfers.”…”�”}”(hj5 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K«hj2 ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ12”h]”hŒ12”…”�”}”(hjU h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K°hjR ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjO ubjP)�”}”(hhh]”hï)�”}”(hŒBadly aligned read”h]”hŒBadly aligned read”…”�”}”(hjl h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K°hji ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjO ubjP)�”}”(hhh]”hï)�”}”(hŒ same for read”h]”hŒ same for read”…”�”}”(hjƒ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K°hj€ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjO ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ13”h]”hŒ13”…”�”}”(hj£ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K²hj  ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj� ubjP)�”}”(hhh]”hï)�”}”(hŒBadly aligned multi-block write”h]”hŒBadly aligned multi-block write”…”�”}”(hjº h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K²hj· ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj� ubjP)�”}”(hhh]”hï)�”}”(hŒsame for multi-write”h]”hŒsame for multi-write”…”�”}”(hjÑ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K²hjÎ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj� ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ14”h]”hŒ14”…”�”}”(hjñ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K´hjî ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjë ubjP)�”}”(hhh]”hï)�”}”(hŒBadly aligned multi-block read”h]”hŒBadly aligned multi-block read”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K´hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjë ubjP)�”}”(hhh]”hï)�”}”(hŒsame for multi-read”h]”hŒsame for multi-read”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K´hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjë ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ15”h]”hŒ15”…”�”}”(hj? h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¶hj< ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj9 ubjP)�”}”(hhh]”hï)�”}”(hŒ)Proper xfer_size at write (Start failure)”h]”hŒ)Proper xfer_size at write (Start failure)”…”�”}”(hjV h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¶hjS ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj9 ubjP)�”}”(hhh]”hï)�”}”(hŒ§intentionally create a broken transfer by modifying the MMC request in a way that it will not perform as expected, e.g. use MMC_WRITE_BLOCK for a multi-block transfer”h]”hŒ§intentionally create a broken transfer by modifying the MMC request in a way that it will not perform as expected, e.g. use MMC_WRITE_BLOCK for a multi-block transfer”…”�”}”(hjm h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¶hjj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj9 ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ16”h]”hŒ16”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K»hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‡ ubjP)�”}”(hhh]”hï)�”}”(hŒ(Proper xfer_size at read (Start failure)”h]”hŒ(Proper xfer_size at read (Start failure)”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K»hj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‡ ubjP)�”}”(hhh]”hï)�”}”(hŒ same for read”h]”hŒ same for read”…”�”}”(hj» h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K»hj¸ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‡ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ17”h]”hŒ17”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¾hjØ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÕ ubjP)�”}”(hhh]”hï)�”}”(hŒ*Proper xfer_size at write (Midway failure)”h]”hŒ*Proper xfer_size at write (Midway failure)”…”�”}”(hjò h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¾hjï ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÕ ubjP)�”}”(hhh]”hï)�”}”(hŒsame for 2 blocks”h]”hŒsame for 2 blocks”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´K¾hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÕ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ18”h]”hŒ18”…”�”}”(hj) h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÁhj& ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj# ubjP)�”}”(hhh]”hï)�”}”(hŒ)Proper xfer_size at read (Midway failure)”h]”hŒ)Proper xfer_size at read (Midway failure)”…”�”}”(hj@ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÁhj= ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj# ubjP)�”}”(hhh]”hï)�”}”(hŒ same for read”h]”hŒ same for read”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÁhjT ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj# ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ19”h]”hŒ19”…”�”}”(hjw h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÄhjt ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjq ubjP)�”}”(hhh]”hï)�”}”(hŒ Highmem write”h]”hŒ Highmem write”…”�”}”(hjŽ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÄhj‹ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjq ubjP)�”}”(hhh]”hï)�”}”(hŒuse a high memory page”h]”hŒuse a high memory page”…”�”}”(hj¥ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÄhj¢ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjq ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ20”h]”hŒ20”…”�”}”(hjÅ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÆhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj¿ ubjP)�”}”(hhh]”hï)�”}”(hŒ Highmem read”h]”hŒ Highmem read”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÆhjÙ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj¿ ubjP)�”}”(hhh]”hï)�”}”(hŒ same for read”h]”hŒ same for read”…”�”}”(hjó h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÆhjð ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj¿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ21”h]”hŒ21”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÈhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubjP)�”}”(hhh]”hï)�”}”(hŒMulti-block highmem write”h]”hŒMulti-block highmem write”…”�”}”(hj* h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÈhj' ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubjP)�”}”(hhh]”hï)�”}”(hŒsame for multi-write”h]”hŒsame for multi-write”…”�”}”(hjA h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÈhj> ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ22”h]”hŒ22”…”�”}”(hja h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÊhj^ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj[ ubjP)�”}”(hhh]”hï)�”}”(hŒMulti-block highmem read”h]”hŒMulti-block highmem read”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÊhju ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj[ ubjP)�”}”(hhh]”hï)�”}”(hŒsame for mult-read”h]”hŒsame for mult-read”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÊhjŒ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj[ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ23”h]”hŒ23”…”�”}”(hj¯ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÌhj¬ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj© ubjP)�”}”(hhh]”hï)�”}”(hŒBest-case read performance”h]”hŒBest-case read performance”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÌhjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj© ubjP)�”}”(hhh]”hï)�”}”(hŒ&Performs 512K sequential read (non sg)”h]”hŒ&Performs 512K sequential read (non sg)”…”�”}”(hjÝ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÌhjÚ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj© ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ24”h]”hŒ24”…”�”}”(hjý h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÎhjú ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj÷ ubjP)�”}”(hhh]”hï)�”}”(hŒBest-case write performance”h]”hŒBest-case write performance”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÎhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj÷ ubjP)�”}”(hhh]”hï)�”}”(hŒsame for write”h]”hŒsame for write”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÎhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj÷ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ25”h]”hŒ25”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÐhjHubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjEubjP)�”}”(hhh]”hï)�”}”(hŒ1Best-case read performance (Into scattered pages)”h]”hŒ1Best-case read performance (Into scattered pages)”…”�”}”(hjbh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÐhj_ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjEubjP)�”}”(hhh]”hï)�”}”(hŒ Same using sg”h]”hŒ Same using sg”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÐhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjEubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ26”h]”hŒ26”…”�”}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÓhj–ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj“ubjP)�”}”(hhh]”hï)�”}”(hŒ2Best-case write performance (From scattered pages)”h]”hŒ2Best-case write performance (From scattered pages)”…”�”}”(hj°h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÓhj­ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj“ubjP)�”}”(hhh]”hï)�”}”(hŒsame for write”h]”hŒsame for write”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÓhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj“ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ27”h]”hŒ27”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÖhjäubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjáubjP)�”}”(hhh]”hï)�”}”(hŒSingle read performance”h]”hŒSingle read performance”…”�”}”(hjþh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÖhjûubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjáubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÖhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjáubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ28”h]”hŒ28”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KØhj2ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj/ubjP)�”}”(hhh]”hï)�”}”(hŒSingle write performance”h]”hŒSingle write performance”…”�”}”(hjLh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KØhjIubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj/ubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KØhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj/ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ29”h]”hŒ29”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÚhj€ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj}ubjP)�”}”(hhh]”hï)�”}”(hŒSingle trim performance”h]”hŒSingle trim performance”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÚhj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj}ubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hj±h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÚhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj}ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ30”h]”hŒ30”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÜhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjËubjP)�”}”(hhh]”hï)�”}”(hŒConsecutive read performance”h]”hŒConsecutive read performance”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÜhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjËubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÜhjüubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjËubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ31”h]”hŒ31”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÞhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubjP)�”}”(hhh]”hï)�”}”(hŒConsecutive write performance”h]”hŒConsecutive write performance”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÞhj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hjMh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KÞhjJubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ32”h]”hŒ32”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kàhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjgubjP)�”}”(hhh]”hï)�”}”(hŒConsecutive trim performance”h]”hŒConsecutive trim performance”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kàhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjgubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hj›h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kàhj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjgubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ33”h]”hŒ33”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kâhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjµubjP)�”}”(hhh]”hï)�”}”(hŒRandom read performance”h]”hŒRandom read performance”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KâhjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjµubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kâhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjµubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ34”h]”hŒ34”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kähjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubjP)�”}”(hhh]”hï)�”}”(hŒRandom write performance”h]”hŒRandom write performance”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kähjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubjP)�”}”(hhh]”hï)�”}”(hŒBy transfer size”h]”hŒBy transfer size”…”�”}”(hj7h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kähj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ35”h]”hŒ35”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KæhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjQubjP)�”}”(hhh]”hï)�”}”(hŒLarge sequential read”h]”hŒLarge sequential read”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kæhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjQubjP)�”}”(hhh]”hï)�”}”(hŒInto scattered pages”h]”hŒInto scattered pages”…”�”}”(hj…h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kæhj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjQubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ36”h]”hŒ36”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kèhj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjŸubjP)�”}”(hhh]”hï)�”}”(hŒLarge sequential write”h]”hŒLarge sequential write”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kèhj¹ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjŸubjP)�”}”(hhh]”hï)�”}”(hŒFrom scattered pages”h]”hŒFrom scattered pages”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KèhjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjŸubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ37”h]”hŒ37”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kêhjðubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjíubjP)�”}”(hhh]”hï)�”}”(hŒWrite performance”h]”hŒWrite performance”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kêhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjíubjP)�”}”(hhh]”hï)�”}”(hŒWith blocking req 4k to 4MB”h]”hŒWith blocking req 4k to 4MB”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kêhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjíubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ38”h]”hŒ38”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kìhj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj;ubjP)�”}”(hhh]”hï)�”}”(hŒWrite performance”h]”hŒWrite performance”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KìhjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj;ubjP)�”}”(hhh]”hï)�”}”(hŒWith non-blocking req 4k to 4MB”h]”hŒWith non-blocking req 4k to 4MB”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kìhjlubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ39”h]”hŒ39”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KîhjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‰ubjP)�”}”(hhh]”hï)�”}”(hŒRead performance”h]”hŒRead performance”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kîhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‰ubjP)�”}”(hhh]”hï)�”}”(hŒWith blocking req 4k to 4MB”h]”hŒWith blocking req 4k to 4MB”…”�”}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kîhjºubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‰ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ40”h]”hŒ40”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KðhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj×ubjP)�”}”(hhh]”hï)�”}”(hŒRead performance”h]”hŒRead performance”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kðhjñubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj×ubjP)�”}”(hhh]”hï)�”}”(hŒWith non-blocking req 4k to 4MB”h]”hŒWith non-blocking req 4k to 4MB”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kðhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ41”h]”hŒ41”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kòhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj%ubjP)�”}”(hhh]”hï)�”}”(hŒWrite performance”h]”hŒWrite performance”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kòhj?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj%ubjP)�”}”(hhh]”hï)�”}”(hŒBlocking req 1 to 512 sg elems”h]”hŒBlocking req 1 to 512 sg elems”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KòhjVubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ42”h]”hŒ42”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kôhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjsubjP)�”}”(hhh]”hï)�”}”(hŒWrite performance”h]”hŒWrite performance”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kôhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjsubjP)�”}”(hhh]”hï)�”}”(hŒ"Non-blocking req 1 to 512 sg elems”h]”hŒ"Non-blocking req 1 to 512 sg elems”…”�”}”(hj§h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kôhj¤ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjsubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ43”h]”hŒ43”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KöhjÄubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÁubjP)�”}”(hhh]”hï)�”}”(hŒRead performance”h]”hŒRead performance”…”�”}”(hjÞh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KöhjÛubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÁubjP)�”}”(hhh]”hï)�”}”(hŒBlocking req 1 to 512 sg elems”h]”hŒBlocking req 1 to 512 sg elems”…”�”}”(hjõh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Köhjòubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÁubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ44”h]”hŒ44”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Køhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubjP)�”}”(hhh]”hï)�”}”(hŒRead performance”h]”hŒRead performance”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Køhj)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubjP)�”}”(hhh]”hï)�”}”(hŒ"Non-blocking req 1 to 512 sg elems”h]”hŒ"Non-blocking req 1 to 512 sg elems”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Køhj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ45”h]”hŒ45”…”�”}”(hjch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kúhj`ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj]ubjP)�”}”(hhh]”hï)�”}”(hŒ Reset test”h]”hŒ Reset test”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kúhjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj]ubjP)�”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jOhj]ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ46”h]”hŒ46”…”�”}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kühj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj�ubjP)�”}”(hhh]”hï)�”}”(hŒCommands during read”h]”hŒCommands during read”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kühj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj�ubjP)�”}”(hhh]”hï)�”}”(hŒNo Set Block Count (CMD23)”h]”hŒNo Set Block Count (CMD23)”…”�”}”(hjÑh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´KühjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ47”h]”hŒ47”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kþhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjëubjP)�”}”(hhh]”hï)�”}”(hŒCommands during write”h]”hŒCommands during write”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kþhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjëubjP)�”}”(hhh]”hï)�”}”(hŒNo Set Block Count (CMD23)”h]”hŒNo Set Block Count (CMD23)”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Kþhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjëubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ48”h]”hŒ48”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj<ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj9ubjP)�”}”(hhh]”hï)�”}”(hŒCommands during read”h]”hŒCommands during read”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MhjSubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj9ubjP)�”}”(hhh]”hï)�”}”(hŒUse Set Block Count (CMD23)”h]”hŒUse Set Block Count (CMD23)”…”�”}”(hjmh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj9ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ49”h]”hŒ49”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MhjŠubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‡ubjP)�”}”(hhh]”hï)�”}”(hŒCommands during write”h]”hŒCommands during write”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‡ubjP)�”}”(hhh]”hï)�”}”(hŒUse Set Block Count (CMD23)”h]”hŒUse Set Block Count (CMD23)”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj‡ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ50”h]”hŒ50”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MhjØubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÕubjP)�”}”(hhh]”hï)�”}”(hŒCommands during non-blocking”h]”hŒCommands during non-blocking”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjïubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÕubjP)�”}”(hhh]”hï)�”}”(hŒ"Read - use Set Block Count (CMD23)”h]”hŒ"Read - use Set Block Count (CMD23)”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhjÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubjK)�”}”(hhh]”(jP)�”}”(hhh]”hï)�”}”(hŒ51”h]”hŒ51”…”�”}”(hj)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj#ubjP)�”}”(hhh]”hï)�”}”(hŒCommands during non-blocking”h]”hŒCommands during non-blocking”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj#ubjP)�”}”(hhh]”hï)�”}”(hŒ#Write - use Set Block Count (CMD23)”h]”hŒ#Write - use Set Block Count (CMD23)”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MhjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jOhj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jJhj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¢hj"ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1j hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj­h²hh³hÇh´Nubeh}”(h]”Œusage-debugfs-entries”ah ]”h"]”Œusage - debugfs entries”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´K\ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Test Results”h]”hŒ Test Results”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjŒh²hh³hÇh´M ubhï)�”}”(hŒ‡The results of the tests are logged in the kernel log. Each test logs the start, end, and result of the test. The possible results are:”h]”hŒ‡The results of the tests are logged in the kernel log. Each test logs the start, end, and result of the test. The possible results are:”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M hjŒh²hubjA)�”}”(hhh]”(jF)�”}”(hŒ(**OK**: The test completed successfully.”h]”hï)�”}”(hj°h]”(jú)�”}”(hŒ**OK**”h]”hŒOK”…”�”}”(hjµh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj²ubhŒ": The test completed successfully.”…”�”}”(hj²h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhj®ubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhj«h²hh³hÇh´NubjF)�”}”(hŒ**FAILED**: The test failed.”h]”hï)�”}”(hjÕh]”(jú)�”}”(hŒ **FAILED**”h]”hŒFAILED”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj×ubhŒ: The test failed.”…”�”}”(hj×h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MhjÓubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhj«h²hh³hÇh´NubjF)�”}”(hŒ?**UNSUPPORTED (by host)**: The test is unsupported by the host.”h]”hï)�”}”(hjúh]”(jú)�”}”(hŒ**UNSUPPORTED (by host)**”h]”hŒUNSUPPORTED (by host)”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjüubhŒ&: The test is unsupported by the host.”…”�”}”(hjüh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhj«h²hh³hÇh´NubjF)�”}”(hŒ?**UNSUPPORTED (by card)**: The test is unsupported by the card.”h]”hï)�”}”(hjh]”(jú)�”}”(hŒ**UNSUPPORTED (by card)**”h]”hŒUNSUPPORTED (by card)”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhj!ubhŒ&: The test is unsupported by the card.”…”�”}”(hj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhj«h²hh³hÇh´NubjF)�”}”(hŒ.**ERROR**: An error occurred during the test. ”h]”hï)�”}”(hŒ-**ERROR**: An error occurred during the test.”h]”(jú)�”}”(hŒ **ERROR**”h]”hŒERROR”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jùhjFubhŒ$: An error occurred during the test.”…”�”}”(hjFh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´MhjBubah}”(h]”h ]”h"]”h$]”h&]”uh1jEhj«h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”j“j”uh1j@h³hÇh´MhjŒh²hubeh}”(h]”Œ test-results”ah ]”h"]”Œ test results”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒExample Kernel Log Output”h]”hŒExample Kernel Log Output”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjvh²hh³hÇh´Mubhï)�”}”(hŒYWhen running a test, you will see log entries similar to the following in the kernel log:”h]”hŒYWhen running a test, you will see log entries similar to the following in the kernel log:”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´Mhjvh²hubj4)�”}”(hŒÇ[ 1234.567890] mmc0: Starting tests of card mmc0:0001... [ 1234.567891] mmc0: Test case 4. Basic read (with data verification)... [ 1234.567892] mmc0: Result: OK [ 1234.567893] mmc0: Tests completed.”h]”hŒÇ[ 1234.567890] mmc0: Starting tests of card mmc0:0001... [ 1234.567891] mmc0: Test case 4. Basic read (with data verification)... [ 1234.567892] mmc0: Result: OK [ 1234.567893] mmc0: Tests completed.”…”�”}”hj•sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjC‰jDŒnone”jF}”uh1j3h³hÇh´Mhjvh²hubhï)�”}”(hŒeIn this example, test case 4 (Basic read with data verification) was executed, and the result was OK.”h]”hŒeIn this example, test case 4 (Basic read with data verification) was executed, and the result was OK.”…”�”}”(hj¥h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M hjvh²hubeh}”(h]”Œexample-kernel-log-output”ah ]”h"]”Œexample kernel log output”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´MubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒ Contributing”h]”hŒ Contributing”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhj»h²hh³hÇh´M$ubhï)�”}”(hŒ©Contributions to the `mmc_test` framework are welcome. Please follow the standard Linux kernel contribution guidelines and submit patches to the appropriate maintainers.”h]”(hŒContributions to the ”…”�”}”(hjÌh²hh³Nh´Nubhù)�”}”(hŒ `mmc_test`”h]”hŒmmc_test”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1høhjÌubhŒŠ framework are welcome. Please follow the standard Linux kernel contribution guidelines and submit patches to the appropriate maintainers.”…”�”}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M&hj»h²hubeh}”(h]”Œ contributing”ah ]”h"]”Œ contributing”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M$ubhÉ)�”}”(hhh]”(hÎ)�”}”(hŒContact”h]”hŒContact”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhjôh²hh³hÇh´M)ubhï)�”}”(hŒWFor more information or to report issues, please contact the MMC subsystem maintainers.”h]”hŒWFor more information or to report issues, please contact the MMC subsystem maintainers.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hîh³hÇh´M+hjôh²hubeh}”(h]”Œcontact”ah ]”h"]”Œcontact”ah$]”h&]”uh1hÈhhÊh²hh³hÇh´M)ubeh}”(h]”Œmmc-test-framework”ah ]”h"]”Œmmc test framework”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”jOŒ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”jEŒ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”}”(j jj¶j³jjjgjªj§j‰j†jsjpj¸jµjñjîjjuŒ nametypes”}”(j ‰j¶‰jj‰jª‰j‰‰js‰j¸‰jñ‰j‰uh}”(jhÊj³hÝjgj¹j§jmj†j­jpjŒjµjvjîj»jjôuŒ 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.