On Wed, 2023-07-12 at 13:12 -0400, Tom Rini wrote: > On Wed, Jul 12, 2023 at 03:27:45PM +0200, Heinrich Schuchardt wrote: > > On 12.07.23 15:06, mchit...@ventanamicro.com wrote: > > > Hi Tom, > > > > > > On Tue, 2023-06-20 at 09:37 -0400, Tom Rini wrote: > > > > On Sat, 03 Jun 2023 19:32:52 +0530, Mayuresh Chitale wrote: > > > > > > > > > This patchset adds support to load images of the SPL's next > > > > > booting > > > > > stage from a NVMe device. > > > > > > > > > > Changes in v4: > > > > > - Drop patch 4 > > > > > - Modify patch 2 to use generic fs.h APIs > > > > > > > > > > [...] > > > > > > > > With one change, which is that the "disk/part.c" in 4/4 were > > > > not > > > > required for > > > > any platform in tree and also broke testcases, and so was > > > > dropped, > > > > this has now > > > > been applied to u-boot/next. If you can explain a bit more what > > > > the > > > > problem you > > > > had was, we can look in to it. I suspect you need to test for > > > > not > > > > SPL_ENV_SUPPORT but ENV_SUPPORT itself. > > > > > > > Thanks. > > > When SPL_NVME is enabled the build breaks with the following > > > error: > > > riscv64-unknown-linux-gnu-ld.bfd: disk/part.o: in function > > > `blk_get_device_part_str': > > > u-boot/disk/part.c:473: undefined reference to `env_get' > > > make[2]: *** [u-boot/scripts/Makefile.spl:527: spl/u-boot-spl] > > > Error 1 > > > make[1]: *** [/u-boot/Makefile:2053: spl/u-boot-spl] Error 2 > > > > > > One possible fix is: > > > > > > if ((!IS_ENABLED(CONFIG_SPL) && IS_ENABLED(CONFIG_ENV_SUPPORT)) > > > || > > > (IS_ENABLED(CONFIG_SPL) && > > > IS_ENABLED(CONFIG_SPL_ENV_SUPPORT))) > > > if (!dev_part_str || !strlen(dev_part_str) > > > > > !strcmp(dev_part_str, "-")) > > > dev_part_str = env_get("bootdevice"); > > > > > > > > > > I think CONFIG_SPL_ENV_SUPPORT should depend on CONFIG_ENV_SUPPORT > > in > > common/spl/Kconfig. > > Not strictly, but checking for CONFIG_IS_ENABLED(ENV_SUPPORT) should > do > what's desired here?
When SPL_NVME & SPL_BLK_FS is enabled, the spl_blk_fs driver calls fs_set_blk_dev to the set the device & partition before accessing it and fs_set_blk_dev internally tries to get the device & partition from the bootdevice env variable if it was not passed by the caller. However for SPL build, when SPL_ENV_SUPPORT is not enabled nothing provides env_get and hence the build fails.