blob: cb7634346329efcf894d11d46b6d4ef935f83ed8 [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
Arthur Heymans71bc9f02022-05-24 08:46:09 +020011
12ifeq ($(CONFIG_HAVE_SMI_HANDLER),y)
13$(obj)/ramstage/cpu/x86/smm_start32_offset.h: $(dir)/smm_start32_offset.h.template $(obj)/smmstub/smmstub.elf
14 cp $< $@.temp
15 sed -i 's/##START32_OFFSET##/0x'$$($(NM_smmstub) -an $(obj)/smmstub/smmstub.elf | grep smm_trampolin | cut -d' ' -f1)'/' $@.temp
16 mv $@.temp $@
17else
18$(obj)/ramstage/cpu/x86/smm_start32_offset.h: $(dir)/smm_start32_offset.h.template
19 cp $< $@.temp
20 sed -i 's/##START32_OFFSET##/0x0/' $@.temp
21 mv $@.temp $@
22endif
23
24$(call src-to-obj,ramstage,$(dir)/mp_init.c): $(obj)/ramstage/cpu/x86/smm_start32_offset.h
Aaron Durbine0785c02013-10-21 12:15:29 -050025ramstage-$(CONFIG_PARALLEL_MP) += mp_init.c
Arthur Heymans16fa3392021-12-06 12:21:33 +010026
Aaron Durbind87c7bc2016-04-30 15:14:18 -050027ramstage-y += backup_default_smm.c
Arthur Heymans16fa3392021-12-06 12:21:33 +010028ramstage-y += smi_trigger.c
29smm-y += smi_trigger.c
Aaron Durbine0785c02013-10-21 12:15:29 -050030
Kyösti Mälkkif5c0d612019-08-14 13:02:41 +030031subdirs-$(CONFIG_CPU_INTEL_COMMON_SMM) += ../intel/smm
32
Kyösti Mälkki47d58e52020-11-22 00:55:31 +020033bootblock-y += entry32.S
Kyösti Mälkki03083132020-11-22 00:34:13 +020034bootblock-y += entry16.S
Kyösti Mälkki404c0c42020-11-22 00:47:04 +020035bootblock-y += reset16.S
Kyösti Mälkki03083132020-11-22 00:34:13 +020036
Nico Huber98fc4262016-01-23 01:24:33 +010037additional-dirs += $(obj)/cpu/x86
38
Aaron Durbine0785c02013-10-21 12:15:29 -050039SIPI_ELF=$(obj)/cpu/x86/sipi_vector.elf
Aaron Durbin3eb8eb72014-03-10 16:13:58 -050040SIPI_RMOD=$(SIPI_ELF).rmod
Aaron Durbine0785c02013-10-21 12:15:29 -050041SIPI_BIN=$(SIPI_ELF:.elf=)
42SIPI_DOTO=$(SIPI_ELF:.elf=.o)
43
Subrata Banikb5962a92019-06-08 12:29:02 +053044ifeq ($(CONFIG_HAVE_RAMSTAGE),y)
45TARGET_STAGE=ramstage
46else ifeq ($(CONFIG_RAMPAYLOAD),y)
47TARGET_STAGE=postcar
Stefan Reinauer181b7732015-03-15 19:23:50 +010048else
Subrata Banikb5962a92019-06-08 12:29:02 +053049$(error Halting the build due to unknown TARGET_STAGE select)
Stefan Reinauer181b7732015-03-15 19:23:50 +010050endif
Aaron Durbine0785c02013-10-21 12:15:29 -050051
Subrata Banikb5962a92019-06-08 12:29:02 +053052ifeq ($(CONFIG_PARALLEL_MP),y)
53$(TARGET_STAGE)-srcs += $(SIPI_BIN).manual
54endif
55rmodules_$(ARCH-$(TARGET_STAGE)-y)-$(CONFIG_PARALLEL_MP) += sipi_vector.S
56
57$(SIPI_DOTO): $(call src-to-obj,rmodules_$(ARCH-$(TARGET_STAGE)-y),src/cpu/x86/sipi_vector.S)
Arthur Heymansb49e2102019-11-25 11:29:33 +010058 $(LD_rmodules_$(ARCH-$(TARGET_STAGE)-y)) -nostdlib -r -o $@ $^
Subrata Banikb5962a92019-06-08 12:29:02 +053059
60$(eval $(call rmodule_link,$(SIPI_ELF), $(SIPI_DOTO), 0,$(ARCH-$(TARGET_STAGE)-y)))
61
Aaron Durbin3eb8eb72014-03-10 16:13:58 -050062$(SIPI_BIN): $(SIPI_RMOD)
Subrata Banikb5962a92019-06-08 12:29:02 +053063 $(OBJCOPY_$(TARGET_STAGE)) -O binary $< $@
Aaron Durbine0785c02013-10-21 12:15:29 -050064
Subrata Banikb5962a92019-06-08 12:29:02 +053065$(call src-to-obj,$(TARGET_STAGE),$(SIPI_BIN).manual): $(SIPI_BIN)
Aaron Durbine0785c02013-10-21 12:15:29 -050066 @printf " OBJCOPY $(subst $(obj)/,,$(@))\n"
Subrata Banikb5962a92019-06-08 12:29:02 +053067 cd $(dir $<); $(OBJCOPY_rmodules_$(ARCH-$(TARGET_STAGE)-y)) -I binary $(notdir $<) $(target-objcopy) $(abspath $@)
Arthur Heymans177e1352022-11-04 13:03:23 +010068
69ramstage-y += topology.c