#define __ASSEMBLY__

#include <ddrc_mem_map.h>
#include <ddr_phy_mem_map.h>

/*
 * Device Configuration Data (DCD)
 *
 * Each entry must have the format:
 * Addr-type           Address        Value
 *
 * where:
 *	Addr-type register length (1,2 or 4 bytes)
 *	Address	  absolute address of the register
 *	value	  value to be stored in the register
 */

/* For 800MHz DDR, DRC 400MHz operation */
#ifndef SCFW_DCD
DATA 4 0xff148000 0x00000C85    /* DRC0 bringup */
DATA 4 0xff1a0000 0x00000C85    /* DRC1 bringup */
#else
/* Set the DRC rate to 800MHz. */
uint32_t rate2 = SC_400MHZ;
pm_set_clock_rate(SC_PT, SC_R_DRC_0, SC_PM_CLK_MISC0, &rate2);
pm_set_clock_rate(SC_PT, SC_R_DRC_1, SC_PM_CLK_MISC0, &rate2);
#endif

DATA 4 0x41a40208 0x1
DATA 4 0x41d00208 0x1

DATA 4 0x41a40040 0xb
DATA 4 0x41d00040 0xb

DATA 4 0x41a40204 0x1
DATA 4 0x41d00204 0x1

/* DRAM 0 controller configuration begin */
DATA 4 DDRC_MSTR_0 0xC3080020   // Set LPDDR4, BL = 16 and active ranks
DATA 4 DDRC_RFSHTMG_0 0x002E0072   // tREFI, tRFC
DATA 4 DDRC_INIT0_0 0x40020320   // pre_cke 
DATA 4 DDRC_INIT1_0 0x00520000   // dram_rstn 
DATA 4 DDRC_INIT3_0 0x00240012   // MR1=0x54: nWR=30 BL=16;  MR2=0x2d: RL=28 WL=14
DATA 4 DDRC_INIT4_0 0x00310000   // MR3, MR13
DATA 4 DDRC_RANKCTL_0 0x0000075f   // diff_rank_wr_gap, diff_rank_rd_gap, max_rank_rd 
DATA 4 DDRC_DRAMTMG0_0 0x11110D11   // wr2pr, tFAW, tRASmax, tRASmin
DATA 4 DDRC_DRAMTMG1_0 0x0004041A   // tXP, rd2pre, tRC
DATA 4 DDRC_DRAMTMG2_0 0x04070C0D   // WL, RL, rd2wr, wr2rd
DATA 4 DDRC_DRAMTMG3_0 0x00606007   // tmrw, tmrd, tmod
DATA 4 DDRC_DRAMTMG4_0 0x08040509   // trcd, tccd, trrd, trp
DATA 4 DDRC_DRAMTMG5_0 0x02030707   // tCKCKEH, tCKCKEL, tckesr, tcke
DATA 4 DDRC_DRAMTMG6_0 0x02020005   // tckdpde, tckdpdx, tckcsx
DATA 4 DDRC_DRAMTMG7_0 0x00000302   // tckpde, tckpdx
DATA 4 DDRC_DRAMTMG12_0 0x00020300   // tCMDCKE, tCKEHCMD (=tXP?)
DATA 4 DDRC_DRAMTMG13_0 0x0a100002   // tODTLoff, tCCDMW, tPPD
DATA 4 DDRC_DRAMTMG14_0 0x00000074   // txsr
DATA 4 DDRC_ZQCTL0_0 0x0192000d   // tZQCAL, tZQLAT
DATA 4 DDRC_ZQCTL1_0 0x01400100   // tZQReset, tzq_short_interval

DATA 4 DDRC_DFITMG0_0 0x048C8206   // dfi_t_ctrl_delay, dfi_t_rddata_en, dfi_tphy_wrdata, dfi_tphy_wrlat
DATA 4 DDRC_DFITMG1_0 0x00060303   // dfi_t_wrdata_delay, dfi_t_dram_clk_disable, dfi_t_dram_clk_enable
DATA 4 DDRC_DFITMG2_0 0x00000A04   // dfi_tphy_rdcslat, dfi_tphy_wrcslat
DATA 4 DDRC_DFIMISC_0 0x00000005   // dfi_data_cs_polarity
DATA 4 DDRC_DFIUPD0_0 0x00400003   // Disable the automatic dfi_ctrlupd_req generation
DATA 4 DDRC_DFIUPD1_0 0x008000A0   // dfi_ctrlupd_req generation interval generation (min and max)
DATA 4 DDRC_DFIUPD2_0 0x80000000   // dfi_phyupd_en

DATA 4 DDRC_ADDRMAP4_0 0x00001F1F   // addrmap_col_b10 and addrmap_col_b11 set to de-activated
DATA 4 DDRC_ADDRMAP1_0 0x00080808   // addrmap_bank_b2, addrmap_bank_b1, addrmap_bank_b0
DATA 4 DDRC_ADDRMAP5_0 0x07070707   // addrmap_row_b11, addrmap_row_b10_b2, addrmap_row_b1, addrmap_row_b0

