Hi Simon,

On Fri, Mar 11, 2022 at 12:10:01PM -0700, Simon Glass wrote:
> In some cases we do not want to enable partition support in SPL. Add an
> option to allow this.
> 
> Signed-off-by: Simon Glass <[email protected]>
> ---
> 
>  disk/Kconfig               | 24 ++++++++++++++++++++----
>  disk/Makefile              |  6 +++---
>  drivers/block/blk-uclass.c |  2 +-
>  3 files changed, 24 insertions(+), 8 deletions(-)
> 
> diff --git a/disk/Kconfig b/disk/Kconfig
> index cee16a80bc2..13700322e97 100644
> --- a/disk/Kconfig
> +++ b/disk/Kconfig
> @@ -4,10 +4,6 @@ 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:
>         Zero or more of the following:
> @@ -23,6 +19,26 @@ config PARTITIONS
>         you must configure support for at least one non-MTD partition type
>         as well.
>  
> +config SPL_PARTITIONS
> +     bool "Enable Partition Labels (disklabels) support in SPL"
> +     default y if PARTITIONS
> +     select SPL_SPRINTF
> +     select SPL_STRTO
> +     help
> +       Enable this for base partition support in SPL. The required
> +       partition table types shold be enabled separately. This add a
> +       small amount of size to SPL, typically 500 bytes.

Despite of you aim here, this option doesn't work.
As I mentioned in
  https://lists.denx.de/pipermail/u-boot/2022-April/481258.html
phycore-rk3288_defconfig, for instance, compiles disk/part.o
(and disk/disk-uclass.o) in SPL image.

Basically, I think that CONFIG_(SPL_)PARTITIONS should not be
user-selectable. Instead, it should be implicitly selected
by any of CONFIG_(SPL_)XXX_PARTITION's.

-Takahiro Akashi

> +
> +config TPL_PARTITIONS
> +     bool "Enable Partition Labels (disklabels) support in TPL"
> +     default y if PARTITIONS
> +     select TPL_SPRINTF
> +     select TPL_STRTO
> +     help
> +       Enable this for base partition support in SPL. The required
> +       partition table types shold be enabled separately. This add a
> +       small amount of size to SPL, typically 500 bytes.
> +
>  config MAC_PARTITION
>       bool "Enable Apple's MacOS partition table"
>       depends on PARTITIONS
> diff --git a/disk/Makefile b/disk/Makefile
> index ec37b74f5f4..ffd7b07f867 100644
> --- a/disk/Makefile
> +++ b/disk/Makefile
> @@ -5,9 +5,9 @@
>  
>  #ccflags-y += -DET_DEBUG -DDEBUG
>  
> -obj-$(CONFIG_PARTITIONS)     += part.o
> -ifdef CONFIG_$(SPL_)BLK
> -obj-$(CONFIG_PARTITIONS)     += disk-uclass.o
> +obj-$(CONFIG_$(SPL_TPL_)PARTITIONS)  += part.o
> +ifdef CONFIG_$(SPL_TPL_)BLK
> +obj-$(CONFIG_$(SPL_TPL_)PARTITIONS)  += disk-uclass.o
>  endif
>  obj-$(CONFIG_$(SPL_)MAC_PARTITION)   += part_mac.o
>  obj-$(CONFIG_$(SPL_)DOS_PARTITION)   += part_dos.o
> diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
> index 58dc74e71f1..bcd18ed38b2 100644
> --- a/drivers/block/blk-uclass.c
> +++ b/drivers/block/blk-uclass.c
> @@ -712,7 +712,7 @@ int blk_unbind_all(int if_type)
>  
>  static int blk_post_probe(struct udevice *dev)
>  {
> -     if (IS_ENABLED(CONFIG_PARTITIONS) &&
> +     if (CONFIG_IS_ENABLED(PARTITIONS) &&
>           IS_ENABLED(CONFIG_HAVE_BLOCK_DEVICE)) {
>               struct blk_desc *desc = dev_get_uclass_plat(dev);
>  
> -- 
> 2.35.1.723.g4982287a31-goog
> 

Reply via email to