cpu/qemu-x86/car: Move long mode entry right before c entry
This fixes non-emulation platforms as those are using 32bit code after the bootblock_crt0 entry, like setting up CAR and updating microcode, which isn't yet converted to support long mode. This is a noop for the only supported x86_64 platform and all x86_32 platforms. Change-Id: I45e56ed8db9a44c00cd61e962bb82f27926eb23f Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37370 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
@@ -20,12 +20,6 @@
|
|||||||
#include <cpu/x86/16bit/reset16.inc>
|
#include <cpu/x86/16bit/reset16.inc>
|
||||||
#include <cpu/x86/32bit/entry32.inc>
|
#include <cpu/x86/32bit/entry32.inc>
|
||||||
|
|
||||||
/* BIST result in eax */
|
|
||||||
mov %eax, %ebx
|
|
||||||
/* entry64.inc preserves ebx. */
|
|
||||||
#include <cpu/x86/64bit/entry64.inc>
|
|
||||||
mov %ebx, %eax
|
|
||||||
|
|
||||||
#if CONFIG(BOOTBLOCK_DEBUG_SPINLOOP)
|
#if CONFIG(BOOTBLOCK_DEBUG_SPINLOOP)
|
||||||
|
|
||||||
/* Wait for a JTAG debugger to break in and set EBX non-zero */
|
/* Wait for a JTAG debugger to break in and set EBX non-zero */
|
||||||
|
@@ -27,6 +27,9 @@ cache_as_ram:
|
|||||||
/* Align the stack and keep aligned for call to bootblock_c_entry() */
|
/* Align the stack and keep aligned for call to bootblock_c_entry() */
|
||||||
and $0xfffffff0, %esp
|
and $0xfffffff0, %esp
|
||||||
|
|
||||||
|
/* entry64.inc preserves ebx. */
|
||||||
|
#include <cpu/x86/64bit/entry64.inc>
|
||||||
|
|
||||||
/* Restore the BIST result and timestamps. */
|
/* Restore the BIST result and timestamps. */
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
movd %mm2, %rdi
|
movd %mm2, %rdi
|
||||||
|
Reference in New Issue
Block a user