// For 24Gb configurations: Uncomment these fields: ADDRMAP0 and ADDRMAP6
// Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0
DATA 4 DDRC_ADDRMAP0_0 0x00000015   // addrmap_cs_bit0
DATA 4 DDRC_ADDRMAP6_0 0x48080707   // lpddr4_6gb_12gb_24gb = 10b; addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12

/*  
    // For 16Gb configurations: Uncomment these fields: ADDRMAP0 and ADDRMAP6
    // Address map is from MSB 28: cs, r14, r13-r0, b2-b0, c9-c0
    DATA 4 DDRC_ADDRMAP0_0 0x00000016   // addrmap_cs_bit0 (board memory)
    DATA 4 DDRC_ADDRMAP6_0 0x0F070707   // addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12 (board memory)
*/
/*  
    // For 32Gb configurations: Uncomment these fields: ADDRMAP0 and ADDRMAP6
    // Address map is from MSB 29: cs, r15, r14, r13-r0, b2-b0, c9-c0
    DATA 4 DDRC_ADDRMAP0_0 0x00000017   // addrmap_cs_bit0 (board memory)
    DATA 4 DDRC_ADDRMAP6_0 0x07070707   // addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12 (board memory)
*/

// Per QXP team, ODTMAP not use for LP4, need to confirm for QM
DATA 4 DDRC_ODTMAP_0 0x00002211   // rank[3:0]_wr_odt, rank[3:0]_wr_odt
//DATA 4 DDRC_ODTMAP_0 0x00000000   
DATA 4 DDRC_PCTRL_0_0 0x00000001   // Enable port 0

DATA 4 DDRC_DFITMG0_SHADOW_0 0x00808000

/* DRAM 1 controller initialization */
DATA 4 DDRC_MSTR_1 0xC3080020   // Set LPDDR4, BL = 16 and active ranks
DATA 4 DDRC_RFSHTMG_1 0x002E0072   // tREFI, tRFC
DATA 4 DDRC_INIT0_1 0x40020320   // pre_cke 
DATA 4 DDRC_INIT1_1 0x00520000   // dram_rstn 
DATA 4 DDRC_INIT3_1 0x00240012   // MR1=0x54: nWR=30 BL=16;  MR2=0x2d: RL=28 WL=14
DATA 4 DDRC_INIT4_1 0x00310000   // MR3, MR13
DATA 4 DDRC_RANKCTL_1 0x0000075f   // diff_rank_wr_gap, diff_rank_rd_gap, max_rank_rd 
DATA 4 DDRC_DRAMTMG0_1 0x11110D11   // wr2pr, tFAW, tRASmax, tRASmin
DATA 4 DDRC_DRAMTMG1_1 0x0004041A   // tXP, rd2pre, tRC
DATA 4 DDRC_DRAMTMG2_1 0x04070C0D   // WL, RL, rd2wr, wr2rd
DATA 4 DDRC_DRAMTMG3_1 0x00606007   // tmrw, tmrd, tmod
DATA 4 DDRC_DRAMTMG4_1 0x08040509   // trcd, tccd, trrd, trp
DATA 4 DDRC_DRAMTMG5_1 0x02030707   // tCKCKEH, tCKCKEL, tckesr, tcke
DATA 4 DDRC_DRAMTMG6_1 0x02020005   // tckdpde, tckdpdx, tckcsx
DATA 4 DDRC_DRAMTMG7_1 0x00000302   // tckpde, tckpdx
DATA 4 DDRC_DRAMTMG12_1 0x00020300   // tCMDCKE, tCKEHCMD (=tXP?)
DATA 4 DDRC_DRAMTMG13_1 0x0a100002   // tODTLoff, tCCDMW, tPPD
DATA 4 DDRC_DRAMTMG14_1 0x00000074   // txsr
DATA 4 DDRC_ZQCTL0_1 0x0192000d   // tZQCAL, tZQLAT
DATA 4 DDRC_ZQCTL1_1 0x01400100   // tZQReset, tzq_short_interval

DATA 4 DDRC_DFITMG0_1 0x048C8206   // dfi_t_ctrl_delay, dfi_t_rddata_en, dfi_tphy_wrdata, dfi_tphy_wrlat
DATA 4 DDRC_DFITMG1_1 0x00060303   // dfi_t_wrdata_delay, dfi_t_dram_clk_disable, dfi_t_dram_clk_enable
DATA 4 DDRC_DFITMG2_1 0x00000A04   // dfi_tphy_rdcslat, dfi_tphy_wrcslat
DATA 4 DDRC_DFIMISC_1 0x00000005   // dfi_data_cs_polarity
DATA 4 DDRC_DFIUPD0_1 0x00400003   // Disable the automatic dfi_ctrlupd_req generation
DATA 4 DDRC_DFIUPD1_1 0x008000A0   // dfi_ctrlupd_req generation interval generation (min and max)
DATA 4 DDRC_DFIUPD2_1 0x80000000   // dfi_phyupd_en

