Updating VF50 Linux 2.5 to 2.8b6

Hi,
We have an application running on VF50 based on Linux BSP 2.5 using a custom kernel with a couple of enabled options.
We have recently updated the application to Linux BSP 2.8b6, again with a couple of options enabled in the kernel.
When we update the VF50 module that has the BSP 2.5 application installed to the BSP 2.8b6 version, we seem to hit a problem loading the ubifs.img. uboot reports prefetch abort, see below. If we run the update sequence again, a second time, it seems to work OK.

I suspect that the update sequence is not working properly with BSP 2.5 uboot. When this is replaced with BSP 2.8b6 uboot, it seems to work OK.

Any help will be much appreciated. I need a simple way for customers to update their modules. Asking them to flash the module twice is less than ideal.

Colibri VFxx # run setupdate
Card did not respond to voltage select!
starting USB...
USB0:   Port not available.
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
** Bad device usb 0 **
Using FEC device
TFTP from server 194.0.0.2; our IP address is 194.0.0.1
Filename 'flash_eth.img'.
Load address: 0x80008000
Loading: ##################################################  444 Bytes
         61.5 KiB/s
done
Bytes transferred = 444 (1bc hex)
## Executing script at 80008000
Using FEC device
TFTP from server 194.0.0.2; our IP address is 194.0.0.1
Filename 'colibri_vf/flash_eth.img'.
Load address: 0x80008000
Loading: ##################################################  2.3 KiB
         379.9 KiB/s
done
Bytes transferred = 2337 (921 hex)
## Executing script at 80008000
enter "run update" to update the entire module
Colibri VFxx # 
Colibri VFxx # 
Colibri VFxx # run update
Using FEC device
TFTP from server 194.0.0.2; our IP address is 194.0.0.1
Filename 'colibri_vf/u-boot-nand.imx'.
Load address: 0x84000000
Loading: ##################################################  462.8 KiB
         9.2 MiB/s
done
Bytes transferred = 473880 (73b18 hex)

NAND erase.part: device 0 offset 0x20000, size 0x160000
Erasing at 0x160000 -- 100% complete.
OK

NAND erase.part: device 0 offset 0x180000, size 0x80000
Erasing at 0x1e0000 -- 100% complete.
OK

NAND write: device 0 offset 0x20000, size 0x160000
 1441792 bytes written: OK
UBI: default fastmap pool size: 50
UBI: default fastmap WL pool size: 25
UBI: attaching mtd1 to ubi0
UBI: attached by fastmap
UBI: fastmap pool size: 50
UBI: fastmap WL pool size: 25
UBI: attached mtd1 (name "mtd=3", size 126 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
UBI: good PEBs: 1003, bad PEBs: 5, corrupted PEBs: 0
UBI: user volume: 3, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 14/8, WL threshold: 4096, image sequence number: 0
UBI: available PEBs: 0, total reserved PEBs: 1003, PEBs reserved for bad PEB handling: 15
Using FEC device
TFTP from server 194.0.0.2; our IP address is 194.0.0.1
Filename 'colibri_vf/zImage'.
Load address: 0x84000000
Loading: ##################################################  4.5 MiB
         9.4 MiB/s
done
Bytes transferred = 4680496 (476b30 hex)
4680496 bytes written to volume kernel
Using FEC device
TFTP from server 194.0.0.2; our IP address is 194.0.0.1
Filename 'colibri_vf/vf500-colibri-eval-v3.dtb'.
Load address: 0x84000000
Loading: ##################################################  24.2 KiB
         2.9 MiB/s
done
Bytes transferred = 24742 (60a6 hex)
24742 bytes written to volume dtb
Using FEC device
TFTP from server 194.0.0.2; our IP address is 194.0.0.1
Filename 'colibri_vf/ubifs.img'.
Load address: 0x84000000
Loading: ######################################prefetch abort
pc : [<616d01a2>]          lr : [<f8d3681b>]
sp : 872f91e0  ip : 00000020     fp : 87befb40
r10: 87befb48  r9 : 872f9ee0     r8 : 00dd7872
r7 : 7576870c  r6 : 98075003     r5 : 80277703  r4 : 00dc7867
r3 : 04f8a8a0  r2 : 00000000     r1 : 87bef140  r0 : 65798779
Flags: nZcv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ...

Hi @ashinton

Thanks for writing to the Toradex Support!

I suspect that the update sequence is not working properly with BSP 2.5 uboot. When this is replaced with BSP 2.8b6 uboot, it seems to work OK.

Any help will be much appreciated. I need a simple way for customers to update their modules. Asking them to flash the module twice is less than ideal.

I think there are two ways,

  1. Either you can go to recovery mode and then load U-Boot into RAM or install Bsp 2.8b6 from there.
  2. Or you write a script which update U-boot first and update the rest after resetting the module.

Best regards,
Jaski