plat: imx: refact the dram retention flow on imx8mm
All the DRAM timing related config is saved by SPL in OCRAM_S,
so no need to do save for these configs in ATF anymore.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
(cherry picked from commit f0893b1f52303ba5604480db71efe605161666eb)
diff --git a/plat/imx/common/imx8m/dram.c b/plat/imx/common/imx8m/dram.c
index cb987c4..072fcbb 100644
--- a/plat/imx/common/imx8m/dram.c
+++ b/plat/imx/common/imx8m/dram.c
@@ -9,52 +9,55 @@
#include <dram.h>
#include <mmio.h>
-static struct dram_info *dram_info;
-
-void dram_cfg_save(struct dram_cfg_param *params, int params_num)
-{
- for (int idx = 0; idx < params_num; idx++) {
- params->cfg = mmio_read_32(params->reg);
- params++;
- }
-}
-
-void dram_cfg_restore(struct dram_cfg_param *params, int params_num)
-{
- for (int idx = 0; idx < params_num; idx++) {
- mmio_write_32(params->reg, params->cfg);
- params++;
- }
-}
+static struct dram_info dram_info;
/* restore the ddrc config */
void dram_umctl2_init(void)
{
- struct dram_cfg_param *params = dram_info->ddrc_cfg;
- int params_num = dram_info->ddrc_cfg_num;
+ struct dram_timing_info *timing = dram_info.timing_info;
+ struct dram_cfg_param *ddrc_cfg = timing->ddrc_cfg;
+ int num = timing->ddrc_cfg_num;
- dram_cfg_restore(params, params_num);
- mmio_write_32(DDRC_DBG1(0), 0x1);
- mmio_write_32(DDRC_DFIMISC(0), 0x11);
- mmio_write_32(DDRC_DFIUPD0(0),0xE0400018);
+ for (int i = 0; i < num; i++) {
+ mmio_write_32(ddrc_cfg->reg, ddrc_cfg->val);
+ ddrc_cfg++;
+ }
+
+ /* set the default fsp to P0 */
+ mmio_write_32(DDRC_MSTR2(0), 0x0);
}
/* resotre the dram phy config */
void dram_phy_init(void)
{
- struct dram_cfg_param *ddrphy_params = dram_info->ddrphy_cfg;
- int params_num = dram_info->ddrphy_cfg_num;
+ struct dram_timing_info *timing = dram_info.timing_info;
+ struct dram_cfg_param *ddrphy_cfg = timing->ddrphy_cfg;
+ int num = timing->ddrphy_cfg_num;
- /* retore the phy config */
- mmio_write_32(DDRPHY_REG(0xd0000), 0x0);
- dram_cfg_restore(ddrphy_params, params_num);
- mmio_write_32(DDRPHY_REG(0xd0000), 0x1);
+ /* restore the phy init config */
+ for (int i = 0; i < num; i++) {
+ dwc_ddrphy_apb_wr(ddrphy_cfg->reg, ddrphy_cfg->val);
+ ddrphy_cfg++;
+ }
+
+ /* restore the ddr phy csr */
+ num = timing->ddrphy_trained_csr_num;
+ ddrphy_cfg = timing->ddrphy_trained_csr;
+ for (int i = 0; i < num; i++) {
+ dwc_ddrphy_apb_wr(ddrphy_cfg->reg, ddrphy_cfg->val);
+ ddrphy_cfg++;
+ }
/* load the PIE image */
- ddrphy_load_pie_image();
+ num = timing->ddrphy_pie_num;
+ ddrphy_cfg = timing->ddrphy_pie;
+ for (int i = 0; i < num; i++) {
+ dwc_ddrphy_apb_wr(ddrphy_cfg->reg, ddrphy_cfg->val);
+ ddrphy_cfg++;
+ }
}
-void dram_info_init(void)
+void dram_info_init(unsigned long dram_timing_base)
{
uint32_t current_fsp, ddr_type;
@@ -62,8 +65,7 @@
ddr_type = mmio_read_32(DDRC_MSTR(0)) & DDR_TYPE_MASK;
if (ddr_type == DDRC_LPDDR4) {
- dram_info = &imx8m_lpddr4_dram_info;
- dram_info->dram_type = ddr_type;
+ dram_info.dram_type = ddr_type;
} else {
/* TODO DDR4 support will be added later */
return;
@@ -72,30 +74,26 @@
/* init the boot_fsp & current_fsp */
current_fsp = mmio_read_32(DDRC_DFIMISC(0));
current_fsp = (current_fsp >> 8) & 0xf;
- dram_info->boot_fsp = current_fsp;
- dram_info->current_fsp = current_fsp;
+ dram_info.boot_fsp = current_fsp;
+ dram_info.current_fsp = current_fsp;
- /* save the ddrc config */
- dram_cfg_save(dram_info->ddrc_cfg, dram_info->ddrc_cfg_num);
-
- /* save dram phy config */
- mmio_write_32(DDRPHY_REG(0xd0000), 0x0);
- mmio_write_32(DDRPHY_REG(0xc0080), 0x3);
- dram_cfg_save(dram_info->ddrphy_cfg, dram_info->ddrphy_cfg_num);
- mmio_write_32(DDRPHY_REG(0xc0080), 0x0);
- mmio_write_32(DDRPHY_REG(0xd0000), 0x1);
+ /*
+ * No need to do save for ddrc and phy config register,
+ * we have done it in SPL stage and save in memory
+ */
+ dram_info.timing_info = (struct dram_timing_info *)dram_timing_base;
}
void dram_enter_retention(void)
{
/* TODO add the ddr4 support in the furture */
- if (dram_info->dram_type == DDRC_LPDDR4)
+ if (dram_info.dram_type == DDRC_LPDDR4)
lpddr4_enter_retention();
}
void dram_exit_retention(void)
{
/* TODO add the ddr4 support in the furture */
- if (dram_info->dram_type == DDRC_LPDDR4)
+ if (dram_info.dram_type == DDRC_LPDDR4)
lpddr4_exit_retention();
}
diff --git a/plat/imx/common/imx8m/lpddr4_phy_pie.c b/plat/imx/common/imx8m/lpddr4_phy_pie.c
deleted file mode 100644
index ad87443..0000000
--- a/plat/imx/common/imx8m/lpddr4_phy_pie.c
+++ /dev/null
@@ -1,593 +0,0 @@
-/*
- * Copyright 2018 NXP
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <dram.h>
-#include <mmio.h>
-
-struct dram_cfg_param lpddr4_phy_pie[] = {
- { .reg = DDRPHY_REG(0xd0000), .cfg = 0x0},
-
- { .reg = DDRPHY_REG(0x90000), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x90001), .cfg = 0x400},
- { .reg = DDRPHY_REG(0x90002), .cfg = 0x10e},
- { .reg = DDRPHY_REG(0x90003), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90004), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90005), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90029), .cfg = 0xb},
- { .reg = DDRPHY_REG(0x9002a), .cfg = 0x480},
- { .reg = DDRPHY_REG(0x9002b), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9002c), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x9002d), .cfg = 0x448},
- { .reg = DDRPHY_REG(0x9002e), .cfg = 0x139},
- { .reg = DDRPHY_REG(0x9002f), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90030), .cfg = 0x478},
- { .reg = DDRPHY_REG(0x90031), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90032), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90033), .cfg = 0xe8},
- { .reg = DDRPHY_REG(0x90034), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90035), .cfg = 0x2},
- { .reg = DDRPHY_REG(0x90036), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x90037), .cfg = 0x139},
- { .reg = DDRPHY_REG(0x90038), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x90039), .cfg = 0x7c0},
- { .reg = DDRPHY_REG(0x9003a), .cfg = 0x139},
- { .reg = DDRPHY_REG(0x9003b), .cfg = 0x44},
- { .reg = DDRPHY_REG(0x9003c), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x9003d), .cfg = 0x159},
- { .reg = DDRPHY_REG(0x9003e), .cfg = 0x14f},
- { .reg = DDRPHY_REG(0x9003f), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90040), .cfg = 0x159},
- { .reg = DDRPHY_REG(0x90041), .cfg = 0x47},
- { .reg = DDRPHY_REG(0x90042), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90043), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x90044), .cfg = 0x4f},
- { .reg = DDRPHY_REG(0x90045), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90046), .cfg = 0x179},
- { .reg = DDRPHY_REG(0x90047), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90048), .cfg = 0xe0},
- { .reg = DDRPHY_REG(0x90049), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9004a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9004b), .cfg = 0x7c8},
- { .reg = DDRPHY_REG(0x9004c), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9004d), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9004e), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x9004f), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90050), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90051), .cfg = 0x45a},
- { .reg = DDRPHY_REG(0x90052), .cfg = 0x9},
- { .reg = DDRPHY_REG(0x90053), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90054), .cfg = 0x448},
- { .reg = DDRPHY_REG(0x90055), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90056), .cfg = 0x40},
- { .reg = DDRPHY_REG(0x90057), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90058), .cfg = 0x179},
- { .reg = DDRPHY_REG(0x90059), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x9005a), .cfg = 0x618},
- { .reg = DDRPHY_REG(0x9005b), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9005c), .cfg = 0x40c0},
- { .reg = DDRPHY_REG(0x9005d), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x9005e), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x9005f), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90060), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x90061), .cfg = 0x48},
- { .reg = DDRPHY_REG(0x90062), .cfg = 0x4040},
- { .reg = DDRPHY_REG(0x90063), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90064), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x90065), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90066), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x90067), .cfg = 0x48},
- { .reg = DDRPHY_REG(0x90068), .cfg = 0x40},
- { .reg = DDRPHY_REG(0x90069), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x9006a), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x9006b), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x9006c), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x9006d), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x9006e), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9006f), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x90070), .cfg = 0x78},
- { .reg = DDRPHY_REG(0x90071), .cfg = 0x549},
- { .reg = DDRPHY_REG(0x90072), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90073), .cfg = 0x159},
- { .reg = DDRPHY_REG(0x90074), .cfg = 0xd49},
- { .reg = DDRPHY_REG(0x90075), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90076), .cfg = 0x159},
- { .reg = DDRPHY_REG(0x90077), .cfg = 0x94a},
- { .reg = DDRPHY_REG(0x90078), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90079), .cfg = 0x159},
- { .reg = DDRPHY_REG(0x9007a), .cfg = 0x441},
- { .reg = DDRPHY_REG(0x9007b), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x9007c), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x9007d), .cfg = 0x42},
- { .reg = DDRPHY_REG(0x9007e), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x9007f), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x90080), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x90081), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90082), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x90083), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90084), .cfg = 0xe0},
- { .reg = DDRPHY_REG(0x90085), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90086), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x90087), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x90088), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90089), .cfg = 0x9},
- { .reg = DDRPHY_REG(0x9008a), .cfg = 0x3c0},
- { .reg = DDRPHY_REG(0x9008b), .cfg = 0x149},
- { .reg = DDRPHY_REG(0x9008c), .cfg = 0x9},
- { .reg = DDRPHY_REG(0x9008d), .cfg = 0x3c0},
- { .reg = DDRPHY_REG(0x9008e), .cfg = 0x159},
- { .reg = DDRPHY_REG(0x9008f), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x90090), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x90091), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90092), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90093), .cfg = 0x3c0},
- { .reg = DDRPHY_REG(0x90094), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90095), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x90096), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x90097), .cfg = 0x48},
- { .reg = DDRPHY_REG(0x90098), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x90099), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x9009a), .cfg = 0x58},
- { .reg = DDRPHY_REG(0x9009b), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x9009c), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x9009d), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9009e), .cfg = 0x2},
- { .reg = DDRPHY_REG(0x9009f), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x900a0), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x900a1), .cfg = 0x5},
- { .reg = DDRPHY_REG(0x900a2), .cfg = 0x7c0},
- { .reg = DDRPHY_REG(0x900a3), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x900a4), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x900a5), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x900a6), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x40000), .cfg = 0x811},
- { .reg = DDRPHY_REG(0x40020), .cfg = 0x880},
- { .reg = DDRPHY_REG(0x40040), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40060), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40001), .cfg = 0x4008},
- { .reg = DDRPHY_REG(0x40021), .cfg = 0x83},
- { .reg = DDRPHY_REG(0x40041), .cfg = 0x4f},
- { .reg = DDRPHY_REG(0x40061), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40002), .cfg = 0x4040},
- { .reg = DDRPHY_REG(0x40022), .cfg = 0x83},
- { .reg = DDRPHY_REG(0x40042), .cfg = 0x51},
- { .reg = DDRPHY_REG(0x40062), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40003), .cfg = 0x811},
- { .reg = DDRPHY_REG(0x40023), .cfg = 0x880},
- { .reg = DDRPHY_REG(0x40043), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40063), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40004), .cfg = 0x720},
- { .reg = DDRPHY_REG(0x40024), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x40044), .cfg = 0x1740},
- { .reg = DDRPHY_REG(0x40064), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40005), .cfg = 0x16},
- { .reg = DDRPHY_REG(0x40025), .cfg = 0x83},
- { .reg = DDRPHY_REG(0x40045), .cfg = 0x4b},
- { .reg = DDRPHY_REG(0x40065), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40006), .cfg = 0x716},
- { .reg = DDRPHY_REG(0x40026), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x40046), .cfg = 0x2001},
- { .reg = DDRPHY_REG(0x40066), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40007), .cfg = 0x716},
- { .reg = DDRPHY_REG(0x40027), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x40047), .cfg = 0x2800},
- { .reg = DDRPHY_REG(0x40067), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40008), .cfg = 0x716},
- { .reg = DDRPHY_REG(0x40028), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x40048), .cfg = 0xf00},
- { .reg = DDRPHY_REG(0x40068), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40009), .cfg = 0x720},
- { .reg = DDRPHY_REG(0x40029), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x40049), .cfg = 0x1400},
- { .reg = DDRPHY_REG(0x40069), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4000a), .cfg = 0xe08},
- { .reg = DDRPHY_REG(0x4002a), .cfg = 0xc15},
- { .reg = DDRPHY_REG(0x4004a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4006a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4000b), .cfg = 0x623},
- { .reg = DDRPHY_REG(0x4002b), .cfg = 0x15},
- { .reg = DDRPHY_REG(0x4004b), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4006b), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4000c), .cfg = 0x4028},
- { .reg = DDRPHY_REG(0x4002c), .cfg = 0x80},
- { .reg = DDRPHY_REG(0x4004c), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4006c), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4000d), .cfg = 0xe08},
- { .reg = DDRPHY_REG(0x4002d), .cfg = 0xc1a},
- { .reg = DDRPHY_REG(0x4004d), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4006d), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4000e), .cfg = 0x623},
- { .reg = DDRPHY_REG(0x4002e), .cfg = 0x1a},
- { .reg = DDRPHY_REG(0x4004e), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4006e), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4000f), .cfg = 0x4040},
- { .reg = DDRPHY_REG(0x4002f), .cfg = 0x80},
- { .reg = DDRPHY_REG(0x4004f), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4006f), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40010), .cfg = 0x2604},
- { .reg = DDRPHY_REG(0x40030), .cfg = 0x15},
- { .reg = DDRPHY_REG(0x40050), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40070), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40011), .cfg = 0x708},
- { .reg = DDRPHY_REG(0x40031), .cfg = 0x5},
- { .reg = DDRPHY_REG(0x40051), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40071), .cfg = 0x2002},
- { .reg = DDRPHY_REG(0x40012), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x40032), .cfg = 0x80},
- { .reg = DDRPHY_REG(0x40052), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40072), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40013), .cfg = 0x2604},
- { .reg = DDRPHY_REG(0x40033), .cfg = 0x1a},
- { .reg = DDRPHY_REG(0x40053), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40073), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40014), .cfg = 0x708},
- { .reg = DDRPHY_REG(0x40034), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x40054), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40074), .cfg = 0x2002},
- { .reg = DDRPHY_REG(0x40015), .cfg = 0x4040},
- { .reg = DDRPHY_REG(0x40035), .cfg = 0x80},
- { .reg = DDRPHY_REG(0x40055), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40075), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40016), .cfg = 0x60a},
- { .reg = DDRPHY_REG(0x40036), .cfg = 0x15},
- { .reg = DDRPHY_REG(0x40056), .cfg = 0x1200},
- { .reg = DDRPHY_REG(0x40076), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40017), .cfg = 0x61a},
- { .reg = DDRPHY_REG(0x40037), .cfg = 0x15},
- { .reg = DDRPHY_REG(0x40057), .cfg = 0x1300},
- { .reg = DDRPHY_REG(0x40077), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40018), .cfg = 0x60a},
- { .reg = DDRPHY_REG(0x40038), .cfg = 0x1a},
- { .reg = DDRPHY_REG(0x40058), .cfg = 0x1200},
- { .reg = DDRPHY_REG(0x40078), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x40019), .cfg = 0x642},
- { .reg = DDRPHY_REG(0x40039), .cfg = 0x1a},
- { .reg = DDRPHY_REG(0x40059), .cfg = 0x1300},
- { .reg = DDRPHY_REG(0x40079), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4001a), .cfg = 0x4808},
- { .reg = DDRPHY_REG(0x4003a), .cfg = 0x880},
- { .reg = DDRPHY_REG(0x4005a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x4007a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900a7), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900a8), .cfg = 0x790},
- { .reg = DDRPHY_REG(0x900a9), .cfg = 0x11a},
- { .reg = DDRPHY_REG(0x900aa), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900ab), .cfg = 0x7aa},
- { .reg = DDRPHY_REG(0x900ac), .cfg = 0x2a},
- { .reg = DDRPHY_REG(0x900ad), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x900ae), .cfg = 0x7b2},
- { .reg = DDRPHY_REG(0x900af), .cfg = 0x2a},
- { .reg = DDRPHY_REG(0x900b0), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900b1), .cfg = 0x7c8},
- { .reg = DDRPHY_REG(0x900b2), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x900b3), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x900b4), .cfg = 0x2a8},
- { .reg = DDRPHY_REG(0x900b5), .cfg = 0x129},
- { .reg = DDRPHY_REG(0x900b6), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900b7), .cfg = 0x370},
- { .reg = DDRPHY_REG(0x900b8), .cfg = 0x129},
- { .reg = DDRPHY_REG(0x900b9), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x900ba), .cfg = 0x3c8},
- { .reg = DDRPHY_REG(0x900bb), .cfg = 0x1a9},
- { .reg = DDRPHY_REG(0x900bc), .cfg = 0xc},
- { .reg = DDRPHY_REG(0x900bd), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x900be), .cfg = 0x199},
- { .reg = DDRPHY_REG(0x900bf), .cfg = 0x14},
- { .reg = DDRPHY_REG(0x900c0), .cfg = 0x790},
- { .reg = DDRPHY_REG(0x900c1), .cfg = 0x11a},
- { .reg = DDRPHY_REG(0x900c2), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900c3), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x900c4), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x900c5), .cfg = 0xe},
- { .reg = DDRPHY_REG(0x900c6), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x900c7), .cfg = 0x199},
- { .reg = DDRPHY_REG(0x900c8), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900c9), .cfg = 0x8568},
- { .reg = DDRPHY_REG(0x900ca), .cfg = 0x108},
- { .reg = DDRPHY_REG(0x900cb), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x900cc), .cfg = 0x790},
- { .reg = DDRPHY_REG(0x900cd), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x900ce), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900cf), .cfg = 0x1d8},
- { .reg = DDRPHY_REG(0x900d0), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x900d1), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x900d2), .cfg = 0x8558},
- { .reg = DDRPHY_REG(0x900d3), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x900d4), .cfg = 0x70},
- { .reg = DDRPHY_REG(0x900d5), .cfg = 0x788},
- { .reg = DDRPHY_REG(0x900d6), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x900d7), .cfg = 0x1ff8},
- { .reg = DDRPHY_REG(0x900d8), .cfg = 0x85a8},
- { .reg = DDRPHY_REG(0x900d9), .cfg = 0x1e8},
- { .reg = DDRPHY_REG(0x900da), .cfg = 0x50},
- { .reg = DDRPHY_REG(0x900db), .cfg = 0x798},
- { .reg = DDRPHY_REG(0x900dc), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x900dd), .cfg = 0x60},
- { .reg = DDRPHY_REG(0x900de), .cfg = 0x7a0},
- { .reg = DDRPHY_REG(0x900df), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x900e0), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900e1), .cfg = 0x8310},
- { .reg = DDRPHY_REG(0x900e2), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x900e3), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x900e4), .cfg = 0xa310},
- { .reg = DDRPHY_REG(0x900e5), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x900e6), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x900e7), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x900e8), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x900e9), .cfg = 0x6e},
- { .reg = DDRPHY_REG(0x900ea), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900eb), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x900ec), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900ed), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x900ee), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x900ef), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900f0), .cfg = 0x8310},
- { .reg = DDRPHY_REG(0x900f1), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x900f2), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x900f3), .cfg = 0xa310},
- { .reg = DDRPHY_REG(0x900f4), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x900f5), .cfg = 0x1ff8},
- { .reg = DDRPHY_REG(0x900f6), .cfg = 0x85a8},
- { .reg = DDRPHY_REG(0x900f7), .cfg = 0x1e8},
- { .reg = DDRPHY_REG(0x900f8), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x900f9), .cfg = 0x798},
- { .reg = DDRPHY_REG(0x900fa), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x900fb), .cfg = 0x78},
- { .reg = DDRPHY_REG(0x900fc), .cfg = 0x7a0},
- { .reg = DDRPHY_REG(0x900fd), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x900fe), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x900ff), .cfg = 0x790},
- { .reg = DDRPHY_REG(0x90100), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x90101), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90102), .cfg = 0x8b10},
- { .reg = DDRPHY_REG(0x90103), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x90104), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90105), .cfg = 0xab10},
- { .reg = DDRPHY_REG(0x90106), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x90107), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x90108), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x90109), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x9010a), .cfg = 0x58},
- { .reg = DDRPHY_REG(0x9010b), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9010c), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x9010d), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9010e), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x9010f), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x90110), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90111), .cfg = 0x8b10},
- { .reg = DDRPHY_REG(0x90112), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x90113), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90114), .cfg = 0xab10},
- { .reg = DDRPHY_REG(0x90115), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x90116), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90117), .cfg = 0x1d8},
- { .reg = DDRPHY_REG(0x90118), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x90119), .cfg = 0x80},
- { .reg = DDRPHY_REG(0x9011a), .cfg = 0x790},
- { .reg = DDRPHY_REG(0x9011b), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x9011c), .cfg = 0x18},
- { .reg = DDRPHY_REG(0x9011d), .cfg = 0x7aa},
- { .reg = DDRPHY_REG(0x9011e), .cfg = 0x6a},
- { .reg = DDRPHY_REG(0x9011f), .cfg = 0xa},
- { .reg = DDRPHY_REG(0x90120), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90121), .cfg = 0x1e9},
- { .reg = DDRPHY_REG(0x90122), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90123), .cfg = 0x8080},
- { .reg = DDRPHY_REG(0x90124), .cfg = 0x108},
- { .reg = DDRPHY_REG(0x90125), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x90126), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x90127), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x90128), .cfg = 0xc},
- { .reg = DDRPHY_REG(0x90129), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9012a), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x9012b), .cfg = 0x9},
- { .reg = DDRPHY_REG(0x9012c), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9012d), .cfg = 0x1a9},
- { .reg = DDRPHY_REG(0x9012e), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9012f), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x90130), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x90131), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90132), .cfg = 0x8080},
- { .reg = DDRPHY_REG(0x90133), .cfg = 0x108},
- { .reg = DDRPHY_REG(0x90134), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90135), .cfg = 0x7aa},
- { .reg = DDRPHY_REG(0x90136), .cfg = 0x6a},
- { .reg = DDRPHY_REG(0x90137), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90138), .cfg = 0x8568},
- { .reg = DDRPHY_REG(0x90139), .cfg = 0x108},
- { .reg = DDRPHY_REG(0x9013a), .cfg = 0xb7},
- { .reg = DDRPHY_REG(0x9013b), .cfg = 0x790},
- { .reg = DDRPHY_REG(0x9013c), .cfg = 0x16a},
- { .reg = DDRPHY_REG(0x9013d), .cfg = 0x1f},
- { .reg = DDRPHY_REG(0x9013e), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9013f), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x90140), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90141), .cfg = 0x8558},
- { .reg = DDRPHY_REG(0x90142), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x90143), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x90144), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x90145), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x90146), .cfg = 0xc},
- { .reg = DDRPHY_REG(0x90147), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90148), .cfg = 0x68},
- { .reg = DDRPHY_REG(0x90149), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9014a), .cfg = 0x408},
- { .reg = DDRPHY_REG(0x9014b), .cfg = 0x169},
- { .reg = DDRPHY_REG(0x9014c), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9014d), .cfg = 0x8558},
- { .reg = DDRPHY_REG(0x9014e), .cfg = 0x168},
- { .reg = DDRPHY_REG(0x9014f), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90150), .cfg = 0x3c8},
- { .reg = DDRPHY_REG(0x90151), .cfg = 0x1a9},
- { .reg = DDRPHY_REG(0x90152), .cfg = 0x3},
- { .reg = DDRPHY_REG(0x90153), .cfg = 0x370},
- { .reg = DDRPHY_REG(0x90154), .cfg = 0x129},
- { .reg = DDRPHY_REG(0x90155), .cfg = 0x20},
- { .reg = DDRPHY_REG(0x90156), .cfg = 0x2aa},
- { .reg = DDRPHY_REG(0x90157), .cfg = 0x9},
- { .reg = DDRPHY_REG(0x90158), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90159), .cfg = 0x400},
- { .reg = DDRPHY_REG(0x9015a), .cfg = 0x10e},
- { .reg = DDRPHY_REG(0x9015b), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x9015c), .cfg = 0xe8},
- { .reg = DDRPHY_REG(0x9015d), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9015e), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9015f), .cfg = 0x8140},
- { .reg = DDRPHY_REG(0x90160), .cfg = 0x10c},
- { .reg = DDRPHY_REG(0x90161), .cfg = 0x10},
- { .reg = DDRPHY_REG(0x90162), .cfg = 0x8138},
- { .reg = DDRPHY_REG(0x90163), .cfg = 0x10c},
- { .reg = DDRPHY_REG(0x90164), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90165), .cfg = 0x7c8},
- { .reg = DDRPHY_REG(0x90166), .cfg = 0x101},
- { .reg = DDRPHY_REG(0x90167), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90168), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90169), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x9016a), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x9016b), .cfg = 0x448},
- { .reg = DDRPHY_REG(0x9016c), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9016d), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x9016e), .cfg = 0x7c0},
- { .reg = DDRPHY_REG(0x9016f), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90170), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90171), .cfg = 0xe8},
- { .reg = DDRPHY_REG(0x90172), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90173), .cfg = 0x47},
- { .reg = DDRPHY_REG(0x90174), .cfg = 0x630},
- { .reg = DDRPHY_REG(0x90175), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90176), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90177), .cfg = 0x618},
- { .reg = DDRPHY_REG(0x90178), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x90179), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x9017a), .cfg = 0xe0},
- { .reg = DDRPHY_REG(0x9017b), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9017c), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9017d), .cfg = 0x7c8},
- { .reg = DDRPHY_REG(0x9017e), .cfg = 0x109},
- { .reg = DDRPHY_REG(0x9017f), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90180), .cfg = 0x8140},
- { .reg = DDRPHY_REG(0x90181), .cfg = 0x10c},
- { .reg = DDRPHY_REG(0x90182), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90183), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x90184), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90185), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90186), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x90187), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90188), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90189), .cfg = 0x7c8},
- { .reg = DDRPHY_REG(0x9018a), .cfg = 0x101},
- { .reg = DDRPHY_REG(0x90006), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90007), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x90008), .cfg = 0x8},
- { .reg = DDRPHY_REG(0x90009), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9000a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9000b), .cfg = 0x0},
- { .reg = DDRPHY_REG(0xd00e7), .cfg = 0x400},
- { .reg = DDRPHY_REG(0x90017), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9001f), .cfg = 0x2a},
- { .reg = DDRPHY_REG(0x90026), .cfg = 0x6a},
- { .reg = DDRPHY_REG(0x400d0), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x400d1), .cfg = 0x101},
- { .reg = DDRPHY_REG(0x400d2), .cfg = 0x105},
- { .reg = DDRPHY_REG(0x400d3), .cfg = 0x107},
- { .reg = DDRPHY_REG(0x400d4), .cfg = 0x10f},
- { .reg = DDRPHY_REG(0x400d5), .cfg = 0x202},
- { .reg = DDRPHY_REG(0x400d6), .cfg = 0x20a},
- { .reg = DDRPHY_REG(0x400d7), .cfg = 0x20b},
- { .reg = DDRPHY_REG(0x2003a), .cfg = 0x2},
- { .reg = DDRPHY_REG(0x2000b), .cfg = 0x5d},
- { .reg = DDRPHY_REG(0x2000c), .cfg = 0xbb},
- { .reg = DDRPHY_REG(0x2000d), .cfg = 0x753},
- { .reg = DDRPHY_REG(0x2000e), .cfg = 0x2c},
- { .reg = DDRPHY_REG(0x9000c), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x9000d), .cfg = 0x173},
- { .reg = DDRPHY_REG(0x9000e), .cfg = 0x60},
- { .reg = DDRPHY_REG(0x9000f), .cfg = 0x6110},
- { .reg = DDRPHY_REG(0x90010), .cfg = 0x2152},
- { .reg = DDRPHY_REG(0x90011), .cfg = 0xdfbd},
- { .reg = DDRPHY_REG(0x90012), .cfg = 0x60},
- { .reg = DDRPHY_REG(0x90013), .cfg = 0x6152},
- { .reg = DDRPHY_REG(0x20010), .cfg = 0x5a},
- { .reg = DDRPHY_REG(0x20011), .cfg = 0x3},
- { .reg = DDRPHY_REG(0x40080), .cfg = 0xe0},
- { .reg = DDRPHY_REG(0x40081), .cfg = 0x12},
- { .reg = DDRPHY_REG(0x40082), .cfg = 0xe0},
- { .reg = DDRPHY_REG(0x40083), .cfg = 0x12},
- { .reg = DDRPHY_REG(0x40084), .cfg = 0xe0},
- { .reg = DDRPHY_REG(0x40085), .cfg = 0x12},
- { .reg = DDRPHY_REG(0x400fd), .cfg = 0xf},
- { .reg = DDRPHY_REG(0x10011), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x10012), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x10013), .cfg = 0x180},
- { .reg = DDRPHY_REG(0x10018), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x10002), .cfg = 0x6209},
- { .reg = DDRPHY_REG(0x100b2), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x101b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x102b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x103b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x104b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x105b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x106b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x107b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x108b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x11011), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x11012), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x11013), .cfg = 0x180},
- { .reg = DDRPHY_REG(0x11018), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x11002), .cfg = 0x6209},
- { .reg = DDRPHY_REG(0x110b2), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x111b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x112b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x113b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x114b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x115b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x116b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x117b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x118b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x12011), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x12012), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x12013), .cfg = 0x180},
- { .reg = DDRPHY_REG(0x12018), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x12002), .cfg = 0x6209},
- { .reg = DDRPHY_REG(0x120b2), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x121b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x122b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x123b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x124b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x125b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x126b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x127b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x128b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x13011), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x13012), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x13013), .cfg = 0x180},
- { .reg = DDRPHY_REG(0x13018), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x13002), .cfg = 0x6209},
- { .reg = DDRPHY_REG(0x130b2), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x131b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x132b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x133b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x134b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x135b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x136b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x137b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x138b4), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x2003a), .cfg = 0x2},
- { .reg = DDRPHY_REG(0xc0080), .cfg = 0x2},
-
- { .reg = DDRPHY_REG(0xd0000), .cfg = 0x1},
-};
-
-void ddrphy_load_pie_image(void)
-{
- unsigned int reg, cfg;
- int num = ARRAY_SIZE(lpddr4_phy_pie);
-
- for (int i = 0; i < num; i ++) {
- reg = lpddr4_phy_pie[i].reg;
- cfg = lpddr4_phy_pie[i].cfg;
- mmio_write_32(reg, cfg);
- }
-}
diff --git a/plat/imx/common/imx8m/lpddr4_retention.c b/plat/imx/common/imx8m/lpddr4_retention.c
index 55ea34f..c44dd29 100644
--- a/plat/imx/common/imx8m/lpddr4_retention.c
+++ b/plat/imx/common/imx8m/lpddr4_retention.c
@@ -23,892 +23,6 @@
#define CCM_SRC_CTRL(n) (CCM_SRC_CTRL_OFFSET + 0x10 * n)
#define CCM_CCGR(n) (CCM_CCGR_OFFSET + 0x10 * n)
-struct dram_cfg_param lpddr4_ddrc_cfg[] = {
- { .reg =DDRC_DBG1(0), .cfg = 0x00000001},
- { .reg =DDRC_PWRCTL(0), .cfg = 0x00000001},
- { .reg =DDRC_MSTR(0), .cfg = 0xa1080020},
- { .reg =DDRC_RFSHTMG(0), .cfg = 0x005b00d2},
- { .reg =DDRC_INIT0(0), .cfg = 0xC003061B},
- { .reg =DDRC_INIT1(0), .cfg = 0x009D0000},
- { .reg =DDRC_INIT3(0), .cfg = 0x00D4002D},
- { .reg =DDRC_INIT4(0), .cfg = 0x00330008},
- { .reg =DDRC_INIT6(0), .cfg = 0x0066004a},
- { .reg =DDRC_INIT7(0), .cfg = 0x0006004a},
-
- { .reg =DDRC_DRAMTMG0(0), .cfg = 0x1A201B22},
- { .reg =DDRC_DRAMTMG1(0), .cfg = 0x00060633},
- { .reg =DDRC_DRAMTMG3(0), .cfg = 0x00C0C000},
- { .reg =DDRC_DRAMTMG4(0), .cfg = 0x0F04080F},
- { .reg =DDRC_DRAMTMG5(0), .cfg = 0x02040C0C},
- { .reg =DDRC_DRAMTMG6(0), .cfg = 0x01010007},
- { .reg =DDRC_DRAMTMG7(0), .cfg = 0x00000401},
- { .reg =DDRC_DRAMTMG12(0), .cfg = 0x00020600},
- { .reg =DDRC_DRAMTMG13(0), .cfg = 0x0C100002},
- { .reg =DDRC_DRAMTMG14(0), .cfg = 0x000000E6},
- { .reg =DDRC_DRAMTMG17(0), .cfg = 0x00A00050},
-
- { .reg =DDRC_ZQCTL0(0), .cfg = 0x03200018},
- { .reg =DDRC_ZQCTL1(0), .cfg = 0x028061A8},
- { .reg =DDRC_ZQCTL2(0), .cfg = 0x00000000},
-
- { .reg =DDRC_DFITMG0(0), .cfg = 0x0497820A},
- { .reg =DDRC_DFITMG1(0), .cfg = 0x00080303},
- { .reg =DDRC_DFIUPD0(0), .cfg = 0xE0400018},
-
- { .reg =DDRC_DFIUPD1(0), .cfg = 0x00DF00E4},
- { .reg =DDRC_DFIUPD2(0), .cfg = 0x80000000},
- { .reg =DDRC_DFIMISC(0), .cfg = 0x00000011},
- { .reg =DDRC_DFITMG2(0), .cfg = 0x0000170A},
-
- { .reg =DDRC_DBICTL(0), .cfg = 0x00000001},
- { .reg =DDRC_DFIPHYMSTR(0), .cfg = 0x00000000},
- { .reg =DDRC_RANKCTL(0), .cfg = 0x00000c99},
- { .reg =DDRC_DRAMTMG2(0), .cfg = 0x070E171a},
-
- /* ADDRMAP */
- { .reg =DDRC_ADDRMAP0(0), .cfg = 0x0000001f},
- { .reg =DDRC_ADDRMAP1(0), .cfg = 0x00080808},
- { .reg =DDRC_ADDRMAP2(0), .cfg = 0x00000000},
- { .reg =DDRC_ADDRMAP3(0), .cfg = 0x00000000},
- { .reg =DDRC_ADDRMAP4(0), .cfg = 0x00001f1f},
- { .reg =DDRC_ADDRMAP5(0), .cfg = 0x07070707},
- { .reg =DDRC_ADDRMAP6(0), .cfg = 0x07070707},
- { .reg =DDRC_ADDRMAP7(0), .cfg = 0x00000f0f},
-
- /* perf */
- { .reg =DDRC_SCHED(0), .cfg = 0x29001701},
- { .reg =DDRC_SCHED1(0), .cfg = 0x0000002c},
- { .reg =DDRC_PERFHPR1(0), .cfg = 0x04000030},
- { .reg =DDRC_PERFLPR1(0), .cfg = 0x900093e7},
- { .reg =DDRC_PCCFG(0), .cfg = 0x00000111},
- { .reg =DDRC_PCFGW_0(0), .cfg = 0x000072ff},
- { .reg =DDRC_PCFGQOS0_0(0), .cfg = 0x02100e07},
- { .reg =DDRC_PCFGQOS1_0(0), .cfg = 0x00620096},
- { .reg =DDRC_PCFGWQOS0_0(0), .cfg = 0x01100e07},
- { .reg =DDRC_PCFGWQOS1_0(0), .cfg = 0x0000012c},
-
- /* shadow registers for P1 & P2 */
-
- /* init fsp */
- { .reg =DDRC_MSTR2(0), .cfg = 0x0},
-};
-
-struct dram_cfg_param lpddr4_ddrphy_cfg[] = {
-
- /* phy init config */
- { .reg = DDRPHY_REG(0x1005f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1015f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1105f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1115f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1205f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1215f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1305f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x1315f), .cfg = 0x15f},
- { .reg = DDRPHY_REG(0x55), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x1055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x2055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x3055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x4055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x5055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x6055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x7055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x8055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x9055), .cfg = 0x16f},
- { .reg = DDRPHY_REG(0x200c5), .cfg = 0x19},
- { .reg = DDRPHY_REG(0x2002e), .cfg = 0x2},
- { .reg = DDRPHY_REG(0x90204), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x20024), .cfg = 0xab},
- { .reg = DDRPHY_REG(0x2003a), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x20056), .cfg = 0x3},
- { .reg = DDRPHY_REG(0x1004d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1014d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1104d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1114d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1204d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1214d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1304d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x1314d), .cfg = 0xe00},
- { .reg = DDRPHY_REG(0x10049), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x10149), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x11049), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x11149), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x12049), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x12149), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x13049), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x13149), .cfg = 0xfbe},
- { .reg = DDRPHY_REG(0x43), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x1043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x2043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x3043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x4043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x5043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x6043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x7043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x8043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x9043), .cfg = 0x63},
- { .reg = DDRPHY_REG(0x20018), .cfg = 0x3},
- { .reg = DDRPHY_REG(0x20075), .cfg = 0x4},
- { .reg = DDRPHY_REG(0x20050), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x20008), .cfg = 0x2ee},
- { .reg = DDRPHY_REG(0x20088), .cfg = 0x9},
- { .reg = DDRPHY_REG(0x200b2), .cfg = 0x1d4},
- { .reg = DDRPHY_REG(0x10043), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x10143), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x11043), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x11143), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x12043), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x12143), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x13043), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x13143), .cfg = 0x5a1},
- { .reg = DDRPHY_REG(0x200fa), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x20019), .cfg = 0x1},
- { .reg = DDRPHY_REG(0x200f0), .cfg = 0x600},
- { .reg = DDRPHY_REG(0x200f1), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x200f2), .cfg = 0x4444},
- { .reg = DDRPHY_REG(0x200f3), .cfg = 0x8888},
- { .reg = DDRPHY_REG(0x200f4), .cfg = 0x5655},
- { .reg = DDRPHY_REG(0x200f5), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x200f6), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x200f7), .cfg = 0xf000},
- { .reg = DDRPHY_REG(0x20025), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x2002d), .cfg = 0x0},
- { .reg = DDRPHY_REG(0x200c7), .cfg = 0x21},
- { .reg = DDRPHY_REG(0x200ca), .cfg = 0x24},
- { .reg = DDRPHY_REG(0x20060), .cfg = 0x2},
- { .reg = DDRPHY_REG(0xd0000), .cfg = 0x0},
- { .reg = DDRPHY_REG(0xd0000), .cfg = 0x1},
-
- /* trained CSR */
- { .reg = DDRPHY_REG(0x200b2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1200b2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2200b2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x200cb), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213043), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213143), .cfg = 0 },
- { .reg = DDRPHY_REG(0x80), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x200080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x101080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x201080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x102080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x202080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x3080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x103080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x203080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x4080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x104080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x204080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x5080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x105080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x205080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x6080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x106080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x206080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x7080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x107080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x207080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x8080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x108080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x208080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x9080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x109080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x209080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213080), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213180), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213081), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213181), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1100d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2100d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x101d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1101d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2101d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1110d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2110d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1111d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2111d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1120d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2120d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x121d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1121d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2121d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1130d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2130d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x131d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1131d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2131d0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1100d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2100d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x101d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1101d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2101d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1110d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2110d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1111d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2111d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1120d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2120d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x121d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1121d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2121d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1130d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2130d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x131d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1131d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2131d1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10068), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10168), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10268), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10368), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10468), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10568), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10668), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10768), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10868), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11068), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11168), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11268), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11368), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11468), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11568), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11668), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11768), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11868), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12068), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12168), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12268), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12368), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12468), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12568), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12668), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12768), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12868), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13068), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13168), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13268), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13368), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13468), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13568), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13668), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13768), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13868), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10069), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10169), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10269), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10369), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10469), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10569), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10669), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10769), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10869), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11069), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11169), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11269), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11369), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11469), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11569), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11669), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11769), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11869), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12069), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12169), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12269), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12369), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12469), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12569), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12669), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12769), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12869), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13069), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13169), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13269), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13369), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13469), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13569), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13669), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13769), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13869), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1008c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11008c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21008c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1018c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11018c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21018c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1108c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11108c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21108c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1118c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11118c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21118c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1208c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11208c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21208c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1218c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11218c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21218c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1308c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11308c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21308c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1318c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11318c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21318c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1008d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11008d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21008d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1018d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11018d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21018d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1108d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11108d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21108d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1118d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11118d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21118d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1208d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11208d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21208d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1218d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11218d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21218d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1308d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11308d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21308d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1318d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11318d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x21318d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1100c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2100c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x101c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1101c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2101c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x102c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1102c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2102c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x103c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1103c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2103c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x104c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1104c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2104c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x105c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1105c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2105c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x106c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1106c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2106c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x107c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1107c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2107c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x108c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1108c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2108c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1110c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2110c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1111c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2111c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1112c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2112c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1113c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2113c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x114c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1114c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2114c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x115c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1115c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2115c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x116c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1116c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2116c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x117c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1117c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2117c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x118c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1118c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2118c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1120c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2120c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x121c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1121c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2121c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x122c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1122c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2122c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x123c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1123c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2123c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x124c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1124c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2124c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x125c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1125c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2125c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x126c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1126c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2126c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x127c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1127c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2127c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x128c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1128c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2128c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1130c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2130c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x131c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1131c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2131c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x132c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1132c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2132c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x133c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1133c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2133c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x134c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1134c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2134c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x135c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1135c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2135c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x136c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1136c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2136c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x137c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1137c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2137c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x138c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1138c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2138c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1100c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2100c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x101c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1101c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2101c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x102c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1102c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2102c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x103c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1103c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2103c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x104c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1104c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2104c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x105c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1105c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2105c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x106c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1106c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2106c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x107c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1107c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2107c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x108c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1108c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2108c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1110c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2110c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1111c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2111c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1112c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2112c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1113c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2113c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x114c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1114c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2114c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x115c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1115c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2115c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x116c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1116c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2116c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x117c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1117c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2117c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x118c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1118c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2118c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1120c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2120c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x121c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1121c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2121c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x122c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1122c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2122c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x123c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1123c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2123c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x124c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1124c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2124c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x125c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1125c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2125c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x126c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1126c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2126c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x127c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1127c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2127c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x128c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1128c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2128c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1130c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2130c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x131c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1131c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2131c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x132c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1132c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2132c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x133c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1133c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2133c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x134c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1134c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2134c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x135c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1135c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2135c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x136c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1136c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2136c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x137c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1137c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2137c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x138c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1138c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2138c1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x210020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x111020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x211020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x112020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x212020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x113020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x213020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20072), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20073), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20074), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100aa), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110aa), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120aa), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130aa), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20010), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120010), .cfg = 0 },
- { .reg = DDRPHY_REG(0x220010), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20011), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120011), .cfg = 0 },
- { .reg = DDRPHY_REG(0x220011), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1100ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2100ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1100af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2100af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1110ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2110ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1110af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2110af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1120ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2120ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1120af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2120af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1130ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2130ae), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x1130af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2130af), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x220020), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a3), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a4), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a5), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a6), .cfg = 0 },
- { .reg = DDRPHY_REG(0x100a7), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a3), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a4), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a5), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a6), .cfg = 0 },
- { .reg = DDRPHY_REG(0x110a7), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a3), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a4), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a5), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a6), .cfg = 0 },
- { .reg = DDRPHY_REG(0x120a7), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a1), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a2), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a3), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a4), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a5), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a6), .cfg = 0 },
- { .reg = DDRPHY_REG(0x130a7), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2007c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12007c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x22007c), .cfg = 0 },
- { .reg = DDRPHY_REG(0x2007d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12007d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x22007d), .cfg = 0 },
- { .reg = DDRPHY_REG(0x400fd), .cfg = 0 },
- { .reg = DDRPHY_REG(0x400c0), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90201), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190201), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290201), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90202), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190202), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290202), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90203), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190203), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290203), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90204), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190204), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290204), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90205), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190205), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290205), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90206), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190206), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290206), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90207), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190207), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290207), .cfg = 0 },
- { .reg = DDRPHY_REG(0x90208), .cfg = 0 },
- { .reg = DDRPHY_REG(0x190208), .cfg = 0 },
- { .reg = DDRPHY_REG(0x290208), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10062), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10162), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10262), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10362), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10462), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10562), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10662), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10762), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10862), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11062), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11162), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11262), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11362), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11462), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11562), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11662), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11762), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11862), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12062), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12162), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12262), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12362), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12462), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12562), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12662), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12762), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12862), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13062), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13162), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13262), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13362), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13462), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13562), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13662), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13762), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13862), .cfg = 0 },
- { .reg = DDRPHY_REG(0x20077), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10001), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11001), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12001), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13001), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10040), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10140), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10240), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10340), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10440), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10540), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10640), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10740), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10840), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10030), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10130), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10230), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10330), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10430), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10530), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10630), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10730), .cfg = 0 },
- { .reg = DDRPHY_REG(0x10830), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11040), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11140), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11240), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11340), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11440), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11540), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11640), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11740), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11840), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11030), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11130), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11230), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11330), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11430), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11530), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11630), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11730), .cfg = 0 },
- { .reg = DDRPHY_REG(0x11830), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12040), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12140), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12240), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12340), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12440), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12540), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12640), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12740), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12840), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12030), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12130), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12230), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12330), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12430), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12530), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12630), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12730), .cfg = 0 },
- { .reg = DDRPHY_REG(0x12830), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13040), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13140), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13240), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13340), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13440), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13540), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13640), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13740), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13840), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13030), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13130), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13230), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13330), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13430), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13530), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13630), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13730), .cfg = 0 },
- { .reg = DDRPHY_REG(0x13830), .cfg = 0 },
-};
-
-struct dram_info imx8m_lpddr4_dram_info = {
- .ddrc_cfg = lpddr4_ddrc_cfg,
- .ddrc_cfg_num = ARRAY_SIZE(lpddr4_ddrc_cfg),
- .ddrphy_cfg = lpddr4_ddrphy_cfg,
- .ddrphy_cfg_num = ARRAY_SIZE(lpddr4_ddrphy_cfg),
-};
-
-
-
void lpddr4_enter_retention(void)
{
unsigned int tmp, tmp_t, i;
diff --git a/plat/imx/common/include/dram.h b/plat/imx/common/include/dram.h
index 5545fad..fd0130c 100644
--- a/plat/imx/common/include/dram.h
+++ b/plat/imx/common/include/dram.h
@@ -17,24 +17,36 @@
/* reg & config param */
struct dram_cfg_param {
unsigned int reg;
- unsigned int cfg;
+ unsigned int val;
+};
+
+struct dram_timing_info {
+ /* umctl2 config */
+ struct dram_cfg_param *ddrc_cfg;
+ unsigned int ddrc_cfg_num;
+ /* ddrphy config */
+ struct dram_cfg_param *ddrphy_cfg;
+ unsigned int ddrphy_cfg_num;
+ /* ddr fsp train info */
+ struct dram_fsp_msg *fsp_msg;
+ unsigned int fsp_msg_num;
+ /* ddr phy trained CSR */
+ struct dram_cfg_param *ddrphy_trained_csr;
+ unsigned int ddrphy_trained_csr_num;
+ /* ddr phy PIE */
+ struct dram_cfg_param *ddrphy_pie;
+ unsigned int ddrphy_pie_num;
};
struct dram_info {
int dram_type;
int current_fsp;
int boot_fsp;
- struct dram_cfg_param *ddrc_cfg;
- unsigned int ddrc_cfg_num;
- struct dram_cfg_param *ddrphy_cfg;
- unsigned int ddrphy_cfg_num;
+ struct dram_timing_info *timing_info;
};
-/* lpddr4 ddrc and phy config info */
-extern struct dram_info imx8m_lpddr4_dram_info;
-
void ddrphy_load_pie_image(void);
-void dram_info_init(void);
+void dram_info_init(unsigned long dram_timing_base);
void lpddr4_enter_retention(void);
void lpddr4_exit_retention(void);
void dram_umctl2_init(void);
diff --git a/plat/imx/imx8mm/imx8mm_bl31_setup.c b/plat/imx/imx8mm/imx8mm_bl31_setup.c
index f2fabb5..d3d64d0 100644
--- a/plat/imx/imx8mm/imx8mm_bl31_setup.c
+++ b/plat/imx/imx8mm/imx8mm_bl31_setup.c
@@ -257,6 +257,8 @@
/* Map DDRC/PHY/PERF */
mmap_add_region(0x3c000000, 0x3c000000, 0x4000000, MT_DEVICE | MT_RW);
+ mmap_add_region(0x180000, 0x180000, 0x8000, MT_MEMORY | MT_RW);
+
#if USE_COHERENT_MEM
mmap_add_region(BL31_COHERENT_RAM_BASE, BL31_COHERENT_RAM_BASE,
BL31_COHERENT_RAM_LIMIT - BL31_COHERENT_RAM_BASE,
@@ -275,7 +277,7 @@
mmio_write_32(0x30360124, 0x1);
/* init the dram info */
- dram_info_init();
+ dram_info_init(SAVED_DRAM_TIMING_BASE);
/* init the GICv3 cpu and distributor interface */
plat_gic_driver_init();
diff --git a/plat/imx/imx8mm/include/platform_def.h b/plat/imx/imx8mm/include/platform_def.h
index cbf0d18..a8b21ce 100644
--- a/plat/imx/imx8mm/include/platform_def.h
+++ b/plat/imx/imx8mm/include/platform_def.h
@@ -82,6 +82,8 @@
#define OCRAM_S_SIZE 0x8000
#define OCRAM_S_LIMIT (OCRAM_S_BASE + OCRAM_S_SIZE)
+#define SAVED_DRAM_TIMING_BASE OCRAM_S_BASE
+
#define COUNTER_FREQUENCY 8000000 /* 8MHz */
#define DEBUG_CONSOLE 0
diff --git a/plat/imx/imx8mm/platform.mk b/plat/imx/imx8mm/platform.mk
index 031e500..22661a1 100644
--- a/plat/imx/imx8mm/platform.mk
+++ b/plat/imx/imx8mm/platform.mk
@@ -10,8 +10,7 @@
plat/imx/common/plat_imx8_gic.c
PLAT_DRAM_SOURCES := plat/imx/common/imx8m/dram.c \
- plat/imx/common/imx8m/lpddr4_retention.c \
- plat/imx/common/imx8m/lpddr4_phy_pie.c
+ plat/imx/common/imx8m/lpddr4_retention.c
BL31_SOURCES += plat/imx/common/imx8_helpers.S \
plat/imx/common/mxcuart_console.S \