blob: 3ef3a90313b0f232020f3eba3bf8d71d7d05b5cf [file] [log] [blame]
Felix Held39789eb2021-10-23 00:45:40 +02001subdirs-y += lapic
Felix Held2d4986c2021-10-22 22:07:43 +02002subdirs-y += mtrr
Aaron Durbin7f5e7342018-04-17 10:55:14 -06003subdirs-y += pae
Arthur Heymans6419cd32020-10-14 11:35:51 +02004subdirs-$(CONFIG_HAVE_SMI_HANDLER) += smm
Angel Pons44985ae752021-09-07 11:39:26 +02005subdirs-$(CONFIG_UDELAY_TSC) += tsc
Arthur Heymans34f5cd92022-04-21 12:00:21 +02006# Use ARCH_BOOTBLOCK_X86_64 as a proxy for knowing if 64bit is going to be used
7subdirs-$(CONFIG_ARCH_BOOTBLOCK_X86_64) += 64bit
Arthur Heymans3134a812019-11-25 12:20:01 +01008subdirs-y += cache
Patrick Rudolph7a359492020-11-30 15:56:59 +01009
Aaron Durbine0785c02013-10-21 12:15:29 -050010subdirs-$(CONFIG_PARALLEL_MP) += name
11ramstage-$(CONFIG_PARALLEL_MP) += mp_init.c
Arthur Heymans16fa3392021-12-06 12:21:33 +010012
Aaron Durbind87c7bc2016-04-30 15:14:18 -050013ramstage-y += backup_default_smm.c
Arthur Heymans16fa3392021-12-06 12:21:33 +010014ramstage-y += smi_trigger.c
15smm-y += smi_trigger.c
Aaron Durbine0785c02013-10-21 12:15:29 -050016
Kyösti Mälkkif5c0d612019-08-14 13:02:41 +030017subdirs-$(CONFIG_CPU_INTEL_COMMON_SMM) += ../intel/smm
18
Kyösti Mälkki47d58e52020-11-22 00:55:31 +020019bootblock-y += entry32.S
Kyösti Mälkki03083132020-11-22 00:34:13 +020020bootblock-y += entry16.S
Kyösti Mälkki404c0c42020-11-22 00:47:04 +020021bootblock-y += reset16.S
Kyösti Mälkki03083132020-11-22 00:34:13 +020022
Nico Huber98fc4262016-01-23 01:24:33 +010023additional-dirs += $(obj)/cpu/x86
24
Aaron Durbine0785c02013-10-21 12:15:29 -050025SIPI_ELF=$(obj)/cpu/x86/sipi_vector.elf
Aaron Durbin3eb8eb72014-03-10 16:13:58 -050026SIPI_RMOD=$(SIPI_ELF).rmod
Aaron Durbine0785c02013-10-21 12:15:29 -050027SIPI_BIN=$(SIPI_ELF:.elf=)
28SIPI_DOTO=$(SIPI_ELF:.elf=.o)
29
Subrata Banikb5962a92019-06-08 12:29:02 +053030ifeq ($(CONFIG_HAVE_RAMSTAGE),y)
31TARGET_STAGE=ramstage
32else ifeq ($(CONFIG_RAMPAYLOAD),y)
33TARGET_STAGE=postcar
Stefan Reinauer181b7732015-03-15 19:23:50 +010034else
Subrata Banikb5962a92019-06-08 12:29:02 +053035$(error Halting the build due to unknown TARGET_STAGE select)
Stefan Reinauer181b7732015-03-15 19:23:50 +010036endif
Aaron Durbine0785c02013-10-21 12:15:29 -050037
Subrata Banikb5962a92019-06-08 12:29:02 +053038ifeq ($(CONFIG_PARALLEL_MP),y)
39$(TARGET_STAGE)-srcs += $(SIPI_BIN).manual
40endif
41rmodules_$(ARCH-$(TARGET_STAGE)-y)-$(CONFIG_PARALLEL_MP) += sipi_vector.S
42
43$(SIPI_DOTO): $(call src-to-obj,rmodules_$(ARCH-$(TARGET_STAGE)-y),src/cpu/x86/sipi_vector.S)
Arthur Heymansb49e2102019-11-25 11:29:33 +010044 $(LD_rmodules_$(ARCH-$(TARGET_STAGE)-y)) -nostdlib -r -o $@ $^
Subrata Banikb5962a92019-06-08 12:29:02 +053045
46$(eval $(call rmodule_link,$(SIPI_ELF), $(SIPI_DOTO), 0,$(ARCH-$(TARGET_STAGE)-y)))
47
Aaron Durbin3eb8eb72014-03-10 16:13:58 -050048$(SIPI_BIN): $(SIPI_RMOD)
Subrata Banikb5962a92019-06-08 12:29:02 +053049 $(OBJCOPY_$(TARGET_STAGE)) -O binary $< $@
Aaron Durbine0785c02013-10-21 12:15:29 -050050
Subrata Banikb5962a92019-06-08 12:29:02 +053051$(call src-to-obj,$(TARGET_STAGE),$(SIPI_BIN).manual): $(SIPI_BIN)
Aaron Durbine0785c02013-10-21 12:15:29 -050052 @printf " OBJCOPY $(subst $(obj)/,,$(@))\n"
Subrata Banikb5962a92019-06-08 12:29:02 +053053 cd $(dir $<); $(OBJCOPY_rmodules_$(ARCH-$(TARGET_STAGE)-y)) -I binary $(notdir $<) $(target-objcopy) $(abspath $@)