some question about NAND partitions with QI

Werner Almesberger werner at openmoko.org
Tue Aug 26 15:34:27 CEST 2008


xiangfu wrote:
> i think that AUX key pressing or something  is to choose kernel not
> commandline

AUX is a bit of a problem in GTA02, because it's already used to switch
between NOR and NAND, so you can only sample it after having given the
user a few seconds to press it. In GTA03, we have a lot more buttons to
choose from.

I think the boot sequence should simply do something like this:

	if (!magic_button()) {
		boot(system[0]);
		boot(system[1]);
	}
	boot(system[2]);
	/* add more fallbacks if desired */
	howl_in_agony();

So all the magic button does is skip the first choice(s). After that,
we just use whatever we can get to load. Example:

[0] =	SD+ext2: /boot/uImage + /boot/cmdline
[1] =	SD+FAT: /UIMAGE + /CMDLINE
[2] =	SD+ext2: /boot/uImage.alt + /boot/cmdline.alt
[3] =	SD+FAT: /UIMAGE.ALT + /CMDLINE.ALT
[4] =	NAND(0x....) + NAND(0x....)

The kernel file is mandatory, i.e., a choice is skipped if the kernel
file can't be found or is invalid. The command line file is optional.

For the command line files, I propose the following format:

+string\0

  appends to qi's default command line

string\0

  replaces qi's default command line, i.e., when then-current use has
  changed enough that qi's defaults would upset the system. Example:
  updated partitioning scheme. Note that you can often but not always
  override older parameters by just appending the new one, e.g.,
  init=/foo init=/bar will run /bar

File names are just for illustration. There might be better ones.

With this scheme, the user can choose to have "kboot" in uImage.alt,
or to have it in NAND, and just pop the SD card if both uImage and
uImage.alt boot (as far as qi is concerned) but then fail.

Users who choose to have "kboot" in uImage.alt should rarely need
the NAND, but it's there if they want it.

- Werner



More information about the openmoko-kernel mailing list