SMM: Add option for SPI driver to be available in SMM

- add Kconfig option for CONFIG_SPI_FLASH_SMM
- compile subsystem and chip drivers for smm if enabled
- change mdelay(1) to udelay(500) since mdelay is not defined
  in SMM and a 1ms delay is worth avoiding
- make flash chip structure non-const so the probe function
  pointers can be relocated for use in TSEG
- Make SMM PCI access possible in southbridge SPI code

Change-Id: Icfcbbe8e4e56658769d46af0b5bf6c79a6432641
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: http://review.coreboot.org/1313
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
diff --git a/src/drivers/spi/Kconfig b/src/drivers/spi/Kconfig
index ee7584c..e022290 100644
--- a/src/drivers/spi/Kconfig
+++ b/src/drivers/spi/Kconfig
@@ -24,6 +24,13 @@
 	  Select this option if your chipset driver needs to store certain
 	  data in the SPI flash.
 
+config SPI_FLASH_SMM
+	bool "SPI flash driver support in SMM"
+	default n
+	depends on SPI_FLASH && HAVE_SMI_HANDLER
+	help
+	  Select this option if you want SPI flash support in SMM.
+
 config SPI_FLASH_EON
 	bool
 	default y