blob: 3e8a6648f4eb5284c69f217579e1ccdec170fae5 [file] [log] [blame]
Stefan Reinauer181b7732015-03-15 19:23:50 +01001ifeq ($(CONFIG_ARCH_ROMSTAGE_X86_32)$(CONFIG_ARCH_ROMSTAGE_X86_64),y)
Aaron Durbinbc17cde2017-04-07 15:20:14 -05002ifneq ($(CONFIG_NO_CAR_GLOBAL_MIGRATION),y)
Kyösti Mälkki87acccc2014-12-19 09:19:29 +02003romstage-$(CONFIG_CACHE_AS_RAM) += car.c
Julius Wernerd84afd3e2013-11-13 16:06:34 -08004endif
Aaron Durbinbc17cde2017-04-07 15:20:14 -05005endif
Aaron Durbine0785c02013-10-21 12:15:29 -05006
Aaron Durbin7f5e7342018-04-17 10:55:14 -06007subdirs-y += pae
Aaron Durbine0785c02013-10-21 12:15:29 -05008subdirs-$(CONFIG_PARALLEL_MP) += name
9ramstage-$(CONFIG_PARALLEL_MP) += mp_init.c
Aaron Durbinc34713d2014-02-25 20:36:56 -060010ramstage-$(CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING) += mirror_payload.c
Aaron Durbind87c7bc2016-04-30 15:14:18 -050011ramstage-y += backup_default_smm.c
Aaron Durbine0785c02013-10-21 12:15:29 -050012
Nico Huber98fc4262016-01-23 01:24:33 +010013additional-dirs += $(obj)/cpu/x86
14
Aaron Durbine0785c02013-10-21 12:15:29 -050015SIPI_ELF=$(obj)/cpu/x86/sipi_vector.elf
Aaron Durbin3eb8eb72014-03-10 16:13:58 -050016SIPI_RMOD=$(SIPI_ELF).rmod
Aaron Durbine0785c02013-10-21 12:15:29 -050017SIPI_BIN=$(SIPI_ELF:.elf=)
18SIPI_DOTO=$(SIPI_ELF:.elf=.o)
19
20ifeq ($(CONFIG_PARALLEL_MP),y)
Patrick Georgif4305462015-04-03 10:39:05 +020021ramstage-srcs += $(SIPI_BIN).manual
Aaron Durbine0785c02013-10-21 12:15:29 -050022endif
Furquan Shaikh133096b2014-07-31 09:28:55 -070023rmodules_$(ARCH-ramstage-y)-$(CONFIG_PARALLEL_MP) += sipi_vector.S
Aaron Durbine0785c02013-10-21 12:15:29 -050024
Nico Huber81b09f42016-01-23 00:50:00 +010025$(SIPI_DOTO): $(call src-to-obj,rmodules_$(ARCH-ramstage-y),src/cpu/x86/sipi_vector.S)
Furquan Shaikh133096b2014-07-31 09:28:55 -070026 $(CC_rmodules_$(ARCH-ramstage-y)) $(CFLAGS_rmodules_$(ARCH-ramstage-y)) -nostdlib -r -o $@ $^
Aaron Durbine0785c02013-10-21 12:15:29 -050027
Stefan Reinauer181b7732015-03-15 19:23:50 +010028ifeq ($(CONFIG_ARCH_RAMSTAGE_X86_32),y)
Aaron Durbindde76292015-09-05 12:59:26 -050029$(eval $(call rmodule_link,$(SIPI_ELF), $(SIPI_DOTO), 0,x86_32))
Stefan Reinauer181b7732015-03-15 19:23:50 +010030else
Aaron Durbindde76292015-09-05 12:59:26 -050031$(eval $(call rmodule_link,$(SIPI_ELF), $(SIPI_DOTO), 0,x86_64))
Stefan Reinauer181b7732015-03-15 19:23:50 +010032endif
Aaron Durbine0785c02013-10-21 12:15:29 -050033
Aaron Durbin3eb8eb72014-03-10 16:13:58 -050034$(SIPI_BIN): $(SIPI_RMOD)
Furquan Shaikh99ac98f2014-04-23 10:18:48 -070035 $(OBJCOPY_ramstage) -O binary $< $@
Aaron Durbine0785c02013-10-21 12:15:29 -050036
Nico Huber81b09f42016-01-23 00:50:00 +010037$(call src-to-obj,ramstage,$(SIPI_BIN).manual): $(SIPI_BIN)
Aaron Durbine0785c02013-10-21 12:15:29 -050038 @printf " OBJCOPY $(subst $(obj)/,,$(@))\n"
Nico Huber98fc4262016-01-23 01:24:33 +010039 cd $(dir $<); $(OBJCOPY_rmodules_$(ARCH-ramstage-y)) -I binary $(notdir $<) $(target-objcopy) $(abspath $@)