[coreboot] patch: smm support

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Fri Dec 5 23:11:21 CET 2008


On 05.12.2008 22:17, ron minnich wrote:
> Add support for creating an smm top-level object. 
>
> Whether SMM is added or not depends on the mainboard. To enable SMM, 
> the Kconfig variable SMM should be set, and the SMM variable should be 
> defined in the mainbard. 
>
> Also correct a type CONFIG_HPET should be HPET. 
>
> Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
>
> Index: mainboard/kontron/Kconfig
> ===================================================================
> --- mainboard/kontron/Kconfig	(revision 1064)
> +++ mainboard/kontron/Kconfig	(working copy)
> @@ -32,6 +32,7 @@
>  	select SOUTHBRIDGE_INTEL_I82801GX
>  	select SUPERIO_WINBOND_W83627THG
>  	select PIRQ_TABLE
> +	select SMM
>  	help
>  	  Kontron 986LCD-M Series mainboards
>  
> Index: mainboard/kontron/986lcd-m/mainboard.h
> ===================================================================
> --- mainboard/kontron/986lcd-m/mainboard.h	(revision 1064)
> +++ mainboard/kontron/986lcd-m/mainboard.h	(working copy)
> @@ -31,3 +31,5 @@
>  /* nowhere else to go yet */
>  #define TEST_SMM_FLASH_LOCKDOWN 0
>  
> +#define TTYS0_BASE 0x3f8
> +
> Index: mainboard/kontron/986lcd-m/Makefile
> ===================================================================
> --- mainboard/kontron/986lcd-m/Makefile	(revision 1064)
> +++ mainboard/kontron/986lcd-m/Makefile	(working copy)
> @@ -35,3 +35,4 @@
>  	$(Q)printf "  BUILD   DUMMY VPD\n"
>  	$(Q)dd if=/dev/zero of=$(obj)/coreboot.vpd bs=256 count=1 $(SILENT)
>  
> +SMM=$(obj)/southbridge/intel/i82801gx/smm.elf

Hm. Here you use the = operator.

> Index: arch/x86/Kconfig
> ===================================================================
> --- arch/x86/Kconfig	(revision 1064)
> +++ arch/x86/Kconfig	(working copy)
> @@ -72,13 +72,21 @@
>  	  arch/x86/Makefile for more hints on possible values.
>  	  It is usually set in mainboard/*/Kconfig.
>  
> -config CONFIG_HPET
> +config HPET
>  	boolean
>  	depends CPU_AMD_K8
>  	help
>  	  Whether to configure a High Precision Event Timer (HPET). Note that
>  	  HPETs are known to be bug-prone.
>  
> +config SMM
> +	boolean
> +	help
> +	  Whether to configure System Management Mode support. 
> +	  This is mainboard-enabled. This is a tricky option that 
> +	  should not be enabled/disabled casually, as some chipsets
> +	  will not work without some form of SMM enabled.
> +
>  config K8_REV_F_SUPPORT
>  	hex
>  	default 0 if CPU_AMD_K8
> Index: arch/x86/Makefile
> ===================================================================
> --- arch/x86/Makefile	(revision 1064)
> +++ arch/x86/Makefile	(working copy)
> @@ -48,7 +48,7 @@
>  COMPRESSFLAG := -C nrv2b
>  endif
>  
> -$(obj)/coreboot.rom $(obj)/coreboot.map: $(obj)/coreboot.bootblock $(obj)/util/lar/lar lzma nrv2b $(obj)/coreboot.initram $(obj)/coreboot.stage2 $(obj)/option_table
> +$(obj)/coreboot.rom $(obj)/coreboot.map: $(obj)/coreboot.bootblock $(obj)/util/lar/lar lzma nrv2b $(obj)/coreboot.initram $(obj)/coreboot.stage2 $(obj)/option_table $(SMM)
>  	$(Q)printf "  LAR     $(subst $(shell pwd)/,,$(@))\n"
>  	$(Q)rm -f $(obj)/coreboot.rom
>  	$(Q)cd $(obj) && \
> @@ -74,6 +74,10 @@
>  	$(Q)printf "  ZEROING lar -z ./coreboot.rom\n"
>  	$(Q)cd $(obj) && ./util/lar/lar -z ./coreboot.rom
>  endif
> +ifeq ($(CONFIG_SMM),y)
> +	$(Q)printf "  Adding smm.elf\n"
> +	$(Q)cd $(obj) && ./util/lar/lar -e $(COMPRESSFLAG) -a $(obj)/coreboot.rom $(SMM):normal/smm;
> +endif
>  	$(Q)# QEMU wants bios.bin:
>  	$(Q)# Run "qemu -L build/ -serial stdio -hda /dev/zero".
>  	$(Q)printf "  CP      $(subst $(shell pwd)/,,$(obj)/bios.bin)\n"
> Index: Makefile
> ===================================================================
> --- Makefile	(revision 1064)
> +++ Makefile	(working copy)
> @@ -109,6 +109,9 @@
>  # the compiler actually used for the build (e.g. on cross compiler setups).
>  CFLAGS += -nostdinc -isystem `$(CC) -print-file-name=include`
>  
> +# Optional SMM
> +SMM=

Same here.

> +
>  include lib/Makefile
>  include device/Makefile
>  include mainboard/$(MAINBOARDDIR)/Makefile
>
>

If you explain or change the makefile hunks I commented on, the patch is
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list