<?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: LS1046A EP reset in Layerscape</title>
    <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847008#M14176</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Have you tried using the watchdog timer in order to reset the system ? Instead of doing a hard reset, you can configure the watchdog timer to automatically force a reset in case the cpu hangs.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 15 Apr 2024 09:34:35 GMT</pubDate>
    <dc:creator>yipingwang</dc:creator>
    <dc:date>2024-04-15T09:34:35Z</dc:date>
    <item>
      <title>LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1833536#M14113</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;We have a board with a LS1046A as PCIe endpoint. Now when the CPU hangs itself we need to make a hard reset. This will also clear out the PCIe registers with BARs and MSI data. I'm now trying to save the necessary contents to restore them after the reset so the communication with the PCIe host (PC) will continue to work.&lt;/P&gt;&lt;P&gt;I thought of using the OCRAM but couldn't find whether this keeps the content in a hard reset or not, first tests indicate not. Is there some other area that I can use to keep data over a hard reset or do I have to keep them off-CPU, as in a NvRam or Eeprom? Is there a better way to reset the CPU? I've seen the core soft resets, but they need the cores to still be working to be executed.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Fri, 22 Mar 2024 08:06:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1833536#M14113</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-03-22T08:06:46Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1846926#M14174</link>
      <description>&lt;P&gt;I'm now trying to issue core soft resets, however I must be missing something as nothing happens.&lt;/P&gt;&lt;P&gt;// set and enable interrupt 196, edge trigger&lt;BR /&gt;// trigger&lt;BR /&gt;GICD_ICFGR[]=...&lt;BR /&gt;GICD_ITARGETSR[]=...&lt;BR /&gt;// irq's are group 1&lt;BR /&gt;GICD_IGROUPR[]=...&lt;BR /&gt;GICD_IGRPMODR[]=...&lt;BR /&gt;&amp;nbsp;// enable interrupt&lt;BR /&gt;GICD_ISENABLER[]=...&lt;/P&gt;&lt;P&gt;// enable soft reset&lt;BR /&gt;uint32* pEnable = (uint32*)0x01570204;&lt;BR /&gt;setbe32(pEnable, 0x80000000);&lt;BR /&gt;// set vector&lt;BR /&gt;uint32* pVector = (uint32*)0x01570220;&lt;BR /&gt;setbe32(&amp;amp;pVector[0], 0x80000000 &amp;gt;&amp;gt; 2);&lt;BR /&gt;// issue reset&lt;BR /&gt;uint32* pReset = (uint32*)0x01570130;&lt;BR /&gt;setbe32(&amp;amp;pReset[0], 0x80000000);&lt;/P&gt;&lt;P&gt;Do I need to set other registers as well? Is there somewhere an example?&lt;BR /&gt;I know that I need to provide a place to jump to where a WFI instruction is,&lt;BR /&gt;but the CPU never comes there, it just continues to work. I'm thinking that&lt;BR /&gt;writing to the register to issue the interrupt 196 may actually work but the&lt;BR /&gt;interrupt is pending somewhere. Where could I look if the interrupt is&lt;BR /&gt;actually issued and pending?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Mon, 15 Apr 2024 08:27:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1846926#M14174</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-04-15T08:27:14Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847008#M14176</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Have you tried using the watchdog timer in order to reset the system ? Instead of doing a hard reset, you can configure the watchdog timer to automatically force a reset in case the cpu hangs.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Apr 2024 09:34:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847008#M14176</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-04-15T09:34:35Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847022#M14177</link>
      <description>&lt;P&gt;Thanks. But we'd also like to be able to issue a reset even if the CPU is not hanging. And on the other hand an automatic reset would clear the state the CPU is in and therefore preventing us from examining what went wrong.&lt;/P&gt;&lt;P&gt;So what is missing in my code to issue a core reset on demand? Do you have an example?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 15 Apr 2024 09:47:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847022#M14177</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-04-15T09:47:44Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847026#M14178</link>
      <description>&lt;P&gt;Discussing with the AE team.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Apr 2024 09:50:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1847026#M14178</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-04-15T09:50:21Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851240#M14197</link>
      <description>Do you have any new information?</description>
      <pubDate>Mon, 22 Apr 2024 06:27:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851240#M14197</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-04-22T06:27:58Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851424#M14198</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Have you referred to Section 4.4.3 Core Soft Reset of LS1046A RM for your implementation ? Attaching the RM just in case. Also where are you running this code, uboot or linux ? &lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2024 07:52:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851424#M14198</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-04-22T07:52:47Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851448#M14199</link>
      <description>Yes, that's the steps I followed. We use a different OS (neither u-boot nor linux), assume bare-metal.</description>
      <pubDate>Mon, 22 Apr 2024 08:22:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851448#M14199</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-04-22T08:22:16Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851449#M14200</link>
      <description>&lt;P&gt;Got it.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Apr 2024 08:23:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1851449#M14200</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-04-22T08:23:45Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1858412#M14242</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Just wondering if you're still on it.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 13:04:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1858412#M14242</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-05-02T13:04:35Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1859242#M14249</link>
      <description>&lt;P&gt;&lt;SPAN&gt;For the sake of understanding the real issue at hand. Can you explain why would you want to do a soft reset of the core ?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 06 May 2024 00:07:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1859242#M14249</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-05-06T00:07:29Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1859460#M14252</link>
      <description>&lt;P&gt;I thought I already explained that in my previous posts. If we don't have communication to the CPU anymore we'd like to issue a core reset as this will bring the CPU to a defined state without clearing the PCIe registers. We don't want to use the watchdog as we'd like to examine the bad state first. And we'd also like to issue a reset even if there's no problem.&lt;/P&gt;&lt;P&gt;I'm slightly intrigued by your question. Is it not possible to issue the core resets as described in the manual?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 06 May 2024 06:59:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1859460#M14252</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-05-06T06:59:18Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1859488#M14253</link>
      <description>&lt;P&gt;I will discuss with the AE team.&lt;/P&gt;</description>
      <pubDate>Mon, 06 May 2024 07:24:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1859488#M14253</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-05-06T07:24:08Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1862867#M14267</link>
      <description>&lt;P&gt;&lt;SPAN&gt;It is possible to do a soft-reset. As you have seen in the RM we support soft core reset on a hardware level. However after checking internally, we got to know that the SDK doesn't have any support for it in the software for LS1048 and so it is not tested. If you still wish to pursue it, you may try and debug it on your own. Some pointers that may be helpful for you as mentioned in my previous responses:-&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. You can check - Interrupt Set-Pending Registers, GICD_ISPENDRn - It will tell you if there's a pending interrupt on the processor. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. Also after you run your program, you can take a dump of the registers that you are writing to, to verify that the values are getting reflected after the register write operation. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. In the code snippet that you sent :- &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// enable soft reset&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32* pEnable = (uint32*)0x01570204;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;setbe32(pEnable, 0x80000000);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;you can verify if this is setting the 0th bit of CORE Soft Reset Enable Register (SCFG_CORESRENCR) 0x01570204&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2024 22:59:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1862867#M14267</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2024-05-09T22:59:30Z</dc:date>
    </item>
    <item>
      <title>Re: LS1046A EP reset</title>
      <link>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1864458#M14282</link>
      <description>&lt;P&gt;I did some more testing. To enable I can also write 0xFFFFFFFF as the other bits are not used anyway:&lt;/P&gt;&lt;P&gt;uint32* pEnable = (uint32*)0x01570204;&lt;BR /&gt;setbe32(pEnable, 0xFFFFFFFF);&lt;/P&gt;&lt;P&gt;After writing all bits in the register are set. Also for actually issuing the reset only one bit its used so I can just write all of them:&lt;/P&gt;&lt;P&gt;uint32* pReset = (uint32*)0x01570130;&lt;BR /&gt;setbe32(pReset, 0xFFFFFFFF);&lt;/P&gt;&lt;P&gt;Still after writing this no register in the GIC area (0x01410000+) did change, not ISPEND or any other. Are there other things I can check?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Mon, 13 May 2024 12:55:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/LS1046A-EP-reset/m-p/1864458#M14282</guid>
      <dc:creator>fcenedese</dc:creator>
      <dc:date>2024-05-13T12:55:48Z</dc:date>
    </item>
  </channel>
</rss>

