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