From 72b2465c6b897f7ac4a2a151f648dff9239b1cfe Mon Sep 17 00:00:00 2001
From: Simon Glass <sjg@chromium.org>
Date: Wed, 14 Aug 2019 19:56:10 -0600
Subject: [PATCH] cbfs: Allow CBFS to be used in SPL

Add a new Kconfig option to enable CBFS in SPL. This can be useful when
the memory-init code is in CBFS.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
---
 fs/Makefile     |  1 +
 fs/cbfs/Kconfig | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/fs/Makefile b/fs/Makefile
index 2ed4aeac0e..42e669c40c 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -8,6 +8,7 @@ ifdef CONFIG_SPL_BUILD
 obj-$(CONFIG_FS_LOADER) += fs.o
 obj-$(CONFIG_SPL_FS_FAT) += fat/
 obj-$(CONFIG_SPL_FS_EXT4) += ext4/
+obj-$(CONFIG_SPL_FS_CBFS) += cbfs/
 else
 obj-y				+= fs.o
 
diff --git a/fs/cbfs/Kconfig b/fs/cbfs/Kconfig
index 16089547a5..03980d830d 100644
--- a/fs/cbfs/Kconfig
+++ b/fs/cbfs/Kconfig
@@ -6,3 +6,15 @@ config FS_CBFS
 	  on systems that use coreboot as the first boot-loader and then load
 	  U-Boot to actually boot the Operating System. You can also enable
 	  CMD_CBFS to get command-line access.
+
+config SPL_FS_CBFS
+	bool "Enable CBFS (Coreboot Filesystem) in SPL"
+	help
+	  Define this to enable support for reading from a Coreboot
+	  filesystem. This is a ROM-based filesystem used for accessing files
+	  on systems that use coreboot as the first boot-loader and then load
+	  U-Boot to actually boot the Operating System.
+
+	  Note that most functions in the CBFS API do not work with SPL. Only
+	  those which accept a cbfs_priv * can be used, since BSS is not
+	  available.
-- 
2.39.5