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

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 will fix this issue caused by: 91ff686562 blk: Rework guard around part_init call
Signed-off-by: Kever Yang kever.yang@rock-chips.com ---
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

The partition driver has its Kconfig option, and the part_get_info_prt() interface are mendatory interface for partition drivers, always enable the macro to make partition driver works correctly.
Signed-off-by: Kever Yang kever.yang@rock-chips.com ---
Changes in v3: None Changes in v2: - add patch to use SPL_PARTITIONS so that we don't add disk driver for boards who don't need it.
include/part.h | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/include/part.h b/include/part.h index ebca546db5..7d00fae56f 100644 --- a/include/part.h +++ b/include/part.h @@ -241,22 +241,15 @@ static inline int blk_get_device_part_str(const char *ifname, #endif
/* - * We don't support printing partition information in SPL and only support - * getting partition information in a few cases. + * We don't support printing partition information in SPL */ #ifdef CONFIG_SPL_BUILD # define part_print_ptr(x) NULL -# if defined(CONFIG_SPL_FS_EXT4) || defined(CONFIG_SPL_FS_FAT) || \ - defined(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION) -# define part_get_info_ptr(x) x -# else -# define part_get_info_ptr(x) NULL -# endif #else #define part_print_ptr(x) x -#define part_get_info_ptr(x) x #endif
+#define part_get_info_ptr(x) x
struct part_driver { const char *name;

Hi Kever,
On Thu, 8 Aug 2019 at 02:15, Kever Yang kever.yang@rock-chips.com wrote:
The SPL disk driver can not depends on SPL_FRAMEWORK&PARTITIONS,
Spaces around &
which will enable the disk driver when we actually not need it. Use a separate Kconfig to control the partition driver in SPL will fix this issue caused by: 91ff686562 blk: Rework guard around part_init call
Can you please format to 75 columrns? These lines look a little short.
Signed-off-by: Kever Yang kever.yang@rock-chips.com
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(-)
So should this have a Fixes: tab?
Reviewed-by: Simon Glass sjg@chromium.org
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
Why are you removing this? I don't see it mentioned in the commit message.
select TPL_SPRINTF if TPL
select SPL_STRTO if SPL
Same here.
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.
Regards, Simon

On 2019/8/13 下午5:33, Simon Glass wrote:
Hi Kever,
On Thu, 8 Aug 2019 at 02:15, Kever Yang kever.yang@rock-chips.com wrote:
The SPL disk driver can not depends on SPL_FRAMEWORK&PARTITIONS,
Spaces around &
which will enable the disk driver when we actually not need it. Use a separate Kconfig to control the partition driver in SPL will fix this issue caused by: 91ff686562 blk: Rework guard around part_init call
Can you please format to 75 columrns? These lines look a little short.
I can update the commit message with format update.
Signed-off-by: Kever Yang kever.yang@rock-chips.com
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(-)
So should this have a Fixes: tab?
Reviewed-by: Simon Glass sjg@chromium.org
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
Why are you removing this? I don't see it mentioned in the commit message.
This is not removed, but MOVE to the new option SPL_PARTITIONS where it belongs to.
Thanks,
- Kever
select TPL_SPRINTF if TPL
select SPL_STRTO if SPL
Same here.
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.
Regards, Simon
participants (2)
-
Kever Yang
-
Simon Glass