之前文章对 针对 256MB Nand-Flash开发板的 DDR初始化参数更改,进行了简单的介绍。
文章地址如下:
本文具体学习如果进行 uboot的DDR参数初始化更改。
下面具体学习:如果进行 uboot 的DDR参数初始化更改(针对 匹配NAND-Flash版ALPHA开发板的 Uboot)。
正点原子的 NAND版ALPHA开发板所使用的 DDR芯片型号是 NT5CC128M16JR-EKI
这里DDR校准不具体介绍了,DDR校准方法如下:
IMX6ULL裸机篇之DDR3参数配置分析_凌肖战的博客-CSDN博客
IMX6ULL裸机篇之DDR3初始化_凌肖战的博客-CSDN博客
(1) DDR校准参数值如下:
(2) 校准完成后,左边 execl表中会有 .inc 文件,创建一个自命名为 Alpha_256MB_DDR.inc文件,将execl表中会有 .inc 文件的内容拷贝到 Alpha_256MB_DDR.inc 文件中。
校准完成后,如下所示:
(3) 最后,将上面寄存器的值,更新到 所加载的 Alpha_256MB_DDR.inc 文件中。这里就是把如下校准后的寄存器值更新到 Alpha_256MB_DDR.inc 文件。如下:
- Write leveling calibration
- MMDC_MPWLDECTRL0 ch0 (0x021b080c) = 0x00000000
- MMDC_MPWLDECTRL1 ch0 (0x021b0810) = 0x001F001F
-
- Read DQS Gating calibration
- MPDGCTRL0 PHY0 (0x021b083c) = 0x013C0134
- MPDGCTRL1 PHY0 (0x021b0840) = 0x00000000
-
- Read calibration
- MPRDDLCTL PHY0 (0x021b0848) = 0x40403036
-
- Write calibration
- MPWRDLCTL PHY0 (0x021b0850) = 0x40403830
将 Alpha_256MB_DDR.inc 文件中寄存器的值,与 Uboot源码中的 imximage.cfg 文件对比,按照 Alpha_256MB_DDR.inc 更改 imximage.cfg文件寄存器值。
imximage.cfg 文件所在目录:
uboot根目录下 /board/freescale/mx6ull_alientek_nand\imximage.cfg
更改好 imximage.cfg文件中的寄存器值后,重新编译 uboot源码。
将 新编译生成的 u-boot.imx文件更新到 mfg工具(正点原子MFG_TOOL出厂固件烧录工具),
再使用 mfg工具烧录到开发板,选择 "Mfgtool2-NAND-ddr256-NAND.vbs"文件进行烧写。
烧写完成后,开发板拨码开关拨至 从 NAND-Flash启动。
开发板上电后,串口打印如下:
- U-Boot 2016.03 (Oct 25 2023 - 00:48:27 +0800)
-
- CPU: Freescale i.MX6ULL rev1.1 69 MHz (running at 396 MHz)
- CPU: Industrial temperature grade (-40C to 105C) at 44C
- Reset cause: POR
- Board: MX6ULL ALIENTEK NAND
- I2C: ready
- DRAM: 256 MiB
- NAND: 512 MiB
- MMC: FSL_SDHC: 0, FSL_SDHC: 1
- *** Warning - bad CRC, using default environment
-
- Display: TFT43AB (480x272)
- Video: 480x272x24
- In: serial
- Out: serial
- Err: serial
- Net: FEC1
- Error: FEC1 address not set.
-
- Normal Boot
- Hit any key to stop autoboot: 0
-
- NAND read: device 0 offset 0x4000000, size 0x800000
- 8388608 bytes read: OK
-
- NAND read: device 0 offset 0x5000000, size 0x100000
- 1048576 bytes read: OK
- Bad Linux ARM zImage magic!
可以看出,uboot的编译时间是 2023年10月25号00点48分,是刚编译的 u-boot。
DDR(即DRAM)容量为 256MB,说明 DDR初始化更改好了。