emulation/qemu-x86: Use common romstage code
This provides stack guards with checking and common entry into postcar. Change-Id: If0729721f0165187946107eb98e8bc754f28e517 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34973 Reviewed-by: Patrick Rudolph <siro@das-labor.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
101ef0b528
commit
f0a3d44458
|
@ -14,7 +14,11 @@
|
|||
|
||||
bootblock-y += cache_as_ram_bootblock.S
|
||||
bootblock-y += bootblock.c
|
||||
|
||||
romstage-y += ../intel/car/romstage.c
|
||||
|
||||
ramstage-y += qemu.c
|
||||
|
||||
subdirs-y += ../x86/mtrr
|
||||
subdirs-y += ../x86/lapic
|
||||
subdirs-y += ../x86/smm
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
#include <cbmem.h>
|
||||
#include <arch/io.h>
|
||||
#include <arch/romstage.h>
|
||||
#include "memory.h"
|
||||
#include "fw_cfg.h"
|
||||
|
||||
|
@ -61,3 +62,8 @@ void *cbmem_top(void)
|
|||
|
||||
return (void *)top;
|
||||
}
|
||||
|
||||
/* Nothing to do, MTRRs are no-op on QEMU. */
|
||||
void fill_postcar_frame(struct postcar_frame *pcf)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -14,31 +14,10 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <arch/cpu.h>
|
||||
#include <arch/romstage.h>
|
||||
#include <stdint.h>
|
||||
#include <cbmem.h>
|
||||
#include <console/console.h>
|
||||
#include <timestamp.h>
|
||||
#include <program_loading.h>
|
||||
|
||||
asmlinkage void car_stage_entry(void)
|
||||
void mainboard_romstage_entry(void)
|
||||
{
|
||||
struct postcar_frame pcf;
|
||||
|
||||
console_init();
|
||||
|
||||
cbmem_recovery(0);
|
||||
|
||||
timestamp_add_now(TS_START_ROMSTAGE);
|
||||
|
||||
if (postcar_frame_init(&pcf, 0))
|
||||
die("Unable to initialize postcar frame.\n");
|
||||
|
||||
/**
|
||||
* Run postcar to tear down CAR and load relocatable ramstage.
|
||||
* There's no CAR on qemu, but for educational purposes and
|
||||
* testing the postcar stage is used on qemu, too.
|
||||
*/
|
||||
run_postcar_phase(&pcf);
|
||||
}
|
||||
|
|
|
@ -14,14 +14,10 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <arch/cpu.h>
|
||||
#include <arch/romstage.h>
|
||||
#include <stdint.h>
|
||||
#include <cbmem.h>
|
||||
#include <console/console.h>
|
||||
#include <timestamp.h>
|
||||
#include <southbridge/intel/i82801ix/i82801ix.h>
|
||||
#include <program_loading.h>
|
||||
#include <device/pci_ops.h>
|
||||
|
||||
#define D0F0_PCIEXBAR_LO 0x60
|
||||
|
@ -35,26 +31,11 @@ static void mainboard_machine_check(void)
|
|||
die("You must run qemu for machine Q35 (-M q35)");
|
||||
}
|
||||
|
||||
asmlinkage void car_stage_entry(void)
|
||||
void mainboard_romstage_entry(void)
|
||||
{
|
||||
struct postcar_frame pcf;
|
||||
i82801ix_early_init();
|
||||
console_init();
|
||||
|
||||
mainboard_machine_check();
|
||||
|
||||
cbmem_recovery(0);
|
||||
|
||||
timestamp_add_now(TS_START_ROMSTAGE);
|
||||
|
||||
if (postcar_frame_init(&pcf, 0))
|
||||
die("Unable to initialize postcar frame.\n");
|
||||
|
||||
/**
|
||||
* Run postcar to tear down CAR and load relocatable ramstage.
|
||||
* There's no CAR on qemu, but for educational purposes and
|
||||
* testing the postcar stage is used on qemu, too.
|
||||
*/
|
||||
|
||||
run_postcar_phase(&pcf);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue