<?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: DDR4 Configuration for LX2160A Problem in Layerscape</title>
    <link>https://community.nxp.com/t5/Layerscape/DDR4-Configuration-for-LX2160A-Problem/m-p/1633576#M12256</link>
    <description>&lt;P&gt;Please add&lt;/P&gt;
&lt;P&gt;#define CONFIG_DDR_NODIMM&lt;/P&gt;
&lt;P&gt;in the board .h file: “../plat/nxp/soc-lx2160/lx2160ardb/platform_def.h”&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add/fill the “struct dimm_params&lt;/P&gt;
&lt;P&gt;ddr_raw_timing = {}” in the board ddr_init.c file&lt;/P&gt;
&lt;P&gt;&amp;nbsp;For example for LX2160ARDB , add/update the&lt;/P&gt;
&lt;P&gt;values in the ddr_raw_timing:&lt;/P&gt;
&lt;P&gt;struct dimm_params ddr_raw_timing = {&lt;/P&gt;
&lt;P&gt;.n_ranks = 2,&lt;/P&gt;
&lt;P&gt;…&lt;/P&gt;
&lt;P&gt;};&lt;/P&gt;
&lt;P&gt;this needs to be after the&lt;/P&gt;
&lt;P&gt;#elif defined(CONFIG_DDR_NODIMM)&lt;/P&gt;
&lt;P&gt;this is added in the board ddr_init.c file :&lt;/P&gt;
&lt;P&gt;“../plat/nxp/soc-lx2160/lx2160ardb/ddr_init.c”&lt;/P&gt;</description>
    <pubDate>Fri, 14 Apr 2023 03:53:27 GMT</pubDate>
    <dc:creator>June_Lu</dc:creator>
    <dc:date>2023-04-14T03:53:27Z</dc:date>
    <item>
      <title>DDR4 Configuration for LX2160A Problem</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR4-Configuration-for-LX2160A-Problem/m-p/1631618#M12230</link>
      <description>&lt;P&gt;We are developing the LX2160A board. However, there is a problem in setting and proceeding as follows.&lt;/P&gt;&lt;P&gt;DDR uses DDR4 (P/N: MT40A512M16) with On Board Memory&amp;nbsp;&lt;/P&gt;&lt;P&gt;The code modification is as follows.&lt;BR /&gt;1. plat/nxp/soc-lx2160a/lx2160ardb/platform.mk CONFIG_STATIC_DDR :=1&lt;BR /&gt;The following three contents were tested while making changes.&lt;BR /&gt;NUM_OF_DDRC := 1&lt;BR /&gt;DDRC_NUM_DIMM := 1&lt;BR /&gt;DDRC_NUM_CS := 2&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. plat/nxp/soc-lx2160a/lx2160ardb/ddr_init.c&lt;BR /&gt;const struct ddr_cfg_regs static_1600 = {&lt;BR /&gt;.cs[0].bnds = 0x3ff ,&lt;BR /&gt;.cs[1].bnds = 0x3ff ,&lt;BR /&gt;.cs[0].config = 0x80050422,&lt;BR /&gt;.cs[1].config = 0x80000422,&lt;BR /&gt;.timing_cfg[3] = 0x13622100,&lt;BR /&gt;.timing_cfg[0] = 0xf1aa0018,&lt;BR /&gt;.timing_cfg[1] = 0x646a8844,&lt;BR /&gt;.timing_cfg[2] = 0x58023 ,&lt;BR /&gt;.sdram_cfg[0] = 0x65044001,&lt;BR /&gt;.sdram_cfg[1] = 0x401001 ,&lt;BR /&gt;.sdram_mode[0] = 0x6010c50 ,&lt;BR /&gt;.sdram_mode[1] = 0x280000 ,&lt;BR /&gt;.interval = 0x30c00000,&lt;BR /&gt;.data_init = 0xdeadbeef,&lt;BR /&gt;.timing_cfg[4] = 0x4502 ,&lt;BR /&gt;.timing_cfg[5] = 0x7401400 ,&lt;BR /&gt;.timing_cfg[7] = 0x3bb00000,&lt;BR /&gt;.zq_cntl = 0x8a090705,&lt;BR /&gt;.sdram_mode[1] = 0x500 ,&lt;BR /&gt;.sdram_mode[1] = 0x10240000,&lt;BR /&gt;.timing_cfg[8] = 0x9448c00 ,&lt;BR /&gt;.dq_map[0] = 0x32c57554,&lt;BR /&gt;.dq_map[1] = 0xd4bb0bd4,&lt;BR /&gt;.dq_map[2] = 0x2ec2f554,&lt;BR /&gt;.dq_map[3] = 0xd95d4001,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;const struct dimm_params static_dimm = {&lt;BR /&gt;.rdimm = 0,&lt;BR /&gt;.primary_sdram_width = 64,&lt;BR /&gt;.ec_sdram_width = 8,&lt;BR /&gt;.n_ranks = 2,&lt;BR /&gt;.device_width = 16,&lt;BR /&gt;.mirrored_dimm = 0,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;After setting as above, the following problem occurs.&lt;/P&gt;&lt;P&gt;When setting up the PHY, it is judged to be a problem in the place. Is there a way to solve this?&lt;BR /&gt;----------------Console Display --------------------&lt;BR /&gt;NOTICE: DDR PMU Firmware vision-0x1001 (vA-2019.04)&lt;BR /&gt;0x00530003: PMU10: PHY TOTALS - NUM_DBYTES 0 NUM_NIBBLES 0 NUM_ANIBS 12&lt;BR /&gt;0x00560008: PMU10: CS=0x00, TSTAGES=0x031f, HDTOUT=5, 2T=0, MMISC=0 AddrMirror=0 DRAMFreq=3200MT DramType=2&lt;BR /&gt;0x00580008: PMU10: Pstate0 MRS MR0=0x0c50 MR1=0x0601 MR2=0x1024 MR3=0x0000 MR4=0x0000 MR5=0x0000 MR6=0x0000&lt;BR /&gt;ERROR: Timeout getting mail from PHY&lt;BR /&gt;ERROR: Wait timed out: Firmware execution on PHY 0&lt;BR /&gt;ERROR: Execution FW failed (error code -60)&lt;BR /&gt;INFO: Time before programming controller 5130 ms&lt;BR /&gt;PHY handshake timeout, ddr_dsr2 = 0&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 00:24:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR4-Configuration-for-LX2160A-Problem/m-p/1631618#M12230</guid>
      <dc:creator>BeyongJong</dc:creator>
      <dc:date>2023-04-12T00:24:32Z</dc:date>
    </item>
    <item>
      <title>Re: DDR4 Configuration for LX2160A Problem</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR4-Configuration-for-LX2160A-Problem/m-p/1633576#M12256</link>
      <description>&lt;P&gt;Please add&lt;/P&gt;
&lt;P&gt;#define CONFIG_DDR_NODIMM&lt;/P&gt;
&lt;P&gt;in the board .h file: “../plat/nxp/soc-lx2160/lx2160ardb/platform_def.h”&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Add/fill the “struct dimm_params&lt;/P&gt;
&lt;P&gt;ddr_raw_timing = {}” in the board ddr_init.c file&lt;/P&gt;
&lt;P&gt;&amp;nbsp;For example for LX2160ARDB , add/update the&lt;/P&gt;
&lt;P&gt;values in the ddr_raw_timing:&lt;/P&gt;
&lt;P&gt;struct dimm_params ddr_raw_timing = {&lt;/P&gt;
&lt;P&gt;.n_ranks = 2,&lt;/P&gt;
&lt;P&gt;…&lt;/P&gt;
&lt;P&gt;};&lt;/P&gt;
&lt;P&gt;this needs to be after the&lt;/P&gt;
&lt;P&gt;#elif defined(CONFIG_DDR_NODIMM)&lt;/P&gt;
&lt;P&gt;this is added in the board ddr_init.c file :&lt;/P&gt;
&lt;P&gt;“../plat/nxp/soc-lx2160/lx2160ardb/ddr_init.c”&lt;/P&gt;</description>
      <pubDate>Fri, 14 Apr 2023 03:53:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR4-Configuration-for-LX2160A-Problem/m-p/1633576#M12256</guid>
      <dc:creator>June_Lu</dc:creator>
      <dc:date>2023-04-14T03:53:27Z</dc:date>
    </item>
  </channel>
</rss>

