i.MX6 Dual-lite with 2GB DDR
For SOM iMX6 Dual-lite with 2GB DDR requires a special U-Boot change to support the 2GB DDR with imx6 Dual-lite...
By default the general iMX6 U-Boot configured to support 1GB DDR when detected imx6 Dual-liteSOM version, so you need to rebuild your U-Boot with applying the attached patch to support the 2GB DDR with SOM iMX6 Dual-lite (the attached patch should replace the default settings of the imx6 Dual-lite from 1GB to 2GB and adding the DDR calibration for the 2GB DDR).
diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 8fad3febf9..450399088d 100644
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -936,6 +936,22 @@ static const struct mx6_mmdc_calibration mx6dl_1g_mmcd_calib = {
.p1_mpwrdlctl = 0x36363430,
};
+/* microSOM with Dual lite processor and 2GB memory */
+static const struct mx6_mmdc_calibration mx6dl_2g_mmcd_calib = {
+ .p0_mpwldectrl0 = 0x00450052,
+ .p0_mpwldectrl1 = 0x003C0046,
+ .p1_mpwldectrl0 = 0x00230025,
+ .p1_mpwldectrl1 = 0x00280036,
+ .p0_mpdgctrl0 = 0x4230022C,
+ .p0_mpdgctrl1 = 0x02180224,
+ .p1_mpdgctrl0 = 0x421C0220,
+ .p1_mpdgctrl1 = 0x020C0218,
+ .p0_mprddlctl = 0x3C3E4440,
+ .p1_mprddlctl = 0x44464A3E,
+ .p0_mpwrdlctl = 0x38302E2E,
+ .p1_mpwrdlctl = 0x3C363632,
+};
+
static struct mx6_ddr3_cfg mem_ddr_2g = {
.mem_speed = 1600,
.density = 2,
@@ -1007,7 +1023,7 @@ static void spl_dram_init(int width)
else if (is_cpu_type(MXC_CPU_MX6Q))
mx6_dram_cfg(&sysinfo, &mx6q_2g_mmcd_calib, &mem_ddr_4g);
else if (is_cpu_type(MXC_CPU_MX6DL))
- mx6_dram_cfg(&sysinfo, &mx6dl_1g_mmcd_calib, &mem_ddr_2g);
+ mx6_dram_cfg(&sysinfo, &mx6dl_2g_mmcd_calib, &mem_ddr_4g);
else if (is_cpu_type(MXC_CPU_MX6SOLO))
mx6_dram_cfg(&sysinfo, &mx6dl_512m_mmcd_calib, &mem_ddr_2g);
}
--
2.25.1
you can follow the i.MX6 U-Boot guide to generate a new U-Boot for imx6 SOM.
The quick test can be:
1- install general i.MX6 image from Solidrun web (sr-imx6-debian-buster-20220731-cli.img.xz) & uncompress & flash it on SD Card
2- override the bootloader (U-Boot & SPL) of the SD card using the commands below:
dd if=SPL of=/dev/sdX bs=1k seek=1 conv=sync
dd if=u-boot.img of=/dev/sdX bs=1k seek=69 conv=sync
Attached here is a pre-built U-Boot and SPL with the above changes applied.
SolidRun Ltd.