i.MX53 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)

Loading bootloader

Follow these steps to load bootloader over serial connection.

Make sure to load the correct bootloader binary over JTAG. It is also a good practice to erase Barebox environment or load the default environment.

Updating firmware

This article describes updating Barebox, kernel and filesystems in details. The following sections provide these informations in more compact form.

Updating bootloader

Download the latest Barebox image and store it into TFTP directory:

mkdir -pv ~/tftp/vmx53
cd ~/tftp/vmx53/
release=20151129
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_Kit/module/software/barebox/binaries/barebox-2014.03.0_vmx53_${release}.img

Update Barebox:

#release=20150308
release=20151129
dhcp
eth0.serverip=192.168.0.1
update barebox vmx53/barebox-2014.03.0_vmx53_${release}.img
erase /dev/nand0.environment
reset

Updating Linux kernel

Download the latest Linux kernel image and store it into TFTP directory:

cd ~/tftp/vmx53/
release=20151129
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_Kit/module/software/linux/binaries/zImage-3.12.13_vmx53_${release}.bin

Update the kernel:

#release=20150308
release=20151129
dhcp
eth0.serverip=192.168.0.1
update kernel vmx53/zImage-3.12.13_vmx53_${release}.bin

Updating filesystem in UBIFS format

Download the latest filesystem image and store it into TFTP directory:

cd ~/tftp/vmx53/
release=20140907
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_Kit/module/software/filesystem/binaries/rootfs-1.22-ubifs-m2k-e128k-512M_vmx53_${release}.bin
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_Kit/module/software/filesystem/binaries/rootfs-1.22-ubifs-m4k-e1M-4G_vmx53_${release}.bin
wget http://downloads.voipac.com/files/i.MX53_SODIMM_PC-Development_Kit/module/software/filesystem/binaries/rootfs-1.22-ubifs-m4k-e512k-1G_vmx53_${release}.bin

Update the filesystem:

release=20140907
dhcp
eth0.serverip=192.168.0.1
update rootfs vmx53/rootfs-1.22-ubifs_vmx53_20140817.bin
# Flash size: 128MB, 256MB, 512MB 
update rootfs vmx53/rootfs-1.22-ubifs-m2k-e128k-512M_vmx53_${release}.bin
# Flash size: 1024MB 
update rootfs vmx53/rootfs-1.22-ubifs-m4k-e512k-1G_vmx53_${release}.bin
# Flash size: 4094MB 
update rootfs vmx53/rootfs-1.22-ubifs-m4k-e1M-4G_vmx53_${release}.bin

Updating filesystem in UBI format

release=20140907
dhcp
eth0.serverip=192.168.0.1
# Flash size: 128MB, 256MB, 512MB 
tftp vmx53/rootfs-1.22-ubi-m2k-e128k-512M_vmx53_${release}.bin /dev/nand0.rootfs.bb
# Flash size: 1024MB 
tftp vmx53/rootfs-1.22-ubi-m4k-e512k-1G_vmx53_${release}.bin /dev/nand0.rootfs.bb
# Flash size: 4094MB 
tftp vmx53/rootfs-1.22-ubi-m4k-e1M-4G_vmx53_${release}.bin /dev/nand0.rootfs.bb

Configuration

Configuring module version

By modifying env/config file the board configuration can be chosen:

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

# BASIC=557, PRO=668, MAX=779
#global.vmxmodel=557
#global.vmxmodel=668
global.vmxmodel=779

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

Loading custom device tree file

Upload a custom DTB file into Barebox environment:

dhcp
eth0.serverip=192.168.0.1
tftp vmx53/imx53-vmx53-999.dtb /env/dtb/3.12/imx53-vmx53-999.dtb
saveenv

Edit /env/config and add custom "global.vmxmodel" settings:

barebox@Voipac VMX53:/ edit /env/config
# BASIC=557, PRO=668, MAX=779
#global.vmxmodel=557
#global.vmxmodel=668
global.vmxmodel=999
barebox@Voipac VMX53:/ saveenv

Note: The script responsible for loading correct DTB file is stored in /env/init/dtb.