DATA 4 DDRC_ADDRMAP4_1 0x00001F1F   // addrmap_col_b10 and addrmap_col_b11 set to de-activated
DATA 4 DDRC_ADDRMAP1_1 0x00080808   // addrmap_bank_b2, addrmap_bank_b1, addrmap_bank_b0
DATA 4 DDRC_ADDRMAP5_1 0x07070707   // addrmap_row_b11, addrmap_row_b10_b2, addrmap_row_b1, addrmap_row_b0

// For 24Gb configurations: Uncomment these fields: ADDRMAP0 and ADDRMAP6
// Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0
DATA 4 DDRC_ADDRMAP0_1 0x00000015   // addrmap_cs_bit0
DATA 4 DDRC_ADDRMAP6_1 0x48080707   // lpddr4_6gb_12gb_24gb = 10b; addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12

/*  
    // For 16Gb configurations: Uncomment these fields: ADDRMAP0 and ADDRMAP6
    // Address map is from MSB 28: cs, r14, r13-r0, b2-b0, c9-c0
    DATA 4 DDRC_ADDRMAP0_1 0x00000016   // addrmap_cs_bit0 (board memory)
    DATA 4 DDRC_ADDRMAP6_1 0x0F070707   // addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12 (board memory)
*/
/*  
    // For 32Gb configurations: Uncomment these fields: ADDRMAP0 and ADDRMAP6
    // Address map is from MSB 29: cs, r15, r14, r13-r0, b2-b0, c9-c0
    DATA 4 DDRC_ADDRMAP0_1 0x00000017   // addrmap_cs_bit0 (board memory)
    DATA 4 DDRC_ADDRMAP6_1 0x07070707   // addrmap_row_b15, addrmap_row_b14, addrmap_row_b13, addrmap_row_b12 (board memory)
*/

// Per QXP team, ODTMAP not use for LP4, need to confirm for QM
DATA 4 DDRC_ODTMAP_1 0x00002211   // rank[3:0]_wr_odt, rank[3:0]_wr_odt
//DATA 4 DDRC_ODTMAP_1 0x00000000 
DATA 4 DDRC_PCTRL_0_1 0x00000001   // Enable port 0

DATA 4 DDRC_DFITMG0_SHADOW_1 0x00808000

DATA 4 0x41a40208 0x1
DATA 4 0x41d00208 0x1

DATA 4 0x41a40040 0xf
DATA 4 0x41d00040 0xf

DATA 4 0x41a40204 0x1
DATA 4 0x41d00204 0x1

  //-------------------------------------------
  // Configure registers for PHY initialization
  // Timings are computed for a PHY at 800MHz (DRAM at 1600MHz)
  //-------------------------------=------------
  // Set-up DRAM Configuration Register
DATA 4 DDR_PHY_DCR_0 0x0000040D   // LPDDR4 selection with 8 bank

  // Set-up byte and bit swapping registers
DATA 4 DDR_PHY_PGCR8_0 0x000F0009   // Set BSWAPMSB='b1001 (byte 0 and 1 are swapped)
DATA 4 DDR_PHY_DX0DQMAP0_0 0x00003465   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX0DQMAP1_0 0x00008271   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_DX1DQMAP0_0 0x00075632   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX1DQMAP1_0 0x00008104   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_DX2DQMAP0_0 0x00064732   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX2DQMAP1_0 0x00008015   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_DX3DQMAP0_0 0x00012574   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX3DQMAP1_0 0x00008360   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_CATR0_0 0x00141032   // Only for LPDDR3 but used here to know how LPDDR4 bytes are connected to PHY
DATA 4 DDR_PHY_CATR1_0 0x0013AAAA   // Only for LPDDR3 but used here to know how LPDDR4 bytes are connected to PHY

  // Set-up PHY General Configuration Register
  // PGCR1,4,5,6,7 are untouched
SET_BIT 4 DDR_PHY_PGCR1_0 0x00020000   // DISDIC=1 (no uMCTL2 commands can go to memory)
DATA 4 DDR_PHY_PGCR0_0 0x87001E00   // Set ADCP=1 (Address Copy)
DATA 4 DDR_PHY_PGCR2_0 0x00F06AAC   // Set tREFPRD (9*3.904us - 600)
DATA 4 DDR_PHY_PGCR3_0 0x050A1080   // CKEN/CKNEN toggling and polarity

  // Set-up PHY Timing Register
  // PTR2 is untouched
DATA 4 DDR_PHY_PTR0_0 0x32019010   // tPLLPD, tPLLGS, tPHYRST
DATA 4 DDR_PHY_PTR1_0 0x27100E10   // tPLLLOCK reduced to 4.3us, tPLLRST=9us

  // Set-up PLL Control Register
