If the bootloader has been erased from the storage media (or written with an invalid image) and the target does not boot, you can boot the target from a microSD card, or from USB debug mode.

Boot U-Boot from the microSD card

Requirements

  • Root/administrator permissions in your development computer

  • A microSD card with a minimum capacity of 2 GB

The following procedure will destroy existing data in the microSD card.

Create a bootable microSD

  1. Download the U-Boot bootloader binary image file from:

    See Hardware variants to verify which U-Boot binary you need.
  2. Copy the U-Boot file into a folder of your choice.

  3. Insert the microSD card into your computer and check the node Linux assigns to it (/dev/<sdcard>) using dmesg:

    $ dmesg
    [1413652.901270] sd 41:0:0:0: [sdc] 7744512 512-byte logical blocks: (3.96 GB/3.69 GiB)
    [1413652.903140] sd 41:0:0:0: [sdc] No Caching mode page present
    [1413652.903144] sd 41:0:0:0: [sdc] Assuming drive cache: write through
    [1413652.905638] sd 41:0:0:0: [sdc] No Caching mode page present
    [1413652.905642] sd 41:0:0:0: [sdc] Assuming drive cache: write through
    [1413652.915154] sdc: sdc1

    Do not mount any partitions the card might contain (or unmount any partition if automatically mounted), as you will be writing to the entire block device.

    Using an incorrect device node in the next step might destroy all data on your computer hard drive.
  4. Raw write the image file to the microSD card with this command:

    ~$ sudo dd if=<path/filename.bin> of=/dev/<sdcard> bs=1k seek=32 oflag=sync
    • <path/filename.bin> must be substituted with the path and filename to the U-Boot image.

    • <sdcard> must be substituted with the device node that Linux assigns to your microSD card.

The microSD card is now ready.

Instructions

  1. Power off the device.

  2. Insert the microSD card into the microSD card holder (bottom side of the board).

  3. Change the boot source configuration to boot from the microSD card. To do so, set the boot mode micro-switches as follows:

    • BOOT.1 OFF

    • BOOT.2 ON

      microSD boot
  4. Power on the device.

  1. Power off the device.

  2. Insert the microSD card into the microSD card holder (bottom side of the board).

  3. Change the boot source configuration to boot from the microSD card. To do so, set the boot mode micro-switches as follows:

    • BOOT.1 OFF

    • BOOT.2 ON

      microSD boot
  4. Power on the device.

Boot U-Boot in USB debug mode

Requirements

  • Linux host computer.

  • Root/administrator permissions on your development computer

  • The Digi Embedded Yocto SDK already installed. For installation instructions, see Application development.

  • Serial console cable.

  • The Universal Update Utility (UUU), a software by NXP.

For the ConnectCore 8X SBC Express:

  • A micro USB cable.

For the ConnectCore 8X SBC Pro:

  • A USB type-C cable.

Instructions

  1. Connect the micro USB cable to the USB device port of the board (bottom side, under the USB host connectors) and the other end to the development computer.

  2. Change the boot mode configuration to boot from USB. To do so, set the boot mode micro-switches as follows:

    • BOOT.1 ON

    • BOOT.2 ON

      USB boot
  3. Open a serial terminal at 115200/8/n/1.

  4. Power up the board.

  5. On the host computer run the uuu tool as root with the U-Boot file to boot as parameter. For example:

    ~$ sudo ./uuu </path/to/u-boot-file>

The serial terminal shows the device starting U-Boot.

  1. Connect the USB type-C cable to the connector on the SBC (top side, next to the USB host connectors) and the other end to the development computer.

  2. Change the boot mode configuration to boot from USB. To do so, set the boot mode micro-switches as follows:

    • BOOT.1 ON

    • BOOT.2 ON

      USB boot
  3. Open a serial terminal at 115200/8/n/1.

  4. Power up the board.

  5. On the host computer run the uuu tool as root with the U-Boot file to boot as parameter. For example:

    ~$ sudo ./uuu </path/to/u-boot-file>

The serial terminal shows the device starting U-Boot.

Update U-Boot in the eMMC

Once U-Boot is running, you can use it to update the bootloader in the eMMC:

Update bootloader from Ethernet (TFTP)

  1. Place the U-Boot binary inside your host computer TFTP exported folder.

  2. On the target, configure your network settings (IP of the device, IP of the host/server):

    => setenv ipaddr <your-ip>
    => setenv serverip <server-ip>
  3. Connect an Ethernet cable to the Ethernet port.

  4. Run the following command to update U-Boot into the eMMC:

    => update uboot tftp <u-boot-filename>.bin
  5. Change the boot source configuration to boot from the internal eMMC.

    To do so, set the boot mode micro-switches as follows:

    • BOOT.1 OFF

    • BOOT.2 OFF

      eMMC boot
  6. Power-cycle the board. The target now boots from the eMMC.

  1. Place the U-Boot binary inside your host computer TFTP exported folder.

  2. On the target, configure your network settings (IP of the device, IP of the host/server):

    => setenv ipaddr <your-ip>
    => setenv serverip <server-ip>
  3. Connect an Ethernet cable to the Ethernet port.

  4. Run the following command to update U-Boot into the eMMC:

    => update uboot tftp <u-boot-filename>.bin
  5. Change the boot source configuration to boot from the internal eMMC.

    To do so, set the boot mode micro-switches as follows:

    • BOOT.1 OFF

    • BOOT.2 OFF

      eMMC boot
  6. Power-cycle the board. The target now boots from the eMMC.

Update bootloader from microSD card

  1. Place the U-Boot binary inside a FAT-formatted microSD card.

  2. Insert the microSD card in the board.

  3. Run the following command to update U-Boot into the eMMC:

    => update uboot mmc 1 fat <u-boot-filename>.bin
  4. Change the boot source configuration to boot from the internal eMMC.

    To do so, set the boot mode micro-switches as follows:

    • BOOT.1 OFF

    • BOOT.2 OFF

      eMMC boot
  5. Power-cycle the board. The target now boots from the eMMC.