ARMUpdateCoreBootFiles

Summary

Currently on Maverick there's no automatically way to update core boot files, like the boot loader, in case of updates and bug fixing. For Maverick it was decided that the boot loader should be treated like a x86 BIOS, that almost never gets updated, but we later noticed that these tools are not stable, and we should be able to give a procedure and tool to the user to be able to update them.

Release Note

Ubuntu now can receive boot loader updates on ARM, warning the user when a new update arrives and pointing the user to the procedure.

Rationale

ARM devices in general need their own boot loaders to initialize the device. It's common give the boot loader the responsibility to initialize the memory, set the GPIOs, and other pieces that are not handled by the Kernel. On Maverick it was decided that the boot loader should only be installed at image creation time, without giving the user any automatically way to update in case new versions appear. During Maverick cycle it was proven that boot loader tools are not stable as we thought (we considered it like a x86 BIOS, that is almost never updated), and frequently receive bug fixing and updates. To solve this problem a tool to update the boot loader should be provided, that can handle subarch differences, with additional documentation about the procedure.

User stories

  • Alice gets a new revision for her supported board, but needs to update the boot loader to be able to fully use the device.
  • Bob notes that his current boot loader got a critical fix, that improves the board performance, and want to update it using a tool provided by Ubuntu.
  • David tried to update his boot loader but it said that the update failed, and he now needs a proper documentation to follow and to ask help if needed.
  • Claire wants to be notified in case a new boot loader update is available, so she can follow the manual procedure to update it.

Assumptions

Design

  • Coordinate with the Design Team to identify the best method to warn the user about the update
  • Design a tool that is able to update the core boot files, like x-loader and u-boot
  • Share the subarch detection library provided by other-arm-n-userland-subarch-detection

  • Create proper documentation describing the update procedure and what to do in case of problems

Implementation

BoF agenda and discussion

Currently problem is that the core boot files, like x-loader and u-boot are selected while generating the image.

x-loader:

  • not stable as we wanted
  • expected to have bug fixing
  • vfat issue while replacing x-loader

u-boot:

  • doesn't seems to need an update on every release, but would be good to treat it like x-loader

raw boot mode:

  • seems to check more than one place when doesn't find it

harware boot:

  • depends on the kind of the hardware
  • some needs raw, some needs vfat

Update:

  • seems that because of so many different hardware and problems, it'd be better to just recommend the user to update it
  • first we shold install the required files, and at the post-inst we can trigger this to the user
  • then a similar tool like flash-kernel could handle the update having different specific support for each desirable hardware

Notification:

  • reboot-required
  • extend it
  • talk with the design team to find a proper way to notify the user
  • point the proper documentation link in case of issue

Manual update:

  • should be enough battery power
  • don't plug off the board and etc

Points:

  • develop a tool to upgrade just the boot files
  • share most of the important bits with other tools, like flash-kernel and linaro owns tool
  • this tool should be installed by default
  • create proper documentation to help the user to recover the system in case of problems

Actions: (check whiteboard from other-arm-n-handle-core-boot-files-update)


CategorySpec

Specs/N/ARMUpdateCoreBootFiles (last edited 2010-11-18 19:31:35 by 187-35-200-9)