Update VF61 module using UpdateLib

I’m going to start implementing the update of VF61 module (bootloader, OS and whatever is necessary) using the UpdateLib contained in Toradex CE Libraries 2.1.

I looked to UpdateLib_Demo sample to see how to use the library itself.

I noticed that this sample seems to a be in a preliminary stage (a lot of mess in the comments and legacy names of some functions). I hope you can improve the sample in the future but I think it’s enough clear to understand how to use the library.

One thing that came to my eyes: function updateIMXBootloader() in UpdateLib_Demo sample searches for eboot.imx but (at least for VF61 and for WIN CE 1.5 release) the file has .img extension.

Could you confirm that the exact steps to complete a full module update are:

  1. update the bootloader
  2. reboot the module
  3. update CE OS
  4. reboot the module

Dear @vix,

Would we like to know the purpose of the update? Is it for production programming or general development cycle update? It will help us to provide a better solution for you.

Generally,

  1. Update OS

  2. Update Eboot

  3. Clear Registry

  4. Reboot the module

  5. Update master config block, registry, filesystem if you want.

Please let us in detail if you face any issue on this. Also, Could you please share which version is running on the module and which version you are trying to update?

Knowledgebase references:

https://developer.toradex.com/knowledge-base/production-programming-for-colibri-vfxx-modules

https://developer.toradex.com/knowledge-base/colibri-vf50-vf61-wince-bring-up

https://developer.toradex.com/knowledge-base/colibri-vf50-vf61-wince-bring-up-for-unfused-modules

Community references:

https://www.toradex.com/community/questions/21477/vf50-flashdisk-not-formated-automatically-after-bs.html

Hi @raja.tx

the purpose of the update is to be able to completely update the module (if needed) after that the device has beed delivered to the customer.

Maybe it will be never necessary, but who knows?

For our application we must have a way to distribute a file to the customer and he should be able to upgrade the device in an easy way.

We’re not in production yet, so modules will be shipped with CE version 1.5 (or newer).

They will updated either to newer versions or to customized versions based on Toradex 1.5 (or newer).

In the past months I was to update the module using UpdateTool, but this is not an option for the end customer.

I found a possible bug in UpdateLib_Demo.c, but I ask you to verify because I could be wrong.

Line 283 is

if (!Upd_Restore(hupdate))

but Upd_Restore() returns the number of bytes restored.
So it should be

if (Upd_Restore(hupdate)==0)

like line 130.

Could you verify, please?

Dear @vix,

Thank you for reporting the error. Very recently, we have updated the same in UpdateLib_Demo.c but not yet released.

Please use our update lib APIs to update the Colibri VFxx from your application. Very rarely, you might need to do erase the filesystem. We have implemented a VybFlashEraseFilesystem API for that but not yet released. It will be released in v2.2.

Final steps would be:

  1. Update OS

  2. Update Eboot

  3. Clear Registry.

  4. Optional: Erase the file system

  5. Reboot the module

  6. Update master config block, registry, filesystem if you want.

Let us know if you need further assistance on this.

I modified some registry settings after having installed the OS.

Does the following OS updates reset the registry to their predefined values?
Or does it keep my changes?

Is is the same for the master config block?

Does “file system” refer to \FlashDisk (i.e. the R/W file system)?

Dear @vix,

I have updated steps little more for a better explanation.

  • Create production reference Vybrid module based on v1.5 image like .NET installed, registry and config block customized

  • Take the backup of production-ready ConfigBlock, Registry, Filesystem using updatetool_v7_5_0 from your production reference Vybrid module

  • Create Splashscreen

  • Update v1.5 OS (standard release image or custom build image)\

  • Update v1.5 Eboot (standard release)

  • Clear Registry( Please don’t forget)

  • Reboot

  • Using updatetool_v7_5_0.exe, update Filesystem, config block, and registry, which was taken as Backup from reference module and splash screen.

  • Reboot and verify

I modified some registry settings
after having installed the OS.

Does the following OS updates reset
the registry to their predefined
values? Or does it keep my changes?

The master registry backup is your customized registry for your product. After restoring master registry you can retain or maintain the same registry all your products. It may or may not reset the registry, so that we are recommending Clear Registry especially. After cleaing the registry, it will reset to standard release image registry.

Is the same for the master config
block?

I would say production reference or master config block is customized config block for your product.

Does “file system” refer to \FlashDisk
(i.e. the R/W file system)?

Yes

Let us know if you need further assistance on this