Boot U-Boot from UBI volume

; Summary: Boot U-Boot from UBI volume

; Proposer: Wolfgang Denk <w...@denx.de>

== Description ==

For reliable booting from NAND flash, it would be desirable if already
the boot loader was protected by wear-leveling mechanisms such as
available by latest UBI technology.

However, for most SoCs, the ROM boot loader (IPL - Initial Program
Loader) and/or available on-chip memory limit loading from NAND to
some 4...30 kB, which is enough for a small boot loader (SPL -
Secondary Program Loader), but not enough for a standard UBI
implementation.

To work around this, we suggest to use a 3 stage boot loader setup:

- 1st Stage: U-Boot SPL (small: fits in 4...30 KiB restrictions)
- 2nd Stage: limited U-Boot (TPL) with UBI support (medium sized:
  fits together with the SPL in the first NAND block, which is
  guaranteed to be defect-free. On tyical 2 KiB page NAND devices we
  have a block size of 128 kB, which allows for ~ 100 KiB for the TPL)
- 3rd Stage: Full-blown U-Boot loaded from UBI volume (or other
  payload)

By placing both the SPL and the TPL (Tertiary Program Loader) in the
first NAND block, we can reliably load the "real" paylod from an
UBI volume.

As in recent versions of U-Boot it will be possible to dynamically
switch between loading U-Boot or other image(s) (for example, a Linux
kernel and a device tree blob) as third stage, thus providing fast
and reliable boot into application mode, while still providing the
flexibility and powerful features of standard U-Boot for service and
maintenance.

As part of this project, the UBI/UBIFS code base in U-Boot should be
updated: the UBI code in U-Boot is based on the Linux v2.6.26 (July
2008), and the UBIFS code is based on the Linux v2.6.28 (December
2008). Many fixes and feature-enhancements have been added since
that are important for improved reliability.

== Related work ==
* http://www.linux-mtd.infradead.org/doc/ubi.html

== Scope ==

1) Port latest Linux UBI & UBIFS code to U-Boot, test on NAND and NOR
   platforms, at least ARM and PowerPC

   7...9 man-days

2) Implement and test 3-stage boot strategy with U-Boot in UBI volume
   support on ARM based target

   3...5 man-days

   Total: ~12 man-days.

== Contractor Candidates ==
Stefan Roese (acting UBI custodian for U-Boot)

== Comments ==
In theory part 1 could be omitted, but when asking to boot from a UBI
volume, you are concerned about reliability - in which case you will
also want to have the fixes and enhancements of the UBI/UBIFS code of
the last 3 years.

[[Category:Project proposals 2012]]

---



Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
So we follow our wandering paths, and the very darkness acts  as  our
guide and our doubts serve to reassure us. - Jean-Pierre de Caussade,
eighteenth-century Jesuit priest
_______________________________________________
Celinux-dev mailing list
Celinux-dev@lists.celinuxforum.org
https://lists.celinuxforum.org/mailman/listinfo/celinux-dev

Reply via email to