* refactor x86 smi handler (put all debug stuff in an extra file smiutil.c)

* lock other CPUs in SMI handler while one CPU is handling an SMI. Without
  this various racing scenarios could happen.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Myles Watson <mylesgw@gmail.com> 


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4840 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer
2009-10-24 17:59:36 +00:00
committed by Stefan Reinauer
parent 311c56420b
commit c35a4511f7
4 changed files with 145 additions and 73 deletions

View File

@@ -20,20 +20,20 @@
obj-$(CONFIG_HAVE_SMI_HANDLER) += smmrelocate.S
obj-$(CONFIG_HAVE_SMI_HANDLER) += smmrelocate.o
obj-$(CONFIG_HAVE_SMI_HANDLER) += smm_bin.o
smmobj-y += smmhandler.S
smmobj-y += smmhandler.o
smmobj-y += smihandler.o
smmobj-y += smiutil.o
ifdef POST_EVALUATION
$(obj)/cpu/x86/smm/smm.o: $(SMM-OBJECTS) $(obj)/console/printk.o $(obj)/console/vtxprintf.o $(LIBGCC_FILE_NAME)
$(obj)/cpu/x86/smm/smm.o: $(smmobjs) $(obj)/console/printk.o $(obj)/console/vtxprintf.o $(LIBGCC_FILE_NAME)
$(CC) $(LDFLAGS) -nostdlib -r -o $@ $^
$(obj)/cpu/x86/smm/smm: $(obj)/cpu/x86/smm/smm.o $(obj)/cpu/x86/smm/smm.ld ldoptions
$(CC) $(LDFLAGS) -nostdlib -nostartfiles -static -o smm.elf -T $(src)/src/cpu/x86/smm/smm.ld smm.o
$(obj)/cpu/x86/smm/smm: $(obj)/cpu/x86/smm/smm.o $(src)/cpu/x86/smm/smm.ld $(obj)/ldoptions
$(CC) $(LDFLAGS) -nostdlib -nostartfiles -static -o smm.elf -T $(src)/cpu/x86/smm/smm.ld $(obj)/cpu/x86/smm/smm.o
$(CONFIG_CROSS_COMPILE)nm -n smm.elf | sort > smm.map
$(OBJCOPY) -O binary smm.elf smm