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 >

