diff mbox series

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

Message ID 20190815083217.476-1-kever.yang@rock-chips.com
State Deferred
Headers show
Series [U-Boot,v4,1/2] disk: update to use SPL_PARTITIONS for SPL | expand

Commit Message

Kever Yang Aug. 15, 2019, 8:32 a.m. UTC
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@rock-chips.com>
Reviewed-by: Simon Glass <sjg@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(-)

Comments

Kever Yang Nov. 28, 2019, 3:06 a.m. UTC | #1
Hi Tom, Simon
  ping...
  Is it OK to merge this patch?

Thanks
- Kever

Kever Yang <kever.yang@rock-chips.com> 于2019年8月15日周四 下午4:32写道:

> 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@rock-chips.com>
> Reviewed-by: Simon Glass <sjg@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
>
>
Tom Rini Dec. 2, 2019, 11:02 p.m. UTC | #2
On Thu, Nov 28, 2019 at 11:06:41AM +0800, Kever Yang wrote:
> Hi Tom, Simon
>   ping...
>   Is it OK to merge this patch?
> 
> Thanks
> - Kever
> 
> Kever Yang <kever.yang@rock-chips.com> 于2019年8月15日周四 下午4:32写道:
> 
> > 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@rock-chips.com>
> > Reviewed-by: Simon Glass <sjg@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

This and 2/2 need to be checked (possibly again) for unexpected size
growth.
Kever Yang Dec. 3, 2019, 1:57 a.m. UTC | #3
Hi Tom,

On 2019/12/3 上午7:02, Tom Rini wrote:
> This and 2/2 need to be checked (possibly again) for unexpected size
> growth.
This patches should only affect those boards with SPL_LIBDISK_SUPPORT 
enabled,
If this MACRO is enabled, the board wants to use partition, and all the 
related source code are needed,
there should be no difference for this kind of boards.
If the size is overflow with this patch, that means the board does not 
have a complete partition driver
support,  eg. none of partition like SPL_EFI_PARTITION is selected, we 
should remove
SPL_LIBDISK_SUPPORT for this kind of boards.


How can I check boards has size overflow? these two patch can pass the 
travis test.

Thanks,
- Kever
diff mbox series

Patch

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