Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This note explains how to install a bootable Linux image to the SD Card of the NXP i.MX RT105 EVK board. Having installed a Linux image to the SD Card, you would be able to boot Linux on the target automatically on any power up or reset cycle.

Instructions of how to build the sample Linux image (rootfs.uImage) from the Emcraft software distribution is described in Building Linux .

To install the sample Linux image (rootfs.uImage) from the Emcraft software distribution just follow the instructions:

  1. Make sure that SD Card is formatted.

  2. Remove SD Card from the NXP i.MX RT1050 EVK board, and plug it into PC.

  3. Find out a /dev/sdX device the system has assigned to your SD Card:

    Code Block
    $ dmesg | tail
    sd 1:0:0:0: [sdb] 31116288 512-byte logical blocks: (15.9GB/14.8 GiB)
    sd 1:0:0:0: [sdb] Cache data unavailable
    sd 1:0:0:0: [sdb] Assuming drive cache: write through
    sd 1:0:0:0: [sdb] Cache data unavailable
    sd 1:0:0:0: [sdb] Assuming drive cache: write through
    sdb: sdb1
  4. Mount the first partition of the SD Card, and copy rootfs.uImage file:

    Code Block
    $ sudo mount /dev/sdb1 /mnt
    $ cp rootfs.uImage /mnt
  5. Umount, and safely remove the SD Card:

    Code Block
    $ sudo umount /mnt
    $ sync
  6. Insert the SD Card back to the SD Card holder on the NXP i.MX RT1050 EVK board. Power on the EVK board. Connect to the serial console, and make sure that Linux boot up to console:

    Code Block
    U-Boot SPL 2022.04 (Sep 25 2023 - 08:16:21 +0000)
    Trying to boot from MMC1
    
    
    U-Boot 2022.04 (Sep 25 2023 - 08:16:21 +0000)
    
    DRAM:  32 MiB
    Core:  71 devices, 13 uclasses, devicetree: separate
    MMC:   FSL_SDHC: 0
    Loading Environment from MMC... OK
    In:    serial@40184000
    Out:   serial@40184000
    Err:   serial@40184000
    Net:   eth0: ethernet@402D8000
    Hit any key to stop autoboot:  0
    8277462 bytes read in 1470 ms (5.4 MiB/s)
    ## Booting kernel from Legacy Image at 80007fc0 ...
       Image Name:   Linux-5.15.71
       Image Type:   ARM Linux Multi-File Image (uncompressed)
       Data Size:    8277398 Bytes = 7.9 MiB
       Load Address: 80008000
       Entry Point:  80008001
       Contents:
          Image 0: 8269856 Bytes = 7.9 MiB
          Image 1: 7530 Bytes = 7.4 KiB
       Verifying Checksum ... OK
    ## Flattened Device Tree from multi component Image at 80007FC0
       Booting using the fdt at 0x807eb02c
       Loading Multi-File Image
       Loading Device Tree to 81e81000, end 81e85d69 ... OK
    
    Starting kernel ...
    
    Booting Linux on physical CPU 0x0
    Linux version 5.15.71 (sasha@workbench.emcraft.com) 
    (arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 
    10.3.1 20210824 (release), GNU ld (GNU Arm Embedded Toolchain 10.3-2021.10) 
    2.36.1.20210621) #2 Mon Sep 25 08:03:11 UTC 2023
    CPU: ARMv7-M [411fc271] revision 1 (ARMv7M), cr=00000000
    CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    OF: fdt: Machine model: NXP IMXRT1050-evk board
    .....
    Run /init as init process
    [71] Jan 01 00:00:01 Running in background
    / # mmc0: new high speed SDHC card at address 0007
    mmcblk0: mmc0:0007 SD8GB 7.42 GiB
     mmcblk0: p1
    Micrel KSZ8081 or KSZ8091 402d8000.ethernet-1:02: attached PHY driver 
    (mii_bus:phy_addr=402d8000.ethernet-1:02, irq=POLL)
    fec 402d8000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
    
    / # ls
    bin       hello.ko  lib       proc      sys       var
    dev       httpd     linuxrc   root      tmp
    etc       init      mnt       sbin      usr
    / #