一. 简介
之前文章对 针对 256MB Nand-Flash开发板的 DDR初始化参数更改,进行了简单的介绍。
文章地址如下:
本文具体学习如果进行 uboot的DDR参数初始化更改。
二. uboot移植之DDR初始化参数更改
下面具体学习:如果进行 uboot 的DDR参数初始化更改(针对 匹配NAND-Flash版ALPHA开发板的 Uboot)。
正点原子的 NAND版ALPHA开发板所使用的 DDR芯片型号是 NT5CC128M16JR-EKI
1. 进行 DDR校准
这里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
2. 更新 DDR寄存器值
将 Alpha_256MB_DDR.inc 文件中寄存器的值,与 Uboot源码中的 imximage.cfg 文件对比,按照 Alpha_256MB_DDR.inc 更改 imximage.cfg文件寄存器值。
imximage.cfg 文件所在目录:
uboot根目录下 /board/freescale/mx6ull_alientek_nand\imximage.cfg
3. 编译运行 uboot
更改好 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初始化更改好了。