iMX7D eMMC Boot EasyInstaller from TFTP

Hi,

We are using Colibri iMX7 1GB eMMC (v1.1B, PID: 39) with a custom yocto image BSP 5.7.1 and are trying to figure out how to reflash a module once deployed if needs be. Once deployed we only have access to SSH and modules ip.

Idea was to use Boot from a TFTP/NFS Server.

We have gotten as far as configuring DHCP, TFTP and getting the module to boot EasyInstaller from it.

Once EasyInstaller boots we are greeted with a error message “Reading the Toradex Config Block failed…”, continuing we get to Config options where we need to select module type, version and serial.
For module type there is no option to select Colibri iMX7 1GB eMMC (39). There are only 512MB version and no eMMC.
Just to see what happens we selected iMX7D 512MB and we got to the interface for image selection.
Trying to Flash or Erase flash we are greeted by

flash_erase: error!: /dev/
	error 21 (Is a directory)

We are able to flash EasyInstaller over usb in recovery mode and everything works normally.


We have downloaded new version of EasyInstaller 5.7.5_b19, also tried with 1.8.

Extracted tezi.itb and copied it to /srv/tftp/.
Created custom boot.scr and copied it to /srv/tftp/

/srv/nfs/rootfs/ is empty.

setenv bootargs console=ttymxc0,115200 quiet video=DPI-1:640x480D video=HDMI-A-1:640x480-16@60D video=LVDS-1:d video=VGA-1:640x480-16@60D rootfstype=squashfs root=/dev/ram autoinstall ${teziargs}

# Reenable fdt relocation since in place fdt edits corrupt the ramdisk
# in a FIT image...
setenv fdt_high

# Load FIT image from location as detected by distroboot
tftp ${ramdisk_addr_r} ${prefix}tezi.itb

bootm ${ramdisk_addr_r}

# mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Distro Boot Script" -d boot.cmd boot.scr

DHCP config

# option definitions common to all served networks...
option domain-name "colibri.net";
option domain-name-servers 8.8.8.8;

default-lease-time 600;
max-lease-time 7200;

# Use this to enable / disable dynamic dns updates globally.
ddns-update-style none;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

subnet 192.168.10.0 netmask 255.255.255.0 {
        default-lease-time              86400;
        max-lease-time                  86400;
        option broadcast-address        192.168.10.255;
        option domain-name              "colibri.net";
        option domain-name-servers      192.168.10.29;
        option ip-forwarding            off;
        option routers                  192.168.10.77;
        option subnet-mask              255.255.255.0;
        interface                       ens33;
        #range                           192.168.10.48 192.168.10.50;
}
#MAC address dependent IP assignment, used for the toradex target device
host eval {
        filename                        "zImage";
        fixed-address                   192.168.10.244;
        hardware ethernet               00:14:2d:e8:8e:25;
        next-server                     192.168.10.77;
        option host-name                "colibri";
        option root-path                "192.168.10.77:/srv/nfs/rootfs,wsize=1024,rsize=1024,v3";
}

Hello @Ales,

Thanks for reaching out to the Toradex Community!

May I know why you are trying to boot Toradex Easy Installer from a TFTP/NFS server?
I am trying to reproduce your issue. I will update you as soon as I have some news. Thanks for understanding!

Hi @rudhi.tx,

For future image upgrades. As mentioned we will not have direct access to module, the only acess we will have is SSH. We can set boot mode and boot ip args with fw_setenv to DHCP mode and server IP which causes module to boot from TFTP.

Exact commands are

fw_setenv boot_targets dhcp
fw_setenv server_ip 192.168.10.77

.77 is DHCP and TFTP host.

Or did I miss a chapter and image upgrades can be done differently. We are trying to flash a full image remotely.

Hello @Ales,

Thanks for the information.
I would like to inform you that Toradex Easy Installer was not built for image update/upgrade as an intended goal. It is used to recover a target module and also to flash a new OS image onto it. For image updates, you may want to look into the update solutions we provide through Torizon Cloud offerings. Please take a look here: Torizon Cloud Documentation Overview | Toradex Developer Center
Feel free to contact if you have more questions.