DATA 4 DDR_PHY_PLLCR0_0 0x02120000   // FREQSEL=2, CPPC=0x9
DATA 4 DDR_PHY_DX8SLbPLLCR0_0 0x02120000

  // Set-up Impedance Control Register
DATA 4 DDR_PHY_ZQCR_0 0x008A2C58   // Set ODT_MODE=0b10(LPDDR4 stype pullup)

  // ZPROG_DRAM_ODT and ZPROG_HOST_ODT = 60ohm
DATA 4 DDR_PHY_ZQ0PR0_0 0x1B9BB        // Updated ZPROG_HOST_ODT per QXP analysis
DATA 4 DDR_PHY_ZQ1PR0_0 0x1B9BB        // Updated ZPROG_HOST_ODT per QXP analysis

  // Set-up PHY Initialization Register
DATA 4 DDR_PHY_PIR_0 0x32
  // Launch initialization (set bit 0)
DATA 4 DDR_PHY_PIR_0 0x33

  //-------------------------------------------
  // Configure registers for PHY initialization
  // Timings are computed for a PHY at 800MHz (DRAM at 1600MHz)
  //-------------------------------=------------
  // Set-up DRAM 1 PHY Configuration Register
DATA 4 DDR_PHY_DCR_1 0x0000040D   // LPDDR4 selection with 8 bank

  // Set-up byte and bit swapping registers
DATA 4 DDR_PHY_PGCR8_1 0x000F0009   // Set BSWAPMSB='b1001 (byte 0 and 1 are swapped)
DATA 4 DDR_PHY_DX0DQMAP0_1 0x00003465   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX0DQMAP1_1 0x00008271   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_DX1DQMAP0_1 0x00075632   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX1DQMAP1_1 0x00008104   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_DX2DQMAP0_1 0x00064732   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX2DQMAP1_1 0x00008015   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_DX3DQMAP0_1 0x00012574   // DQ bit 0/1/2/3/4 remapping
DATA 4 DDR_PHY_DX3DQMAP1_1 0x00008360   // DQ bit 5/6/7 and DM remapping
DATA 4 DDR_PHY_CATR0_1 0x00141032   // Only for LPDDR3 but used here to know how LPDDR4 bytes are connected to PHY
DATA 4 DDR_PHY_CATR1_1 0x0013AAAA   // Only for LPDDR3 but used here to know how LPDDR4 bytes are connected to PHY

  // Set-up PHY General Configuration Register
  // PGCR1,4,5,6,7 are untouched
SET_BIT 4 DDR_PHY_PGCR1_1 0x00020000   // DISDIC=1 (no uMCTL2 commands can go to memory)
DATA 4 DDR_PHY_PGCR0_1 0x87001E00   // Set ADCP=1 (Address Copy)
DATA 4 DDR_PHY_PGCR2_1 0x00F06AAC   // Set tREFPRD (9*3.904us - 600)
DATA 4 DDR_PHY_PGCR3_1 0x050A1080   // CKEN/CKNEN toggling and polarity

  // Set-up PHY Timing Register
  // PTR2 is untouched
DATA 4 DDR_PHY_PTR0_1 0x32019010   // tPLLPD, tPLLGS, tPHYRST
DATA 4 DDR_PHY_PTR1_1 0x27100E10   // tPLLLOCK reduced to 4.3us, tPLLRST=9us

  // Set-up PLL Control Register
DATA 4 DDR_PHY_PLLCR0_1 0x02120000   // FREQSEL=2, CPPC=0x9
DATA 4 DDR_PHY_DX8SLbPLLCR0_1 0x02120000

  // Set-up Impedance Control Register
DATA 4 DDR_PHY_ZQCR_1 0x008A2C58   // Set ODT_MODE=0b10(LPDDR4 stype pullup)

  // ZPROG_DRAM_ODT and ZPROG_HOST_ODT = 60ohm
DATA 4 DDR_PHY_ZQ0PR0_1 0x1B9BB        // Updated ZPROG_HOST_ODT per QXP analysis
DATA 4 DDR_PHY_ZQ1PR0_1 0x1B9BB        // Updated ZPROG_HOST_ODT per QXP analysis

  // Set-up PHY Initialization Register
DATA 4 DDR_PHY_PIR_1 0x32
  // Launch initialization (set bit 0)
DATA 4 DDR_PHY_PIR_1 0x33

  //-------------------------------------------
  // Configure registers for DRAM initialization
  //-------------------------------------------
  // Set-up Mode Register
  // MR0, MR3, MR4, MR5 MR6 are untouched
