smm: 64bit fixes
Change-Id: I35dab4e66514948aafa912d993fb8d42c5a520a0 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/11089 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
parent
16643aa686
commit
01327d185b
2 changed files with 9 additions and 1 deletions
|
@ -61,14 +61,22 @@ $(obj)/cpu/x86/smm/smmstub.o: $$(smmstub-objs)
|
||||||
$(CC_smmstub) $(CFLAGS_smmstub) -nostdlib -r -o $@ $^
|
$(CC_smmstub) $(CFLAGS_smmstub) -nostdlib -r -o $@ $^
|
||||||
|
|
||||||
# Link the SMM stub module with a 0-byte heap.
|
# Link the SMM stub module with a 0-byte heap.
|
||||||
|
ifeq ($(CONFIG_ARCH_RAMSTAGE_X86_32),y)
|
||||||
$(eval $(call rmodule_link,$(obj)/cpu/x86/smm/smmstub.elf, $(obj)/cpu/x86/smm/smmstub.o, 0,x86_32))
|
$(eval $(call rmodule_link,$(obj)/cpu/x86/smm/smmstub.elf, $(obj)/cpu/x86/smm/smmstub.o, 0,x86_32))
|
||||||
|
else
|
||||||
|
$(eval $(call rmodule_link,$(obj)/cpu/x86/smm/smmstub.elf, $(obj)/cpu/x86/smm/smmstub.o, 0,x86_64))
|
||||||
|
endif
|
||||||
|
|
||||||
$(obj)/cpu/x86/smm/smmstub: $(obj)/cpu/x86/smm/smmstub.elf.rmod
|
$(obj)/cpu/x86/smm/smmstub: $(obj)/cpu/x86/smm/smmstub.elf.rmod
|
||||||
$(OBJCOPY_smmstub) -O binary $< $@
|
$(OBJCOPY_smmstub) -O binary $< $@
|
||||||
|
|
||||||
$(obj)/cpu/x86/smm/smmstub.ramstage.manual: $(obj)/cpu/x86/smm/smmstub
|
$(obj)/cpu/x86/smm/smmstub.ramstage.manual: $(obj)/cpu/x86/smm/smmstub
|
||||||
@printf " OBJCOPY $(subst $(obj)/,,$(@))\n"
|
@printf " OBJCOPY $(subst $(obj)/,,$(@))\n"
|
||||||
|
ifeq ($(CONFIG_ARCH_RAMSTAGE_X86_32),y)
|
||||||
cd $(dir $@); $(OBJCOPY_smmstub) -I binary $(notdir $<) -O elf32-i386 -B i386 $(notdir $@)
|
cd $(dir $@); $(OBJCOPY_smmstub) -I binary $(notdir $<) -O elf32-i386 -B i386 $(notdir $@)
|
||||||
|
else
|
||||||
|
cd $(dir $@); $(OBJCOPY_smmstub) -I binary $(notdir $<) -O elf64-x86_64 -B x86_64 $(notdir $@)
|
||||||
|
endif
|
||||||
|
|
||||||
# C-based SMM handler.
|
# C-based SMM handler.
|
||||||
|
|
||||||
|
|
|
@ -109,7 +109,7 @@ static void smi_restore_pci_address(void)
|
||||||
outl(pci_orig, 0xcf8);
|
outl(pci_orig, 0xcf8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void *smm_save_state(u32 base, int arch_offset, int node)
|
static inline void *smm_save_state(uintptr_t base, int arch_offset, int node)
|
||||||
{
|
{
|
||||||
base += SMM_SAVE_STATE_BEGIN(arch_offset) - (node * 0x400);
|
base += SMM_SAVE_STATE_BEGIN(arch_offset) - (node * 0x400);
|
||||||
return (void *)base;
|
return (void *)base;
|
||||||
|
|
Loading…
Reference in a new issue