<?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: Launching LS1046 ARDB with non-original DDR4 module in Layerscape</title>
    <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320560#M16500</link>
    <description>&lt;P&gt;I move this code to ATF.&lt;/P&gt;&lt;P&gt;Fix build defenitions (disable ECC due to my modules is non-ECC):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Снимок экрана_20260219_131343.png" style="width: 926px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/377344iB428A1AC0251B403/image-size/large?v=v2&amp;amp;px=999" role="button" title="Снимок экрана_20260219_131343.png" alt="Снимок экрана_20260219_131343.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I build ATF, burn the loader to SD,try to boot. The booting is failed on BL2 stage:&lt;/P&gt;&lt;P&gt;NOTICE: BL2: v2.12.0(debug):lf-6.12.34-2.1.0-dirty&lt;BR /&gt;NOTICE: BL2: Built : 17:59:52, Feb 13 2026&lt;BR /&gt;INFO: Configuring TrustZone Controller&lt;BR /&gt;VERBOSE: TrustZone : Configuring region 0 (TZC Interface Base=0x1500000 sec_attr=0x0, ns_devs=0x0)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 1)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = fbe00000, top = ffdfffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0x0)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 2)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = ffe00000, top = ffffffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 3)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = 80000000, top = fbdfffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 4)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = 880000000, top = bffffffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;INFO: BL2: Doing platform setup&lt;BR /&gt;INFO: BL2: Loading image id 3&lt;BR /&gt;VERBOSE: FIP header looks OK.&lt;BR /&gt;VERBOSE: Using FIP&lt;BR /&gt;INFO: Loading image id=3 at address 0xfbe00000&lt;/P&gt;</description>
    <pubDate>Fri, 20 Feb 2026 07:00:02 GMT</pubDate>
    <dc:creator>altu</dc:creator>
    <dc:date>2026-02-20T07:00:02Z</dc:date>
    <item>
      <title>Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2318326#M16475</link>
      <description>&lt;P&gt;I'm performing experiments with LS1046ARDB board. I built ATF &amp;amp; UBoot from scratch from NXP Git code, everything was working OK.&lt;BR /&gt;Then I decided to change the DDR4 memory module from original to MTA8ATF1G64AZ-3G2R1(8G,non-ecc,PC4-3200AA-UA2-11).&lt;/P&gt;&lt;P&gt;To make sure I'm doing everything correctly, here's my sequence of actions when trying to run the LS1046 ARDB with a different memory module:&lt;BR /&gt;1) Select "SD card" as a RCW source on the ls1046ardb&lt;BR /&gt;2) Build the required RCW from the NXP GIT repository (boot from SD, memory speed 2100 MT/S).&lt;BR /&gt;3) Write the resulting RCW to the SD card at the correct offset.&lt;BR /&gt;4) Run the board.&lt;BR /&gt;5) Run QCVS, create a DDR Calibration Project, and select SPD reading.&lt;BR /&gt;6) After successfully reading the SPD, run memory validation.&lt;BR /&gt;7) After successful validation, I obtain the source files with the DDR controller initialization code for different use scenarios:&lt;BR /&gt;- pbi_commands_1.txt - for initialization in PBL&lt;BR /&gt;- uboot_ddr1.c - for initialization in uboot&lt;BR /&gt;- InitDdrRegisters.c - initialization in a bare-metal application (???)&lt;BR /&gt;- ddr_init.c - initialization in ATF (BL2-BL31)&lt;BR /&gt;&amp;nbsp; &amp;nbsp;ddr1.h&lt;BR /&gt;&amp;nbsp; &amp;nbsp;platform_def1.h&lt;/P&gt;&lt;P&gt;I'm interested in initialization within ATF(at BL2 stage), so I'm using &lt;STRONG&gt;ONLY&lt;/STRONG&gt; ddr_init.c, ddr1.h, and platform_def1.h.&lt;BR /&gt;Since I'm using a DDR module with SPD reading, I &lt;STRONG&gt;DO&amp;nbsp;NOT&lt;/STRONG&gt; define CONFIG_STATIC_DDR. (so const struct ddr_cfg_regs static_2100 is &lt;STRONG&gt;NOT&lt;/STRONG&gt; used)&lt;BR /&gt;As I understand, from ddr_init.c I only need the following:&lt;/P&gt;&lt;P&gt;static const struct rc_timing rcz[] = { ..... };&lt;/P&gt;&lt;P&gt;static const struct board_timing ram[] = { .... };&lt;/P&gt;&lt;P&gt;int ddr_board_options(struct ddr_info *priv)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; int ret;&lt;BR /&gt;&amp;nbsp; struct memctl_opt *popts = &amp;amp;priv-&amp;gt;opt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (popts-&amp;gt;rdimm) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;debug("RDIMM parameters not set.\n");&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return -EINVAL;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; ret = cal_board_params(priv, ram, ARRAY_SIZE(ram));&lt;BR /&gt;&amp;nbsp; if (ret != 0) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return ret;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; popts-&amp;gt;wrlvl_override = U(1);&lt;BR /&gt;&amp;nbsp; popts-&amp;gt;wrlvl_sample = U(0x0); /* 32 clocks */&lt;BR /&gt;&amp;nbsp; popts-&amp;gt;cpo_sample = U(0x61);&lt;BR /&gt;&amp;nbsp; popts-&amp;gt;ddr_cdr1 = DDR_CDR1_DHC_EN |&lt;BR /&gt;&amp;nbsp; DDR_CDR1_ODT(DDR_CDR_ODT_80ohm);&lt;BR /&gt;&amp;nbsp; popts-&amp;gt;ddr_cdr2 = DDR_CDR2_ODT(DDR_CDR_ODT_80ohm) |&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DDR_CDR2_VREF_TRAIN_EN |&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DDR_CDR2_VREF_RANGE_2;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;popts-&amp;gt;bstopre = U(0);&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;long long init_ddr(void) { ... skipped ... }&lt;/P&gt;&lt;P&gt;I transfer this data to ddr_init.c for the ls1046 ardb ATF project(taken from the NXP GIT), change memory type to non-ecc,&lt;/P&gt;&lt;P&gt;then build the ATF.&lt;/P&gt;&lt;P&gt;I upload the resulting bootloader image to the SD card and boot the board with the new bootloader.&lt;/P&gt;&lt;P&gt;9) During boot, the following steps should run: PBL-&amp;gt;BL2-&amp;gt;BL31-&amp;gt;BL33(Uboot).&lt;BR /&gt;I expect the successful boot, but in fact I get the following:&lt;/P&gt;&lt;P&gt;NOTICE: BL2: v2.12.0(debug):lf-6.12.34-2.1.0-dirty&lt;BR /&gt;NOTICE: BL2: Built : 17:59:52, Feb 13 2026&lt;BR /&gt;INFO: Configuring TrustZone Controller&lt;BR /&gt;VERBOSE: TrustZone : Configuring region 0 (TZC Interface Base=0x1500000 sec_attr=0x0, ns_devs=0x0)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 1)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = fbe00000, top = ffdfffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0x0)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 2)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = ffe00000, top = ffffffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 3)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = 80000000, top = fbdfffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 4)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = 880000000, top = bffffffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;INFO: BL2: Doing platform setup&lt;BR /&gt;INFO: BL2: Loading image id 3&lt;BR /&gt;VERBOSE: FIP header looks OK.&lt;BR /&gt;VERBOSE: Using FIP&lt;BR /&gt;INFO: Loading image id=3 at address 0xfbe00000&lt;/P&gt;&lt;P&gt;I repeat all the steps with original ardb memory module and finally get a successful boot, everything works just fine.&lt;/P&gt;&lt;P&gt;So what can be the problem? Why does the board only work with the original module and not with a non-original one, even if calibration with the non-original module was successful?&lt;/P&gt;</description>
      <pubDate>Sat, 14 Feb 2026 20:58:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2318326#M16475</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-14T20:58:59Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2318630#M16482</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/258341"&gt;@altu&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;You need to calibrate your DDR, please&amp;nbsp;&lt;SPAN&gt;use the QCVS DDRv tool in order to get the optimized DDR initialization parameters and used them in ATF software.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;please review the next community case&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;A href="https://community.nxp.com/t5/Layerscape/ls1046ardb-Exchange-DDR4-DIMM-to-other-DIMM-2GB-then-boot-failed/m-p/2297674" target="_blank"&gt;https://community.nxp.com/t5/Layerscape/ls1046ardb-Exchange-DDR4-DIMM-to-other-DIMM-2GB-then-boot-failed/m-p/2297674&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;follow the steps mentioned.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;best regards&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;LFGP&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Feb 2026 14:56:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2318630#M16482</guid>
      <dc:creator>LFGP</dc:creator>
      <dc:date>2026-02-16T14:56:37Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2318792#M16483</link>
      <description>&lt;P&gt;Good day,&amp;nbsp;&lt;SPAN class=""&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/203371" target="_self"&gt;&lt;SPAN class=""&gt;LFGP!&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Thank you for the answer and for advice to perform the DDR validation with QCVS and CodeWarrior TAP.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;The problem is that I've &lt;STRONG&gt;already&lt;/STRONG&gt; performed a successful calibration of my memory module installed on LS1046 ARDB with QCVS using CodeWarrior TAP. (I mentioned this fact in my initial message - point 5-7). More to say - the ATF boots OK with received calibration data on LS1046 ARDB, but &lt;STRONG&gt;ONLY IN CASE of defining&amp;nbsp;CONFIG_STATIC_DDR &lt;/STRONG&gt;in ATF build configuration(I think this fact is a proof that at least static values of ddr controller registers,received from QCVS, are correct).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;The problem is that I don't want to define&amp;nbsp;&lt;STRONG&gt;CONFIG_STATIC_DDR&lt;/STRONG&gt;. As I understand, in this case ATF performs some kind of "calibration" and calculates values of DDR controller registers by itself during the boot proces - the only information needed for this from QCVS validtion&amp;nbsp; is the following stuff from ddr_init.c:&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;*static const struct rc_timing rcz&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;* static const struct board_timing ram&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;*int ddr_board_options(struct ddr_info *priv) {....}&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;*long long init_ddr(void) {&amp;nbsp; ... }&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;I provide this stuff to ATF, build it, but ATF is failing to boot.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;If I do the same steps(calibrating, building ATF etc) mentioned above, but with &lt;STRONG&gt;the original ARDB memory module&lt;/STRONG&gt; - everything works OK even in case of&lt;STRONG&gt;"non-CONFIG_STATIC_DDR"&lt;/STRONG&gt; build.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;That's why I'm wondering - why in case of &lt;STRONG&gt;"non-CONFIG_STATIC_DDR"&lt;/STRONG&gt;&amp;nbsp;build&amp;nbsp; everything &lt;STRONG&gt;works fine&lt;/STRONG&gt; with original module and &lt;STRONG&gt;doesn't work at all&lt;/STRONG&gt; with non-original module, even after repeating the same steps. It seems to me that a calibration algorithms inside the ATF code are optimized only for one type of DDR4 module - the module that comes with ls1046ardb.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Feb 2026 22:20:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2318792#M16483</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-16T22:20:07Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2319608#M16490</link>
      <description>&lt;P&gt;dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/258341"&gt;@altu&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;you need to get the right calibration values for your specific DDR module.&lt;/P&gt;
