drivers/spi: ensure SPI flash is boot device for coreboot tables

The spi_flash_probe() routine was setting a global varible
unconditonally regardless if the probe was for the boot device
or even if the boot devcie was flash. Moreover, there's no need
to report the SPI information if the boot device isn't even SPI.

Lastly, it's possible that the boot device is a SPI flash, but
the platform may never probe (selecting SPI_FLASH) for the
actual device connected. In that situation don't fill anything
in as no correct information is known.

BUG=chrome-os-partner:56151

Change-Id: Ib0eba601df4d77bede313c358c92b0536355bbd0
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/16197
Tested-by: build bot (Jenkins)
Reviewed-by: Furquan Shaikh <furquan@google.com>
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index 44ae733..f8da658 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -419,6 +419,14 @@
 
 void __attribute__((weak)) lb_board(struct lb_header *header) { /* NOOP */ }
 
+/*
+ * It's possible that the system is using a SPI flash as the boot device,
+ * however it is not probing for devices to fill in specifics. In that
+ * case don't provide any information as the correct information is
+ * not known.
+ */
+void __attribute__((weak)) lb_spi_flash(struct lb_header *header) { /* NOOP */ }
+
 static struct lb_forward *lb_forward(struct lb_header *header, struct lb_header *next_header)
 {
 	struct lb_record *rec;
@@ -532,10 +540,9 @@
 	/* Add RAM config if available */
 	lb_ram_code(head);
 
-#if IS_ENABLED(CONFIG_SPI_FLASH)
 	/* Add SPI flash description if available */
-	lb_spi_flash(head);
-#endif
+	if (IS_ENABLED(CONFIG_BOOT_DEVICE_SPI_FLASH))
+		lb_spi_flash(head);
 
 	add_cbmem_pointers(head);