查看: 4278|回复: 0

[分享] i.MX8M Mini 烧录固件

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3299

    主题

    6546

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32023
    最后登录
    2024-4-25
    发表于 2020-5-14 13:55:16 | 显示全部楼层 |阅读模式
    i.MX8M Mini 烧录固件


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


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


    烧录固件 : uuu uuu.auto
    1. <font size="3" face="微软雅黑">uuu.auto
    2. uuu_version 1.0.1

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

    10. FB: ucmd setenv fastboot_dev mmc
    11. FB: ucmd setenv mmcdev ${emmc_dev}
    12. FB: ucmd mmc dev ${emmc_dev}
    13. #FB: flash -raw2sparse all sdcard.img
    14. FB: flash -raw2sparse all core-image-minimal-imx8mmevk-20190521120542.rootfs.sdcard
    15. FB: flash bootloader imx-boot-imx8mmevk-sd.bin-flash_evk
    16. FB: ucmd mmc partconf ${emmc_dev} 0 1 0
    17. FB: done
    18. </font>
    复制代码
    调试快速烧录
    开发板开机进入uboot界面
    1. <font size="3" face="微软雅黑">fastboot ttyUSB1 (指定烧录口)</font>
    复制代码
    PC端通过uuu运行
    1. <font size="3" face="微软雅黑">uuu FB: flash -raw2sparse all sdcard.img`</font>
    复制代码
    系统分区
    一般的系统分区可以通过dts中的参数配置,比如Amlogic A113X
    1. <font size="3" face="微软雅黑">// arch/arm64/boot/dts/amlogic/xxx.dts
    2.         mtd_nand {
    3.                 compatible = "amlogic, aml_mtd_nand";
    4.                 dev_name = "mtdnand";
    5.                 status = "disable";
    6.                 reg = <0x0 0xFFE07800 0x0 0x200>;
    7.                 interrupts = <        0 34 1 >;
    8.                 pinctrl-names = "nand_rb_mod","nand_norb_mod", "nand_cs_only";
    9.                 pinctrl-0 = <&all_nand_pins>;
    10.                 pinctrl-1 = <&all_nand_pins>;
    11.                 pinctrl-2 = <&nand_cs_pins>;
    12.                 device_id = <0>;

    13.                 /*fip/tpl configurations, must be same
    14.                  * with uboot if bl_mode was set as 1
    15.                  * bl_mode: 0 compact mode; 1 descrete mode
    16.                  * if bl_mode was set as 1, fip configeration will work
    17.                  */
    18.                 bl_mode = <1>;
    19.                 /*copy count of fip*/
    20.                 fip_copies = <4>;
    21.                 /*size of each fip copy */
    22.                 fip_size = <0x200000>;
    23.                 nand_clk_ctrl = <0xFFE07000>;
    24.                 plat-names = "bootloader","nandnormal";
    25.                 plat-num = <2>;
    26.                 plat-part-0 = <&bootloader>;
    27.                 plat-part-1 = <&nandnormal>;
    28.                 bootloader: bootloader{
    29.                         enable_pad ="ce0";
    30.                         busy_pad = "rb0";
    31.                         timming_mode = "mode5";
    32.                         bch_mode = "bch8_1k";
    33.                         t_rea = <20>;
    34.                         t_rhoh = <15>;
    35.                         chip_num = <1>;
    36.                         part_num = <0>;
    37.                         rb_detect = <1>;
    38.                 };
    39.                 nandnormal: nandnormal{
    40.                         enable_pad ="ce0";
    41.                         busy_pad = "rb0";
    42.                         timming_mode = "mode5";
    43.                         bch_mode = "bch8_1k";
    44.                         plane_mode = "twoplane";
    45.                         t_rea = <20>;
    46.                         t_rhoh = <15>;
    47.                         chip_num = <2>;
    48.                         part_num = <3>;
    49.                         partition = <&nand_partitions>;
    50.                         rb_detect = <1>;
    51.                 };
    52.                 nand_partitions:nand_partition{
    53.                         /*
    54.                          * if bl_mode is 1, tpl size was generate by
    55.                          * fip_copies * fip_size which
    56.                          * will not skip bad when calculating
    57.                          * the partition size;
    58.                          *
    59.                          * if bl_mode is 0,
    60.                          * tpl partition must be comment out.
    61.                          */
    62.                         tpl{
    63.                                 offset=<0x0 0x0>;
    64.                                 size=<0x0 0x0>;
    65.                         };
    66.                         logo{
    67.                                 offset=<0x0 0x0>;
    68.                                 size=<0x0 0x200000>;
    69.                         };
    70.                         recovery{
    71.                                 offset=<0x0 0x0>;
    72.                                 size=<0x0 0x1000000>;
    73.                         };
    74.                         boot{
    75.                                 offset=<0x0 0x0>;
    76.                                 size=<0x0 0xF00000>;
    77.                         };
    78.                         system{
    79.                                 offset=<0x0 0x0>;
    80.                                 size=<0x0 0x82000000>;
    81.                         };
    82.                 };
    83.         };
    84. </font>
    复制代码
    而针对NXP i.MX8M Mini这边,并没有提供DTS的配置方式,而是通过uuu工具来实现的。官方资料中提供了kernel_emmc.uuu参考例子。
    1. <font size="3" face="微软雅黑">// create partition
    2. FBK: ucmd mmc=`cat /tmp/mmcdev`; PARTSTR=[font=微软雅黑][size=3]
    3. [/size][/font]
    4. [font=微软雅黑][size=3]
    5. [/size][/font]
    6. [font=微软雅黑][size=3]
    7. [/size][/font]
    8. [font=微软雅黑][size=3]
    9. [/size][/font]
    10. [font=微软雅黑][size=3]文章出处:CSDN[/size][/font]
    11. [font=微软雅黑][size=3]
    12. [/size][/font]
    13. [font=微软雅黑][size=3]
    14. [/size][/font]
    15. [font=微软雅黑][size=3]
    16. [/size][/font]


    17. 10M,500M,0c\n600M,,83\n'; echo "$PARTSTR" | sfdisk --force /dev/mmcblk${mmc}</font>
    复制代码








    文章出处:CSDN








    签到签到
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-25 12:21 , Processed in 0.105172 second(s), 18 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表