&lt;P&gt;Did you&amp;nbsp; run the DDRv tool to get the values ?&lt;/P&gt;
&lt;P&gt;please, share the validation results&amp;nbsp; (screenshots please)&lt;/P&gt;
&lt;P&gt;best regard&amp;nbsp;&lt;/P&gt;
&lt;P&gt;LFGP&lt;/P&gt;</description>
      <pubDate>Wed, 18 Feb 2026 17:08:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2319608#M16490</guid>
      <dc:creator>LFGP</dc:creator>
      <dc:date>2026-02-18T17:08:31Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320555#M16498</link>
      <description>&lt;P&gt;Good day,&amp;nbsp;&lt;SPAN class=""&gt; &lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/203371" target="_self"&gt;&lt;SPAN class=""&gt;LFGP&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Of course, I ran QCVS validation, otherwise I wouldn't write the post:)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Here goes screenshots:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;Validation result:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN class=""&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="no_ecc_6.jpg" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/377341iAD5DE38D1787BDC9/image-size/large?v=v2&amp;amp;px=999" role="button" title="no_ecc_6.jpg" alt="no_ecc_6.jpg" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Feb 2026 06:55:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320555#M16498</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-20T06:55:58Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320558#M16499</link>
      <description>&lt;P&gt;DDR init code,generated for my module:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="staticddr.png" style="width: 658px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/377342i299116024BF3B421/image-size/large?v=v2&amp;amp;px=999" role="button" title="staticddr.png" alt="staticddr.png" /&gt;&lt;/span&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dynamddr.png" style="width: 436px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/377343i427B5932D2E9B64B/image-size/large?v=v2&amp;amp;px=999" role="button" title="dynamddr.png" alt="dynamddr.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Feb 2026 06:57:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320558#M16499</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-20T06:57:07Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320560#M16500</link>
      <description>&lt;P&gt;I move this code to ATF.&lt;/P&gt;&lt;P&gt;Fix build defenitions (disable ECC due to my modules is non-ECC):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Снимок экрана_20260219_131343.png" style="width: 926px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/377344iB428A1AC0251B403/image-size/large?v=v2&amp;amp;px=999" role="button" title="Снимок экрана_20260219_131343.png" alt="Снимок экрана_20260219_131343.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I build ATF, burn the loader to SD,try to boot. The booting is failed on BL2 stage:&lt;/P&gt;&lt;P&gt;NOTICE: BL2: v2.12.0(debug):lf-6.12.34-2.1.0-dirty&lt;BR /&gt;NOTICE: BL2: Built : 17:59:52, Feb 13 2026&lt;BR /&gt;INFO: Configuring TrustZone Controller&lt;BR /&gt;VERBOSE: TrustZone : Configuring region 0 (TZC Interface Base=0x1500000 sec_attr=0x0, ns_devs=0x0)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 1)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = fbe00000, top = ffdfffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0x0)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 2)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = ffe00000, top = ffffffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 3)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = 80000000, top = fbdfffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;VERBOSE: TrustZone : Configuring region (TZC Interface Base: 0x1500000, region_no = 4)...&lt;BR /&gt;VERBOSE: TrustZone : ... base = 880000000, top = bffffffff,&lt;BR /&gt;VERBOSE: TrustZone : ... sec_attr = 0x3, ns_devs = 0xffffffff)&lt;BR /&gt;INFO: BL2: Doing platform setup&lt;BR /&gt;INFO: BL2: Loading image id 3&lt;BR /&gt;VERBOSE: FIP header looks OK.&lt;BR /&gt;VERBOSE: Using FIP&lt;BR /&gt;INFO: Loading image id=3 at address 0xfbe00000&lt;/P&gt;</description>
      <pubDate>Fri, 20 Feb 2026 07:00:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320560#M16500</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-20T07:00:02Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320565#M16501</link>
      <description>&lt;P&gt;Then I fix build defenitions again: I define CONFIG_STAT:=1&amp;nbsp; and rebuild ATF. Everything is working just fine - Uboot loads and works just as planned. My DDR4 module -&amp;nbsp;MTA8ATF1G64AZ-3G2R1(8G,non-ecc,PC4-3200AA-UA2-11).&lt;/P&gt;&lt;P&gt;After that I return the original ADRB DDR4 module to the board and repeat all calibration process for the original DDR module. Then get generated DDR init code and build ATF with it. Everything works OK, regardless to&amp;nbsp;CONFIG_STAT.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Feb 2026 07:07:52 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2320565#M16501</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-20T07:07:52Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2321459#M16508</link>
      <description>&lt;P&gt;Dear&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/258341"&gt;@altu&lt;/a&gt;&amp;nbsp;, I hope you are doing well.&lt;/P&gt;
&lt;P&gt;please review the next link&lt;/P&gt;
&lt;P&gt;&lt;A href="https://dmitry-trefilov.github.io/2024/12/21/you-validated-ddr-memory-what-next/" target="_blank"&gt;https://dmitry-trefilov.github.io/2024/12/21/you-validated-ddr-memory-what-next/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;thanks for your patience.&lt;/P&gt;</description>
      <pubDate>Mon, 23 Feb 2026 19:34:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2321459#M16508</guid>
      <dc:creator>LFGP</dc:creator>
      <dc:date>2026-02-23T19:34:45Z</dc:date>
    </item>
    <item>
      <title>Re: Launching LS1046 ARDB with non-original DDR4 module</title>
      <link>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2322096#M16514</link>
      <description>&lt;P&gt;Yes, modifying QCVS generated values according to information from the link really helped, thank you! Why this issue hasn't been fixed yet,I wonder...&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Feb 2026 19:57:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/Launching-LS1046-ARDB-with-non-original-DDR4-module/m-p/2322096#M16514</guid>
      <dc:creator>altu</dc:creator>
      <dc:date>2026-02-24T19:57:31Z</dc:date>
    </item>
  </channel>
</rss>

