前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[ 物联网篇 ] 10 - NXP i.MX8M Mini 烧录固件

[ 物联网篇 ] 10 - NXP i.MX8M Mini 烧录固件

作者头像
程序手艺人
发布2019-07-02 18:06:31
2.3K0
发布2019-07-02 18:06:31
举报

NXP i.MX8M Mini烧录固件的方式主要通过uuu工具进行烧录, 这个工具本身开源,但是提供给开发者烧录的方式及其不友好, 不得不吐槽。

烧录固件

如果没有uuu的文档,真心看不懂uuu.auto的语法。其中应该主要是为兼容Linux烧录,封装了fastboot协议而写的一套规则。

烧录固件 : uuu uuu.auto

uuu.auto 
uuu_version 1.0.1

SDP: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk
# This command will be run when use SPL
SDPU: delay 1000
SDPU: write -f imx-boot-imx8mmevk-sd.bin-flash_evk -offset 0x57c00
SDPU: jump
# This command will be run when ROM support stream mode
SDPS: boot -f imx-boot-imx8mmevk-sd.bin-flash_evk

FB: ucmd setenv fastboot_dev mmc
FB: ucmd setenv mmcdev ${emmc_dev}
FB: ucmd mmc dev ${emmc_dev}
#FB: flash -raw2sparse all sdcard.img
FB: flash -raw2sparse all core-image-minimal-imx8mmevk-20190521120542.rootfs.sdcard
FB: flash bootloader imx-boot-imx8mmevk-sd.bin-flash_evk
FB: ucmd mmc partconf ${emmc_dev} 0 1 0
FB: done
  • 调试快速烧录

开发板开机进入uboot界面

fastboot ttyUSB1 (指定烧录口)

PC端通过uuu运行

uuu FB: flash -raw2sparse all sdcard.img`
系统分区

一般的系统分区可以通过dts中的参数配置,比如Amlogic A113X

// arch/arm64/boot/dts/amlogic/xxx.dts
	mtd_nand {
		compatible = "amlogic, aml_mtd_nand";
		dev_name = "mtdnand";
		status = "disable";
		reg = <0x0 0xFFE07800 0x0 0x200>;
		interrupts = <	0 34 1 >;
		pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
		pinctrl-0 = <&all_nand_pins>;
		pinctrl-1 = <&all_nand_pins>;
		pinctrl-2 = <&nand_cs_pins>;
		device_id = <0>;

		/*fip/tpl configurations, must be same
		 * with uboot if bl_mode was set as 1
		 * bl_mode: 0 compact mode; 1 descrete mode
		 * if bl_mode was set as 1, fip configeration will work
		 */
		bl_mode = <1>;
		/*copy count of fip*/
		fip_copies = <4>;
		/*size of each fip copy */
		fip_size = <0x200000>;
		nand_clk_ctrl = <0xFFE07000>;
		plat-names = "bootloader","nandnormal";
		plat-num = <2>;
		plat-part-0 = <&bootloader>;
		plat-part-1 = <&nandnormal>;
		bootloader: bootloader{
			enable_pad ="ce0";
			busy_pad = "rb0";
			timming_mode = "mode5";
			bch_mode = "bch8_1k";
			t_rea = <20>;
			t_rhoh = <15>;
			chip_num = <1>;
			part_num = <0>;
			rb_detect = <1>;
		};
		nandnormal: nandnormal{
			enable_pad ="ce0";
			busy_pad = "rb0";
			timming_mode = "mode5";
			bch_mode = "bch8_1k";
			plane_mode = "twoplane";
			t_rea = <20>;
			t_rhoh = <15>;
			chip_num = <2>;
			part_num = <3>;
			partition = <&nand_partitions>;
			rb_detect = <1>;
		};
		nand_partitions:nand_partition{
			/*
			 * if bl_mode is 1, tpl size was generate by
			 * fip_copies * fip_size which
			 * will not skip bad when calculating
			 * the partition size;
			 *
			 * if bl_mode is 0,
			 * tpl partition must be comment out.
			 */
			tpl{
				offset=<0x0 0x0>;
				size=<0x0 0x0>;
			};
			logo{
				offset=<0x0 0x0>;
				size=<0x0 0x200000>;
			};
			recovery{
				offset=<0x0 0x0>;
				size=<0x0 0x1000000>;
			};
			boot{
				offset=<0x0 0x0>;
				size=<0x0 0xF00000>;
			};
			system{
				offset=<0x0 0x0>;
				size=<0x0 0x82000000>;
			};
		};
	};

而针对NXP i.MX8M Mini这边,并没有提供DTS的配置方式,而是通过uuu工具来实现的。官方资料中提供了kernel_emmc.uuu参考例子。

// create partition
FBK: ucmd mmc=`cat /tmp/mmcdev`; PARTSTR=$'10M,500M,0c\n600M,,83\n'; echo "$PARTSTR" | sfdisk --force /dev/mmcblk${mmc}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年06月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 烧录固件
  • 系统分区
相关产品与服务
数据传输服务
腾讯云数据传输服务(Data Transfer Service,DTS)可帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库多活架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。同时,DTS 还提供私有化独立输出版本 DTS-DBbridge,支持异构数据库和同构数据库之间迁移和同步,可以帮助企业实现完整数据库迁移(如 Oracle)。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档