DATA 4 DDR_PHY_MR1_0 0x24         // Set BL, WR-PRE, nWR, RPST
DATA 4 DDR_PHY_MR2_0 0x12         // Set RL=28/WL=14
DATA 4 DDR_PHY_MR3_0 0x31         // Set drive strength (40 Ohms by default)
DATA 4 DDR_PHY_MR11_0 0x04        // Set CA ODT=RZQ/4, updated per QXP analysis
DATA 4 DDR_PHY_MR22_0 0x15        // Set ODTE-CS=1 (overrides ODT_CA for CS1 as CS not shared between ranks)

/* LPDDR4 mode register writes for CA and DQ VREF settings; range=1, 27.2% */
DATA 4 DDR_PHY_MR12_0 0x48
DATA 4 DDR_PHY_MR14_0 0x48

  // Set-up DRAM Timing Parameters Register
  // DTPR6 is untouched
DATA 4 DDR_PHY_DTPR0_0 0x09221108   // tRRD, tRAS, tRP, tRTP
DATA 4 DDR_PHY_DTPR1_0 0x28200D0E   // tWLMRD, tFAW, tODTUP, tMRD
DATA 4 DDR_PHY_DTPR2_0 0x006740E7   // tRTW, tRTODT, tCMDCKE, tCKE, tVRCG, tXS
DATA 4 DDR_PHY_DTPR3_0 0x01800302   // tODX, tCCD, tDLLK, tDQSCKmax, tDQSCK (FIXME double check tDLLK)
DATA 4 DDR_PHY_DTPR4_0 0x00E10F0A   // tRFC, tWLO, tXP
DATA 4 DDR_PHY_DTPR5_0 0x11330F0A   // tRC, tRCD, tWTR

  // Set-up PHY Timing Register
DATA 4 DDR_PHY_PTR3_0 0x00186A10   // tDINIT0 - 2ms
DATA 4 DDR_PHY_PTR4_0 0x00000650   // tDINIT1 (2000ns)
DATA 4 DDR_PHY_PTR5_0 0x00027110   // tDINIT2 
DATA 4 DDR_PHY_PTR6_0 0x01C00330   // tDINIT4 (30ns), tDINIT3 (1us)

  // Set-up DATX8 Common Configuration Register
  // DXCCR is untouched

  // Set-up DDR System General Configuration Register
  // DSGCR is untouched

  // Set-up ODT Configuration Register
  // DDR ODT_CA signal is tied at boundary of DDR. Thus no need to drive it dynamically.
DATA 4 DDR_PHY_RANKIDR_0 1            // Select rank 1 to write
DATA 4 DDR_PHY_ODTCR_0 0x00000000     // ODT of rank1 disabled
DATA 4 DDR_PHY_RANKIDR_0 0            // Select rank 0 to write
DATA 4 DDR_PHY_ODTCR_0 0x00000000     // ODT of rank0 disabled

  // Set-up Anti-Aging Control Register
  // AACR is untouched

  // Set-up Data Training Address Register
  // DTAR0-3 are untouched
  // !! DTAR3 is not described in spec !!

  // Set-up AC I/O Configuration Register
  // ACIOCR1-4 are untouched
DATA 4 DDR_PHY_ACIOCR0_0 0x30070800   // PNUM2 (i.e.LPDDR4) selection  [10:11] = 0x2
DATA 4 DDR_PHY_ACIOCR5_0 0x09000000   // I/O mode = LPDDR4
  // Due to address copy set A[13] (=cke_B[0]) and A[15] (=cke_B[1]) outputs as always ON.
DATA 4 DDR_PHY_ACIOCR1_0 0x44000000

  // IOVCR0-1, DXnGCR0-4??, CALBYP

  // Set-up VREF Training Control Registers
DATA 4 DDR_PHY_VTCR0_0 0xF0032008   // CK1, CK0, DRAM VREF set to same as MR12
DATA 4 DDR_PHY_VTCR1_0 0x07F00173   // HVIO=1, SHREN=1, SHRNK=0

  // Set-up DATX8 General Configuration Registers
  // DXnGCR0-4 are untouched
SET_BIT 4 DDR_PHY_PGCR5_0 0x4
DATA 4 DDR_PHY_PGCR6_0 0x00033200   // Enable CSN Bit Delay VT Compensation (AC already enabled by default) + drift limit

// Set-up DATX8 General Configuration Registers
DATA 4 DDR_PHY_DX0GCR5_0 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX1GCR5_0 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX2GCR5_0 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX3GCR5_0 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX0GCR4_0 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults
DATA 4 DDR_PHY_DX1GCR4_0 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults
DATA 4 DDR_PHY_DX2GCR4_0 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults
DATA 4 DDR_PHY_DX3GCR4_0 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults

  // Set-up DATX8 DX Control Register 2
  // PREOEX=2.5tCK (0.5 more than MR1), POSOEX=1tCK (0.5 more than in MR3), LPWAKEUP_THRSH=0xA
DATA 4 DDR_PHY_DX8SLbDXCTL2_0 0x001C1400

  // Set-up DATX8 IO Control Register
