[U-Boot] [PATCH v4 1/2] disk: update to use SPL_PARTITIONS for SPL

Kever Yang kever.yang at rock-chips.com
Thu Aug 15 08:32:16 UTC 2019


The SPL disk driver can not depends on SPL_FRAMEWORK & PARTITIONS, which
will enable the disk driver when we actually not need it. Use a separate
Kconfig to control the partition driver in SPL and fix the issue caused by:
Fixes: 91ff686562 ("blk: Rework guard around part_init call")

Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
Reviewed-by: Simon Glass <sjg at chromium.org>
---

Changes in v4:
- format the commit message to ~75 columns.

Changes in v3:
- update code in blk-uclass.c

Changes in v2:
- add this patch

 common/spl/Kconfig         |  2 +-
 disk/Kconfig               | 20 ++++++++++++--------
 disk/Makefile              |  2 +-
 drivers/block/blk-uclass.c |  2 +-
 scripts/Makefile.spl       |  2 +-
 5 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 5978fb2934..094680e54d 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -544,7 +544,7 @@ config SPL_LIBCOMMON_SUPPORT
 
 config SPL_LIBDISK_SUPPORT
 	bool "Support disk partitions"
-	select PARTITIONS
+	select SPL_PARTITIONS
 	help
 	  Enable support for disk partitions within SPL. 'Disk' is something
 	  of a misnomer as it includes non-spinning media such as flash (as
diff --git a/disk/Kconfig b/disk/Kconfig
index 28fb81c2ee..43e76cb49d 100644
--- a/disk/Kconfig
+++ b/disk/Kconfig
@@ -4,9 +4,7 @@ menu "Partition Types"
 config PARTITIONS
 	bool "Enable Partition Labels (disklabels) support"
 	default y
-	select SPL_SPRINTF if SPL
 	select TPL_SPRINTF if TPL
-	select SPL_STRTO if SPL
 	select TPL_STRTO if TPL
 	help
 	  Partition Labels (disklabels) Supported:
@@ -23,6 +21,12 @@ config PARTITIONS
 	  you must configure support for at least one non-MTD partition type
 	  as well.
 
+config SPL_PARTITIONS
+	select SPL_SPRINTF
+	select SPL_STRTO
+	bool "Enable Partition Labels (disklabels) support for SPL"
+	depends on SPL
+
 config MAC_PARTITION
 	bool "Enable Apple's MacOS partition table"
 	depends on PARTITIONS
@@ -32,7 +36,7 @@ config MAC_PARTITION
 
 config SPL_MAC_PARTITION
 	bool "Enable Apple's MacOS partition table for SPL"
-	depends on SPL && PARTITIONS
+	depends on SPL_PARTITIONS
 	default y if MAC_PARTITION
 
 config DOS_PARTITION
@@ -45,7 +49,7 @@ config DOS_PARTITION
 
 config SPL_DOS_PARTITION
 	bool "Enable MS Dos partition table for SPL"
-	depends on SPL && PARTITIONS
+	depends on SPL_PARTITIONS
 	default y if DOS_PARTITION
 
 config ISO_PARTITION
@@ -56,7 +60,7 @@ config ISO_PARTITION
 
 config SPL_ISO_PARTITION
 	bool "Enable ISO partition table for SPL"
-	depends on SPL && PARTITIONS
+	depends on SPL_PARTITIONS
 
 config AMIGA_PARTITION
 	bool "Enable AMIGA partition table"
@@ -67,7 +71,7 @@ config AMIGA_PARTITION
 
 config SPL_AMIGA_PARTITION
 	bool "Enable AMIGA partition table for SPL"
-	depends on SPL && PARTITIONS
+	depends on SPL_PARTITIONS
 	default y if AMIGA_PARTITION
 
 config EFI_PARTITION
@@ -111,7 +115,7 @@ config EFI_PARTITION_ENTRIES_OFF
 
 config SPL_EFI_PARTITION
 	bool "Enable EFI GPT partition table for SPL"
-	depends on  SPL && PARTITIONS
+	depends on  SPL_PARTITIONS
 	default y if EFI_PARTITION
 
 config PARTITION_UUIDS
@@ -125,7 +129,7 @@ config PARTITION_UUIDS
 
 config SPL_PARTITION_UUIDS
 	bool "Enable support of UUID for partition in SPL"
-	depends on SPL && PARTITIONS
+	depends on SPL_PARTITIONS
 	default y if SPL_EFI_PARTITION
 
 config PARTITION_TYPE_GUID
diff --git a/disk/Makefile b/disk/Makefile
index ccd0335959..92fcc2b4ac 100644
--- a/disk/Makefile
+++ b/disk/Makefile
@@ -5,7 +5,7 @@
 
 #ccflags-y += -DET_DEBUG -DDEBUG
 
-obj-$(CONFIG_PARTITIONS) 	+= part.o
+obj-$(CONFIG_$(SPL_)PARTITIONS)      += part.o
 obj-$(CONFIG_$(SPL_)MAC_PARTITION)   += part_mac.o
 obj-$(CONFIG_$(SPL_)DOS_PARTITION)   += part_dos.o
 obj-$(CONFIG_$(SPL_)ISO_PARTITION)   += part_iso.o
diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
index c23b6682a6..425ec3259f 100644
--- a/drivers/block/blk-uclass.c
+++ b/drivers/block/blk-uclass.c
@@ -649,7 +649,7 @@ int blk_unbind_all(int if_type)
 
 static int blk_post_probe(struct udevice *dev)
 {
-#if defined(CONFIG_PARTITIONS) && defined(CONFIG_HAVE_BLOCK_DEVICE)
+#if CONFIG_IS_ENABLED(PARTITIONS) && defined(CONFIG_HAVE_BLOCK_DEVICE)
 	struct blk_desc *desc = dev_get_uclass_platdata(dev);
 
 	part_init(desc);
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 7af6b120b6..3535978634 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -82,7 +82,7 @@ else
 libs-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/ cmd/ env/
 libs-$(CONFIG_SPL_LIBGENERIC_SUPPORT) += lib/
 ifdef CONFIG_SPL_FRAMEWORK
-libs-$(CONFIG_PARTITIONS) += disk/
+libs-$(CONFIG_SPL_PARTITIONS) += disk/
 endif
 endif
 
-- 
2.17.1



More information about the U-Boot mailing list