From: Viorel Suman <viorel.su...@nxp.com>

Add the functionality required for collecting Synopsys LPDDR training
data in SPL context.

Signed-off-by: Viorel Suman <viorel.su...@nxp.com>
Signed-off-by: Peng Fan <peng....@nxp.com>
---
 arch/arm/include/asm/arch-imx9/ddr.h |   20 +
 drivers/ddr/imx/imx9/Kconfig         |    8 +
 drivers/ddr/imx/imx9/ddr_init.c      |   11 +
 drivers/ddr/imx/phy/Kconfig          |    6 +
 drivers/ddr/imx/phy/Makefile         |    1 +
 drivers/ddr/imx/phy/ddrphy_qb_gen.c  | 1842 ++++++++++++++++++++++++++++++++++
 drivers/ddr/imx/phy/ddrphy_utils.c   |    2 +-
 7 files changed, 1889 insertions(+), 1 deletion(-)

diff --git a/arch/arm/include/asm/arch-imx9/ddr.h 
b/arch/arm/include/asm/arch-imx9/ddr.h
index 
31c420198f667f0dd334c896fe9ab0b06797641e..4c092509111c66c09cd006711131db107dbf17e3
 100644
--- a/arch/arm/include/asm/arch-imx9/ddr.h
+++ b/arch/arm/include/asm/arch-imx9/ddr.h
@@ -101,6 +101,26 @@ struct dram_timing_info {
 
 extern struct dram_timing_info dram_timing;
 
+#if defined(CONFIG_IMX_SNPS_DDR_PHY_QB_GEN)
+#define DDRPHY_QB_FSP_SIZE     3
+#define DDRPHY_QB_CSR_SIZE     1792
+#define DDRPHY_QB_FLAG_2D      BIT(0)  /* =1 if First boot used 2D training, 
=0 otherwise */
+
+struct ddrphy_qb_state {
+       u32 crc;
+       u32 flags;
+       u32 fsp[DDRPHY_QB_FSP_SIZE];
+       u32 csr[DDRPHY_QB_CSR_SIZE];
+};
+
+#define DDRPHY_QB_STATE_SIZE \
+       (sizeof(u32) * (1 + DDRPHY_QB_FSP_SIZE + DDRPHY_QB_CSR_SIZE))
+
+extern struct ddrphy_qb_state qb_state;
+
+int ddrphy_qb_save(void);
+#endif
+
 void ddr_load_train_firmware(enum fw_type type);
 int ddr_init(struct dram_timing_info *timing_info);
 int ddr_cfg_phy(struct dram_timing_info *timing_info);
diff --git a/drivers/ddr/imx/imx9/Kconfig b/drivers/ddr/imx/imx9/Kconfig
index 
0a45340ffb6549d1e7a7e273e19abefbcc6793b3..450ca0abb952a13b23322751596bf6d5c617e2b4
 100644
--- a/drivers/ddr/imx/imx9/Kconfig
+++ b/drivers/ddr/imx/imx9/Kconfig
@@ -29,4 +29,12 @@ config SAVED_DRAM_TIMING_BASE
          info into memory for low power use.
        default 0x2051C000
 
+config SAVED_QB_STATE_BASE
+       hex "Define the base address for saved QuickBoot state"
+       depends on IMX_SNPS_DDR_PHY_QB_GEN
+       help
+         Once DRAM is trained, need to save the dram related timing
+         info into memory in order to be reachable from U-Boot.
+       default 0x83100000
+
 endmenu
diff --git a/drivers/ddr/imx/imx9/ddr_init.c b/drivers/ddr/imx/imx9/ddr_init.c
index 
50c2dbd40084c6a4d750f628c5c1fc76fa017596..758a4049139228198a86449bdf2f9106c0773040
 100644
--- a/drivers/ddr/imx/imx9/ddr_init.c
+++ b/drivers/ddr/imx/imx9/ddr_init.c
@@ -381,10 +381,17 @@ int ddr_init(struct dram_timing_info *dram_timing)
         */
        debug("DDRINFO:ddrphy config start\n");
 
+#if defined(CONFIG_IMX_SNPS_DDR_PHY_QB_GEN)
+       qb_state.flags = 0;
+#endif
+
        ret = ddr_cfg_phy(dram_timing);
        if (ret)
                return ret;
 
+#if defined(CONFIG_IMX_SNPS_DDR_PHY_QB_GEN)
+       ddrphy_qb_save();
+#endif
        /* save the ddr PHY trained CSR in memory for low power use */
        ddrphy_trained_csr_save(dram_timing->ddrphy_trained_csr,
                                dram_timing->ddrphy_trained_csr_num);
@@ -447,6 +454,10 @@ int ddr_init(struct dram_timing_info *dram_timing)
                                          
ARRAY_SIZE(saved_timing->fsp_cfg[1].mr_cfg));
        }
 
+#if defined(CONFIG_IMX_SNPS_DDR_PHY_QB_GEN)
+       memcpy((struct ddrphy_qb_state *)CONFIG_SAVED_QB_STATE_BASE,
+               &qb_state, sizeof(struct ddrphy_qb_state));
+#endif
        return 0;
 }
 
diff --git a/drivers/ddr/imx/phy/Kconfig b/drivers/ddr/imx/phy/Kconfig
index 
d3e589b23c48fb0b5e09e9fcdf462e85215c3e64..28a9eca0788f96355e8459427a92832446be0e02
 100644
--- a/drivers/ddr/imx/phy/Kconfig
+++ b/drivers/ddr/imx/phy/Kconfig
@@ -2,3 +2,9 @@ config IMX_SNPS_DDR_PHY
        bool "i.MX Snopsys DDR PHY"
        help
          Select the DDR PHY driver support on i.MX8M and i.MX9 SOC.
+
+config IMX_SNPS_DDR_PHY_QB_GEN
+       bool "i.MX Synopsys DDR PHY training data generation for QuickBoot mode"
+       depends on IMX_SNPS_DDR_PHY
+       help
+         Select the DDR PHY training data generation for QuickBoot support on 
i.MX9 SOC.
diff --git a/drivers/ddr/imx/phy/Makefile b/drivers/ddr/imx/phy/Makefile
index 
95c93ba16d52270df6e8c669b948d1a194bddfce..d82842759e72d104aba41110b9c6e01b997d78fb
 100644
--- a/drivers/ddr/imx/phy/Makefile
+++ b/drivers/ddr/imx/phy/Makefile
@@ -6,4 +6,5 @@
 
 ifdef CONFIG_XPL_BUILD
 obj-$(CONFIG_IMX_SNPS_DDR_PHY) += helper.o ddrphy_utils.o ddrphy_train.o
