On Tue, Dec 22, 2009 at 2:27 PM, Patrick Georgi <patrick@georgi-clan.de> wrote:

- Provide a framework to build image selection logic
In newconfig, most boards have their own code to select the image. The
goal in this layout is to have generic decision routines to take care of
that, and encourage their use.
Is it possible to have it be generic?  Won't we have to unify CMOS layouts for that to happen?
 
- Push as much as possible out of the bootblock
The failover mechanism so far did CAR in the bootblock and raminit in
the later stage. With tinybootblock, CAR is supposed to end up outside
the bootblock. "Safe updates", once we provide them, will be able to
update CAR support for new CPU types, too.


Code flow in tinybootblock:
- 16bit reset vector (0xfffffff0)
- jump to 32bit mode
- Do whatever is necessary to have the entire ROM around (C code,
compiled with romcc)
I think it would be a mistake to bring romcc to targets that don't need it now.
 
- Look up fallback/romstage in CBFS (this can be extended with selection
logic if desired) ("selection logic" is C, compiled with romcc, lookup
is assembly)
It's more important to me to avoid assembly than to have the absolute minimum size bootblock.  Especially for K8 & Fam10, there's plenty of space to not have to do this.
 
Picky detail:
Since CONFIG_TINY_BOOTBLOCK is referenced in a Makefile that isn't board specific, the Kconfig entry for it should go there too (with a default n).  There should just be a "select" in qemu-x86/Kconfig


Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>

I think it's a good start, and since it doesn't break anything until it's used...

Acked-by: Myles Watson <mylesgw@gmail.com>