summaryrefslogtreecommitdiff
path: root/plat/imx/imx8mq/ddr/lpddr4_ddrc_cfg.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/imx/imx8mq/ddr/lpddr4_ddrc_cfg.c')
-rw-r--r--plat/imx/imx8mq/ddr/lpddr4_ddrc_cfg.c147
1 files changed, 0 insertions, 147 deletions
diff --git a/plat/imx/imx8mq/ddr/lpddr4_ddrc_cfg.c b/plat/imx/imx8mq/ddr/lpddr4_ddrc_cfg.c
deleted file mode 100644
index a09f12a3..00000000
--- a/plat/imx/imx8mq/ddr/lpddr4_ddrc_cfg.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (c) 2013-2017, ARM Limited and Contributors. All rights reserved.
- * Copyright 2017-2018 NXP.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <arch.h>
-#include <arch_helpers.h>
-#include <debug.h>
-#include <stdbool.h>
-#include <ddrc.h>
-#include <mmio.h>
-#include <platform_def.h>
-#include <spinlock.h>
-#include <soc.h>
-
-#define WR_POST_EXT_3200
-
-static inline void umctl2_addrmap(void)
-{
- /* Address mapping */
- /* need be refined for DDR vender */
- /* Address map is from MSB 29: r15, r14, cs, r13-r0, b2-b0, c9-c0 */
- mmio_write_32(DDRC_ADDRMAP0(0), 0x00000015);
- mmio_write_32(DDRC_ADDRMAP3(0), 0x00000000);
- mmio_write_32(DDRC_ADDRMAP4(0), 0x00001F1F);
- /* bank interleave */
- mmio_write_32(DDRC_ADDRMAP1(0), 0x00080808);
- mmio_write_32(DDRC_ADDRMAP5(0), 0x07070707);
- mmio_write_32(DDRC_ADDRMAP6(0), 0x08080707);
-}
-
-static inline void umctl2_perf(void)
-{
- mmio_write_32(DDRC_ODTCFG(0), 0x0b060908);
- mmio_write_32(DDRC_ODTMAP(0), 0x00000000);
- mmio_write_32(DDRC_SCHED(0), 0x29511505);
- mmio_write_32(DDRC_SCHED1(0), 0x0000002c);
- mmio_write_32(DDRC_PERFHPR1(0), 0x5900575b);
- mmio_write_32(DDRC_PERFLPR1(0), 0x90000096);
- mmio_write_32(DDRC_PERFWR1(0), 0x1000012c);
- mmio_write_32(DDRC_DBG0(0), 0x00000016);
- mmio_write_32(DDRC_DBG1(0), 0x00000000);
- mmio_write_32(DDRC_DBGCMD(0), 0x00000000);
- mmio_write_32(DDRC_SWCTL(0), 0x00000001);
- mmio_write_32(DDRC_POISONCFG(0), 0x00000011);
- mmio_write_32(DDRC_PCCFG(0), 0x00000111);
- mmio_write_32(DDRC_PCFGR_0(0), 0x000010f3);
- mmio_write_32(DDRC_PCFGW_0(0), 0x000072ff);
- mmio_write_32(DDRC_PCTRL_0(0), 0x00000001);
- mmio_write_32(DDRC_PCFGQOS0_0(0), 0x00000e00);
- mmio_write_32(DDRC_PCFGQOS1_0(0), 0x0062ffff);
- mmio_write_32(DDRC_PCFGWQOS0_0(0), 0x00000e00);
- mmio_write_32(DDRC_PCFGWQOS1_0(0), 0x0000ffff);
- mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x00000202);
- mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0xec78f4b5);
- mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x00618040);
- mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x00610090);
-}
-
-static inline void umctl2_freq1(void)
-{
- mmio_write_32(DDRC_FREQ1_DERATEEN(0), 0x0000000);
- mmio_write_32(DDRC_FREQ1_DERATEINT(0), 0x0800000);
- mmio_write_32(DDRC_FREQ1_RFSHCTL0(0), 0x0210000);
- mmio_write_32(DDRC_FREQ1_RFSHTMG(0), 0x014001E);
- mmio_write_32(DDRC_FREQ1_INIT3(0), 0x0140009);
- mmio_write_32(DDRC_FREQ1_INIT4(0), 0x00310008);
- mmio_write_32(DDRC_FREQ1_INIT6(0), 0x0066004a);
- mmio_write_32(DDRC_FREQ1_INIT7(0), 0x0006004a);
- mmio_write_32(DDRC_FREQ1_DRAMTMG0(0), 0xB070A07);
- mmio_write_32(DDRC_FREQ1_DRAMTMG1(0), 0x003040A);
- mmio_write_32(DDRC_FREQ1_DRAMTMG2(0), 0x305080C);
- mmio_write_32(DDRC_FREQ1_DRAMTMG3(0), 0x0505000);
- mmio_write_32(DDRC_FREQ1_DRAMTMG4(0), 0x3040203);
- mmio_write_32(DDRC_FREQ1_DRAMTMG5(0), 0x2030303);
- mmio_write_32(DDRC_FREQ1_DRAMTMG6(0), 0x2020004);
- mmio_write_32(DDRC_FREQ1_DRAMTMG7(0), 0x0000302);
- mmio_write_32(DDRC_FREQ1_DRAMTMG12(0), 0x0020310);
- mmio_write_32(DDRC_FREQ1_DRAMTMG13(0), 0xA100002);
- mmio_write_32(DDRC_FREQ1_DRAMTMG14(0), 0x0000020);
- mmio_write_32(DDRC_FREQ1_DRAMTMG17(0), 0x0220011);
- mmio_write_32(DDRC_FREQ1_ZQCTL0(0), 0x0A70005);
- mmio_write_32(DDRC_FREQ1_DFITMG0(0), 0x3858202);
- mmio_write_32(DDRC_FREQ1_DFITMG1(0), 0x0000404);
- mmio_write_32(DDRC_FREQ1_DFITMG2(0), 0x0000502);
-}
-
-void lpddr4_cfg_umctl2(void)
-{
- /* Start to config, default 3200mbps */
- mmio_write_32(DDRC_DBG1(0), 0x00000001);
- mmio_write_32(DDRC_PWRCTL(0), 0x00000001);
- mmio_write_32(DDRC_MSTR(0), 0xa3080020);
- mmio_write_32(DDRC_MSTR2(0), 0x00000000);
- mmio_write_32(DDRC_RFSHTMG(0), 0x006100E0);
- mmio_write_32(DDRC_INIT0(0), 0xC003061B);
- mmio_write_32(DDRC_INIT1(0), 0x009D0000);
- mmio_write_32(DDRC_INIT3(0), 0x00D4002D);
-#ifdef WR_POST_EXT_3200 /* recommened to define */
- mmio_write_32(DDRC_INIT4(0), 0x00330008);
-#else
- mmio_write_32(DDRC_INIT4(0), 0x00310008);
-#endif
- mmio_write_32(DDRC_INIT6(0), 0x0066004a);
- mmio_write_32(DDRC_INIT7(0), 0x0006004a);
-
- mmio_write_32(DDRC_DRAMTMG0(0), 0x1A201B22);
- mmio_write_32(DDRC_DRAMTMG1(0), 0x00060633);
- mmio_write_32(DDRC_DRAMTMG3(0), 0x00C0C000);
- mmio_write_32(DDRC_DRAMTMG4(0), 0x0F04080F);
- mmio_write_32(DDRC_DRAMTMG5(0), 0x02040C0C);
- mmio_write_32(DDRC_DRAMTMG6(0), 0x01010007);
- mmio_write_32(DDRC_DRAMTMG7(0), 0x00000401);
- mmio_write_32(DDRC_DRAMTMG12(0), 0x00020600);
- mmio_write_32(DDRC_DRAMTMG13(0), 0x0C100002);
- mmio_write_32(DDRC_DRAMTMG14(0), 0x000000E6);
- mmio_write_32(DDRC_DRAMTMG17(0), 0x00A00050);
-
- mmio_write_32(DDRC_ZQCTL0(0), 0x03200018);
- mmio_write_32(DDRC_ZQCTL1(0), 0x028061A8);
- mmio_write_32(DDRC_ZQCTL2(0), 0x00000000);
-
- mmio_write_32(DDRC_DFITMG0(0), 0x0497820A);
- mmio_write_32(DDRC_DFITMG1(0), 0x00080303);
- mmio_write_32(DDRC_DFIUPD0(0), 0xE0400018);
- mmio_write_32(DDRC_DFIUPD1(0), 0x00DF00E4);
- mmio_write_32(DDRC_DFIUPD2(0), 0x80000000);
- mmio_write_32(DDRC_DFIMISC(0), 0x00000011);
- mmio_write_32(DDRC_DFITMG2(0), 0x0000170A);
-
- mmio_write_32(DDRC_DBICTL(0), 0x00000001);
- mmio_write_32(DDRC_DFIPHYMSTR(0), 0x00000001);
-
- mmio_write_32(DDRC_RANKCTL(0), 0x00000c99);
- mmio_write_32(DDRC_DRAMTMG2(0), 0x070E171a);
-
- /* address mapping */
- umctl2_addrmap();
-
- /* performance setting */
- umctl2_perf();
-
- /* freq set point 1 setting */
- umctl2_freq1();
-}