我使用的芯片是i.mx8mq,手里也有一块你们的开发板,使用的android版本是8.1.0_1.3.0,问题如下:
Git下载源码后,根据文档提示操作进行编译,完成后使用mfgtool进行emmc烧写,单板对象为官方开发板:
1、 将编译得到的android_build/out/target/product/evk_8mq目录下的如下6个文件拷贝到mgfttool的android_O8.1.0_1.3.0_8M_tools\mfgtools\Profiles\Linux\OS Firmware\files\android\evk目录下:
将编译生成的android_build/out/target/product/evk_8mq/obj/KERNEL_OBJ/arch/arm64/boot/dts/freescale目录下的fsl-imx8mq-evk.dtb文件拷贝到mgftool的android_O8.1.0_1.3.0_8M_tools\mfgtools\Profiles\Linux\OS Firmware\firmware目录下进行烧写,结果,success。
2、 前边步骤同上,同时将编译生成的u-boot-imx8mq.imx拷贝到mgftool的android_O8.1.0_1.3.0_8M_tools\mfgtools\Profiles\Linux\OS Firmware\firmware目录下,并改名为imx-boot-imx8mqevk-sd.bin-flash_evk,再次对开发板进行烧写,结果,fail。
3、 对比mfgtool自带的imx-boot-imx8mqevk-sd.bin-flash_evk文件和编译生成的imx-boot-imx8mqevk-sd.bin-flash_evk文件,串口打印信息如下:
mfgtool自带的imx-boot-imx8mqevk-sd.bin-flash_evk串口输出打印信息:
U-Boot SPL 2017.03-imx_v2017.03_4.9.51_imx8m_ga+g2537522 (Mar 12 2018 - 12:25:24)
PMIC: PFUZE100 ID=0x10
start to config phy: p0=3200mts, p1=667mts with 1D2D training
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
config to do 3200 1d training.
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
config to do 3200 2d training.
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
pstate=1: set dfi clk done done
Training PASS
Load 201711 PIE
Back to ROM, SDP
U-Boot 2017.03-imx_v2017.03_4.9.51_imx8m_ga+g2537522 (Mar 12 2018 - 12:25:24 -0500)
CPU: Freescale i.MX8MQ rev2.0 1500 MHz (running at 1000 MHz)
CPU: Commercial temperature grade (0C to 95C) at 42C
Reset cause: POR
Model: Freescale i.MX8MQ EVK
DRAM: 3 GiB
TCPC: Vendor ID [0x1fc9], Product ID [0x5110]
MMC: FSL_SDHC: 0, FSL_SDHC: 1
MMC: no card present
mmc_init: -123, time 2
*** Warning - MMC init failed, using default environment
No panel detected: default to HDMI
Display: HDMI (1280x720)
HDMI enable failed!
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF 6a83ae0
- U-Boot 2017.03-imx_v2017.03_4.9.51_imx8m_ga+g2537522
MMC: no card present
mmc_init: -123, time 2
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
Boot from USB for mfgtools
Use default environment for mfgtools
Run bootcmd_mfg: run mfgtool_args;booti ${loadaddr} ${initrd_addr} ${fdt_addr};
Hit any key to stop autoboot: 0
u-boot=> printenv
baudrate=115200
boot_fdt=try
bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; else booti ${loadaddr} - ${fdt_addr}; fi
bootcmd_mfg=run mfgtool_args;booti ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=2
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc0,115200 earlycon=ec_imx6q,0x30860000,115200
ethprime=FEC
fdt_addr=0x43000000
fdt_file=fsl-imx8mq-evk.dtb
fdt_high=0xffffffffffffffff
image=Image
initrd_addr=0x43800000
initrd_high=0xffffffffffffffff
loadaddr=0x40480000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" clk_ignore_unused
mmcargs=setenv bootargs console=${console} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; else echo wait for boot; fi;
mmcdev=1
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
netargs=setenv bootargs console=${console} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${loadaddr} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdt_file}; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; else booti; fi;
script=boot.scr
Environment size: 1935/4092 bytes
u-boot=>
我自己编译生成的imx-boot-imx8mqevk-sd.bin-flash_evk串口输出打印信息:
U-Boot SPL 2017.03 (Jul 10 2018 - 19:25:46)
PMIC: PFUZE100 ID=0x10
start to config phy: p0=3200mts, p1=667mts with 1D2D training
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
config to do 3200 1d training.
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
config to do 3200 2d training.
Training PASS
check ddr4_pmu_train_imem code
check ddr4_pmu_train_imem code pass
check ddr4_pmu_train_dmem code
check ddr4_pmu_train_dmem code pass
pstate=1: set dfi clk done done
Training PASS
Load 201711 PIE
Back to ROM, SDP
U-Boot 2017.03 (Jul 10 2018 - 19:25:46 +0800)
CPU: Freescale i.MX8MQ rev2.0 1500 MHz (running at 1000 MHz)
CPU: Commercial temperature grade (0C to 95C) at 41C
Reset cause: POR
Model: Freescale i.MX8MQ EVK
DRAM: 3 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
MMC: no card present
mmc_init: -123, time 2
*** Warning - MMC init failed, using default environment
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF 6a83ae0
- U-Boot 2017.03
unsupported boot devices
SATA isn't buildin
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
MMC: no card present
mmc_init: -123, time 2
Block device mmc 1 not supported
bcb_rw_block, get_block_size return 0
read_bootctl, bcb_rw_block read failed
read command failed
Fastboot: Normal
u-boot=> printenv
baudrate=115200
bootdelay=1
ethaddr=00:04:9f:05:6a:83
ethprime=FEC
fdt_high=0xffffffffffffffff
fdtcontroladdr=f9efec48
initrd_high=0xffffffffffffffff
loadaddr=0x40480000
soc_type=imx8mq
splashpos=m,m
stderr=serial
stdin=serial
stdout=serial
Environment size: 268/4092 bytes
u-boot=>
4、 现象,使用mfgtool自带的imx-boot-imx8mqevk-sd.bin-flash_evk文件对开发板进行烧写,可以成功;使用编译生成的imx-boot-imx8mqevk-sd.bin-flash_evk对开发板进行烧写,不成功;
能看到的区别是两个uboot的版本不一样,且编译生成的uboot中似乎没有bootcmd等一系列环境变量。
请问我上述的操作步骤对吗?在我自己做的板子中,需要更改uboot,但是我现在找不到一个能使用的uboot版本。
我使用的mgftool工具的VBS文件为mfgtool2-android-mx8mq-evk-emmc.vbs。