i.MX25 SODIMM PC Recovery

From Voipac Wiki
Jump to navigation Jump to search

Description

The recovery procedure consists of following steps:

  • Loading bootloader binary over JTAG interface using OpenOCD Programming feature
  • Running bootloader from RAM
  • Flashing bootloader over Ethernet
  • Erasing bootloader environment
  • Flashing kernel over Ethernet
  • Flashing root filesystem over Ethernet
  • Resetting module


Requirements:

  • JTAG adapter with OpenOCD software
  • Serial adapter with terminal application
  • Running TFTP server
  • Running DHCP server (optional)

Yocto Project

Downloading files

Store the binaries into the active TFTP directory:

cd /srv/tftp/vmx25
wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-vmx25-1.0.img

wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/linux/binaries/zImage-vmx25-1.0.bin
wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/linux/binaries/zImage-vmx25-254-1.0.dtb
wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/linux/binaries/zImage-vmx25-264-1.0.dtb
wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/linux/binaries/zImage-vmx25-265-1.0.dtb

wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_Kit/module/software/yocto/binaries/core-image-base-vmx25-1.0.ubi

Updating bootloader

#dhcp
eth0.serverip=192.168.1.1
eth0.ipaddr=192.168.1.2
eth0.netmask=255.255.255.0

image=vmx25/barebox-vmx25-1.0.img
part=/dev/nand0.barebox.bb

unprotect $part
erase $part
tftp $image $part
erase /dev/nand0.environment
reset

Updating kernel

#dhcp
eth0.serverip=192.168.1.1
eth0.ipaddr=192.168.1.2
eth0.netmask=255.255.255.0

image=vmx25/zImage-vmx25-1.0.bin
part=/dev/nand0.kernel.bb

unprotect $part
erase $part
tftp $image $part

Updating DTB files

#dhcp
eth0.serverip=192.168.1.1
eth0.ipaddr=192.168.1.2
eth0.netmask=255.255.255.0

tftp vmx25/zImage-vmx25-254-1.0.dtb /env/dtb/imx25-voipac-vmx25-254.dtb
tftp vmx25/zImage-vmx25-264-1.0.dtb /env/dtb/imx25-voipac-vmx25-264.dtb
tftp vmx25/zImage-vmx25-265-1.0.dtb /env/dtb/imx25-voipac-vmx25-265.dtb
saveenv

Based on the module configuration, env/config-board should be adjusted:

edit env/config-board
...
# BASIC=254, PRO=264, MAX=265
#global.vmx.model=254
#global.vmx.model=264
global.vmx.model=265
...
saveenv

Updating filesystem

#dhcp
eth0.serverip=192.168.1.1
eth0.ipaddr=192.168.1.2
eth0.netmask=255.255.255.0

image=vmx25/core-image-base-vmx25-1.0.ubi
part=/dev/nand0.rootfs.bb

unprotect $part
erase $part
tftp $image $part
reset

Busybox version

Downloading files

Store the binaries into the active TFTP directory:

cd /srv/tftp/vmx25
wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_kit/module/software/barebox/binaries/old/barebox-2014.03.0_vmx25_20151129.img

wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_kit/module/software/linux/binaries/old/zImage-3.12.13_sdint_vmx25_20151129.bin

wget http://downloads.voipac.com/files/i.MX25_SODIMM_PC-Development_kit/module/software/filesystem/binaries/rootfs-1.22-ubifs_vmx25_20140817.bin

Updating bootloader

release=20151129
dhcp
eth0.serverip=192.168.0.1
update barebox vmx25/barebox-2014.03.0_vmx25_${release}.img
erase /dev/nand0.environment
reset

Updating bootloader environment

The configuration file need to be updated according to the module configuration and bootmode selection:

barebox@Voipac VMX25:/ edit /env/config
...
# Module Configuration (Device Tree mode)

# BASIC=254, PRO=264, MAX=265
#global.vmxmodel=254
#global.vmxmodel=264
global.vmxmodel=265

# Nand Boot Mode
global.boot.default=nand-legacy-ubi
...
barebox@Voipac VMX25:/ saveenv
barebox@Voipac VMX25:/ reset

Updating kernel

release=20151129
dhcp
eth0.serverip=192.168.0.1
update kernel vmx25/zImage-3.12.13_sdint_vmx25_${release}.bin

Updating UBIFS filesystem

release=20140817
dhcp
eth0.serverip=192.168.0.1
update rootfs vmx25/rootfs-1.22-ubifs_vmx25_${release}.bin