+obj-$(CONFIG_IMX_SNPS_DDR_PHY_QB_GEN) += ddrphy_qb_gen.o
 endif
diff --git a/drivers/ddr/imx/phy/ddrphy_qb_gen.c 
b/drivers/ddr/imx/phy/ddrphy_qb_gen.c
new file mode 100644
index 
0000000000000000000000000000000000000000..d77bb8480d85770d29e4408c2a723b20377833f0
--- /dev/null
+++ b/drivers/ddr/imx/phy/ddrphy_qb_gen.c
@@ -0,0 +1,1842 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2025 NXP
+ */
+
+#include <asm/arch/ddr.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <u-boot/crc.h>
+
+static const u32 ddrphy_csr_cfg[DDRPHY_QB_CSR_SIZE] = {
+       0x00090201,
+       0x00090202,
+       0x00090203,
+       0x00090204,
+       0x00090205,
+       0x00090206,
+       0x00090207,
+       0x00090208,
+       0x00190201,
+       0x00190202,
+       0x00190203,
+       0x00190204,
+       0x00190205,
+       0x00190206,
+       0x00190207,
+       0x00190208,
+       0x00290201,
+       0x00290202,
+       0x00290203,
+       0x00290204,
+       0x00290205,
+       0x00290206,
+       0x00290207,
+       0x00290208,
+       0x00390201,
+       0x00390202,
+       0x00390203,
+       0x00390204,
+       0x00390205,
+       0x00390206,
+       0x00390207,
+       0x00390208,
+       0x00090000,
+       0x00090001,
+       0x00090002,
+       0x00090003,
+       0x00090004,
+       0x00090005,
+       0x00090006,
+       0x00090007,
+       0x00090008,
+       0x00090009,
+       0x0009000a,
+       0x0009000b,
+       0x0009000c,
+       0x0009000d,
+       0x0009000e,
+       0x0009000f,
+       0x00090010,
+       0x00090011,
+       0x00090012,
+       0x00090013,
+       0x00090014,
+       0x00090015,
+       0x00090016,
+       0x00090017,
+       0x00090018,
+       0x00090019,
+       0x0009001a,
+       0x0009001b,
+       0x0009001c,
+       0x0009001d,
+       0x0009001e,
+       0x0009001f,
+       0x00090020,
+       0x00090021,
+       0x00090022,
+       0x00090023,
+       0x00090024,
+       0x00090025,
+       0x00090026,
+       0x00090027,
+       0x00090028,
+       0x00090029,
+       0x0009002a,
+       0x0009002b,
+       0x0009002c,
+       0x0009002d,
+       0x0009002e,
+       0x0009002f,
+       0x00090030,
+       0x00090031,
+       0x00090032,
+       0x00090033,
+       0x00090034,
+       0x00090035,
+       0x00090036,
+       0x00090037,
+       0x00090038,
+       0x00090039,
+       0x0009003a,
+       0x0009003b,
+       0x0009003c,
+       0x0009003d,
+       0x0009003e,
+       0x0009003f,
+       0x00090040,
+       0x00090041,
+       0x00090042,
+       0x00090043,
+       0x00090044,
+       0x00090045,
+       0x00090046,
+       0x00090047,
+       0x00090048,
+       0x00090049,
+       0x0009004a,
+       0x0009004b,
+       0x0009004c,
+       0x0009004d,
+       0x0009004e,
+       0x0009004f,
+       0x00090050,
+       0x00090051,
+       0x00090052,
+       0x00090053,
+       0x00090054,
+       0x00090055,
+       0x00090056,
+       0x00090057,
+       0x00090058,
+       0x00090059,
+       0x0009005a,
+       0x0009005b,
+       0x0009005c,
+       0x0009005d,
+       0x0009005e,
+       0x0009005f,
+       0x00090060,
+       0x00090061,
+       0x00090062,
+       0x00090063,
+       0x00090064,
+       0x00090065,
+       0x00090066,
+       0x00090067,
+       0x00090068,
+       0x00090069,
+       0x0009006a,
+       0x0009006b,
+       0x0009006c,
+       0x0009006d,
+       0x0009006e,
+       0x0009006f,
+       0x00090070,
+       0x00090071,
+       0x00090072,
+       0x00090073,
+       0x00090074,
+       0x00090075,
+       0x00090076,
+       0x00090077,
+       0x00090078,
+       0x00090079,
+       0x0009007a,
+       0x0009007b,
+       0x0009007c,
+       0x0009007d,
+       0x0009007e,
+       0x0009007f,
+       0x00090080,
+       0x00090081,
+       0x00090082,
+       0x00090083,
+       0x00090084,
+       0x00090085,
+       0x00090086,
+       0x00090087,
+       0x00090088,
+       0x00090089,
+       0x0009008a,
+       0x0009008b,
+       0x0009008c,
+       0x0009008d,
+       0x0009008e,
+       0x0009008f,
+       0x00090090,
+       0x00090091,
+       0x00090092,
+       0x00090093,
+       0x00090094,
+       0x00090095,
+       0x00090096,
+       0x00090097,
+       0x00090098,
+       0x00090099,
+       0x0009009a,
+       0x0009009b,
+       0x0009009c,
+       0x0009009d,
+       0x0009009e,
+       0x0009009f,
+       0x000900a0,
+       0x000900a1,
+       0x000900a2,
+       0x000900a3,
+       0x000900a4,
+       0x000900a5,
+       0x000900a6,
+       0x000900a7,
+       0x000900a8,
+       0x000900a9,
+       0x000900aa,
+       0x000900ab,
+       0x000900ac,
+       0x000900ad,
+       0x000900ae,
+       0x000900af,
+       0x000900b0,
+       0x000900b1,
+       0x000900b2,
+       0x000900b3,
+       0x000900b4,
+       0x000900b5,
+       0x000900b6,
+       0x000900b7,
+       0x000900b8,
+       0x000900b9,
+       0x000900ba,
+       0x000900bb,
+       0x000900bc,
+       0x000900bd,
+       0x000900be,
+       0x000900bf,
+       0x000900c0,
+       0x000900c1,
+       0x000900c2,
+       0x000900c3,
+       0x000900c4,
+       0x000900c5,
+       0x000900c6,
+       0x000900c7,
+       0x000900c8,
+       0x000900c9,
+       0x000900ca,
+       0x000900cb,
+       0x000900cc,
+       0x000900cd,
+       0x000900ce,
+       0x000900cf,
+       0x000900d0,
+       0x000900d1,
+       0x000900d2,
+       0x000900d3,
+       0x000900d4,
+       0x000900d5,
+       0x000900d6,
+       0x000900d7,
+       0x000900d8,
+       0x000900d9,
+       0x000900da,
+       0x000900db,
+       0x000900dc,
+       0x000900dd,
+       0x000900de,
+       0x000900df,
+       0x000900e0,
+       0x000900e1,
+       0x000900e2,
+       0x000900e3,
+       0x000900e4,
+       0x000900e5,
+       0x000900e6,
+       0x000900e7,
+       0x000900e8,
+       0x000900e9,
+       0x000900ea,
+       0x000900eb,
+       0x000900ec,
+       0x000900ed,
+       0x000900ee,
+       0x000900ef,
+       0x000900f0,
+       0x000900f1,
+       0x000900f2,
+       0x000900f3,
+       0x000900f4,
+       0x000900f5,
+       0x000900f6,
+       0x000900f7,
+       0x000900f8,
+       0x000900f9,
+       0x000900fa,
+       0x000900fb,
+       0x000900fc,
+       0x000900fd,
+       0x000900fe,
+       0x000900ff,
+       0x00090100,
+       0x00090101,
+       0x00090102,
+       0x00090103,
+       0x00090104,
+       0x00090105,
+       0x00090106,
+       0x00090107,
+       0x00090108,
+       0x00090109,
+       0x0009010a,
+       0x0009010b,
+       0x0009010c,
+       0x0009010d,
+       0x0009010e,
+       0x0009010f,
+       0x00090110,
+       0x00090111,
+       0x00090112,
+       0x00090113,
+       0x00090114,
+       0x00090115,
+       0x00090116,
+       0x00090117,
+       0x00090118,
+       0x00090119,
+       0x0009011a,
+       0x0009011b,
+       0x0009011c,
+       0x0009011d,
+       0x0009011e,
+       0x0009011f,
+       0x00090120,
+       0x00090121,
+       0x00090122,
+       0x00090123,
+       0x00090124,
+       0x00090125,
+       0x00090126,
+       0x00090127,
+       0x00090128,
+       0x00090129,
+       0x0009012a,
+       0x0009012b,
+       0x0009012c,
+       0x0009012d,
+       0x0009012e,
+       0x0009012f,
+       0x00090130,
+       0x00090131,
+       0x00090132,
+       0x00090133,
+       0x00090134,
+       0x00090135,
+       0x00090136,
+       0x00090137,
+       0x00090138,
+       0x00090139,
+       0x0009013a,
+       0x0009013b,
+       0x0009013c,
+       0x0009013d,
+       0x0009013e,
+       0x0009013f,
+       0x00090140,
+       0x00090141,
+       0x00090142,
+       0x00090143,
+       0x00090144,
+       0x00090145,
+       0x00090146,
+       0x00090147,
+       0x00090148,
+       0x00090149,
+       0x0009014a,
+       0x0009014b,
+       0x0009014c,
+       0x0009014d,
+       0x0009014e,
+       0x0009014f,
+       0x00090150,
+       0x00090151,
+       0x00090152,
+       0x00090153,
+       0x00090154,
+       0x00090155,
+       0x00090156,
+       0x00090157,
+       0x00090158,
+       0x00090159,
+       0x0009015a,
+       0x0009015b,
+       0x0009015c,
+       0x0009015d,
+       0x0009015e,
+       0x0009015f,
+       0x00090160,
+       0x00090161,
+       0x00090162,
+       0x00090163,
+       0x00090164,
+       0x00090165,
+       0x00090166,
+       0x00090167,
+       0x00090168,
+       0x00090169,
+       0x0009016a,
+       0x0009016b,
+       0x0009016c,
+       0x0009016d,
+       0x0009016e,
+       0x0009016f,
+       0x00090170,
+       0x00090171,
+       0x00090172,
+       0x00090173,
+       0x00090174,
+       0x00090175,
+       0x00090176,
+       0x00090177,
+       0x00090178,
+       0x00090179,
+       0x0009017a,
+       0x0009017b,
+       0x0009017c,
+       0x0009017d,
+       0x0009017e,
+       0x0009017f,
+       0x00090180,
+       0x00090181,
+       0x00090182,
+       0x00090183,
+       0x00090184,
+       0x00090185,
+       0x00090186,
+       0x00090187,
+       0x00090188,
+       0x00090189,
+       0x0009018a,
+       0x0009018b,
+       0x0009018c,
+       0x0009018d,
+       0x0009018e,
+       0x0009018f,
+       0x00090190,
+       0x00090191,
+       0x00090192,
+       0x00090193,
+       0x00090194,
+       0x00090195,
+       0x00090196,
+       0x00090197,
+       0x00090198,
+       0x00090199,
+       0x0009019a,
+       0x0009019b,
+       0x000902ff,
+       0x00040080,
+       0x00040081,
+       0x00040082,
+       0x00040083,
+       0x00040084,
+       0x00040085,
+       0x00040086,
+       0x00040087,
+       0x00040088,
+       0x00040089,
+       0x0004008a,
+       0x0004008b,
+       0x0004008c,
+       0x0004008d,
+       0x0004008e,
+       0x0004008f,
+       0x00140080,
+       0x00140081,
+       0x00140082,
+       0x00140083,
+       0x00140084,
+       0x00140085,
+       0x00140086,
+       0x00140087,
+       0x00140088,
+       0x00140089,
+       0x0014008a,
+       0x0014008b,
+       0x0014008c,
+       0x0014008d,
+       0x0014008e,
+       0x0014008f,
+       0x00240080,
+       0x00240081,
+       0x00240082,
+       0x00240083,
+       0x00240084,
+       0x00240085,
+       0x00240086,
+       0x00240087,
+       0x00240088,
+       0x00240089,
+       0x0024008a,
+       0x0024008b,
+       0x0024008c,
+       0x0024008d,
+       0x0024008e,
+       0x0024008f,
+       0x00340080,
+       0x00340081,
+       0x00340082,
+       0x00340083,
+       0x00340084,
+       0x00340085,
+       0x00340086,
+       0x00340087,
+       0x00340088,
+       0x00340089,
+       0x0034008a,
+       0x0034008b,
+       0x0034008c,
+       0x0034008d,
+       0x0034008e,
+       0x0034008f,
+       0x00040000,
+       0x00040001,
+       0x00040002,
+       0x00040003,
+       0x00040004,
+       0x00040005,
+       0x00040006,
+       0x00040007,
+       0x00040008,
+       0x00040009,
+       0x0004000a,
+       0x0004000b,
+       0x0004000c,
+       0x0004000d,
+       0x0004000e,
+       0x0004000f,
+       0x00040010,
+       0x00040011,
+       0x00040012,
+       0x00040013,
+       0x00040014,
+       0x00040015,
+       0x00040016,
+       0x00040017,
+       0x00040018,
+       0x00040019,
+       0x0004001a,
+       0x0004001b,
+       0x0004001c,
+       0x0004001d,
+       0x0004001e,
+       0x0004001f,
+       0x00040020,
+       0x00040021,
+       0x00040022,
+       0x00040023,
+       0x00040024,
+       0x00040025,
+       0x00040026,
+       0x00040027,
+       0x00040028,
+       0x00040029,
+       0x0004002a,
+       0x0004002b,
+       0x0004002c,
+       0x0004002d,
+       0x0004002e,
+       0x0004002f,
+       0x00040030,
+       0x00040031,
+       0x00040032,
+       0x00040033,
+       0x00040034,
+       0x00040035,
+       0x00040036,
+       0x00040037,
+       0x00040038,
+       0x00040039,
+       0x0004003a,
+       0x0004003b,
+       0x0004003c,
+       0x0004003d,
+       0x0004003e,
+       0x0004003f,
+       0x00040040,
+       0x00040041,
+       0x00040042,
+       0x00040043,
+       0x00040044,
+       0x00040045,
+       0x00040046,
+       0x00040047,
+       0x00040048,
+       0x00040049,
+       0x0004004a,
+       0x0004004b,
+       0x0004004c,
+       0x0004004d,
+       0x0004004e,
+       0x0004004f,
+       0x00040050,
+       0x00040051,
+       0x00040052,
+       0x00040053,
+       0x00040054,
+       0x00040055,
+       0x00040056,
+       0x00040057,
+       0x00040058,
+       0x00040059,
+       0x0004005a,
+       0x0004005b,
+       0x0004005c,
+       0x0004005d,
+       0x0004005e,
+       0x0004005f,
+       0x00040060,
+       0x00040061,
+       0x00040062,
+       0x00040063,
+       0x00040064,
+       0x00040065,
+       0x00040066,
+       0x00040067,
+       0x00040068,
+       0x00040069,
+       0x0004006a,
+       0x0004006b,
+       0x0004006c,
+       0x0004006d,
+       0x0004006e,
+       0x0004006f,
+       0x00040070,
+       0x00040071,
+       0x00040072,
+       0x00040073,
+       0x00040074,
+       0x00040075,
+       0x00040076,
+       0x00040077,
+       0x00040078,
+       0x00040079,
+       0x0004007a,
+       0x0004007b,
+       0x0004007c,
+       0x0004007d,
+       0x0004007e,
+       0x0004007f,
+       0x00040080,
+       0x00040081,
+       0x00040082,
+       0x00040083,
+       0x00040084,
+       0x00040085,
+       0x00040086,
+       0x00040087,
+       0x00040088,
+       0x00040089,
+       0x0004008a,
+       0x0004008b,
+       0x0004008c,
+       0x0004008d,
+       0x0004008e,
+       0x0004008f,
+       0x00040090,
+       0x00040091,
+       0x00040092,
+       0x00040093,
+       0x00040094,
+       0x00040095,
+       0x00040096,
+       0x00040097,
+       0x00040098,
+       0x00040099,
+       0x0004009a,
+       0x0004009b,
+       0x0004009c,
+       0x0004009d,
+       0x0004009e,
+       0x0004009f,
+       0x000400a0,
+       0x000400a1,
+       0x000400a2,
+       0x000400a3,
+       0x000400a4,
+       0x000400a5,
+       0x000400a6,
+       0x000400a7,
+       0x000400a8,
+       0x000400a9,
+       0x000400aa,
+       0x000400ab,
+       0x000400ac,
+       0x000400ad,
+       0x000400ae,
+       0x000400af,
+       0x000400b0,
+       0x000400b1,
+       0x000400b2,
+       0x000400b3,
+       0x000400b4,
+       0x000400b5,
+       0x000400b6,
+       0x000400b7,
+       0x000400b8,
+       0x000400b9,
+       0x000400ba,
+       0x000400bb,
+       0x000400bc,
+       0x000400bd,
+       0x000400be,
+       0x000400bf,
+       0x000400c0,
+       0x000400c1,
+       0x000400c2,
+       0x000400c3,
+       0x000400c4,
+       0x000400c5,
+       0x000400c6,
+       0x000400c7,
+       0x000400c8,
+       0x000400c9,
+       0x000400ca,
+       0x000400cb,
+       0x000400cc,
+       0x000400cd,
+       0x000400ce,
+       0x000400cf,
+       0x000400d0,
+       0x000400d1,
+       0x000400d2,
+       0x000400d3,
+       0x000400d4,
+       0x000400d5,
+       0x000400d6,
+       0x000400d7,
+       0x000400d8,
+       0x000400d9,
+       0x000400da,
+       0x000400db,
+       0x000400dc,
+       0x000400dd,
+       0x000400de,
+       0x000400df,
+       0x000400e0,
+       0x000400e1,
+       0x000400e2,
+       0x000400e3,
+       0x000400e4,
+       0x000400e5,
+       0x000400e6,
+       0x000400e7,
+       0x000400e8,
+       0x000400e9,
+       0x000400ea,
+       0x000400eb,
+       0x000400ec,
+       0x000400ed,
+       0x000400ee,
+       0x000400ef,
+       0x000400f0,
+       0x000400f1,
+       0x000400f2,
+       0x000400f3,
+       0x000400f4,
+       0x000400f5,
+       0x000400f6,
+       0x000400f7,
+       0x000400f8,
+       0x000400f9,
+       0x000400fa,
+       0x000400fb,
+       0x000400fc,
+       0x000400fd,
+       0x000400fe,
+       0x000400ff,
+       0x000100b2,
+       0x000100b4,
+       0x000101b2,
+       0x000101b4,
+       0x000102b2,
+       0x000102b4,
+       0x000103b2,
+       0x000103b4,
+       0x000104b2,
+       0x000104b4,
+       0x000105b2,
+       0x000105b4,
+       0x000106b2,
+       0x000106b4,
+       0x000107b2,
+       0x000107b4,
+       0x000108b2,
+       0x000108b4,
+       0x00010011,
+       0x00010012,
+       0x00010013,
+       0x00010018,
+       0x00010002,
+       0x000110b2,
+       0x000110b4,
+       0x000111b2,
+       0x000111b4,
+       0x000112b2,
+       0x000112b4,
+       0x000113b2,
+       0x000113b4,
+       0x000114b2,
+       0x000114b4,
+       0x000115b2,
+       0x000115b4,
+       0x000116b2,
+       0x000116b4,
+       0x000117b2,
+       0x000117b4,
+       0x000118b2,
+       0x000118b4,
+       0x00011011,
+       0x00011012,
+       0x00011013,
+       0x00011018,
+       0x00011002,
+       0x000120b2,
+       0x000120b4,
+       0x000121b2,
+       0x000121b4,
+       0x000122b2,
+       0x000122b4,
+       0x000123b2,
+       0x000123b4,
+       0x000124b2,
+       0x000124b4,
+       0x000125b2,
+       0x000125b4,
+       0x000126b2,
+       0x000126b4,
+       0x000127b2,
+       0x000127b4,
+       0x000128b2,
+       0x000128b4,
+       0x00012011,
+       0x00012012,
+       0x00012013,
+       0x00012018,
+       0x00012002,
+       0x000130b2,
+       0x000130b4,
+       0x000131b2,
+       0x000131b4,
+       0x000132b2,
+       0x000132b4,
+       0x000133b2,
+       0x000133b4,
+       0x000134b2,
+       0x000134b4,
+       0x000135b2,
+       0x000135b4,
+       0x000136b2,
+       0x000136b4,
+       0x000137b2,
+       0x000137b4,
+       0x000138b2,
+       0x000138b4,
+       0x00013011,
+       0x00013012,
+       0x00013013,
+       0x00013018,
+       0x00013002,
+       0x000140b2,
+       0x000140b4,
+       0x000141b2,
+       0x000141b4,
+       0x000142b2,
+       0x000142b4,
+       0x000143b2,
+       0x000143b4,
+       0x000144b2,
+       0x000144b4,
+       0x000145b2,
+       0x000145b4,
+       0x000146b2,
+       0x000146b4,
+       0x000147b2,
+       0x000147b4,
+       0x000148b2,
+       0x000148b4,
+       0x00014011,
+       0x00014012,
+       0x00014013,
+       0x00014018,
+       0x00014002,
+       0x000150b2,
+       0x000150b4,
+       0x000151b2,
+       0x000151b4,
+       0x000152b2,
+       0x000152b4,
+       0x000153b2,
+       0x000153b4,
+       0x000154b2,
+       0x000154b4,
+       0x000155b2,
+       0x000155b4,
+       0x000156b2,
+       0x000156b4,
+       0x000157b2,
+       0x000157b4,
+       0x000158b2,
+       0x000158b4,
+       0x00015011,
+       0x00015012,
+       0x00015013,
+       0x00015018,
+       0x00015002,
+       0x000160b2,
+       0x000160b4,
+       0x000161b2,
+       0x000161b4,
+       0x000162b2,
+       0x000162b4,
+       0x000163b2,
+       0x000163b4,
+       0x000164b2,
+       0x000164b4,
+       0x000165b2,
+       0x000165b4,
+       0x000166b2,
+       0x000166b4,
+       0x000167b2,
+       0x000167b4,
+       0x000168b2,
+       0x000168b4,
+       0x00016011,
+       0x00016012,
+       0x00016013,
+       0x00016018,
+       0x00016002,
+       0x000170b2,
+       0x000170b4,
+       0x000171b2,
+       0x000171b4,
+       0x000172b2,
+       0x000172b4,
+       0x000173b2,
+       0x000173b4,
+       0x000174b2,
+       0x000174b4,
+       0x000175b2,
+       0x000175b4,
+       0x000176b2,
+       0x000176b4,
+       0x000177b2,
+       0x000177b4,
+       0x000178b2,
+       0x000178b4,
+       0x00017011,
+       0x00017012,
+       0x00017013,
+       0x00017018,
+       0x00017002,
+       0x000180b2,
+       0x000180b4,
+       0x000181b2,
+       0x000181b4,
+       0x000182b2,
+       0x000182b4,
+       0x000183b2,
+       0x000183b4,
+       0x000184b2,
+       0x000184b4,
+       0x000185b2,
+       0x000185b4,
+       0x000186b2,
+       0x000186b4,
+       0x000187b2,
+       0x000187b4,
+       0x000188b2,
+       0x000188b4,
+       0x00018011,
+       0x00018012,
+       0x00018013,
+       0x00018018,
+       0x00018002,
+       0x000190b2,
+       0x000190b4,
+       0x000191b2,
+       0x000191b4,
+       0x000192b2,
+       0x000192b4,
+       0x000193b2,
+       0x000193b4,
+       0x000194b2,
+       0x000194b4,
+       0x000195b2,
+       0x000195b4,
+       0x000196b2,
+       0x000196b4,
+       0x000197b2,
+       0x000197b4,
+       0x000198b2,
+       0x000198b4,
+       0x00019011,
+       0x00019012,
+       0x00019013,
+       0x00019018,
+       0x00019002,
+       0x00020010,
+       0x00020011,
+       0x00120010,
+       0x00120011,
+       0x00220010,
+       0x00220011,
+       0x00320010,
+       0x00320011,
+       0x00020088,
+       0x000200f0,
+       0x000200f1,
+       0x000200f2,
+       0x000200f3,
+       0x000200f4,
+       0x000200f5,
+       0x000200f6,
+       0x000200f7,
+       0x0002000b,
+       0x0002000c,
+       0x0002000d,
+       0x0002000e,
+       0x0002002e,
+       0x00020024,
+       0x00020056,
+       0x00020008,
+       0x0002007c,
+       0x000200b2,
+       0x000200fa,
+       0x00020019,
+       0x0002002d,
+       0x000200b0,
+       0x000200b4,
+       0x000200c5,
+       0x00020062,
+       0x00020063,
+       0x00020064,
+       0x00020065,
+       0x00020066,
+       0x00020067,
+       0x00020068,
+       0x000200f0,
+       0x000200f1,
+       0x000200f2,
+       0x000200f3,
+       0x000200f4,
+       0x000200f5,
+       0x000200f6,
+       0x000200f7,
+       0x0012000b,
+       0x0012000c,
+       0x0012000d,
+       0x0012000e,
+       0x0012002e,
+       0x00120024,
+       0x00120056,
+       0x00120008,
+       0x0012007c,
+       0x001200b2,
+       0x001200fa,
+       0x00120019,
+       0x0012002d,
+       0x001200b0,
+       0x001200b4,
+       0x001200c5,
+       0x00120062,
+       0x00120063,
+       0x00120064,
+       0x00120065,
+       0x00120066,
+       0x00120067,
+       0x00120068,
+       0x000200f0,
+       0x000200f1,
+       0x000200f2,
+       0x000200f3,
+       0x000200f4,
+       0x000200f5,
+       0x000200f6,
+       0x000200f7,
+       0x0022000b,
+       0x0022000c,
+       0x0022000d,
+       0x0022000e,
+       0x0022002e,
+       0x00220024,
+       0x00220056,
+       0x00220008,
+       0x0022007c,
+       0x002200b2,
+       0x002200fa,
+       0x00220019,
+       0x0022002d,
+       0x002200b0,
+       0x002200b4,
+       0x002200c5,
+       0x00220062,
+       0x00220063,
+       0x00220064,
+       0x00220065,
+       0x00220066,
+       0x00220067,
+       0x00220068,
+       0x000200f0,
+       0x000200f1,
+       0x000200f2,
+       0x000200f3,
+       0x000200f4,
+       0x000200f5,
+       0x000200f6,
+       0x000200f7,
+       0x0032000b,
+       0x0032000c,
+       0x0032000d,
+       0x0032000e,
+       0x0032002e,
+       0x00320024,
+       0x00320056,
+       0x00320008,
+       0x0032007c,
+       0x003200b2,
+       0x003200fa,
+       0x00320019,
+       0x0032002d,
+       0x003200b0,
+       0x003200b4,
+       0x003200c5,
+       0x00320062,
+       0x00320063,
+       0x00320064,
+       0x00320065,
+       0x00320066,
+       0x00320067,
+       0x00320068,
+       0x0002003a,
+       0x00020018,
+       0x00020075,
+       0x00020050,
+       0x00020088,
+       0x0002005b,
+       0x0002005c,
+       0x00020025,
+       0x00020131,
+       0x00020130,
+       0x00020137,
+       0x00020138,
+       0x00020139,
+       0x0002013a,
+       0x00020001,
+       0x0002002c,
+       0x00020027,
+       0x00020021,
+       0x00020023,
+       0x00020071,
+       0x00020098,
+       0x000200ef,
+       0x00020060,
+       0x00020061,
+       0x00020120,
+       0x00020132,
+       0x00020135,
+       0x00020100,
+       0x00020110,
+       0x00020121,
+       0x00020133,
+       0x00020136,
+       0x00020101,
+       0x00020111,
+       0x00020122,
+       0x00020134,
+       0x00020102,
+       0x00020112,
+       0x00020123,
+       0x00020103,
+       0x00020113,
+       0x00020124,
+       0x00020104,
+       0x00020114,
+       0x00020125,
+       0x00020105,
+       0x00020115,
+       0x00020126,
+       0x00020106,
+       0x00020116,
+       0x00020127,
+       0x00020107,
+       0x00020117,
+       0x00020128,
+       0x00020108,
+       0x00020118,
+       0x00020129,
+       0x00020109,
+       0x00020119,
+       0x0002012a,
+       0x0002012b,
+       0x0002012c,
+       0x0002012d,
+       0x0002012e,
+       0x0002012f,
+       0x00000043,
+       0x00000055,
+       0x00001043,
+       0x00001055,
+       0x00002043,
+       0x00002055,
+       0x00003043,
+       0x00003055,
+       0x00004043,
+       0x00004055,
+       0x00005043,
+       0x00005055,
+       0x00006043,
+       0x00006055,
+       0x00007043,
+       0x00007055,
+       0x00008043,
+       0x00008055,
+       0x00009043,
+       0x00009055,
+       0x0000a043,
+       0x0000a055,
+       0x0000b043,
+       0x0000b055,
+       0x0002007d,
+       0x00020020,
+       0x0012007d,
+       0x00120020,
+       0x0022007d,
+       0x00220020,
+       0x0032007d,
+       0x00320020,
+       0x00020077,
+       0x00020072,
+       0x00020073,
+       0x00020005,
+       0x000200cb,
+       0x00000080,
+       0x00100080,
+       0x00200080,
+       0x00300080,
+       0x00001080,
+       0x00101080,
+       0x00201080,
+       0x00301080,
+       0x00002080,
+       0x00102080,
+       0x00202080,
+       0x00302080,
+       0x00003080,
+       0x00103080,
+       0x00203080,
+       0x00303080,
+       0x00004080,
+       0x00104080,
+       0x00204080,
+       0x00304080,
+       0x00005080,
+       0x00105080,
+       0x00205080,
+       0x00305080,
+       0x00006080,
+       0x00106080,
+       0x00206080,
+       0x00306080,
+       0x00007080,
+       0x00107080,
+       0x00207080,
+       0x00307080,
+       0x00008080,
+       0x00108080,
+       0x00208080,
+       0x00308080,
+       0x00009080,
+       0x00109080,
+       0x00209080,
+       0x00309080,
+       0x0000a080,
+       0x0010a080,
+       0x0020a080,
+       0x0030a080,
+       0x0000b080,
+       0x0010b080,
+       0x0020b080,
+       0x0030b080,
+       0x000100c0,
+       0x00010068,
+       0x00010040,
+       0x00010030,
+       0x00010062,
+       0x000101c0,
+       0x00010168,
+       0x00010140,
+       0x00010130,
+       0x00010162,
+       0x000102c0,
+       0x00010268,
+       0x00010240,
+       0x00010230,
+       0x00010262,
+       0x000103c0,
+       0x00010368,
+       0x00010340,
+       0x00010330,
+       0x00010362,
+       0x000104c0,
+       0x00010468,
+       0x00010440,
+       0x00010430,
+       0x00010462,
+       0x000105c0,
+       0x00010568,
+       0x00010540,
+       0x00010530,
+       0x00010562,
+       0x000106c0,
+       0x00010668,
+       0x00010640,
+       0x00010630,
+       0x00010662,
+       0x000107c0,
+       0x00010768,
+       0x00010740,
+       0x00010730,
+       0x00010762,
+       0x000108c0,
+       0x00010868,
+       0x00010840,
+       0x00010830,
+       0x00010862,
+       0x000100d0,
+       0x0001008c,
+       0x00010090,
+       0x00010080,
+       0x000101d0,
+       0x0001018c,
+       0x00010190,
+       0x00010180,
+       0x000100c1,
+       0x00010069,
+       0x000101c1,
+       0x00010169,
+       0x000102c1,
+       0x00010269,
+       0x000103c1,
+       0x00010369,
+       0x000104c1,
+       0x00010469,
+       0x000105c1,
+       0x00010569,
+       0x000106c1,
+       0x00010669,
+       0x000107c1,
+       0x00010769,
+       0x000108c1,
+       0x00010869,
+       0x000100d1,
+       0x0001008d,
+       0x00010091,
+       0x00010081,
+       0x000101d1,
+       0x0001018d,
+       0x00010191,
+       0x00010181,
+       0x00010020,
+       0x000100ae,
+       0x000100af,
+       0x00010048,
+       0x00010041,
+       0x0001004b,
+       0x0001004d,
+       0x00010049,
+       0x00010043,
+       0x0001005f,
+       0x00010141,
+       0x0001014b,
+       0x0001014d,
+       0x00010149,
+       0x00010143,
+       0x0001015f,
+       0x001100c0,
+       0x001101c0,
+       0x001102c0,
+       0x001103c0,
+       0x001104c0,
+       0x001105c0,
+       0x001106c0,
+       0x001107c0,
+       0x001108c0,
+       0x001100d0,
+       0x0011008c,
+       0x00110090,
+       0x00110080,
+       0x001101d0,
+       0x0011018c,
+       0x00110190,
+       0x00110180,
+       0x001100c1,
+       0x001101c1,
+       0x001102c1,
+       0x001103c1,
+       0x001104c1,
+       0x001105c1,
+       0x001106c1,
+       0x001107c1,
+       0x001108c1,
+       0x001100d1,
+       0x0011008d,
+       0x00110091,
+       0x00110081,
+       0x001101d1,
+       0x0011018d,
+       0x00110191,
+       0x00110181,
+       0x00110020,
+       0x001100ae,
+       0x001100af,
+       0x00110048,
+       0x00110041,
+       0x0011004b,
+       0x0011004d,
+       0x00110049,
+       0x00110043,
+       0x0011005f,
+       0x00110141,
+       0x0011014b,
+       0x0011014d,
+       0x00110149,
+       0x00110143,
+       0x0011015f,
+       0x002100c0,
+       0x002101c0,
+       0x002102c0,
+       0x002103c0,
+       0x002104c0,
+       0x002105c0,
+       0x002106c0,
+       0x002107c0,
+       0x002108c0,
+       0x002100d0,
+       0x0021008c,
+       0x00210090,
+       0x00210080,
+       0x002101d0,
+       0x0021018c,
+       0x00210190,
+       0x00210180,
+       0x002100c1,
+       0x002101c1,
+       0x002102c1,
+       0x002103c1,
+       0x002104c1,
+       0x002105c1,
+       0x002106c1,
+       0x002107c1,
+       0x002108c1,
+       0x002100d1,
+       0x0021008d,
+       0x00210091,
+       0x00210081,
+       0x002101d1,
+       0x0021018d,
+       0x00210191,
+       0x00210181,
+       0x00210020,
+       0x002100ae,
+       0x002100af,
+       0x00210048,
+       0x00210041,
+       0x0021004b,
+       0x0021004d,
+       0x00210049,
+       0x00210043,
+       0x0021005f,
+       0x00210141,
+       0x0021014b,
+       0x0021014d,
+       0x00210149,
+       0x00210143,
+       0x0021015f,
+       0x003100c0,
+       0x003101c0,
+       0x003102c0,
+       0x003103c0,
+       0x003104c0,
+       0x003105c0,
+       0x003106c0,
+       0x003107c0,
+       0x003108c0,
+       0x003100d0,
+       0x0031008c,
+       0x00310090,
+       0x00310080,
+       0x003101d0,
+       0x0031018c,
+       0x00310190,
+       0x00310180,
+       0x003100c1,
+       0x003101c1,
+       0x003102c1,
+       0x003103c1,
+       0x003104c1,
+       0x003105c1,
+       0x003106c1,
+       0x003107c1,
+       0x003108c1,
+       0x003100d1,
+       0x0031008d,
+       0x00310091,
+       0x00310081,
+       0x003101d1,
+       0x0031018d,
+       0x00310191,
+       0x00310181,
+       0x00310020,
+       0x003100ae,
+       0x003100af,
+       0x00310048,
+       0x00310041,
+       0x0031004b,
+       0x0031004d,
+       0x00310049,
+       0x00310043,
+       0x0031005f,
+       0x00310141,
+       0x0031014b,
+       0x0031014d,
+       0x00310149,
+       0x00310143,
+       0x0031015f,
+       0x000100aa,
+       0x00010001,
+       0x000100a0,
+       0x000100a1,
+       0x000100a2,
+       0x000100a3,
+       0x000100a4,
+       0x000100a5,
+       0x000100a6,
+       0x000100a7,
+       0x00010000,
+       0x0001004a,
+       0x000110c0,
+       0x00011068,
+       0x00011040,
+       0x00011030,
+       0x00011062,
+       0x000111c0,
+       0x00011168,
+       0x00011140,
+       0x00011130,
+       0x00011162,
+       0x000112c0,
+       0x00011268,
+       0x00011240,
+       0x00011230,
+       0x00011262,
+       0x000113c0,
+       0x00011368,
+       0x00011340,
+       0x00011330,
+       0x00011362,
+       0x000114c0,
+       0x00011468,
+       0x00011440,
+       0x00011430,
+       0x00011462,
+       0x000115c0,
+       0x00011568,
+       0x00011540,
+       0x00011530,
+       0x00011562,
+       0x000116c0,
+       0x00011668,
+       0x00011640,
+       0x00011630,
+       0x00011662,
+       0x000117c0,
+       0x00011768,
+       0x00011740,
+       0x00011730,
+       0x00011762,
+       0x000118c0,
+       0x00011868,
+       0x00011840,
+       0x00011830,
+       0x00011862,
+       0x000110d0,
+       0x0001108c,
+       0x00011090,
+       0x00011080,
+       0x000111d0,
+       0x0001118c,
+       0x00011190,
+       0x00011180,
+       0x000110c1,
+       0x00011069,
+       0x000111c1,
+       0x00011169,
+       0x000112c1,
+       0x00011269,
+       0x000113c1,
+       0x00011369,
+       0x000114c1,
+       0x00011469,
+       0x000115c1,
+       0x00011569,
+       0x000116c1,
+       0x00011669,
+       0x000117c1,
+       0x00011769,
+       0x000118c1,
+       0x00011869,
+       0x000110d1,
+       0x0001108d,
+       0x00011091,
+       0x00011081,
+       0x000111d1,
+       0x0001118d,
+       0x00011191,
+       0x00011181,
+       0x00011020,
+       0x000110ae,
+       0x000110af,
+       0x00011048,
+       0x00011041,
+       0x0001104b,
+       0x0001104d,
+       0x00011049,
+       0x00011043,
+       0x0001105f,
+       0x00011141,
+       0x0001114b,
+       0x0001114d,
+       0x00011149,
+       0x00011143,
+       0x0001115f,
+       0x001110c0,
+       0x001111c0,
+       0x001112c0,
+       0x001113c0,
+       0x001114c0,
+       0x001115c0,
+       0x001116c0,
+       0x001117c0,
+       0x001118c0,
+       0x001110d0,
+       0x0011108c,
+       0x00111090,
+       0x00111080,
+       0x001111d0,
+       0x0011118c,
+       0x00111190,
+       0x00111180,
+       0x001110c1,
+       0x001111c1,
+       0x001112c1,
+       0x001113c1,
+       0x001114c1,
+       0x001115c1,
+       0x001116c1,
+       0x001117c1,
+       0x001118c1,
+       0x001110d1,
+       0x0011108d,
+       0x00111091,
+       0x00111081,
+       0x001111d1,
+       0x0011118d,
+       0x00111191,
+       0x00111181,
+       0x00111020,
+       0x001110ae,
+       0x001110af,
+       0x00111048,
+       0x00111041,
+       0x0011104b,
+       0x0011104d,
+       0x00111049,
+       0x00111043,
+       0x0011105f,
+       0x00111141,
+       0x0011114b,
+       0x0011114d,
+       0x00111149,
+       0x00111143,
+       0x0011115f,
+       0x002110c0,
+       0x002111c0,
+       0x002112c0,
+       0x002113c0,
+       0x002114c0,
+       0x002115c0,
+       0x002116c0,
+       0x002117c0,
+       0x002118c0,
+       0x002110d0,
+       0x0021108c,
+       0x00211090,
+       0x00211080,
+       0x002111d0,
+       0x0021118c,
+       0x00211190,
+       0x00211180,
+       0x002110c1,
+       0x002111c1,
+       0x002112c1,
+       0x002113c1,
+       0x002114c1,
+       0x002115c1,
+       0x002116c1,
+       0x002117c1,
+       0x002118c1,
+       0x002110d1,
+       0x0021108d,
+       0x00211091,
+       0x00211081,
+       0x002111d1,
+       0x0021118d,
+       0x00211191,
+       0x00211181,
+       0x00211020,
+       0x002110ae,
+       0x002110af,
+       0x00211048,
+       0x00211041,
+       0x0021104b,
+       0x0021104d,
+       0x00211049,
+       0x00211043,
+       0x0021105f,
+       0x00211141,
+       0x0021114b,
+       0x0021114d,
+       0x00211149,
+       0x00211143,
+       0x0021115f,
+       0x003110c0,
+       0x003111c0,
+       0x003112c0,
+       0x003113c0,
+       0x003114c0,
+       0x003115c0,
+       0x003116c0,
+       0x003117c0,
+       0x003118c0,
+       0x003110d0,
+       0x0031108c,
+       0x00311090,
+       0x00311080,
+       0x003111d0,
+       0x0031118c,
+       0x00311190,
+       0x00311180,
+       0x003110c1,
+       0x003111c1,
+       0x003112c1,
+       0x003113c1,
+       0x003114c1,
+       0x003115c1,
+       0x003116c1,
+       0x003117c1,
+       0x003118c1,
+       0x003110d1,
+       0x0031108d,
+       0x00311091,
+       0x00311081,
+       0x003111d1,
+       0x0031118d,
+       0x00311191,
+       0x00311181,
+       0x00311020,
+       0x003110ae,
+       0x003110af,
+       0x00311048,
+       0x00311041,
+       0x0031104b,
+       0x0031104d,
+       0x00311049,
+       0x00311043,
+       0x0031105f,
+       0x00311141,
+       0x0031114b,
+       0x0031114d,
+       0x00311149,
+       0x00311143,
+       0x0031115f,
+       0x000110aa,
+       0x00011001,
+       0x000110a0,
+       0x000110a1,
+       0x000110a2,
+       0x000110a3,
+       0x000110a4,
+       0x000110a5,
+       0x000110a6,
+       0x000110a7,
+       0x00011000,
+       0x0001104a,
+};
+
+static const u32 ddrphy_fsp_cfg[DDRPHY_QB_FSP_SIZE] = {
+       0x00054026, /* TrainedVREFDQ_A0,   Byte offset 0x4d,      CSR Addr 
0x54026 */
+       0x00054027, /* TrainedVREFDQ_A1,   Byte offset 0x4e,      CSR Addr 
0x54027 */
+       0x00054040, /* TrainedVREFDQ_B0&1, Byte offset 0x80&0x81, CSR Addr 
0x54040 */
+};
+
+struct ddrphy_qb_state qb_state;
+
+int ddrphy_qb_save(void)
+{
+       int i;
+
+       /* enable the ddrphy apb */
+       dwc_ddrphy_apb_wr(0xd0000, 0x0);
+
+       for (i = 0; i < DDRPHY_QB_CSR_SIZE; i++)
+               qb_state.csr[i] = dwc_ddrphy_apb_rd(ddrphy_csr_cfg[i]);
+
+       /* disable the ddrphy apb */
+       dwc_ddrphy_apb_wr(0xd0000, 0x1);
+
+       qb_state.crc = crc32(0, (void *)&qb_state.flags, DDRPHY_QB_STATE_SIZE);
+       return 0;
+}
+
+void ddrphy_init_read_msg_block(enum fw_type type)
+{
+       int i;
+
+       if (type != FW_2D_IMAGE)
+               return;
+
+       qb_state.flags |= DDRPHY_QB_FLAG_2D;
+       for (i = 0; i < DDRPHY_QB_FSP_SIZE; i++)
+               qb_state.fsp[i] = dwc_ddrphy_apb_rd(ddrphy_fsp_cfg[i]);
+}
diff --git a/drivers/ddr/imx/phy/ddrphy_utils.c 
b/drivers/ddr/imx/phy/ddrphy_utils.c
index 
8e350de8315e40372f583c7a84c3ee5ed8b827d9..33275656469ecc24853f228b760229572e73aa48
 100644
--- a/drivers/ddr/imx/phy/ddrphy_utils.c
+++ b/drivers/ddr/imx/phy/ddrphy_utils.c
@@ -184,6 +184,6 @@ void ddrphy_init_set_dfi_clk(unsigned int drate)
        }
 }
 
-void ddrphy_init_read_msg_block(enum fw_type type)
+__weak void ddrphy_init_read_msg_block(enum fw_type type)
 {
 }

-- 
2.35.3


Reply via email to