On 5/2/20 12:06 PM, Pragnesh Patel wrote: > When build U-Boot SPL, meet an issue of undefined reference to > 'crc7' for drivers/mmc/mmc_spi.c, so let's compile crc7.c when > CONFIG_MMC_SPI selected. > > Signed-off-by: Pragnesh Patel <pragnesh.pa...@sifive.com> > Reviewed-by: Jagan Teki <ja...@amarulasolutions.com> > Reviewed-by: Bin Meng <bmeng...@gmail.com> > --- > common/spl/Kconfig | 6 ++++++ > drivers/mmc/Kconfig | 1 + > lib/Makefile | 1 + > 3 files changed, 8 insertions(+) > > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > index ef5bf66696..d1f0e6bc4c 100644 > --- a/common/spl/Kconfig > +++ b/common/spl/Kconfig > @@ -401,6 +401,12 @@ config SPL_CRC32_SUPPORT > for detected accidental image corruption. For secure applications you > should consider SHA1 or SHA256. > > +config SPL_CRC7_SUPPORT > + bool "Support CRC7" > + help > + Enable CRC7 hashing for drivers which are using in SPL. > + This is a 32-bit checksum value that can be used to verify images. > + > config SPL_MD5_SUPPORT > bool "Support MD5" > depends on SPL_FIT > diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig > index 8f0df568b9..139599072a 100644 > --- a/drivers/mmc/Kconfig > +++ b/drivers/mmc/Kconfig > @@ -49,6 +49,7 @@ if MMC > config MMC_SPI > bool "Support for SPI-based MMC controller" > depends on DM_MMC && DM_SPI > + select SPL_CRC7_SUPPORT if SPL > help > This selects SPI-based MMC controllers. > If you have an MMC controller on a SPI bus, say Y here. > diff --git a/lib/Makefile b/lib/Makefile > index c6f862b0c2..fcd934857f 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -80,6 +80,7 @@ endif > > ifdef CONFIG_SPL_BUILD > obj-$(CONFIG_SPL_YMODEM_SUPPORT) += crc16.o > +obj-$(CONFIG_SPL_CRC7_SUPPORT) += crc7.o
crc7.o is not needed in main U-Boot if MMC_SPI is not selected. So instead of adding a new configuration variable simply correct the existing line in lib/Makefile -obj-y += crc7.o +obj-$(CONFIG_MMC_SPI) += crc7.o and move that line inside lib/Makefile so that is does not depend on CONFIG_SPL_BUILD. Best regards Heinrich > obj-$(CONFIG_$(SPL_TPL_)HASH_SUPPORT) += crc16.o > obj-y += net_utils.o > endif >