Message ID | 20240826181933.252020-1-hiagofranco@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | fs: Fix SPL build if SPL_FS_LOADER is enabled and FS_LOADER is disabled | expand |
On Mon, Aug 26, 2024 at 03:19:33PM -0300, Hiago De Franco wrote: > From: Hiago De Franco <hiago.franco@toradex.com> > > When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build > fails with the following errors: > > AR spl/boot/built-in.o > LD spl/u-boot-spl > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > `fw_get_filesystem_firmware': > /u-boot/drivers/misc/fs_loader.c:162: undefined reference to > `fs_set_blk_dev' > arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ > fs_loader.c:185: undefined reference to `fs_read' > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > `select_fs_dev': > /u-boot/drivers/misc/fs_loader.c:89: undefined reference to > `fs_set_blk_dev_with_part' > make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 > make: *** [Makefile:2055: spl/u-boot-spl] Error 2 > > Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so > the fs.c with the necessary function definitions are compiled. > > Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") > Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com> > Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> Reviewed-by: Tom Rini <trini@konsulko.com>
On Mon, Aug 26, 2024 at 03:19:33PM -0300, Hiago De Franco wrote: > From: Hiago De Franco <hiago.franco@toradex.com> > > When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build > fails with the following errors: > > AR spl/boot/built-in.o > LD spl/u-boot-spl > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > `fw_get_filesystem_firmware': > /u-boot/drivers/misc/fs_loader.c:162: undefined reference to > `fs_set_blk_dev' > arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ > fs_loader.c:185: undefined reference to `fs_read' > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > `select_fs_dev': > /u-boot/drivers/misc/fs_loader.c:89: undefined reference to > `fs_set_blk_dev_with_part' > make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 > make: *** [Makefile:2055: spl/u-boot-spl] Error 2 > > Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so > the fs.c with the necessary function definitions are compiled. > > Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") > Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com> > Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> > Reviewed-by: Tom Rini <trini@konsulko.com> This leads to failure to build on sandbox_noinst_defconfig. > --- > fs/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/Makefile b/fs/Makefile > index 7b05c79e0ccf..a3ee0a361d3d 100644 > --- a/fs/Makefile > +++ b/fs/Makefile > @@ -5,7 +5,7 @@ > # Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. > > ifdef CONFIG_SPL_BUILD > -obj-$(CONFIG_FS_LOADER) += fs.o > +obj-$(CONFIG_SPL_FS_LOADER) += fs.o > obj-$(CONFIG_SPL_FS_FAT) += fat/ > obj-$(CONFIG_SPL_FS_EXT4) += ext4/ > obj-$(CONFIG_SPL_FS_CBFS) += cbfs/
On Fri, Aug 30, 2024 at 02:51:19PM -0600, Tom Rini wrote: > On Mon, Aug 26, 2024 at 03:19:33PM -0300, Hiago De Franco wrote: > > > From: Hiago De Franco <hiago.franco@toradex.com> > > > > When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build > > fails with the following errors: > > > > AR spl/boot/built-in.o > > LD spl/u-boot-spl > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > `fw_get_filesystem_firmware': > > /u-boot/drivers/misc/fs_loader.c:162: undefined reference to > > `fs_set_blk_dev' > > arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ > > fs_loader.c:185: undefined reference to `fs_read' > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > `select_fs_dev': > > /u-boot/drivers/misc/fs_loader.c:89: undefined reference to > > `fs_set_blk_dev_with_part' > > make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 > > make: *** [Makefile:2055: spl/u-boot-spl] Error 2 > > > > Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so > > the fs.c with the necessary function definitions are compiled. > > > > Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") > > Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> > > Reviewed-by: Tom Rini <trini@konsulko.com> > > This leads to failure to build on sandbox_noinst_defconfig. --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig @@ -110,6 +110,7 @@ config EFI_MEDIA config SPL_BLK_FS bool "Load images from filesystems on block devices" depends on SPL_BLK + select SPL_FS_LOADER help Use generic support to load images from fat/ext filesystems on different types of block devices such as NVMe. ?
On Sat, Aug 31, 2024 at 03:49:11PM +0200, Francesco Dolcini wrote: > On Fri, Aug 30, 2024 at 02:51:19PM -0600, Tom Rini wrote: > > On Mon, Aug 26, 2024 at 03:19:33PM -0300, Hiago De Franco wrote: > > > > > From: Hiago De Franco <hiago.franco@toradex.com> > > > > > > When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build > > > fails with the following errors: > > > > > > AR spl/boot/built-in.o > > > LD spl/u-boot-spl > > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > > `fw_get_filesystem_firmware': > > > /u-boot/drivers/misc/fs_loader.c:162: undefined reference to > > > `fs_set_blk_dev' > > > arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ > > > fs_loader.c:185: undefined reference to `fs_read' > > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > > `select_fs_dev': > > > /u-boot/drivers/misc/fs_loader.c:89: undefined reference to > > > `fs_set_blk_dev_with_part' > > > make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 > > > make: *** [Makefile:2055: spl/u-boot-spl] Error 2 > > > > > > Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so > > > the fs.c with the necessary function definitions are compiled. > > > > > > Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") > > > Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > > Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> > > > Reviewed-by: Tom Rini <trini@konsulko.com> > > > > This leads to failure to build on sandbox_noinst_defconfig. > > --- a/drivers/block/Kconfig > +++ b/drivers/block/Kconfig > @@ -110,6 +110,7 @@ config EFI_MEDIA > config SPL_BLK_FS > bool "Load images from filesystems on block devices" > depends on SPL_BLK > + select SPL_FS_LOADER > help > Use generic support to load images from fat/ext filesystems on > different types of block devices such as NVMe. > > > ? I think "depends on" and sandbox_noinst_defconfig should enable CONFIG_SPL_FS_LOADER too.
Hello Tom, On Wed, Sep 04, 2024 at 03:27:21PM -0600, Tom Rini wrote: > On Sat, Aug 31, 2024 at 03:49:11PM +0200, Francesco Dolcini wrote: > > On Fri, Aug 30, 2024 at 02:51:19PM -0600, Tom Rini wrote: > > > On Mon, Aug 26, 2024 at 03:19:33PM -0300, Hiago De Franco wrote: > > > > > > > From: Hiago De Franco <hiago.franco@toradex.com> > > > > > > > > When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build > > > > fails with the following errors: > > > > > > > > AR spl/boot/built-in.o > > > > LD spl/u-boot-spl > > > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > > > `fw_get_filesystem_firmware': > > > > /u-boot/drivers/misc/fs_loader.c:162: undefined reference to > > > > `fs_set_blk_dev' > > > > arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ > > > > fs_loader.c:185: undefined reference to `fs_read' > > > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > > > `select_fs_dev': > > > > /u-boot/drivers/misc/fs_loader.c:89: undefined reference to > > > > `fs_set_blk_dev_with_part' > > > > make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 > > > > make: *** [Makefile:2055: spl/u-boot-spl] Error 2 > > > > > > > > Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so > > > > the fs.c with the necessary function definitions are compiled. > > > > > > > > Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") > > > > Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > > > Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> > > > > Reviewed-by: Tom Rini <trini@konsulko.com> > > > > > > This leads to failure to build on sandbox_noinst_defconfig. > > > > --- a/drivers/block/Kconfig > > +++ b/drivers/block/Kconfig > > @@ -110,6 +110,7 @@ config EFI_MEDIA > > config SPL_BLK_FS > > bool "Load images from filesystems on block devices" > > depends on SPL_BLK > > + select SPL_FS_LOADER > > help > > Use generic support to load images from fat/ext filesystems on > > different types of block devices such as NVMe. > > > > > > ? > > I think "depends on" and sandbox_noinst_defconfig should enable > CONFIG_SPL_FS_LOADER too. What do you mean? The change I proposed fixes the issue you reported with sandbox_noinst_defconfig and I think is the right solution. Are you ok with that or are you proposing to just change sandbox_noinst_defconfig enabling CONFIG_SPL_FS_LOADER explicitly? Francesco
On Thu, Sep 05, 2024 at 01:44:37AM +0200, Francesco Dolcini wrote: > Hello Tom, > > On Wed, Sep 04, 2024 at 03:27:21PM -0600, Tom Rini wrote: > > On Sat, Aug 31, 2024 at 03:49:11PM +0200, Francesco Dolcini wrote: > > > On Fri, Aug 30, 2024 at 02:51:19PM -0600, Tom Rini wrote: > > > > On Mon, Aug 26, 2024 at 03:19:33PM -0300, Hiago De Franco wrote: > > > > > > > > > From: Hiago De Franco <hiago.franco@toradex.com> > > > > > > > > > > When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build > > > > > fails with the following errors: > > > > > > > > > > AR spl/boot/built-in.o > > > > > LD spl/u-boot-spl > > > > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > > > > `fw_get_filesystem_firmware': > > > > > /u-boot/drivers/misc/fs_loader.c:162: undefined reference to > > > > > `fs_set_blk_dev' > > > > > arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ > > > > > fs_loader.c:185: undefined reference to `fs_read' > > > > > arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function > > > > > `select_fs_dev': > > > > > /u-boot/drivers/misc/fs_loader.c:89: undefined reference to > > > > > `fs_set_blk_dev_with_part' > > > > > make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 > > > > > make: *** [Makefile:2055: spl/u-boot-spl] Error 2 > > > > > > > > > > Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so > > > > > the fs.c with the necessary function definitions are compiled. > > > > > > > > > > Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") > > > > > Suggested-by: Francesco Dolcini <francesco.dolcini@toradex.com> > > > > > Signed-off-by: Hiago De Franco <hiago.franco@toradex.com> > > > > > Reviewed-by: Tom Rini <trini@konsulko.com> > > > > > > > > This leads to failure to build on sandbox_noinst_defconfig. > > > > > > --- a/drivers/block/Kconfig > > > +++ b/drivers/block/Kconfig > > > @@ -110,6 +110,7 @@ config EFI_MEDIA > > > config SPL_BLK_FS > > > bool "Load images from filesystems on block devices" > > > depends on SPL_BLK > > > + select SPL_FS_LOADER > > > help > > > Use generic support to load images from fat/ext filesystems on > > > different types of block devices such as NVMe. > > > > > > > > > ? > > > > I think "depends on" and sandbox_noinst_defconfig should enable > > CONFIG_SPL_FS_LOADER too. > > What do you mean? > > The change I proposed fixes the issue you reported with sandbox_noinst_defconfig and I > think is the right solution. Are you ok with that or are you proposing to just > change sandbox_noinst_defconfig enabling CONFIG_SPL_FS_LOADER explicitly? I'm saying, based on the other options which use SPL_FS_LOADER it should be a depends not select here, and that sandbox_noinst_defconfig should be enabling SPL_FS_LOADER. There's also an argument to be made that SPL_FS_LOADER (and FS_LOADER) should be unprompted options (ie "bool" without the text to explain the option) and selected by all of its users. I'm not immediately sure which is better now.
diff --git a/fs/Makefile b/fs/Makefile index 7b05c79e0ccf..a3ee0a361d3d 100644 --- a/fs/Makefile +++ b/fs/Makefile @@ -5,7 +5,7 @@ # Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. ifdef CONFIG_SPL_BUILD -obj-$(CONFIG_FS_LOADER) += fs.o +obj-$(CONFIG_SPL_FS_LOADER) += fs.o obj-$(CONFIG_SPL_FS_FAT) += fat/ obj-$(CONFIG_SPL_FS_EXT4) += ext4/ obj-$(CONFIG_SPL_FS_CBFS) += cbfs/