<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to use use restool destroy an object for dpaa2 in Layerscape</title>
    <link>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1274894#M7986</link>
    <description>&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt; So when destroy a dpbp object, need to unload driver first, the echo dpbp.3 &amp;gt; /sys/bus/fsl-mc/drivers/fsl_mc_allocator/unbind&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;is used to unload dpbp driver, right?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Yes. It needs to unbind the device from driver with the above echo command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;SPAN&gt; Create dpbp object, need execute two commands :restool dpbp create and restool dprc assign dprc.1 --object=dpbp.3 --plugged=1 Does the restool dprc assign dprc.1 --object=dpbp.3 --plugged=1&amp;nbsp; use to trigger interrupt and load driver?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command "restool dpbp create" is used to create the dpbp object, and you can find the device has been created after this command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command "restool dprc assign ..." is used to move an object or resource from a parent container to a child container.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pay attention that it cannot bind the device to driver if the device is not plugged, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and that is why you need to run assign command with --plugged=1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="3"&gt;
&lt;LI&gt;&lt;SPAN&gt; so what does the command(restool dprc assign dprc.1 --object=dpbp.3 --plugged=1) really do?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Please refer to the above explanation. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="4"&gt;
&lt;LI&gt;&lt;SPAN&gt; Why not use restool dprc unassign dprc.1 &lt;/SPAN&gt;–&lt;SPAN&gt;object=dpbp.3, remove dpbp object from dprc.1?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It needs to unbind the device from driver first. No reason to run unassign command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="5"&gt;
&lt;LI&gt;&lt;SPAN&gt; Can you explain the command about cmd_dprc_assign and cmd_dprc_unassign?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Please refer to the above explanation. Suggest to refer to LSDKUG for more info about restool commands.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="6"&gt;
&lt;LI&gt;&lt;SPAN&gt; Do you have commnd to disable the MAC interface which will destroy the objects which are created in ls-addni,&amp;nbsp; disconnect dpmac and&amp;nbsp; dpni? &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I did not know command to do this. You may refer to script /usr/local/dpdk/dpaa2/destroy_dynamic_dpl.sh&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 11 May 2021 08:34:15 GMT</pubDate>
    <dc:creator>yipingwang</dc:creator>
    <dc:date>2021-05-11T08:34:15Z</dc:date>
    <item>
      <title>How to use use restool destroy an object for dpaa2</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1273495#M7952</link>
      <description>&lt;P&gt;Hi, experts&lt;/P&gt;&lt;P&gt;I use restool to create/destroy objects.&lt;/P&gt;&lt;P&gt;For example, create/destroy dpbp object&lt;/P&gt;&lt;P&gt;[root@TinyLSDK ~]$ restool dpbp create&lt;BR /&gt;dpbp.3 is created under dprc.1&lt;BR /&gt;[root@TinyLSDK ~]$ restool dprc assign dprc.1 --object=dpbp.3 --plugged=1&lt;BR /&gt;[ 943.367016] iommu: Adding device dpbp.3 to group 0&lt;/P&gt;&lt;P&gt;[root@TinyLSDK ~]$ echo dpbp.3 &amp;gt; /sys/bus/fsl-mc/drivers/fsl_mc_allocator/unbind&lt;BR /&gt;[root@TinyLSDK ~]$ restool dpbp destroy dpbp.3&lt;BR /&gt;dpbp.3 is destroyed&lt;BR /&gt;[ 1084.731149] iommu: Removing device dpbp.3 from group 0&lt;BR /&gt;[root@TinyLSDK ~]$&lt;/P&gt;&lt;P&gt;I want to know how /sys/bus/fsl-mc/drivers/fsl_mc_allocator/unbind works?&lt;/P&gt;&lt;P&gt;where is the source code for the implementation of unbind? I don't find something about unbind in fsl-mc-allocator.c?&lt;/P&gt;&lt;P&gt;I see the restool command: cmd_dprc_unassign in dprc_command.c. I think if want to unbind a object, should call the dprc unassign, just like when we create an object we need to call dprc assign.&lt;/P&gt;&lt;P&gt;Could you introduce the implementation process of unbind in detail?&lt;/P&gt;&lt;P&gt;Thank you very much!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 May 2021 07:49:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1273495#M7952</guid>
      <dc:creator>Caishuang_1</dc:creator>
      <dc:date>2021-05-07T07:49:11Z</dc:date>
    </item>
    <item>
      <title>Re: How to use use restool destroy an object for dpaa2</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1273932#M7964</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Please refer to&amp;nbsp;Documentation/ABI/testing/sysfs-bus-fsl-mc&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;What: /sys/bus/fsl-mc/drivers/.../unbind&lt;BR /&gt;Description:&lt;BR /&gt;Writing a device location to this file will cause the&lt;BR /&gt;driver to attempt to unbind from the device found at&lt;BR /&gt;this location. The format for the location is Object.Id&lt;BR /&gt;and is the same as found in /sys/bus/fsl-mc/devices/.&lt;BR /&gt;For example:&lt;BR /&gt;# echo dpni.2 &amp;gt; /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;For the source code, please refer to "fsl_mc_allocator_remove" function in&amp;nbsp;drivers/bus/fsl-mc/fsl-mc-allocator.c in Linux Kernel source code.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 08 May 2021 02:55:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1273932#M7964</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2021-05-08T02:55:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to use use restool destroy an object for dpaa2</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1274134#M7970</link>
      <description>&lt;P&gt;Hi, yiping&lt;/P&gt;&lt;P&gt;Thanks for your answers about restool, &amp;nbsp;I have a few questions want to check with you.&lt;/P&gt;&lt;P&gt;For example create/destroy dpbp object.&lt;/P&gt;&lt;P&gt;[root@TinyLSDK ~]$ restool dpbp create&lt;BR /&gt;dpbp.3 is created under dprc.1&lt;BR /&gt;[root@TinyLSDK ~]$ restool dprc assign dprc.1 --object=dpbp.3 --plugged=1&lt;BR /&gt;[ 943.367016] iommu: Adding device dpbp.3 to group 0&lt;/P&gt;&lt;P&gt;[root@TinyLSDK ~]$ echo dpbp.3 &amp;gt; /sys/bus/fsl-mc/drivers/fsl_mc_allocator/unbind&lt;BR /&gt;[root@TinyLSDK ~]$ restool dpbp destroy dpbp.3&lt;BR /&gt;dpbp.3 is destroyed&lt;BR /&gt;[ 1084.731149] iommu: Removing device dpbp.3 from group 0&lt;BR /&gt;[root@TinyLSDK ~]$&lt;/P&gt;&lt;P&gt;I know dprc-driver.c file set interrupt (dprc_setup_irq), when create a dpbp object, dprc trigger interrupt, load fsl-mc-allocator driver.&lt;/P&gt;&lt;P&gt;So when destroy a dpbp object, need to unload driver first, the echo dpbp.3 &amp;gt; /sys/bus/fsl-mc/drivers/fsl_mc_allocator/unbind is used to unload dpbp driver, right?&lt;/P&gt;&lt;P&gt;Create dpbp object, need execute two commands :restool dpbp create and restool dprc assign dprc.1 --object=dpbp.3 --plugged=1 &amp;nbsp;&lt;/P&gt;&lt;P&gt;Does the restool dprc assign dprc.1 --object=dpbp.3 --plugged=1 &amp;nbsp;use to trigger interrupt and load driver?&lt;/P&gt;&lt;P&gt;I test on vxworks that only execute restool dpbp create , also can trigger dprc interrupt and load driver, &amp;nbsp;so what does the command(restool dprc assign dprc.1 --object=dpbp.3 --plugged=1) really do?&lt;/P&gt;&lt;P&gt;I see function fsl_mc_allocator_remove()used to remove mc device from the resource pool, that is unload the dpbp driver, remove dpbp device from system.&lt;/P&gt;&lt;P&gt;Why not use restool dprc unassign dprc.1 &lt;SPAN&gt;–&lt;/SPAN&gt;object=dpbp.3, remove dpbp object from dprc.1?&lt;/P&gt;&lt;P&gt;Can you explain the command about cmd_dprc_assign and cmd_dprc_unassign?&lt;/P&gt;&lt;P&gt;I see script provide ls-addni dpmac.3 to enable a MAC interface, this command call restool to create dpbp, dpcon, dpmcp, dpni etc objects, and connect dpmac to dpni.&lt;/P&gt;&lt;P&gt;Do you have commnd to disable the MAC interface which will destroy the objects which are created in ls-addni, &amp;nbsp;disconnect dpmac and &amp;nbsp;dpni? So we don&lt;SPAN&gt;’&lt;/SPAN&gt;t need to destroy every object respectively?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 May 2021 02:02:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1274134#M7970</guid>
      <dc:creator>Caishuang_1</dc:creator>
      <dc:date>2021-05-10T02:02:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to use use restool destroy an object for dpaa2</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1274894#M7986</link>
      <description>&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt; So when destroy a dpbp object, need to unload driver first, the echo dpbp.3 &amp;gt; /sys/bus/fsl-mc/drivers/fsl_mc_allocator/unbind&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;is used to unload dpbp driver, right?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Yes. It needs to unbind the device from driver with the above echo command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;SPAN&gt; Create dpbp object, need execute two commands :restool dpbp create and restool dprc assign dprc.1 --object=dpbp.3 --plugged=1 Does the restool dprc assign dprc.1 --object=dpbp.3 --plugged=1&amp;nbsp; use to trigger interrupt and load driver?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command "restool dpbp create" is used to create the dpbp object, and you can find the device has been created after this command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command "restool dprc assign ..." is used to move an object or resource from a parent container to a child container.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pay attention that it cannot bind the device to driver if the device is not plugged, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and that is why you need to run assign command with --plugged=1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="3"&gt;
