操作系统:win10 64位

虚拟机:VMware® Workstation 14 Pro

虚拟机操作系统:ubuntu 18.04 64位  ubuntu-18.04.2-desktop-amd64.iso

开发板:迅为 iMX6Q

本次目标:编译uboot-imx并下载到开发板运行

        最近看了迅为的iMX6Q的开发板资料,发现Uboot的移植资料比较少,网上其他iMX6Q的开发板,移植看起来都非常的容易。但是,我发现,迅为没有提供专门的Uboot源码与移植手册,在Android的源码里,倒是有Uboot的源码。

首先使用Git,下载官方的uboot-imx源码。

【imx uboot】

git clone ​​https://source.codeaurora.org/external/imx/uboot-imx​

有很多的分支,迅为使用的为 【uboot-2009.08】

我这里切到分支:remotes/origin/nxp/imx_v2009.08_12.10.02

git checkout -b imx_v2009.08_12.10.02 origin/nxp/imx_v2009.08_12.10.02

编译:找一个iMX6Q的配置,在uboot主目录里:Makefile文件里。

这里使用:arm-2009q3.tar.bz2  交叉编译器,系统自带的版本高,编译失败。

make distclean

make ARCH=arm mx6q_sabresd_config

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

编译成功,通过:Mfgtools-Rel-1.1.0_180706_MX6Q_UPDATER 

[profiles]
chip = MX6Q Linux Update

[platform]
board = SabreSD

[LIST]
name =Linux-SabreSD-eMMC

下载到开发板,发现可以烧录,但是,切换到emmc启动后,控制台串口,没有任何的输出。

通过对比:uboot-2009.08\board\freescale\mx6q_sabresd 

与迅为Android源码里提供的:uboot-2009.08\board\freescale\mx6q_topeet 

发现:flash_header.S 有很多的不同,我这里开发板为2G的DDR,因此,把此文件改为迅为的:flash_header.S_2G,然后再次编译与烧写,发现串口控制台有信息输出了。

 

U-Boot 2009.08-dirty (7月 07 2019 - 12:19:14)

CPU: Freescale i.MX6 family TO1.5 at 792 MHz
Temperature: 26 C, calibration data 0x5a852169
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 264000000Hz
emi_slow clock: 29333333Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63015 [POR ]
Boot Device: MMC
I2C: ready
DRAM: 1 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
*** Warning - bad CRC or MMC, using default environment

In: serial
Out: serial
Err: serial
Net: got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot: 0
PHY indentify @ 0x0 = 0x001cc915
FEC: Link is down 7949
*** ERROR: `ethaddr' not set
FEC: Link is down 7949
Wrong Image Format for bootm command
ERROR: can't get kernel image!
MX6Q SABRESD U-Boot >

看到输出的信息,虽然还没有真正的移植,至少,可以不盲目的烧写了。接下来,开始针对性的研究如何完整的移植Uboot。