[PATCH 1/5] disk: Add an option for partitions in SPL

AKASHI Takahiro takahiro.akashi at linaro.org
Thu Apr 14 10:30:08 CEST 2022


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 <sjg at chromium.org>
> ---
> 
>  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
> 


More information about the U-Boot mailing list