DATA 4 DDR_PHY_DX8SLbIOCR_0 0x79000000  // I/O mode = LPDDR4

  //-------------------------------------------
  // Configure registers for DRAM initialization
  //-------------------------------------------
  // Set-up Mode Register
  // MR0, MR3, MR4, MR5 MR6 are untouched
DATA 4 DDR_PHY_MR1_1 0x24         // Set BL, WR-PRE, nWR, RPST
DATA 4 DDR_PHY_MR2_1 0x12         // Set RL=28/WL=14
DATA 4 DDR_PHY_MR3_1 0x31         // Set drive strength (40 Ohms by default)
DATA 4 DDR_PHY_MR11_1 0x04        // Set CA ODT=RZQ/4, updated per QXP analysis
DATA 4 DDR_PHY_MR22_1 0x15        // Set ODTE-CS=1 (overrides ODT_CA for CS1 as CS not shared between ranks)

/* LPDDR4 mode register writes for CA and DQ VREF settings; range=1, 27.2% */
DATA 4 DDR_PHY_MR12_1 0x48
DATA 4 DDR_PHY_MR14_1 0x48

  // Set-up DRAM Timing Parameters Register
  // DTPR6 is untouched
DATA 4 DDR_PHY_DTPR0_1 0x09221108   // tRRD, tRAS, tRP, tRTP
DATA 4 DDR_PHY_DTPR1_1 0x28200D0E   // tWLMRD, tFAW, tODTUP, tMRD
DATA 4 DDR_PHY_DTPR2_1 0x006740E7   // tRTW, tRTODT, tCMDCKE, tCKE, tVRCG, tXS
DATA 4 DDR_PHY_DTPR3_1 0x01800302   // tODX, tCCD, tDLLK, tDQSCKmax, tDQSCK (FIXME double check tDLLK)
DATA 4 DDR_PHY_DTPR4_1 0x00E10F0A   // tRFC, tWLO, tXP
DATA 4 DDR_PHY_DTPR5_1 0x11330F0A   // tRC, tRCD, tWTR

  // Set-up PHY Timing Register
DATA 4 DDR_PHY_PTR3_1 0x00186A10  // tDINIT0 
DATA 4 DDR_PHY_PTR4_1 0x00000650   // tDINIT1 (2000ns)
DATA 4 DDR_PHY_PTR5_1 0x00027110   // tDINIT2
DATA 4 DDR_PHY_PTR6_1 0x01C00330   // tDINIT4 (30ns), tDINIT3 (1us)

  // Set-up DATX8 Common Configuration Register
  // DXCCR is untouched

  // Set-up DDR System General Configuration Register
  // DSGCR is untouched

  // Set-up ODT Configuration Register
  // DDR ODT_CA signal is tied at boundary of DDR. Thus no need to drive it dynamically.
DATA 4 DDR_PHY_RANKIDR_1 1            // Select rank 1 to write
DATA 4 DDR_PHY_ODTCR_1 0x00000000     // ODT of rank1 disabled
DATA 4 DDR_PHY_RANKIDR_1 0            // Select rank 0 to write
DATA 4 DDR_PHY_ODTCR_1 0x00000000     // ODT of rank0 disabled

  // Set-up Anti-Aging Control Register
  // AACR is untouched

  // Set-up Data Training Address Register
  // DTAR0-3 are untouched
  // !! DTAR3 is not described in spec !!

  // Set-up AC I/O Configuration Register
  // ACIOCR2-4 are untouched
DATA 4 DDR_PHY_ACIOCR0_1 0x30070800   // PNUM2 (i.e.LPDDR4) selection  [10:11] = 0x2
DATA 4 DDR_PHY_ACIOCR5_1 0x09000000   // I/O mode = LPDDR4
  // Due to address copy set A[13] (=cke_B[0]) and A[15] (=cke_B[1]) outputs as always ON.
DATA 4 DDR_PHY_ACIOCR1_1 0x44000000

  // IOVCR0-1, DXnGCR0-4??, CALBYP

  // Set-up VREF Training Control Registers
DATA 4 DDR_PHY_VTCR0_1 0xF0032008   // CK1, CK0, DRAM VREF set to same as MR12
DATA 4 DDR_PHY_VTCR1_1 0x07F00173   // HVIO=1, SHREN=1, SHRNK=0

  // Set-up DATX8 General Configuration Registers
  // DXnGCR0-4 are untouched
SET_BIT 4 DDR_PHY_PGCR5_1 0x4
DATA 4 DDR_PHY_PGCR6_1 0x00033200   // Enable CSN Bit Delay VT Compensation (AC already enabled by default) + drift limit

