• NXP官方开发板uboot程序烧写到SD卡并启动


    一.  编译NXP官方 uboot

    之前文章学习了编译 NXP(恩智浦)官网的 uboot源码。

    本文将 编译好的 uboot程序烧写到 SD卡,并通过SD卡启动开发板。这里我所使用的开发板是 Nand-Flash版的核心板,规格如下:

    DRAM(即 DDR)容量: 256MB

    Nand-Flash 容量: 512MB。

    NXP官方开发板uboot编译_凌肖战的博客-CSDN博客

    二.   NXP官方开发板uboot程序烧写到SD卡

    编译完成 uboot源码后,会生成 两种 裸机程序:u-boot.bin与 u-boot.imx文件。如下:

    wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga$ ls -l

    .........

    -rwxrwxr-x   1 wangtian wangtian 2681216 10月 15 17:47 u-boot
    -rw-rw-r--   1 wangtian wangtian  471284 10月 15 17:47 u-boot.bin
    -rw-rw-r--   1 wangtian wangtian   38494 10月 15 17:47 u-boot.cfg
    -rw-rw-r--   1 wangtian wangtian  478208 10月 15 17:47 u-boot.imx

    u-boot.bin与 u-boot.imx文件的区别:

    u-boot.bin 就是编译出来的 uboot 二进制文件。
    uboot 是个裸机程序,因此,需要在其前面加上头部 (IVT DCD 等数据 ) 才能在 I.MX6ULL 上执行。
    u-boot.imx 文件 就是添加头部以后的 u-boot.bin u-boot.imx 就是我们最 终要烧写到开发板中的 uboot 镜像文件。

    1.  烧写到 SD卡验证

    imxdownload 软件拷贝到 uboot 源码根目录下,然后,使用 imxdownload 软件将 u-boot.bin
    烧写到 SD 卡中。
    (1)  首先,将 SD卡插入读卡器,读卡器最后插入电脑的 USB口。
    (2)  其次,使 ubuntu系统识别到 SD卡。我这里的 ubuntu系统下 SD卡如下:
    1. wangtian@wangtian-virtual-machine:~$ ls -l /dev/sd*
    2. brw-rw---- 1 root disk 8, 0 1015 15:07 /dev/sda
    3. brw-rw---- 1 root disk 8, 1 1015 15:07 /dev/sda1
    4. brw-rw---- 1 root disk 8, 2 1015 15:07 /dev/sda2
    5. brw-rw---- 1 root disk 8, 5 1015 15:07 /dev/sda5
    6. wangtian@wangtian-virtual-machine:~$ ls -l /dev/sd*
    7. brw-rw---- 1 root disk 8, 0 1015 15:07 /dev/sda
    8. brw-rw---- 1 root disk 8, 1 1015 15:07 /dev/sda1
    9. brw-rw---- 1 root disk 8, 2 1015 15:07 /dev/sda2
    10. brw-rw---- 1 root disk 8, 5 1015 15:07 /dev/sda5
    11. brw-rw---- 1 root disk 8, 16 1015 18:32 /dev/sdb
    12. brw-rw---- 1 root disk 8, 17 1015 18:32 /dev/sdb1

    插入 SD卡前后,可以看出 SD 卡为 /dev/sdb与 /dev/sdb1,这里使用 /dev/sdb。

    (3)  将 imxdownload 软件拷贝到 uboot根目录下,使用 imxdownload 软件将 u-boot.bin 烧写到 SD 卡中。

    注意:Nand-Flash的核心板DRAM(即DDR) 容量位256MB,因此,DCD数据里面的DDR初始化代码得改。imxdownload 要添加一些参数,在最后面加上-256m参数!!!

    烧写命令如下:

    wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/uboot/nxp_uboot/uboot-imx-rel_imx_4.1.15_2.1.0_ga$ ./imxdownload u-boot.bin /dev/sdb -256m
    I.MX6ULL bin download software
    Edit by:zuozhongkai
    Date:2019/6/10
    Version:V1.1
    log:V1.0 initial version,just support 512MB DDR3
        V1.1 and support 256MB DDR3
    file u-boot.bin size = 471284Bytes
    Board DDR SIZE: 256MB
    Delete Old load.imx
    Create New load.imx
    Download load.imx to /dev/sdb  ......
    [sudo] wangtian 的密码:
    记录了926+1 的读入
    记录了926+1 的写出
    474356字节(474 kB,463 KiB)已复制,0.559043 s,849 kB/s

    (4)  拔出 SD卡,将 SD卡插入 开发板。开发板的拨码开关拨到 SD卡启动。开发板上电。

    串口打印如下:

    1. U-Boot 2016.03 (Oct 15 2023 - 17:47:14 +0800)
    2. CPU: Freescale i.MX6ULL rev1.1 69 MHz (running at 396 MHz)
    3. CPU: Industrial temperature grade (-40C to 105C) at 32C
    4. Reset cause: POR
    5. Board: MX6ULL 14x14 EVK
    6. I2C: ready
    7. DRAM: 256 MiB
    8. NAND: 512 MiB
    9. MMC: FSL_SDHC: 0, FSL_SDHC: 1
    10. *** Warning - bad CRC, using default environment
    11. Display: TFT43AB (480x272)
    12. Video: 480x272x24
    13. In: serial
    14. Out: serial
    15. Err: serial
    16. Net: Board Net Initialization Failed
    17. No ethernet found.
    18. Normal Boot

    串口打印信息可以看出, NXP官方的 uboot可以成功在 正点原子的 ALPHA-Nand-Flash的开发板上启动。

    这里 DRAM(即 DDR)容量是 256MB。Nand-Flash容量是 512MB。

    重点是 uboot 要识别出来 NAND容量。

  • 相关阅读:
    广东桉木建筑模板:天然美触,打造高品质建筑
    Linux 之前的 Unix 桌面沉浮启示录
    cpp11 return返回类对象的过程
    tiktok小店无货源店群管理系统分析
    vue3+vite使用monaco-editor编辑器
    Codeforces Round #790 (Div. 4) E. Eating Queries
    Docker swarm 管理 secrets
    使用Hot Chocolate和.NET 6构建GraphQL应用(8) —— 实现Mutate添加数据
    复合查询与过滤查询的区别,记ElasticSearch检索时踩过的”坑“!
    双网卡多网卡时win11如何设置网卡优先级
  • 原文地址:https://blog.csdn.net/wojiaxiaohuang2014/article/details/133845394