coreboot/include
Carl-Daniel Hailfinger 33de3b2fb5 Right now we face the problem that we can't support processors which
have a CAR area outside the usual RAM area. For those processors, we
have to implement a stack copying and switching mechanism. Since gcc
can't be told that the stack just moved, split stage1_main() into
stage1_phase1() and stage1_phase2() and stage1_phase3().
stage1_phase1() is the new entry point in stage1 and will handle
everything up to the point where we want to disable CAR.
Switching the stack, disabling CAR and handling other tasks related to
the stack switch (printk buffer move) is all wrapped in the
stage1_phase2() function.
stage1_phase2() calls disable_car() which then calls stage1_phase3().
stage1_phase3() is the former second half of stage1_main().

Notes about this patch:
- Code flow is almost unchanged for Qemu, K8 and Geode. No extensive new
testing required.
- We can support stack-keeping and stack-relocating architectures at the
same time, so C7 is definitely supportable
- The comment in stage1_phase2 says "some of this is not yet done". That
refers to the nonexisting code for stack switching on C7.
- "Minimal changes, maximum benefit".

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>


git-svn-id: svn://coreboot.org/repository/coreboot-v3@932 f3766cd6-281f-0410-b1cd-43a5c92072e9
2008-10-16 03:00:28 +00:00
..
arch/x86 Right now we face the problem that we can't support processors which 2008-10-16 03:00:28 +00:00
device Commit a few things I forgot with the vt8237 patch, and also a couple 2008-10-15 06:41:16 +00:00
console.h Fixes to make k8 and others work. 2008-08-27 22:43:18 +00:00
elf.h Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
elf_boot.h Use the same naming convention and placement for "include guards" in 2007-05-21 06:48:47 +00:00
globalvars.h Add the last bits to support C7 in v3 2008-10-12 00:51:10 +00:00
ip_checksum.h Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
isa-dma.h Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
keyboard.h Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
lar.h The ABI wrapper from r775 made the SHARED definitions obsolete. They're 2008-08-17 21:51:13 +00:00
lib.h remaining fixes for log2. Simple prototype added to spd_ddr2.h 2008-08-31 20:39:48 +00:00
mc146818rtc.h The ABI wrapper from r775 made the SHARED definitions obsolete. They're 2008-08-17 21:51:13 +00:00
post_code.h The ABI wrapper from r775 made the SHARED definitions obsolete. They're 2008-08-17 21:51:13 +00:00
shared.h The ABI wrapper from r775 made the SHARED definitions obsolete. They're 2008-08-17 21:51:13 +00:00
spd.h Commit a few things I forgot with the vt8237 patch, and also a couple 2008-10-15 06:41:16 +00:00
spd_ddr2.h remaining fixes for log2. Simple prototype added to spd_ddr2.h 2008-08-31 20:39:48 +00:00
spinlock.h Remove superfluous checks for boolean CONFIG_* variables where we tested 2008-02-14 22:34:40 +00:00
string.h The ABI wrapper from r775 made the SHARED definitions obsolete. They're 2008-08-17 21:51:13 +00:00
tables.h Implements console and serial lbtable records compatible to cbv2 as of r3396 2008-06-29 06:43:01 +00:00
uart8250.h Use the same naming convention and placement for "include guards" in 2007-05-21 06:48:47 +00:00