- Remove pointers in argument list passed to MRC to make sure the struct has the same size on x86_64 as on x86_32. - Add assembly wrapper to call the MRC with argument in EAX. - Wrap calling MRC in protected_mode_call_2arg, which is a stub on x86_32 Tested: Boots on Lenovo X220 using MRC in x86_32 and x86_64 mode. Change-Id: Id755e7381c5a94360e3511c53432d68b7687df67 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79751 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
44 lines
867 B
Makefile
44 lines
867 B
Makefile
## SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
ifeq ($(CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE),y)
|
|
|
|
bootblock-y += bootblock.c
|
|
|
|
ramstage-y += memmap.c
|
|
ramstage-y += northbridge.c
|
|
ramstage-y += pcie.c
|
|
ramstage-y += gma.c
|
|
|
|
ramstage-y += acpi.c
|
|
|
|
romstage-y += memmap.c
|
|
|
|
ramstage-y += common.c
|
|
romstage-y += common.c
|
|
smm-y += common.c
|
|
|
|
romstage-y += raminit_shared.c
|
|
ifeq ($(CONFIG_USE_NATIVE_RAMINIT),y)
|
|
romstage-y += early_dmi.c
|
|
romstage-y += raminit.c
|
|
romstage-y += raminit_common.c
|
|
romstage-y += raminit_iosav.c
|
|
romstage-y += raminit_native.c
|
|
romstage-y += raminit_tables.c
|
|
else
|
|
romstage-y += raminit_mrc.c
|
|
romstage-y += mrc_wrapper.S
|
|
cbfs-files-y += mrc.bin
|
|
mrc.bin-file := $(call strip_quotes,$(CONFIG_MRC_FILE))
|
|
mrc.bin-position := 0xfffa0000
|
|
mrc.bin-type := mrc
|
|
endif
|
|
romstage-y += romstage.c
|
|
romstage-y += early_init.c
|
|
|
|
smm-y += finalize.c
|
|
|
|
postcar-y += memmap.c
|
|
|
|
endif
|