switch-coreboot/arch/x86
Carl-Daniel Hailfinger ade1cd1f11 The current K8 stack preservation code in disable_car() works by chance,
but that's not something we should rely on.

The new code is entirely rewritten, fixes a few missing constraints in
the asm and should be a lot more readable. However, the generated code
is NOT identical. The old code was broken because of the missing ecx
clobber constraint and it did not copy the stack back (ecx was zero at
the beginning of the copy-back loop and so the loop executed exactly
zero times).
So this is a genuine bug fix.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>

Ron writes:
wow! nice catch!

Acked-by: Ronald G. Minnich <rminnich@gmail.com>

We also need disable_car_and_halt, which only disables car and halts,
for the APs (i.e. no need to copy stack back)


git-svn-id: svn://coreboot.org/repository/coreboot-v3@858 f3766cd6-281f-0410-b1cd-43a5c92072e9
2008-09-05 10:29:33 +00:00
..
amd The current K8 stack preservation code in disable_car() works by chance, 2008-09-05 10:29:33 +00:00
geodelx stage1_main() calling conventions changed to use two parameters instead 2008-08-28 02:55:14 +00:00
archelfboot.c Move include/console/console.h to include/console.h in order to 2007-05-05 20:18:28 +00:00
archtables.c This set of changes creates irq tables for alix1c and adds the functions 2008-02-09 16:32:59 +00:00
coreboot_table.c mainboard_vendor and mainboard_name are constant. Follow that convention 2008-08-25 23:54:50 +00:00
i8259.c Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
isa-dma.c Ron's arch code., slightly changed. Another one will follow 2007-06-27 21:01:01 +00:00
Kconfig This gets us back to a compiling k8 target. 2008-08-30 03:35:40 +00:00
keyboard.c The current parameter situation of post_code() is rather mixed between 2008-01-07 16:34:34 +00:00
ldscript.ld For Ron: make BOOTBLOCK_SIZE a variable in the ldscript. 2008-08-24 11:31:19 +00:00
Makefile Enable compilation with -fwhole-program for initram. The setting can be 2008-08-27 01:10:27 +00:00
mc146818rtc.c We're getting closer. It has been pointed out that this code is not pretty. I agree. Get 2008-08-03 22:42:01 +00:00
pci_ops_auto.c Here we start to see the good design of 3. In v2, there were pci ops in 2008-08-13 02:41:29 +00:00
pci_ops_conf1.c Improve debugging printks for LAR and PCI access. 2008-09-04 00:38:54 +00:00
pci_ops_mmconf.c Constify structs which can be const. 2007-11-26 13:28:52 +00:00
pirq_routing.c Minor cosmetic and/or license header fixes (trivial). 2008-08-11 21:01:54 +00:00
post_code.c Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
resourcemap.c The change to Kconfig is self-acked. 2008-08-13 02:44:46 +00:00
serial.c Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00
speaker.c Remove superfluous checks for boolean CONFIG_* variables where we tested 2008-02-14 22:34:40 +00:00
stage0_i586.S stage1_main() calling conventions changed to use two parameters instead 2008-08-28 02:55:14 +00:00
stage1.c BIST handling. Unless I'm mistaken, we already die() in stage1_main() if 2008-08-28 01:57:14 +00:00
stage1_mtrr.c One typo and one change to get our bootblock back into 20k. 2008-08-30 03:42:01 +00:00
udelay_io.c Now version 3: LinuxBIOS -> coreboot rename. 2008-01-27 18:54:57 +00:00