Kconfig: separate memory mapped boot device from SPI

Make the indication of the boot device being memory mapped
separate from SPI. However, retain the same defaults that
previously existed.

BUG=chrome-os-partner:56151

Change-Id: Ibdd7c8754f9bf560a878136b1f55238e2c2549d3
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/16193
Reviewed-by: Andrey Petrov <andrey.petrov@intel.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
diff --git a/src/Kconfig b/src/Kconfig
index 001132e..ca4abbe 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -480,6 +480,13 @@
 
 source "src/acpi/Kconfig"
 
+config BOOT_DEVICE_MEMORY_MAPPED
+	bool
+	default y if ARCH_X86 && BOOT_DEVICE_SPI_FLASH
+	default n
+	help
+	  Inform system if SPI is memory-mapped or not.
+
 config RTC
 	bool
 	default n
diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c
index 55b8974..f046a34 100644
--- a/src/drivers/elog/elog.c
+++ b/src/drivers/elog/elog.c
@@ -586,8 +586,8 @@
  */
 static inline u8 *elog_flash_offset_to_address(void)
 {
-	/* Only support memory-mapped SPI devices. */
-	if (!IS_ENABLED(CONFIG_SPI_FLASH_MEMORY_MAPPED))
+	/* Only support memory-mapped devices. */
+	if (!IS_ENABLED(CONFIG_BOOT_DEVICE_MEMORY_MAPPED))
 		return NULL;
 
 	if (!elog_spi)
diff --git a/src/drivers/spi/Kconfig b/src/drivers/spi/Kconfig
index a10ee83..40f8830 100644
--- a/src/drivers/spi/Kconfig
+++ b/src/drivers/spi/Kconfig
@@ -32,13 +32,6 @@
 	  in the SPI controller. Hardware manages the transaction instead of
 	  software. This is common on x86 platforms.
 
-config SPI_FLASH_MEMORY_MAPPED
-	bool
-	default y if ARCH_X86
-	default n if !ARCH_X86
-	help
-	  Inform system if SPI is memory-mapped or not.
-
 config SPI_FLASH_SMM
 	bool "SPI flash driver support in SMM"
 	default n
diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c
index 7a0f187..7318c87 100644
--- a/src/lib/cbfs.c
+++ b/src/lib/cbfs.c
@@ -193,7 +193,7 @@
 	/* Hacky way to not load programs over read only media. The stages
 	 * that would hit this path initialize themselves. */
 	if (ENV_VERSTAGE && !IS_ENABLED(CONFIG_NO_XIP_EARLY_STAGES) &&
-	    IS_ENABLED(CONFIG_SPI_FLASH_MEMORY_MAPPED)) {
+	    IS_ENABLED(CONFIG_BOOT_DEVICE_MEMORY_MAPPED)) {
 		void *mapping = rdev_mmap(fh, foffset, fsize);
 		rdev_munmap(fh, mapping);
 		if (mapping == load)
diff --git a/src/soc/intel/apollolake/romstage.c b/src/soc/intel/apollolake/romstage.c
index 8f17fdd..067d654 100644
--- a/src/soc/intel/apollolake/romstage.c
+++ b/src/soc/intel/apollolake/romstage.c
@@ -160,7 +160,8 @@
 	 * state machine transition to next boot state, so that it can function
 	 * as designed.
 	 */
-	mupd->FspmConfig.SkipCseRbp = IS_ENABLED(CONFIG_SPI_FLASH_MEMORY_MAPPED);
+	mupd->FspmConfig.SkipCseRbp =
+		IS_ENABLED(CONFIG_BOOT_DEVICE_MEMORY_MAPPED);
 }
 
 __attribute__ ((weak))