// Set-up DATX8 General Configuration Registers
DATA 4 DDR_PHY_DX0GCR5_1 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX1GCR5_1 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX2GCR5_1 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX3GCR5_1 0x09092020 // Set DXREFISELR0 and DXREFISELR1 to 0x30, maintain other defaults
DATA 4 DDR_PHY_DX0GCR4_1 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults
DATA 4 DDR_PHY_DX1GCR4_1 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults
DATA 4 DDR_PHY_DX2GCR4_1 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults
DATA 4 DDR_PHY_DX3GCR4_1 0x0E00BF3C // Set DXREFSSEL,DXREFSSELRANGE,DXREFSEN,DXREFIEN, maintain other defaults

  // Set-up DATX8 DX Control Register 2
  // PREOEX=2.5tCK (0.5 more than MR1), POSOEX=1tCK (0.5 more than in MR3), LPWAKEUP_THRSH=0xA
DATA 4 DDR_PHY_DX8SLbDXCTL2_1 0x001C1400

  // Set-up DATX8 IO Control Register
DATA 4 DDR_PHY_DX8SLbIOCR_1 0x79000000  // I/O mode = LPDDR4

#if DDR_TRAIN_IN_DCD
/* Training done in Firmware, due to DCD size limitation */

  // Wait PHY initialization end then launch DRAM initialization
  // Wait for bit 0 of PGSR0 to be '1'
  // Check that no error occured
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x7FF40000

  // Wait for bit 0 of PGSR0 to be '1'
CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x7FF40000

  // Launch DRAM 0 initialization (set bit 0)
DATA 4 DDR_PHY_PIR_0 0x180
DATA 4 DDR_PHY_PIR_0 0x181

  // Launch DRAM 1 initialization (set bit 0)
DATA 4 DDR_PHY_PIR_1 0x180
DATA 4 DDR_PHY_PIR_1 0x181

  // DRAM initialization end
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x7FF40000

  // DRAM initialization end
CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x7FF40000

  // Launch a second time DRAM initialization due to following Synopsys PHY bug:
  // Title: "PUB does not program LPDDR4 DRAM MR22 prior to running DRAM ZQ calibration"
  // Workaround: "Run DRAM Initialization twice"
DATA 4 DDR_PHY_PIR_0 0x100
DATA 4 DDR_PHY_PIR_0 0x101

DATA 4 DDR_PHY_PIR_1 0x100
DATA 4 DDR_PHY_PIR_1 0x101

  // Wait (second time) DRAM 0 initialization end
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x7FF40000

  // Wait (second time) DRAM 1 initialization end
CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x7FF40000

  //---------------------------------------------------------------//
  // DATA training
  //---------------------------------------------------------------//
  // configure PHY for data training

// The following register writes are recommended by SNPS prior to running training
// Disable drift 
CLR_BIT 4 DDR_PHY_DQSDR0_0 0x00000001
// Disable VT compensation
SET_BIT 4 DDR_PHY_PGCR6_0 0x00000001
CHECK_BITS_SET 4 DDR_PHY_PGSR1_0 0x40000000
SET_BIT 4 DDR_PHY_PGCR1_0 0x00020040 // DISDIC=1; PUBMODE=1
// Per SNPS initialize BIST registers for VREF training
DATA 4 DDR_PHY_BISTAR1_0 0x00010100  //BMRANK=1 (maximum rank minus 1); BIST Address Increment: 0x10 (16)
DATA 4 DDR_PHY_BISTAR2_0 0x700003FF  // BMBANK=8; BMCOL=0x400 (limit to min cols in JEDEC)
DATA 4 DDR_PHY_BISTAR4_0 0x00003FFF  // BMROW=0x4000 (limit to min rows in JEDEC)

// Disable drift 
CLR_BIT 4 DDR_PHY_DQSDR0_1 0x00000001
// Disable VT compensation
SET_BIT 4 DDR_PHY_PGCR6_1 0x00000001
CHECK_BITS_SET 4 DDR_PHY_PGSR1_1 0x40000000
SET_BIT 4 DDR_PHY_PGCR1_1 0x00020040 // DISDIC=1; PUBMODE=1
// Per SNPS initialize BIST registers for VREF training
DATA 4 DDR_PHY_BISTAR1_1 0x00010100  //BMRANK=1 (maximum rank minus 1); BIST Address Increment: 0x10 (16)
DATA 4 DDR_PHY_BISTAR2_1 0x700003FF  // BMBANK=8; BMCOL=0x400 (limit to min cols in JEDEC)
DATA 4 DDR_PHY_BISTAR4_1 0x00003FFF  // BMROW=0x4000 (limit to min rows in JEDEC)

  // Set-up Data Training Configuration Register
  // Note that DTCR0.RFSHDT are set to 0x0 as a workaround for PHY bug (Synopsys
  // case 9001045655: Design limitation in LPDDR4 mode: REFRESH must be disabled during DQS2DQ training).
  // (FYI avoiding refresh during training leads to Denali error (CUMULATIVE_REFRESH_POSTPONE_EXCEEDS_MAX_ALLOWED).