&lt;LI&gt;&lt;SPAN&gt; so what does the command(restool dprc assign dprc.1 --object=dpbp.3 --plugged=1) really do?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Please refer to the above explanation. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="4"&gt;
&lt;LI&gt;&lt;SPAN&gt; Why not use restool dprc unassign dprc.1 &lt;/SPAN&gt;–&lt;SPAN&gt;object=dpbp.3, remove dpbp object from dprc.1?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It needs to unbind the device from driver first. No reason to run unassign command.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="5"&gt;
&lt;LI&gt;&lt;SPAN&gt; Can you explain the command about cmd_dprc_assign and cmd_dprc_unassign?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Please refer to the above explanation. Suggest to refer to LSDKUG for more info about restool commands.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL start="6"&gt;
&lt;LI&gt;&lt;SPAN&gt; Do you have commnd to disable the MAC interface which will destroy the objects which are created in ls-addni,&amp;nbsp; disconnect dpmac and&amp;nbsp; dpni? &lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I did not know command to do this. You may refer to script /usr/local/dpdk/dpaa2/destroy_dynamic_dpl.sh&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 11 May 2021 08:34:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-use-use-restool-destroy-an-object-for-dpaa2/m-p/1274894#M7986</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2021-05-11T08:34:15Z</dc:date>
    </item>
  </channel>
</rss>

