<?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: DDR initialization failure on custom LS1046A-based board in Layerscape</title>
    <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1315071#M8590</link>
    <description>&lt;P&gt;We have solved this issue. The cause was a combination of two factors:&lt;/P&gt;&lt;P&gt;1. QCVS by default generates a DQ swizzling/remapping pattern in the dq_map registers. We don't have any swizzling on the board, so we had to set dq_map[0..3] to 0 to set a 1:1 bit mapping. There is another thread about this here: &lt;A href="https://community.nxp.com/t5/CodeWarrior-for-QorIQ/DDR4-Memory-Validation-Error-Message/m-p/606956" target="_blank"&gt;https://community.nxp.com/t5/CodeWarrior-for-QorIQ/DDR4-Memory-Validation-Error-Message/m-p/606956&lt;/A&gt;&lt;/P&gt;&lt;P&gt;2. According to erratum A007864 there are problems running 16-bit data widths above 1333 MT/s. We have a 32-bit data width (2x ICs with 16 bits per IC) and it seems this also meets the criteria of A007864, as DDRv failed until we reduced the bus speed to 1300 MT/s.&lt;/P&gt;&lt;P&gt;I am curious why QCVS by default generates such strange DQ remapping values.&lt;/P&gt;</description>
    <pubDate>Thu, 29 Jul 2021 07:01:26 GMT</pubDate>
    <dc:creator>DN31415</dc:creator>
    <dc:date>2021-07-29T07:01:26Z</dc:date>
    <item>
      <title>DDR initialization failure on custom LS1046A-based board</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1314343#M8567</link>
      <description>&lt;H1&gt;&lt;FONT size="5"&gt;Summary&lt;/FONT&gt;&lt;/H1&gt;&lt;P&gt;We're attempting to bring up a custom board based on the NXP LS1046A SoC. We're currently struggling with DDR initialization errors in BL2 (ATF). After experimenting with the DDR controller settings, we see one of the following three outcomes:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;DDR initialization and training fails with error code (debug[1] value of) 0x3002. We are unable to find any documentation on the meaning of the error bits.&lt;/LI&gt;&lt;LI&gt;DDR initialization and training times out (D_INIT is not released).&lt;/LI&gt;&lt;LI&gt;DDR initialization and training appears to succeed, but BL3 fails to load, with error messages indicative of memory malfunction:&lt;UL&gt;&lt;LI&gt;ERROR: mmap_add_region_check() failed. error -22&lt;/LI&gt;&lt;LI&gt;ERROR: SD read error - DMA error = 10000000&lt;/LI&gt;&lt;LI&gt;ERROR: Read error = fffffffb&lt;/LI&gt;&lt;LI&gt;WARNING: Failed to obtain reference to image id=3 (-2)&lt;/LI&gt;&lt;LI&gt;ERROR: BL2: Failed to load image (-2)&lt;/LI&gt;&lt;LI&gt;Authentication failure&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;H2&gt;&lt;FONT size="4"&gt;Hardware Overview&lt;/FONT&gt;&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;SoC part: LS1046AXE8P1A.&lt;/LI&gt;&lt;LI&gt;Discrete SDRAM part: 2x MT40A1G16RC-062E IT:B, single chip select, 32-bit data width (16 bits per component).&lt;/LI&gt;&lt;LI&gt;Boot source: micro-SD card.&lt;/LI&gt;&lt;LI&gt;Clock input: DIFF_SYSCLK is a 100 MHz AC-LVDS signal from an LMK05318B PLL. It conforms to the requirements in section 3.7.6 of the LS1046A Datasheet. SYSCLK and DDRCLK are not used and are tied to GND.&lt;/LI&gt;&lt;LI&gt;SoC strapping:&lt;UL&gt;&lt;LI&gt;CFG_DRAM = 0 = DDR4&lt;/LI&gt;&lt;LI&gt;CFG_ENG_USE0 = 0 = DIFF_SYSCLK&lt;/LI&gt;&lt;LI&gt;CFG_ENG_USE1 = 1 = Use internal LVDS termination&lt;/LI&gt;&lt;LI&gt;CFG_RCW_SRC[8..0] = 0_0100_0000 = Boot from SD/MMC&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;LI&gt;RCW settings:&lt;UL&gt;&lt;LI&gt;400 MHz platform clock (SYS_PLL_RAT=4)&lt;/LI&gt;&lt;LI&gt;1600 MHz DDR clock (MEM_PLL_RAT=16)&lt;/LI&gt;&lt;LI&gt;1200 MHz PLL1 (CPU) (CGA_PLL1_RAT=12)&lt;/LI&gt;&lt;LI&gt;1200 MHz CPU core clock from PLL1 /1 (C1_PLL_SEL=0)&lt;/LI&gt;&lt;LI&gt;DDRCLK not used (DDR_REFCLK_SEL=1)&lt;/LI&gt;&lt;LI&gt;DDR_FDBK_MULT=2&lt;/LI&gt;&lt;LI&gt;DRAM_LAT=1&lt;/LI&gt;&lt;LI&gt;PBI_src=6&lt;/LI&gt;&lt;LI&gt;SB_EN=0&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;H1&gt;&lt;FONT size="5"&gt;What We've Checked / Tried&lt;/FONT&gt;&lt;/H1&gt;&lt;H2&gt;&lt;FONT size="4"&gt;Hardware&lt;/FONT&gt;&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;All SoC input voltages, clocks and resets have been checked against the LS1046A datasheet specifications for levels and timing.&lt;/LI&gt;&lt;LI&gt;The 800 MHz DDR bus clock (generated by the SoC) is present and there is activity on the DDR control signals.&lt;/LI&gt;&lt;/UL&gt;&lt;H2&gt;&lt;FONT size="4"&gt;Firmware&lt;/FONT&gt;&lt;/H2&gt;&lt;UL&gt;&lt;LI&gt;The QCVS DDR configuration settings have been checked against the MT40A1G16RC-062E IT:B datasheet.&lt;/LI&gt;&lt;LI&gt;All relevant CCSR registers have been checked in ATF to ensure correct strapping and RCW values.&lt;/LI&gt;&lt;LI&gt;Several recent versions of the ATF firmware from the qoriq-components Git repository have been tested.&lt;/LI&gt;&lt;LI&gt;The DDR configuration register values printed on the console have been checked against the intended settings from QCVS's generated code, and all match.&lt;/LI&gt;&lt;LI&gt;We confirmed that the workaround code for errata A008511, A009803, A009942 and A010165 have been applied.&lt;/LI&gt;&lt;LI&gt;We tried a few variations of platform clock frequency and DDR controller frequency.&lt;/LI&gt;&lt;LI&gt;We tried a few variations of the CLK-to-DQS skew values. (The values shown in the QCVS screenshot below are the real board values from Altium.)&lt;/LI&gt;&lt;/UL&gt;&lt;H1&gt;&lt;FONT size="5"&gt;Reference Data&lt;/FONT&gt;&lt;/H1&gt;&lt;H2&gt;&lt;FONT size="4"&gt;RCW Source File&lt;/FONT&gt;&lt;/H2&gt;&lt;DIV class="x_code x_panel x_pdl x_conf-macro x_output-block"&gt;&lt;DIV class="x_codeContent x_panelContent x_pdl"&gt;&lt;DIV&gt;&lt;DIV class="x_syntaxhighlighter x_sh-midnight x_nogutter x_csharp"&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="x_code"&gt;&lt;DIV class="x_container"&gt;&lt;DIV class="x_line x_number6 x_index5 x_alt1"&gt;#include &amp;lt;ls1046a.rcwi&amp;gt;&lt;/DIV&gt;&lt;DIV class="x_line x_number7 x_index6 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number8 x_index7 x_alt1"&gt;/* clocking */&lt;/DIV&gt;&lt;DIV class="x_line x_number9 x_index8 x_alt2"&gt;SYSCLK_FREQ=600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SYSCLK input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 600 * 166.667 kHz =&amp;nbsp; 100 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number10 x_index9 x_alt1"&gt;SYS_PLL_RAT=4&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; /* platform clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 4 * SYSCLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 400 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number11 x_index10 x_alt2"&gt;MEM_PLL_RAT=16&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 clock&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; = 16 * SYSCLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1600 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number12 x_index11 x_alt1"&gt;CGA_PLL1_RAT=12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PLL1 (CPU)&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; = 12 * SYSCLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1200 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number13 x_index12 x_alt2"&gt;CGA_PLL2_RAT=12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PLL2 (FMan, eSDHC, QSPI) = 12 * SYSCLK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1200 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number14 x_index13 x_alt1"&gt;C1_PLL_SEL=0&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; /* CPU core clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = PLL1 /1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1200 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number15 x_index14 x_alt2"&gt;HWA_CGA_M1_CLK_SEL=6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* FMan clock&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; = PLL2 /2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 600 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number16 x_index15 x_alt1"&gt;HWA_CGA_M2_CLK_SEL=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* eSDHC*6, QSPI*64 clocks&amp;nbsp; = PLL2 /1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1200 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number17 x_index16 x_alt2"&gt;DDR_REFCLK_SEL=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use differential SYSCLK, not DDRCLK, for DDR PLL */&lt;/DIV&gt;&lt;DIV class="x_line x_number18 x_index17 x_alt1"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number19 x_index18 x_alt2"&gt;/* I/O bank voltages */&lt;/DIV&gt;&lt;DIV class="x_line x_number20 x_index19 x_alt1"&gt;TVDD_VSEL=1&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; /* TVDD I/O domain: 2.5 V */&lt;/DIV&gt;&lt;DIV class="x_line x_number21 x_index20 x_alt2"&gt;DVDD_VSEL=2&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; /* DVDD I/O domain: 3.3 V */&lt;/DIV&gt;&lt;DIV class="x_line x_number22 x_index21 x_alt1"&gt;EVDD_VSEL=2&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; /* EVDD I/O domain: 3.3 V */&lt;/DIV&gt;&lt;DIV class="x_line x_number23 x_index22 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number24 x_index23 x_alt1"&gt;/* SerDes 1 settings */&lt;/DIV&gt;&lt;DIV class="x_line x_number25 x_index24 x_alt2"&gt;SRDS_PRTCL_S1=4403&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x1133: 0=XFI.9, 1=XFI.10, 2=SGMII.5, 3=SGMII.6 */&lt;/DIV&gt;&lt;DIV class="x_line x_number26 x_index25 x_alt1"&gt;SRDS_REFCLK_SEL_S1=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use separate reference clocks for PLL1 and PLL2 */&lt;/DIV&gt;&lt;DIV class="x_line x_number27 x_index26 x_alt2"&gt;SRDS_PLL_PD_S1=2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* power down PLL1 */&lt;/DIV&gt;&lt;DIV class="x_line x_number28 x_index27 x_alt1"&gt;SRDS_PLL_REF_CLK_SEL_S1=3&amp;nbsp;&amp;nbsp; /* PLL1 @ N/A, PLL2 @ 156.25 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number29 x_index28 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number30 x_index29 x_alt1"&gt;/* SerDes 2 settings */&lt;/DIV&gt;&lt;DIV class="x_line x_number31 x_index30 x_alt2"&gt;SRDS_PRTCL_S2=21879&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 0x5577: 0=PCIe.1 x1, 1=PCIe.2 x1, 2/3=PCIe.3 x2 */&lt;/DIV&gt;&lt;DIV class="x_line x_number32 x_index31 x_alt1"&gt;SRDS_REFCLK_SEL_S2=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use separate reference clocks for PLL1 and PLL2 */&lt;/DIV&gt;&lt;DIV class="x_line x_number33 x_index32 x_alt2"&gt;SRDS_PLL_REF_CLK_SEL_S2=3&amp;nbsp;&amp;nbsp; /* PLL1 @ 100 MHz, PLL2 @ 100 MHz */&lt;/DIV&gt;&lt;DIV class="x_line x_number34 x_index33 x_alt1"&gt;SRDS_DIV_PEX_S2=0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PCIe can train up to 8 Gb/s */&lt;/DIV&gt;&lt;DIV class="x_line x_number35 x_index34 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number36 x_index35 x_alt1"&gt;/* memory settings */&lt;/DIV&gt;&lt;DIV class="x_line x_number37 x_index36 x_alt2"&gt;DDR_FDBK_MULT=2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* (reserved) DDR PLL feedback path selection and multiplication enabler */&lt;/DIV&gt;&lt;DIV class="x_line x_number38 x_index37 x_alt1"&gt;DRAM_LAT=1&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; /* 8-8-8 or higher latency DRAMs */&lt;/DIV&gt;&lt;DIV class="x_line x_number39 x_index38 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number40 x_index39 x_alt1"&gt;/* boot settings */&lt;/DIV&gt;&lt;DIV class="x_line x_number41 x_index40 x_alt2"&gt;PBI_src=6&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; /* fetch pre-boot initialization data from SD/MMC */&lt;/DIV&gt;&lt;DIV class="x_line x_number42 x_index41 x_alt1"&gt;SB_EN=0&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;&amp;nbsp; /* secure boot is not enabled */&lt;/DIV&gt;&lt;DIV class="x_line x_number43 x_index42 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number44 x_index43 x_alt1"&gt;/* pin multiplexing */&lt;/DIV&gt;&lt;DIV class="x_line x_number45 x_index44 x_alt2"&gt;IFC_GRP_A_EXT=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use QSPI A signals, not FTM5, GPIO or IFC */&lt;/DIV&gt;&lt;DIV class="x_line x_number46 x_index45 x_alt1"&gt;IFC_GRP_D_EXT=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use QSPI B signals, not FTM6, GPIO or IFC */&lt;/DIV&gt;&lt;DIV class="x_line x_number47 x_index46 x_alt2"&gt;IFC_GRP_E1_BASE=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use GPIO2 signals, not FTM7, IFC or QSPI B DATA3 */&lt;/DIV&gt;&lt;DIV class="x_line x_number48 x_index47 x_alt1"&gt;IFC_GRP_F_EXT=1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use QSPI A signals, not IFC */&lt;/DIV&gt;&lt;DIV class="x_line x_number49 x_index48 x_alt2"&gt;IIC2_EXT=1&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; /* use SDHC_CD_B and SDHC_WP, not IIC2/GPIO/FTM */&lt;/DIV&gt;&lt;DIV class="x_line x_number50 x_index49 x_alt1"&gt;IRQ_OUT=1&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; /* (reserved) */&lt;/DIV&gt;&lt;DIV class="x_line x_number51 x_index50 x_alt2"&gt;IRQ_BASE=1&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; /* use GPIO, not IRQ */&lt;/DIV&gt;&lt;DIV class="x_line x_number52 x_index51 x_alt1"&gt;UART_BASE=4&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; /* use UART1 SOUT/SIN/RTS/CTS and GPIO1_[16:22]*/&lt;/DIV&gt;&lt;DIV class="x_line x_number53 x_index52 x_alt2"&gt;USB_DRVVBUS=1&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; /* use GPIO4[29], not USB_DRVVBUS */&lt;/DIV&gt;&lt;DIV class="x_line x_number54 x_index53 x_alt1"&gt;USB_PWRFAULT=1&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; /* use GPIO4[30], not USB_PWRFAULT */&lt;/DIV&gt;&lt;DIV class="x_line x_number55 x_index54 x_alt2"&gt;EC1=5&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use FTM1 */&lt;/DIV&gt;&lt;DIV class="x_line x_number56 x_index55 x_alt1"&gt;EC2=5&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use FTM1 */&lt;/DIV&gt;&lt;DIV class="x_line x_number57 x_index56 x_alt2"&gt;EM1=1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use GPIO_3 */&lt;/DIV&gt;&lt;DIV class="x_line x_number58 x_index57 x_alt1"&gt;EM2=1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* use GPIO_4 */&lt;/DIV&gt;&lt;DIV class="x_line x_number59 x_index58 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number60 x_index59 x_alt1"&gt;/* Pre-Boot Initialization (PBI). This PBI code mostly derives&lt;/DIV&gt;&lt;DIV class="x_line x_number61 x_index60 x_alt2"&gt;&amp;nbsp;* from the LS1046A RDB sample (rcw_1800_emmcboot.rcw). */&lt;/DIV&gt;&lt;DIV class="x_line x_number62 x_index61 x_alt1"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number63 x_index62 x_alt2"&gt;.pbi&lt;/DIV&gt;&lt;DIV class="x_line x_number64 x_index63 x_alt1"&gt;// SCFG_SCRATCHRW[1:2]: 64-bit boot pointer&lt;/DIV&gt;&lt;DIV class="x_line x_number65 x_index64 x_alt2"&gt;// 0x10000000 is 64 KiB on-chip RAM (OCRAM1); PBL loads BL2 here&lt;/DIV&gt;&lt;DIV class="x_line x_number66 x_index65 x_alt1"&gt;write 0x570600, 0x00000000&lt;/DIV&gt;&lt;DIV class="x_line x_number67 x_index66 x_alt2"&gt;write 0x570604, 0x10000000&lt;/DIV&gt;&lt;DIV class="x_line x_number68 x_index67 x_alt1"&gt;.end&lt;/DIV&gt;&lt;DIV class="x_line x_number69 x_index68 x_alt2"&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV class="x_line x_number70 x_index69 x_alt1"&gt;#include &amp;lt;cci_barrier_disable.rcw&amp;gt;&amp;nbsp; // CCI: all master interfaces terminate barriers (why?)&lt;/DIV&gt;&lt;DIV class="x_line x_number71 x_index70 x_alt2"&gt;#include &amp;lt;usb_phy_freq.rcw&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // take USB1, USB2 and USB3 PHYs out of reset&lt;/DIV&gt;&lt;DIV class="x_line x_number72 x_index71 x_alt1"&gt;#include &amp;lt;pex_gen3_link.rcw&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // PCIe errata A-010477, A-008851 (re: Gen 3)&lt;/DIV&gt;&lt;DIV class="x_line x_number73 x_index72 x_alt2"&gt;#include &amp;lt;a009531.rcw&amp;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; // PCIe erratum A-009531 (re: ID0 bit)&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;&lt;H2&gt;&lt;FONT size="4"&gt;DDR Initialization Code in ATF&lt;/FONT&gt;&lt;/H2&gt;&lt;P&gt;DDR initialization code was generated by the latest version of QCVS running in CodeWarrior 11.5.0 on a Windows PC.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image2021-7-27_16-58-21.png" style="width: 647px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/151068i637CA2A003B11BF0/image-size/large?v=v2&amp;amp;px=999" role="button" title="image2021-7-27_16-58-21.png" alt="image2021-7-27_16-58-21.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;DIV class="code panel pdl conf-macro output-block"&gt;&lt;DIV class="codeContent panelContent pdl"&gt;&lt;DIV&gt;&lt;DIV class="syntaxhighlighter sh-midnight nogutter  csharp"&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="code"&gt;&lt;DIV class="container"&gt;&lt;DIV class="line number1 index0 alt2"&gt;const struct ddr_cfg_regs static_1600 = {&lt;/DIV&gt;&lt;DIV class="line number2 index1 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[0].bnds = 0xFF,&lt;/DIV&gt;&lt;DIV class="line number3 index2 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[1].bnds = 0x0100013F,&lt;/DIV&gt;&lt;DIV class="line number4 index3 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[0].config = 0x80010512,&lt;/DIV&gt;&lt;DIV class="line number5 index4 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[1].config = 0x0202,&lt;/DIV&gt;&lt;DIV class="line number6 index5 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[2].bnds = 0x0140017F,&lt;/DIV&gt;&lt;DIV class="line number7 index6 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[3].bnds = 0x018001BF,&lt;/DIV&gt;&lt;DIV class="line number8 index7 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[2].config = 0x0202,&lt;/DIV&gt;&lt;DIV class="line number9 index8 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[3].config = 0x0202,&lt;/DIV&gt;&lt;DIV class="line number10 index9 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[0].config_2 = 0x00,&lt;/DIV&gt;&lt;DIV class="line number11 index10 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[1].config_2 = 0x00,&lt;/DIV&gt;&lt;DIV class="line number12 index11 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[2].config_2 =&amp;nbsp; 0x00,&lt;/DIV&gt;&lt;DIV class="line number13 index12 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cs[3].config_2 =&amp;nbsp; 0x00,&lt;/DIV&gt;&lt;DIV class="line number14 index13 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_cfg[0] = 0xC52C0000,&lt;/DIV&gt;&lt;DIV class="line number15 index14 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_cfg[1] = 0x00401030,&lt;/DIV&gt;&lt;DIV class="line number16 index15 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[0] = 0xFF550018,&lt;/DIV&gt;&lt;DIV class="line number17 index16 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[1] = 0xBAB40C52,&lt;/DIV&gt;&lt;DIV class="line number18 index17 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[2] = 0x0048D11C,&lt;/DIV&gt;&lt;DIV class="line number19 index18 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[3] = 0x01161000,&lt;/DIV&gt;&lt;DIV class="line number20 index19 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[4] = 0xD501,&lt;/DIV&gt;&lt;DIV class="line number21 index20 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[5] = 0x03401400,&lt;/DIV&gt;&lt;DIV class="line number22 index21 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[7] = 0x23340000,&lt;/DIV&gt;&lt;DIV class="line number23 index22 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.timing_cfg[8] = 0x02116600,&lt;/DIV&gt;&lt;DIV class="line number24 index23 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.dq_map[0] = 0x32C57554,&lt;/DIV&gt;&lt;DIV class="line number25 index24 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.dq_map[1] = 0xD4BB0BD4,&lt;/DIV&gt;&lt;DIV class="line number26 index25 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.dq_map[2] = 0x2EC2F554,&lt;/DIV&gt;&lt;DIV class="line number27 index26 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.dq_map[3] = 0xD8000000,&lt;/DIV&gt;&lt;DIV class="line number28 index27 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[0] = 0x01010210,&lt;/DIV&gt;&lt;DIV class="line number29 index28 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[1] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number30 index29 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[2] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number31 index30 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[3] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number32 index31 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[4] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number33 index32 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[5] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number34 index33 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[6] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number35 index34 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[7] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number36 index35 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[8] = 0x0701,&lt;/DIV&gt;&lt;DIV class="line number37 index36 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[9] = 0x04800000,&lt;/DIV&gt;&lt;DIV class="line number38 index37 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[10] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number39 index38 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[11] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number40 index39 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[12] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number41 index40 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[13] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number42 index41 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[14] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number43 index42 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.sdram_mode[15] = 0x00,&lt;/DIV&gt;&lt;DIV class="line number44 index43 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.md_cntl = 0x00,&lt;/DIV&gt;&lt;DIV class="line number45 index44 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.interval = 0x18600618,&lt;/DIV&gt;&lt;DIV class="line number46 index45 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.data_init = 0xDEADBEEF,&lt;/DIV&gt;&lt;DIV class="line number47 index46 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.clk_cntl = 0x02800000,&lt;/DIV&gt;&lt;DIV class="line number48 index47 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.init_addr = 0x00,&lt;/DIV&gt;&lt;DIV class="line number49 index48 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.ddr_sr_cntr = 0x0,&lt;/DIV&gt;&lt;DIV class="line number50 index49 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.init_ext_addr = 0x00,&lt;/DIV&gt;&lt;DIV class="line number51 index50 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.zq_cntl = 0x8A090705,&lt;/DIV&gt;&lt;DIV class="line number52 index51 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.wrlvl_cntl[0] = 0x86750606,&lt;/DIV&gt;&lt;DIV class="line number53 index52 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.wrlvl_cntl[1] = 0x0606060B,&lt;/DIV&gt;&lt;DIV class="line number54 index53 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.wrlvl_cntl[2] = 0x0B0C0C00,&lt;/DIV&gt;&lt;DIV class="line number55 index54 alt2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cdr[0] = 0x80040000,&lt;/DIV&gt;&lt;DIV class="line number56 index55 alt1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.cdr[1] = 0x81,&lt;/DIV&gt;&lt;DIV class="line number57 index56 alt2"&gt;};&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;H2&gt;&amp;nbsp;&lt;/H2&gt;&lt;H2&gt;&lt;FONT size="4"&gt;Console Output&lt;/FONT&gt;&lt;/H2&gt;&lt;DIV class="code panel pdl conf-macro output-block"&gt;&lt;DIV class="codeContent panelContent pdl"&gt;&lt;DIV&gt;&lt;DIV class="syntaxhighlighter sh-midnight nogutter  csharp"&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class="code"&gt;&lt;DIV class="container"&gt;&lt;DIV class="line number1 index0 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; RCW BOOT SRC is SD/EMMC&lt;/DIV&gt;&lt;DIV class="line number2 index1 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; RCW BOOT SRC is SD/EMMC&lt;/DIV&gt;&lt;DIV class="line number3 index2 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; esdhc_emmc_init&lt;/DIV&gt;&lt;DIV class="line number4 index3 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Card detected successfully&lt;/DIV&gt;&lt;DIV class="line number5 index4 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; init done:&lt;/DIV&gt;&lt;DIV class="line number6 index5 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; platform clock 400000000&lt;/DIV&gt;&lt;DIV class="line number7 index6 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR PLL1 1600000000&lt;/DIV&gt;&lt;DIV class="line number8 index7 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; DDR PLL2 0&lt;/DIV&gt;&lt;DIV class="line number9 index8 alt2"&gt;NOTICE:&amp;nbsp; Using static DDR settings&lt;/DIV&gt;&lt;DIV class="line number10 index9 alt1"&gt;NOTICE:&amp;nbsp; PORSR1: 207f7fff&lt;/DIV&gt;&lt;DIV class="line number11 index10 alt2"&gt;NOTICE:&amp;nbsp; PORSR2: cf000000&lt;/DIV&gt;&lt;DIV class="line number12 index11 alt1"&gt;NOTICE:&amp;nbsp; CLKCCSR: 0&lt;/DIV&gt;&lt;DIV class="line number13 index12 alt2"&gt;NOTICE:&amp;nbsp; CL1KCGHWACSR: 30000000&lt;/DIV&gt;&lt;DIV class="line number14 index13 alt1"&gt;NOTICE:&amp;nbsp; CL2KCGHWACSR: 8000000&lt;/DIV&gt;&lt;DIV class="line number15 index14 alt2"&gt;NOTICE:&amp;nbsp; PLLC1GSR: 18&lt;/DIV&gt;&lt;DIV class="line number16 index15 alt1"&gt;NOTICE:&amp;nbsp; PLLC2GSR: 18&lt;/DIV&gt;&lt;DIV class="line number17 index16 alt2"&gt;NOTICE:&amp;nbsp; CLKPCSR: 0&lt;/DIV&gt;&lt;DIV class="line number18 index17 alt1"&gt;NOTICE:&amp;nbsp; PLLPGSR: 8&lt;/DIV&gt;&lt;DIV class="line number19 index18 alt2"&gt;NOTICE:&amp;nbsp; PLLDGSR: 80020&lt;/DIV&gt;&lt;DIV class="line number20 index19 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Time before programming controller 30 ms&lt;/DIV&gt;&lt;DIV class="line number21 index20 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Program controller registers&lt;/DIV&gt;&lt;DIV class="line number22 index21 alt1"&gt;WARNING: Warning: Optimal CPO value not set.&lt;/DIV&gt;&lt;DIV class="line number23 index22 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; total size 4 GB&lt;/DIV&gt;&lt;DIV class="line number24 index23 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Need to wait up to 2680 ms&lt;/DIV&gt;&lt;DIV class="line number25 index24 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Reading debug[9] as 0x10101010&lt;/DIV&gt;&lt;DIV class="line number26 index25 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Reading debug[10] as 0x10101010&lt;/DIV&gt;&lt;DIV class="line number27 index26 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; cpo_min 0x10&lt;/DIV&gt;&lt;DIV class="line number28 index27 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; cpo_max 0x10&lt;/DIV&gt;&lt;DIV class="line number29 index28 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; debug[28] 0x70006f&lt;/DIV&gt;&lt;DIV class="line number30 index29 alt1"&gt;WARNING: Warning: A009942 requires setting cpo_sample to 0x37&lt;/DIV&gt;&lt;DIV class="line number31 index30 alt2"&gt;ERROR:&amp;nbsp;&amp;nbsp; Found training error(s): 0x3002&lt;/DIV&gt;&lt;DIV class="line number32 index31 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080000 = 0xff&lt;/DIV&gt;&lt;DIV class="line number33 index32 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080008 = 0x100013f&lt;/DIV&gt;&lt;DIV class="line number34 index33 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080010 = 0x140017f&lt;/DIV&gt;&lt;DIV class="line number35 index34 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080018 = 0x18001bf&lt;/DIV&gt;&lt;DIV class="line number36 index35 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080080 = 0x80010512&lt;/DIV&gt;&lt;DIV class="line number37 index36 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080084 = 0x202&lt;/DIV&gt;&lt;DIV class="line number38 index37 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080088 = 0x202&lt;/DIV&gt;&lt;DIV class="line number39 index38 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x108008c = 0x202&lt;/DIV&gt;&lt;DIV class="line number40 index39 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080100 = 0x1161000&lt;/DIV&gt;&lt;DIV class="line number41 index40 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080104 = 0xff550018&lt;/DIV&gt;&lt;DIV class="line number42 index41 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080108 = 0xbab40c52&lt;/DIV&gt;&lt;DIV class="line number43 index42 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x108010c = 0x48d11c&lt;/DIV&gt;&lt;DIV class="line number44 index43 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080110 = 0xc52c0000&lt;/DIV&gt;&lt;DIV class="line number45 index44 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080114 = 0x401020&lt;/DIV&gt;&lt;DIV class="line number46 index45 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080118 = 0x1010210&lt;/DIV&gt;&lt;DIV class="line number47 index46 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080120 = 0x600041f&lt;/DIV&gt;&lt;DIV class="line number48 index47 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080124 = 0x18600618&lt;/DIV&gt;&lt;DIV class="line number49 index48 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080128 = 0xdeadbeef&lt;/DIV&gt;&lt;DIV class="line number50 index49 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080130 = 0x2800000&lt;/DIV&gt;&lt;DIV class="line number51 index50 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080160 = 0xd501&lt;/DIV&gt;&lt;DIV class="line number52 index51 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080164 = 0x3401400&lt;/DIV&gt;&lt;DIV class="line number53 index52 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x108016c = 0x23340000&lt;/DIV&gt;&lt;DIV class="line number54 index53 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080170 = 0x8a090705&lt;/DIV&gt;&lt;DIV class="line number55 index54 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080174 = 0xc6750606&lt;/DIV&gt;&lt;DIV class="line number56 index55 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080190 = 0x606060b&lt;/DIV&gt;&lt;DIV class="line number57 index56 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080194 = 0xb0c0c00&lt;/DIV&gt;&lt;DIV class="line number58 index57 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080220 = 0x701&lt;/DIV&gt;&lt;DIV class="line number59 index58 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080224 = 0x4800000&lt;/DIV&gt;&lt;DIV class="line number60 index59 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080250 = 0x2116600&lt;/DIV&gt;&lt;DIV class="line number61 index60 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080270 = 0xffff&lt;/DIV&gt;&lt;DIV class="line number62 index61 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080280 = 0xffffff77&lt;/DIV&gt;&lt;DIV class="line number63 index62 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080284 = 0xffffff77&lt;/DIV&gt;&lt;DIV class="line number64 index63 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080288 = 0x88888800&lt;/DIV&gt;&lt;DIV class="line number65 index64 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x108028c = 0xffffffff&lt;/DIV&gt;&lt;DIV class="line number66 index65 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080290 = 0x1&lt;/DIV&gt;&lt;DIV class="line number67 index66 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x10802a0 = 0x1&lt;/DIV&gt;&lt;DIV class="line number68 index67 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080400 = 0x32c57554&lt;/DIV&gt;&lt;DIV class="line number69 index68 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080404 = 0xd4bb0bd4&lt;/DIV&gt;&lt;DIV class="line number70 index69 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080408 = 0x2ec2f554&lt;/DIV&gt;&lt;DIV class="line number71 index70 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x108040c = 0xd8000000&lt;/DIV&gt;&lt;DIV class="line number72 index71 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080b20 = 0x8080&lt;/DIV&gt;&lt;DIV class="line number73 index72 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080b24 = 0x80000000&lt;/DIV&gt;&lt;DIV class="line number74 index73 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080b28 = 0x80040000&lt;/DIV&gt;&lt;DIV class="line number75 index74 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080b2c = 0x81&lt;/DIV&gt;&lt;DIV class="line number76 index75 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080bf8 = 0x20502&lt;/DIV&gt;&lt;DIV class="line number77 index76 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080bfc = 0x100&lt;/DIV&gt;&lt;DIV class="line number78 index77 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080e40 = 0x80&lt;/DIV&gt;&lt;DIV class="line number79 index78 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f04 = 0x3002&lt;/DIV&gt;&lt;DIV class="line number80 index79 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f08 = 0xe&lt;/DIV&gt;&lt;DIV class="line number81 index80 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f0c = 0x14000c20&lt;/DIV&gt;&lt;DIV class="line number82 index81 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f24 = 0x10101010&lt;/DIV&gt;&lt;DIV class="line number83 index82 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f28 = 0x10101010&lt;/DIV&gt;&lt;DIV class="line number84 index83 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f2c = 0x10101010&lt;/DIV&gt;&lt;DIV class="line number85 index84 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f30 = 0x10101010&lt;/DIV&gt;&lt;DIV class="line number86 index85 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f34 = 0x10103000&lt;/DIV&gt;&lt;DIV class="line number87 index86 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f48 = 0x1&lt;/DIV&gt;&lt;DIV class="line number88 index87 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f4c = 0x94000000&lt;/DIV&gt;&lt;DIV class="line number89 index88 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f50 = 0xd000c00&lt;/DIV&gt;&lt;DIV class="line number90 index89 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f54 = 0xb000b00&lt;/DIV&gt;&lt;DIV class="line number91 index90 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f58 = 0x16001600&lt;/DIV&gt;&lt;DIV class="line number92 index91 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f5c = 0x18001800&lt;/DIV&gt;&lt;DIV class="line number93 index92 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f60 = 0xc000000&lt;/DIV&gt;&lt;DIV class="line number94 index93 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f64 = 0x9000&lt;/DIV&gt;&lt;DIV class="line number95 index94 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f68 = 0x20&lt;/DIV&gt;&lt;DIV class="line number96 index95 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f70 = 0x70006f&lt;/DIV&gt;&lt;DIV class="line number97 index96 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080f94 = 0x80000000&lt;/DIV&gt;&lt;DIV class="line number98 index97 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fb0 = 0x3&lt;/DIV&gt;&lt;DIV class="line number99 index98 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fb4 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number100 index99 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fb8 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number101 index100 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fbc = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number102 index101 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fc0 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number103 index102 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fc4 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number104 index103 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fc8 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number105 index104 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fcc = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number106 index105 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fd0 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number107 index106 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fd4 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number108 index107 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fd8 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number109 index108 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fdc = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number110 index109 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fe0 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number111 index110 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fe4 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number112 index111 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fe8 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number113 index112 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080fec = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number114 index113 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080ff0 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number115 index114 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080ff4 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number116 index115 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080ff8 = 0x1f1f1f1f&lt;/DIV&gt;&lt;DIV class="line number117 index116 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; *0x1080ffc = 0x1f001f18&lt;/DIV&gt;&lt;DIV class="line number118 index117 alt1"&gt;ERROR:&amp;nbsp;&amp;nbsp; Writing DDR register(s) failed&lt;/DIV&gt;&lt;DIV class="line number119 index118 alt2"&gt;ERROR:&amp;nbsp;&amp;nbsp; Programing DDRC error&lt;/DIV&gt;&lt;DIV class="line number120 index119 alt1"&gt;ERROR:&amp;nbsp;&amp;nbsp; DDR init failed.&lt;/DIV&gt;&lt;DIV class="line number121 index120 alt2"&gt;NOTICE:&amp;nbsp; Incorrect DRAM0 size is defined in platfor_def.h&lt;/DIV&gt;&lt;DIV class="line number122 index121 alt1"&gt;ERROR:&amp;nbsp;&amp;nbsp; mmap_add_region_check() failed. error -22&lt;/DIV&gt;&lt;DIV class="line number123 index122 alt2"&gt;ERROR:&amp;nbsp;&amp;nbsp; mmap_add_region_check() failed. error -22&lt;/DIV&gt;&lt;DIV class="line number124 index123 alt1"&gt;NOTICE:&amp;nbsp; BL2: v1.5(debug):LSDK-19.09-update-311219-dirty&lt;/DIV&gt;&lt;DIV class="line number125 index124 alt2"&gt;NOTICE:&amp;nbsp; BL2: Built : 13:08:45, Jul 27 2021&lt;/DIV&gt;&lt;DIV class="line number126 index125 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuring TrustZone Controller&lt;/DIV&gt;&lt;DIV class="line number127 index126 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Value of region base = 7fdffffb&lt;/DIV&gt;&lt;DIV class="line number128 index127 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Value of region base = 7ffffffb&lt;/DIV&gt;&lt;DIV class="line number129 index128 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; Value of region base = fbdffffb&lt;/DIV&gt;&lt;DIV class="line number130 index129 alt1"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; BL2: Doing platform setup&lt;/DIV&gt;&lt;DIV class="line number131 index130 alt2"&gt;INFO:&amp;nbsp;&amp;nbsp;&amp;nbsp; BL2: Loading image id 3&lt;/DIV&gt;&lt;DIV class="line number132 index131 alt1"&gt;ERROR:&amp;nbsp;&amp;nbsp; SD read error - DMA error = 10000000&lt;/DIV&gt;&lt;DIV class="line number133 index132 alt2"&gt;ERROR:&amp;nbsp;&amp;nbsp; Read error = fffffffb&lt;/DIV&gt;&lt;DIV class="line number134 index133 alt1"&gt;WARNING: Failed to obtain reference to image id=3 (-2)&lt;/DIV&gt;&lt;DIV class="line number135 index134 alt2"&gt;ERROR:&amp;nbsp;&amp;nbsp; BL2: Failed to load image (-2)&lt;/DIV&gt;&lt;DIV class="line number136 index135 alt1"&gt;Authentication failure&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 28 Jul 2021 07:31:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1314343#M8567</guid>
      <dc:creator>DN31415</dc:creator>
      <dc:date>2021-07-28T07:31:28Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization failure on custom LS1046A-based board</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1315071#M8590</link>
      <description>&lt;P&gt;We have solved this issue. The cause was a combination of two factors:&lt;/P&gt;&lt;P&gt;1. QCVS by default generates a DQ swizzling/remapping pattern in the dq_map registers. We don't have any swizzling on the board, so we had to set dq_map[0..3] to 0 to set a 1:1 bit mapping. There is another thread about this here: &lt;A href="https://community.nxp.com/t5/CodeWarrior-for-QorIQ/DDR4-Memory-Validation-Error-Message/m-p/606956" target="_blank"&gt;https://community.nxp.com/t5/CodeWarrior-for-QorIQ/DDR4-Memory-Validation-Error-Message/m-p/606956&lt;/A&gt;&lt;/P&gt;&lt;P&gt;2. According to erratum A007864 there are problems running 16-bit data widths above 1333 MT/s. We have a 32-bit data width (2x ICs with 16 bits per IC) and it seems this also meets the criteria of A007864, as DDRv failed until we reduced the bus speed to 1300 MT/s.&lt;/P&gt;&lt;P&gt;I am curious why QCVS by default generates such strange DQ remapping values.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Jul 2021 07:01:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1315071#M8590</guid>
      <dc:creator>DN31415</dc:creator>
      <dc:date>2021-07-29T07:01:26Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization failure on custom LS1046A-based board</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1596060#M11824</link>
      <description>&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/189596"&gt;@DN31415&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We meet the same problem as we use MT40A1G8SA:062E，but I can't find the erratum A007864 as you refered in before replies, may you provide the erratum A007864 to me, Thanks!&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2023 01:25:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1596060#M11824</guid>
      <dc:creator>zhangthink</dc:creator>
      <dc:date>2023-02-09T01:25:31Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization failure on custom LS1046A-based board</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1596394#M11832</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/212166"&gt;@zhangthink&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;The errata can be found in the Documentation section for your SoC. I can't provide the document because NXP now requires an NDA and the document requires a Sharepoint invitation. I'm not positive but I believe this is a new policy and the document used to be publicly available...&lt;/P&gt;&lt;P&gt;If you need an NDA / invitation you will need to contact NXP, either here or via your silicon supplier.&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2023 08:36:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/1596394#M11832</guid>
      <dc:creator>DN31415</dc:creator>
      <dc:date>2023-02-09T08:36:04Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization failure on custom LS1046A-based board</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/2080994#M15625</link>
      <description>Hey DN31415 - we are using the exact same part and see exact same issues. However, if in DDR configuration tool, I try to go below 1600MT/s, I get an error. If possible, would you be able to send me your working DDR4 registers so I can compare what I'm doing wrong?&lt;BR /&gt;&lt;BR /&gt;Thank you!</description>
      <pubDate>Tue, 15 Apr 2025 15:47:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/2080994#M15625</guid>
      <dc:creator>tzaman</dc:creator>
      <dc:date>2025-04-15T15:47:08Z</dc:date>
    </item>
    <item>
      <title>Re: DDR initialization failure on custom LS1046A-based board</title>
      <link>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/2081851#M15633</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;My original NXP account seems to have been deleted, so I am replying under a newly-created account with a different username.&lt;/P&gt;&lt;P&gt;I don't have the CodeWarrior project for this board anymore, but I can provide you with the generated &lt;FONT face="courier new,courier"&gt;ddr_init.c&lt;/FONT&gt; file which is compiled into ATF. I have attached the file to this post. The file contains the DDR controller registers in the &lt;FONT face="courier new,courier"&gt;ddr_cfg_regs&lt;/FONT&gt; structure.&lt;/P&gt;&lt;P&gt;In addition, we changed the &lt;FONT face="courier new,courier"&gt;MEM_PLL_RAT&lt;/FONT&gt; field (DDR clock) in the &lt;FONT face="courier new,courier"&gt;.rcw&lt;/FONT&gt; file to 13 (meaning 13 * &lt;FONT face="courier new,courier"&gt;SYSCLK&lt;/FONT&gt;, yielding 1300 MHz assuming &lt;FONT face="courier new,courier"&gt;SYSCLK&lt;/FONT&gt; is 100 MHz).&lt;/P&gt;&lt;P&gt;Please double-check the other DDR controller settings in this file for compatibility with your board. I hope this helps!&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;David Norris&lt;/P&gt;</description>
      <pubDate>Wed, 16 Apr 2025 14:34:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/DDR-initialization-failure-on-custom-LS1046A-based-board/m-p/2081851#M15633</guid>
      <dc:creator>DN31415</dc:creator>
      <dc:date>2025-04-16T14:34:39Z</dc:date>
    </item>
  </channel>
</rss>