DATA 4 DDR_PHY_DTCR0_0 0x0000B1CF   // Set DTRPTN to 0xF. RFSHDT=0. (note this is for the non DBI setting)
DATA 4 DDR_PHY_DTCR1_0 0x00030236   // Set RANKEN=3

DATA 4 DDR_PHY_DTCR0_1 0x0000B1CF   // Set DTRPTN to 0xF. RFSHDT=0. (note this is for the non DBI setting)
DATA 4 DDR_PHY_DTCR1_1 0x00030236   // Set RANKEN=3

  // Launch Write leveling
DATA 4 DDR_PHY_PIR_0 0x200
DATA 4 DDR_PHY_PIR_0 0x201

DATA 4 DDR_PHY_PIR_1 0x200
DATA 4 DDR_PHY_PIR_1 0x201

  // Wait Write leveling to complete
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x00200000

CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x00200000

  // Set DQS/DQSn glitch suppression resistor for training
DATA 4 DDR_PHY_DX8SLbDQSCTL_0 0x012640F7
  // Launch Read DQS training
DATA 4 DDR_PHY_PIR_0 0x400
DATA 4 DDR_PHY_PIR_0 0x401

DATA 4 DDR_PHY_DX8SLbDQSCTL_1 0x012640F7
  // Launch Read DQS training
DATA 4 DDR_PHY_PIR_1 0x400
DATA 4 DDR_PHY_PIR_1 0x401

  // Wait Read DQS training to complete
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x00400000
  // Remove DQS/DQSn glitch suppression resistor
DATA 4 DDR_PHY_DX8SLbDQSCTL_0 0x01264000

CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x00400000
  // Remove DQS/DQSn glitch suppression resistor
DATA 4 DDR_PHY_DX8SLbDQSCTL_1 0x01264000

  // DQS2DQ training, Write leveling, Deskew and eye trainings
DATA 4 DDR_PHY_PIR_0 0x0010F800
DATA 4 DDR_PHY_PIR_0 0x0010F801

DATA 4 DDR_PHY_PIR_1 0x0010F800
DATA 4 DDR_PHY_PIR_1 0x0010F801

  // Wait for training to complete
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x7FF40000

CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x7FF40000

  // Launch VREF training
DATA 4 DDR_PHY_PIR_0 0x00020000
DATA 4 DDR_PHY_PIR_0 0x00020001

DATA 4 DDR_PHY_PIR_1 0x00020000
DATA 4 DDR_PHY_PIR_1 0x00020001

  // Wait for training to complete
CHECK_BITS_SET 4 DDR_PHY_PGSR0_0 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_0 0x00080000

CHECK_BITS_SET 4 DDR_PHY_PGSR0_1 0x1
CHECK_BITS_CLR 4 DDR_PHY_PGSR0_1 0x00080000

  //Re-allow uMCTL2 to send commands to DDR
CLR_BIT 4 DDR_PHY_PGCR1_0 0x00020040 // DISDIC=0, PUBMODE=0
CLR_BIT 4 DDR_PHY_PGCR1_1 0x00020040 // DISDIC=0, PUBMODE=0

  //DQS Drift Registers
CLR_BIT 4 DDR_PHY_DX0GCR3_0 0x08000000
CLR_BIT 4 DDR_PHY_DX1GCR3_0 0x08000000
CLR_BIT 4 DDR_PHY_DX2GCR3_0 0x08000000
CLR_BIT 4 DDR_PHY_DX3GCR3_0 0x08000000
  // Enable DQS drift detection
DATA 4 DDR_PHY_DQSDR0_0 0x20188005
DATA 4 DDR_PHY_DQSDR1_0 0xA8AA0000
DATA 4 DDR_PHY_DQSDR2_0 0x00070200

CLR_BIT 4 DDR_PHY_DX0GCR3_1 0x08000000
CLR_BIT 4 DDR_PHY_DX1GCR3_1 0x08000000
CLR_BIT 4 DDR_PHY_DX2GCR3_1 0x08000000
CLR_BIT 4 DDR_PHY_DX3GCR3_1 0x08000000
  // Enable DQS drift detection
DATA 4 DDR_PHY_DQSDR0_1 0x20188005
DATA 4 DDR_PHY_DQSDR1_1 0xA8AA0000
DATA 4 DDR_PHY_DQSDR2_1 0x00070200

  // Enable VT compensation
CLR_BIT 4 DDR_PHY_PGCR6_0 0x1 
CLR_BIT 4 DDR_PHY_PGCR6_1 0x1 

  //Check that controller is ready to operate
CHECK_BITS_SET 4 DDRC_STAT_0 0x1
CHECK_BITS_SET 4 DDRC_STAT_1 0x1
  
  // Disable drift, not needed for 800MHz
CLR_BIT 4 DDR_PHY_DQSDR0_0 0x1
CLR_BIT 4 DDR_PHY_DQSDR0_1 0x1
#endif
