I would like to increase the DDR3L clock frequency from 528MHz (current value) to 200MHz with i.MX6UL (CPU Clock: 594MHz).
Currently, I set it to 200MHz using the method below, but it behaves abnormally.
Please tell me how to set it to 200MHz.
■Referenced documents
i.MX 6UltraLite Applications Processor Reference Manual
Figure 18-2. Clock Tree
■Clock Tree register settings
① Select PLL2_PFD2 (400MHz) for CCM_CBCMR[PRE_PERIPH2_CLK_SEL] setting
②Select PLL2 (pll2_main_clk) for CCM_CBCDR[PERIPH2_CLK_SEL] setting
③Select divide by 2 for CCM_CBCDR[FABRIC_MMDC_PODF] setting
■Debugger execution settings (in red are ■Clock Tree register settings)
setmem16(0x30, 0x020bc000, "Memory");
setmem32(0x00018D08, 0x020c4014, "Memory");
setmem32(0x24A60324, 0x020c4018, "Memory");
setmem32(0xffffffff, 0x020c4068, "Memory");
setmem32(0xffffffff, 0x020c406c, "Memory");
setmem32(0xffffffff, 0x020c4070, "Memory");
setmem32(0xffffffff, 0x020c4074, "Memory");
setmem32(0xffffffff, 0x020c4078, "Memory");
setmem32(0xffffffff, 0x020c407c, "Memory");
setmem32(0xffffffff, 0x020c4080, "Memory");
setmem32(0xffffffff, 0x020C4084, "Memory");
setmem32(0x000C0000, 0x020e04B4, "Memory");
setmem32(0x00000000, 0x020e04AC, "Memory");
setmem32(0x00000008, 0x020e027C, "Memory");
setmem32(0x00000030, 0x020e0250, "Memory");
setmem32(0x00000030, 0x020e024C, "Memory");
setmem32(0x00000030, 0x020e0490, "Memory");
setmem32(0x00000030, 0x020e0288, "Memory");
setmem32(0x00000000, 0x020e0270, "Memory");
setmem32(0x00000030, 0x020e0260, "Memory");
setmem32(0x00000030, 0x020e0264, "Memory");
setmem32(0x00000030, 0x020e04A0, "Memory");
setmem32(0x00020000, 0x020e0494, "Memory");
setmem32(0x00000038, 0x020e0280, "Memory");
setmem32(0x00000030, 0x020e0284, "Memory");
setmem32(0x00020000, 0x020e04B0, "Memory");
setmem32(0x00000030, 0x020e0498, "Memory");
setmem32(0x00000030, 0x020e04A4, "Memory");
setmem32(0x00000030, 0x020e0244, "Memory");
setmem32(0x00000030, 0x020e0248, "Memory");
setmem32(0x03110000, 0x021B0000, "Memory");
setmem32(0x00008000, 0x021B001C, "Memory");
setmem32(0xA1390003, 0x021B0800, "Memory");
setmem32(0x00070007, 0x021B080C, "Memory");
setmem32(0x41490145, 0x021B083C, "Memory");
setmem32(0x40404546, 0x021B0848, "Memory");
setmem32(0x4040524D, 0x021B0850, "Memory");
setmem32(0x33333333, 0x021B081C, "Memory");
setmem32(0x33333333, 0x021B0820, "Memory");
setmem32(0xF3333333, 0x021B082C, "Memory");
setmem32(0xF3333333, 0x021B0830, "Memory");
setmem32(0x00922012, 0x021B08C0, "Memory");
setmem32(0x00000F00, 0x021B0858, "Memory");
setmem32(0x00000800, 0x021B08B8, "Memory");
setmem32(0x0002002D, 0x021B0004, "Memory");
setmem32(0x1B333000, 0x021B0008, "Memory");
setmem32(0x676B54F3, 0x021B000C, "Memory");
setmem32(0xB68E0A83, 0x021B0010, "Memory");
setmem32(0x01FF00DB, 0x021B0014, "Memory");
setmem32(0x00211740, 0x021B0018, "Memory");
setmem32(0x00008000, 0x021B001C, "Memory");
setmem32(0x000026D2, 0x021B002C, "Memory");
setmem32(0x006B1023, 0x021B0030, "Memory");
setmem32(0x0000004F, 0x021B0040, "Memory");
setmem32(0x84180000, 0x021B0000, "Memory");
setmem32(0x02008032, 0x021B001C, "Memory");
setmem32(0x00008033, 0x021B001C, "Memory");
setmem32(0x00048031, 0x021B001C, "Memory");
setmem32(0x15208030, 0x021B001C, "Memory");
setmem32(0x04008040, 0x021B001C, "Memory");
setmem32(0x00000800, 0x021B0020, "Memory");
setmem32(0x00000227, 0x021B0818, "Memory");
setmem32(0x0002552D, 0x021B0004, "Memory");
setmem32(0x00011006, 0x021B0404, "Memory");
setmem32(0x00000000, 0x021B001C, "Memory");
■What I tried
I tried executing the results set in MX6UL_ULL_ULZ_MMDC_DDR3_register_programming_aid_v1.1.xlsx from the following site using a debugger, but it did not work.
https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX6UL-ULL-ULZ-DRAM-Register-Programmin...
SoC type (MX6UL/ULL/ULZ): MX6UL
Memory type: DDR3
Manufacturer: Micron
Memory part number: MT41K64M16TW-107 IT:J
Density per chip select (Gb): 1
Number of Chip Selects per channel used2 1
Total DRAM density (Gb) 1
Number of ROW Addresses2 13
Number of COLUMN Addresses2 10
Number of BANKS2 8
Bus Width (16bit only) 16
Clock Cycle Freq (MHz)3 200
Clock Cycle Time (ns) 5
※Settings when running the debugger
setmem16(0x30, 0x020bc000, "Memory");
setmem32(0xffffffff, 0x020c4068, "Memory");
setmem32(0xffffffff, 0x020c406c, "Memory");
setmem32(0xffffffff, 0x020c4070, "Memory");
setmem32(0xffffffff, 0x020c4074, "Memory");
setmem32(0xffffffff, 0x020c4078, "Memory");
setmem32(0xffffffff, 0x020c407c, "Memory");
setmem32(0xffffffff, 0x020c4080, "Memory");
setmem32(0x000C0000, 0x020e04B4, "Memory");
setmem32(0x00000000, 0x020e04AC, "Memory");
setmem32(0x00000030, 0x020e027C, "Memory");
setmem32(0x00000030, 0x020e0250, "Memory");
setmem32(0x00000030, 0x020e024C, "Memory");
setmem32(0x00000030, 0x020e0490, "Memory");
setmem32(0x000C0030, 0x020e0288, "Memory");
setmem32(0x00000000, 0x020e0270, "Memory");
setmem32(0x00000030, 0x020e0260, "Memory");
setmem32(0x00000030, 0x020e0264, "Memory");
setmem32(0x00000030, 0x020e04A0, "Memory");
setmem32(0x00020000, 0x020e0494, "Memory");
setmem32(0x00000030, 0x020e0280, "Memory");
setmem32(0x00000030, 0x020e0284, "Memory");
setmem32(0x00020000, 0x020e04B0, "Memory");
setmem32(0x00000030, 0x020e0498, "Memory");
setmem32(0x00000030, 0x020e04A4, "Memory");
setmem32(0x00000030, 0x020e0244, "Memory");
setmem32(0x00000030, 0x020e0248, "Memory");
setmem32(0x00008000, 0x021B001C, "Memory");
setmem32(0xA1390003, 0x021B0800, "Memory");
setmem32(0x00000000, 0x021B080C, "Memory");
setmem32(0x41490145, 0x021B083C, "Memory");
setmem32(0x40404546, 0x021B0848, "Memory");
setmem32(0x4040524D, 0x021B0850, "Memory");
setmem32(0x33333333, 0x021B081C, "Memory");
setmem32(0x33333333, 0x021B0820, "Memory");
setmem32(0xF3333333, 0x021B082C, "Memory");
setmem32(0xF3333333, 0x021B0830, "Memory");
setmem32(0x00921012, 0x021B08C0, "Memory");
setmem32(0x00000800, 0x021B08B8, "Memory");
setmem32(0x0001001B, 0x021B0004, "Memory");
setmem32(0x09333030, 0x021B0008, "Memory");
setmem32(0x33352873, 0x021B000C, "Memory");
setmem32(0x49260563, 0x021B0010, "Memory");
setmem32(0x01FF00DB, 0x021B0014, "Memory");
setmem32(0x00201740, 0x021B0018, "Memory");
setmem32(0x000026D2, 0x021B002C, "Memory");
setmem32(0x00351023, 0x021B0030, "Memory");
setmem32(0x00000043, 0x021B0040, "Memory");
setmem32(0x82180000, 0x021B0000, "Memory");
setmem32(0x02008032, 0x021B001C, "Memory");
setmem32(0x00008033, 0x021B001C, "Memory");
setmem32(0x00048031, 0x021B001C, "Memory");
setmem32(0x11208030, 0x021B001C, "Memory");
setmem32(0x04008040, 0x021B001C, "Memory");
setmem32(0x0200803A, 0x021B001C, "Memory");
setmem32(0x0000803B, 0x021B001C, "Memory");
setmem32(0x00048039, 0x021B001C, "Memory");
setmem32(0x11208038, 0x021B001C, "Memory");
setmem32(0x04008048, 0x021B001C, "Memory");
setmem32(0x00000800, 0x021B0020, "Memory");
setmem32(0x00000227, 0x021B0818, "Memory");
setmem32(0x0001555B, 0x021B0004, "Memory");
setmem32(0x00011006, 0x021B0404, "Memory");
setmem32(0x00000000, 0x021B001C, "Memory");
It would be very appreciated your help.
Regards