<?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>LayerscapeのトピックDDR initialization fails on a cusotom board based on LS1028A</title>
    <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081888#M15634</link>
    <description>&lt;P&gt;Hi, we've been trying to bring-up DDR on our custom board based on LS1028A.&lt;/P&gt;&lt;P&gt;We do not use SPD, we have 5 discrete (4 + ECC) modules soldered on the board.&lt;/P&gt;&lt;P&gt;The memory we've been using is IS43QR85120B-083RBLI&lt;/P&gt;&lt;P&gt;Below are trace lenghts on our PCB for each module.&lt;/P&gt;&lt;P&gt;The RCW has been taken from LS1028A-RDB.&lt;/P&gt;&lt;P&gt;For some initial testing, we've added support in TF-A for our board with ddr_init returning -1 just to see if anything works - indeed it works, we are able to reach this step, we see logs printed out on the console.&lt;/P&gt;&lt;P&gt;Below some of the information about our PCB&lt;/P&gt;&lt;P&gt;DQS Length CK [mm] Length DQS [mm] Difference (CK - DQS) [mm] Rounded Difference [mm]&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="54px" class=""&gt;DQS0&lt;/TD&gt;&lt;TD width="76px" class=""&gt;62.50715&lt;/TD&gt;&lt;TD width="81px" class=""&gt;44.20325&lt;/TD&gt;&lt;TD width="77px" class=""&gt;18.30390&lt;/TD&gt;&lt;TD width="40px" class=""&gt;18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS1&lt;/TD&gt;&lt;TD class=""&gt;76.64270&lt;/TD&gt;&lt;TD class=""&gt;33.37230&lt;/TD&gt;&lt;TD class=""&gt;43.27040&lt;/TD&gt;&lt;TD class=""&gt;43&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS2&lt;/TD&gt;&lt;TD class=""&gt;91.49900&lt;/TD&gt;&lt;TD class=""&gt;30.91965&lt;/TD&gt;&lt;TD class=""&gt;60.57935&lt;/TD&gt;&lt;TD class=""&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS3&lt;/TD&gt;&lt;TD class=""&gt;105.84010&lt;/TD&gt;&lt;TD class=""&gt;30.60260&lt;/TD&gt;&lt;TD class=""&gt;75.23750&lt;/TD&gt;&lt;TD class=""&gt;75&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS8&lt;/TD&gt;&lt;TD class=""&gt;120.28730&lt;/TD&gt;&lt;TD class=""&gt;36.08540&lt;/TD&gt;&lt;TD class=""&gt;84.20190&lt;/TD&gt;&lt;TD class=""&gt;84&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DDR Wizzard configuration settings:&lt;BR /&gt;- autoconfigruration&lt;/P&gt;&lt;P&gt;- discrete DRAM&lt;/P&gt;&lt;P&gt;- Type: DDR 4&lt;/P&gt;&lt;P&gt;- Rank/Chip select: 1&lt;/P&gt;&lt;P&gt;- tCL: 11 clocks&lt;/P&gt;&lt;P&gt;- ECC (disabled for the purpose of 1st step of DDR validation)&lt;/P&gt;&lt;P&gt;- DRAM configuration 4Gb: 512Mb x8&lt;/P&gt;&lt;P&gt;- DRAM speed rating: 1600 MT/s&lt;/P&gt;&lt;P&gt;- CLKS to DQS (values are negative as our DQS lines are shorter that CLK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; - 18, -43, -60, -75 (ECC skipped for now)&lt;/P&gt;&lt;P&gt;Once the Wizzard has been finished, I manually changed DQ mapping to match the signal routes on our board.&lt;/P&gt;&lt;P&gt;The problem is that literally none of the validation steps pass.&lt;/P&gt;&lt;P&gt;I would be grateful if anyone could give me some hint, where we should look for source of our problems.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 16 Apr 2025 16:02:08 GMT</pubDate>
    <dc:creator>pb3</dc:creator>
    <dc:date>2025-04-16T16:02:08Z</dc:date>
    <item>
      <title>DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081888#M15634</link>
      <description>&lt;P&gt;Hi, we've been trying to bring-up DDR on our custom board based on LS1028A.&lt;/P&gt;&lt;P&gt;We do not use SPD, we have 5 discrete (4 + ECC) modules soldered on the board.&lt;/P&gt;&lt;P&gt;The memory we've been using is IS43QR85120B-083RBLI&lt;/P&gt;&lt;P&gt;Below are trace lenghts on our PCB for each module.&lt;/P&gt;&lt;P&gt;The RCW has been taken from LS1028A-RDB.&lt;/P&gt;&lt;P&gt;For some initial testing, we've added support in TF-A for our board with ddr_init returning -1 just to see if anything works - indeed it works, we are able to reach this step, we see logs printed out on the console.&lt;/P&gt;&lt;P&gt;Below some of the information about our PCB&lt;/P&gt;&lt;P&gt;DQS Length CK [mm] Length DQS [mm] Difference (CK - DQS) [mm] Rounded Difference [mm]&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="54px" class=""&gt;DQS0&lt;/TD&gt;&lt;TD width="76px" class=""&gt;62.50715&lt;/TD&gt;&lt;TD width="81px" class=""&gt;44.20325&lt;/TD&gt;&lt;TD width="77px" class=""&gt;18.30390&lt;/TD&gt;&lt;TD width="40px" class=""&gt;18&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS1&lt;/TD&gt;&lt;TD class=""&gt;76.64270&lt;/TD&gt;&lt;TD class=""&gt;33.37230&lt;/TD&gt;&lt;TD class=""&gt;43.27040&lt;/TD&gt;&lt;TD class=""&gt;43&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS2&lt;/TD&gt;&lt;TD class=""&gt;91.49900&lt;/TD&gt;&lt;TD class=""&gt;30.91965&lt;/TD&gt;&lt;TD class=""&gt;60.57935&lt;/TD&gt;&lt;TD class=""&gt;60&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS3&lt;/TD&gt;&lt;TD class=""&gt;105.84010&lt;/TD&gt;&lt;TD class=""&gt;30.60260&lt;/TD&gt;&lt;TD class=""&gt;75.23750&lt;/TD&gt;&lt;TD class=""&gt;75&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=""&gt;DQS8&lt;/TD&gt;&lt;TD class=""&gt;120.28730&lt;/TD&gt;&lt;TD class=""&gt;36.08540&lt;/TD&gt;&lt;TD class=""&gt;84.20190&lt;/TD&gt;&lt;TD class=""&gt;84&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DDR Wizzard configuration settings:&lt;BR /&gt;- autoconfigruration&lt;/P&gt;&lt;P&gt;- discrete DRAM&lt;/P&gt;&lt;P&gt;- Type: DDR 4&lt;/P&gt;&lt;P&gt;- Rank/Chip select: 1&lt;/P&gt;&lt;P&gt;- tCL: 11 clocks&lt;/P&gt;&lt;P&gt;- ECC (disabled for the purpose of 1st step of DDR validation)&lt;/P&gt;&lt;P&gt;- DRAM configuration 4Gb: 512Mb x8&lt;/P&gt;&lt;P&gt;- DRAM speed rating: 1600 MT/s&lt;/P&gt;&lt;P&gt;- CLKS to DQS (values are negative as our DQS lines are shorter that CLK)&lt;/P&gt;&lt;P&gt;&amp;nbsp; - 18, -43, -60, -75 (ECC skipped for now)&lt;/P&gt;&lt;P&gt;Once the Wizzard has been finished, I manually changed DQ mapping to match the signal routes on our board.&lt;/P&gt;&lt;P&gt;The problem is that literally none of the validation steps pass.&lt;/P&gt;&lt;P&gt;I would be grateful if anyone could give me some hint, where we should look for source of our problems.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 16:02:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081888#M15634</guid>
      <dc:creator>pb3</dc:creator>
      <dc:date>2025-04-16T16:02:08Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081890#M15635</link>
      <description>Just forgot to mention, most tests end with ERR_DETECT -&amp;gt; ACE error 0x00000001</description>
      <pubDate>Wed, 16 Apr 2025 16:06:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081890#M15635</guid>
      <dc:creator>pb3</dc:creator>
      <dc:date>2025-04-16T16:06:26Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081929#M15636</link>
      <description>&lt;P&gt;One more thing - we in fact use LS1027A, but I don't think it's much difference in this context.&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 17:43:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2081929#M15636</guid>
      <dc:creator>pb3</dc:creator>
      <dc:date>2025-04-16T17:43:47Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2082102#M15637</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Please refer to DDRv user manual&amp;nbsp;&lt;A href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fuser-guide%2FQCVS_DDR_User_Guide.pdf" target="_blank" rel="noopener" shape="rect"&gt;https://www.nxp.com/docs/en/user-guide/QCVS_DDR_User_Guide.pdf&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;If the customer uses Discrete DDR, in DDR configuration panel, please select “Configuration mode” as “Auto configuration” and “Discreate DRAM”, and configure board and DDR controller related settings according to the custom board. &lt;STRONG&gt;Then in the project, please configure DDR related configuration parameters in “properties” panel according to the DDR data sheet.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2025 02:01:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2082102#M15637</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2025-04-17T02:01:02Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2082250#M15639</link>
      <description>Hi yipingwang, thanks for the response!&lt;BR /&gt;I've browsed this document many times as well as watched one of the videos you've recorded, but still I'm unsure about few things.&lt;BR /&gt;I would be glad if you could answer few of my questions:&lt;BR /&gt;- what if my DQS lines are longer than CLK? Should I put negative values in CLKS to DQS boxes during the DDR wizzard?&lt;BR /&gt;- do I need to load any image for the purpose of DDR validation, besides the PBL? In other words, if I e.g. change DQ mapping, is QVCS able to program the required registers during the validation?&lt;BR /&gt;- If our board is very similiar to ls1028ardb - at least looking at the RCW I really don't see major difference (pin muxing may be different), can I just read PBL from LS1028ARDB and use it for the purpose of DDR validation on my board?&lt;BR /&gt;- I've browsed through some topics on the forum, and I noticed that someone had similiar problem with ERR_DETEC ACE, and one of your collegues asked about HRESET and DDR reset relation (&lt;A href="https://community.nxp.com/t5/QorIQ/How-to-bring-up-the-DDR-controller-in-the-LS1046A/m-p/728369/highlight/true#M5852" target="_blank"&gt;https://community.nxp.com/t5/QorIQ/How-to-bring-up-the-DDR-controller-in-the-LS1046A/m-p/728369/highlight/true#M5852&lt;/A&gt;) is it relevant for LS1028a based boards? May it be the source of ERR_DETECT ACE errors during validation or is it rather not relevant?</description>
      <pubDate>Thu, 17 Apr 2025 06:07:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2082250#M15639</guid>
      <dc:creator>pb3</dc:creator>
      <dc:date>2025-04-17T06:07:55Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2083151#M15645</link>
      <description>We corrected our DDR Reset it now follows HRESET, however the issue remain the same. We constantly see ACE error being raised in each step of validation. None of the steps succeeded.&lt;BR /&gt;We double-checked DQ mapping and it matches as expected.&lt;BR /&gt;What else should we check?&lt;BR /&gt;</description>
      <pubDate>Fri, 18 Apr 2025 07:53:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2083151#M15645</guid>
      <dc:creator>pb3</dc:creator>
      <dc:date>2025-04-18T07:53:04Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2083754#M15653</link>
      <description>&lt;P&gt;Discussing with the AE team.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Apr 2025 08:41:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2083754#M15653</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2025-04-21T08:41:32Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization fails on a cusotom board based on LS1028A</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2084505#M15655</link>
      <description>&lt;P&gt;A1: CLK to DQS skew can be negative value or positive value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A2: only need to load RCW/PBL image before running QCVS.&amp;nbsp; DQ mapping is read from SPD for DIMM or is set manually as per the board layout for the discrete DRAM.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A3: If your board is very similar with LS1028ARDB with the same DDR rate, it's ok to use the same settings of RCW, otherwise, the settings of your RCW should be consistent with your board design.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A4: DDR_ERR_DETECT[ACE] bit set with the message "Validation cannot proceed due to other DDR hardware or software issues!" may be caused as these:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - The training sequence DDRC follows to calibrate the read data path was not able to complete. This would probably only happen if there was a hard failure on the memory interface caused by board-level issues or incorrect controller settings.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Incorrect termination of MDICx signals.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Write leveling calibration was not able to complete. This relates to improper settings of the DDR_WRLVL_CNTL register or board-level issues.&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;DDR timging parameters include different aspects:&amp;nbsp; DRAM-specific timing parameters (from DRAM data sheet) and board-specific timing parameters.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Before running QCVS validations, it needs set many proper timing parameters in Properties tab of QCVS tool.&lt;/P&gt;
&lt;P&gt;e.g.&amp;nbsp; - DQ_mapping lanes setting (depend on board design).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - tCL, tRCD, tRP, tRAS specified usually as tCL-tRCD-tRP-tRAS. These timings are measured in bus clock cycles on the custom board for discrete DRAM (or read from SPD for DIMM).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - tWR, tRRD, tWTR, etc. These timings are set as per the DRAM data sheet.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The board-specific timing parameters can be optimized by QCVS Validations, then update these parameters in atf/plat/nxp/soc-ls1028/ls1028axxx/ddr_init.c.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Apr 2025 09:33:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-fails-on-a-cusotom-board-based-on-LS1028A/m-p/2084505#M15655</guid>
      <dc:creator>yipingwang</dc:creator>
      <dc:date>2025-04-22T09:33:30Z</dc:date>
    </item>
  </channel>
</rss>

