QNX支持的板卡还是挺多的,可以在http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/BSPAndDrivers
板载驱动下载地址:
http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/FreescaleImx6QSabreSmart?showDetails=true
编译看帮助文档即可。会在image下生成
运行images下的mkflashimage生成ipl-mx6q-sabresmart.bin。
如果能够SD卡升级,只需要将板子设置成SD卡升级,制作SD升级包即可。可惜我的目标机器没有SD卡卡槽,因此只能使用USB OTG连接,需要使用到mfgtool工具。
MFGTool2的工具详细介绍,可以看一下这篇文章:https://blog.csdn.net/pugu12/article/details/43270469
参考:https://blog.csdn.net/sgbsgb/article/details/77841711
1MFGTool
[profiles]
芯片为i.mx6dl
[platform]
[LIST]
name = i.MX6DL-ubuntu-SabreSD-SD ---------------
cfg.ini
2ucl2.xml
MFGToolucl2.xmlucl2.xmlMFGTool-Dir/Profiles/MX6DL Linux Update/OS Firmwareucl2.xmllinuxManufacturing Tool V2 Quick Start Guide
3boot mode
MFGTool
1cfg.iniUICfg.ini
2boot mode为download模式
3OTG-USBPC
4MfgTool2.exe
5HID-compliant deviceStart
升级时主要依据ucl2.xml的配置进行升级,把相关配置黏贴一下
-<LIST name="QNX-IPL-EMMC" desc="Choose eMMC QNX as media"> <CMD file="u-boot-mx6q-sabresd.bin" body="BootStrap" type="boot" state="BootStrap">Loading U-boot</CMD> <CMD file="uImage" type="load" state="BootStrap" HasFlashHeader="FALSE" setSection="OTH" loadSection="OTH" address="0x10800000">Loading Kernel.</CMD> <CMD file="initramfs.cpio.gz.uboot" type="load" state="BootStrap" HasFlashHeader="FALSE" setSection="OTH" loadSection="OTH" address="0x10C00000">Loading Initramfs.</CMD> <CMD type="jump" state="BootStrap"> Jumping to OS image. </CMD> <!-- create partition --> <CMD state="Updater" type="push" body="$ sleep 1 "> sleep 1...</CMD> <CMD body="$ ls /dev/mmc*" type="push" state="Updater">Debug</CMD> <CMD body="$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16" type="push" state="Updater">clean up u-boot parameter</CMD> <CMD body="$ echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config" type="push" state="Updater">access boot partition 1</CMD> <CMD file="ipl-mx6q-sabresmart.bin" body="send" type="push" state="Updater">Sending U-Boot</CMD> <CMD body="$ dd if=$FILE of=/dev/mmcblk0 bs=512 seek=2 skip=2" type="push" state="Updater">write ipl to emmc</CMD> <CMD body="$ echo 8 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config" type="push" state="Updater">access user partition and enable boot partion 1 to boot</CMD> <!-- create fat partition --> <CMD state="Updater" type="push" body="$ while [ ! -e /dev/mmcblk0p1 ]; do sleep 1; echo \"waiting...\"; done ">wait</CMD> <CMD state="Updater" type="push" body="$ mkfs.vfat /dev/mmcblk0p1">Formatting rootfs partition</CMD> <CMD state="Updater" type="push" body="$ mkdir -p /mnt/mmcblk0p1"/> <CMD state="Updater" type="push" body="$ mount -t vfat /dev/mmcblk0p1 /mnt/mmcblk0p1"/> <!-- burn ifs --> <CMD state="Updater" type="push" body="send" file="qnx-ifs">Sending IFS</CMD> <CMD state="Updater" type="push" body="$ cp $FILE /mnt/mmcblk0p1/qnx-ifs">write QNX-IFS to sd card</CMD> <CMD state="Updater" type="push" body="$ umount /mnt/mmcblk0p1">Unmounting vfat partition</CMD> <CMD body="$ sync" type="push" state="Updater">Sync file system</CMD> <CMD body="frf" type="push" state="Updater">flush the memory.</CMD> <CMD body="$ echo Update Complete!" type="push" state="Updater">Done</CMD> </LIST>
烧写用的临时uboot及镜像文件,可以自己编译,也可以下载MFGTOOL2时用它自带,但据说新版不好用。下载地址:
https://www.nxp.com/support/developer-resources/hardware-development-tools/sabre-development-system/sabre-board-for-smart-devices-based-on-the-i.mx-6quad-applications-processors:RD-IMX6Q-SABRE?tab=Design_Tools_Tab