none
How do we update the firmware on deployed CE devices? RRS feed

  • Question

  • We are developing a headless CE 6.0 device (almost identical to the evaluation board AT91SAM9260EK from Atmel) with ethernet connection.
    We can access the devices via the internet, but the devices can be located on the other side of the world. So it should be possible to upgrade remotely.
    How can we upgrade the kernel (NK.BIN) ?
    We can easily write a user program that downloads and stores the new NK.BIN on a disk (flash drive). But how can we flash this new NK.BIN into the flash chip?
    Viking 
    Friday, August 12, 2011 12:40 PM

All replies

  • There are many ways to accomplish this, but they may involve writting some software.   How much software is going to depend on what your BSP already provides.

    Some thoughts:

    • Put the new OS someplace that the bootloader can find it, then reboot.   This may be the simplest way, if your device has storage for the new OS.
    • Use a driver to access your flash from the running OS and update the nk.bin.    This assumes that your OS is not running from flash.
    • Send the new OS to your customer some way that they can put the OS on media that your bootloader can read and flash the OS.

    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG http://geekswithblogs.net/bruceeitman

    Eurotech Inc.
    www.Eurotech.com
    Friday, August 12, 2011 12:58 PM
    Moderator
  • Also see : http://social.msdn.microsoft.com/Forums/en-US/winembplatdev/thread/212622e9-cb16-47fb-8ddc-4dea82dea618

    Usually the bootloader provides some "double nk.bin" strategy, for when something goes wrong during flashing, and your image gets corrupted.
    In that case the other nk.bin will boot, so your system stays responsive.
    Without something like this, it might be risky to update a system far away.

    For an updateover inet, I guess you need some kind of monitoring tool that detects when an update file has arrived, and then starts the flashing.
    For usb you need to detect when a disk has been inserted, and perform a similar check.
    I did both functions in the same (little) tool which was launched at startup.

    Rob
    www.robtso.nl

     

     

    Thursday, August 18, 2011 2:28 PM