[PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*

Jagan Teki jagan at amarulasolutions.com
Tue Jun 2 20:40:30 CEST 2020


On Tue, Jun 2, 2020 at 11:57 PM Tom Rini <trini at konsulko.com> wrote:
>
> On Tue, Jun 02, 2020 at 06:59:21PM +0530, Jagan Teki wrote:
> > On Tue, Jun 2, 2020 at 6:47 PM Zhiqiang Hou <Zhiqiang.Hou at nxp.com> wrote:
> > >
> > > From: Lukasz Majewski <lukma at denx.de>
> > >
> > > This change allows more fine tuning of driver model based SPI support in
> > > SPL and TPL. It is now possible to explicitly enable/disable the DM_SPI
> > > support in SPL and TPL via Kconfig option.
> > >
> > > Before this change it was necessary to use:
> > >     /* SPI Flash Configs */
> > >     #if defined(CONFIG_SPL_BUILD)
> > >     #undef CONFIG_DM_SPI
> > >     #undef CONFIG_DM_SPI_FLASH
> > >     #undef CONFIG_SPI_FLASH_MTD
> > >     #endif
> > >
> > > in the ./include/configs/<board>.h, which is error prone and shall be
> > > avoided when we strive to switch to Kconfig.
> > >
> > > The goal of this patch:
> > >
> > > Provide distinction for DM_SPI support in both U-Boot proper and SPL (TPL).
> > > Valid use case is when U-Boot proper wants to use DM_SPI, but SPL must
> > > still support non DM driver.
> > >
> > > Another use case is the conversion of non DM/DTS SPI driver to support
> > > DM/DTS. When such driver needs to work in both SPL and U-Boot proper, the
> > > distinction is needed in Kconfig (also if SPL version of the driver
> > > supports OF_PLATDATA).
> > >
> > > In the end of the day one would have to support following use cases (in
> > > single driver file - e.g. mxs_spi.c):
> > >
> > > - U-Boot proper driver supporting DT/DTS
> > > - U-Boot proper driver without DT/DTS support (deprecated)
> > > - SPL driver without DT/DTS support
> > > - SPL (and TPL) driver with DT/DTS (when the SoC has enough resources to
> > >   run full blown DT/DTS)
> > > - SPL driver with DT/DTS and SPL_OF_PLATDATA (when one have constrained
> > >   environment with no fitImage and OF_LIBFDT support).
> > >
> > > Some boards do require SPI support (with DM) in SPL (TPL) and some only
> > > have DM_SPI{_FLASH} defined to allow compiling SPL.
> > >
> > > This patch converts #ifdef CONFIG_DM_SPI* to #if CONFIG_IS_ENABLED(DM_SPI)
> > > and provides corresponding defines in Kconfig.
> > >
> > > Signed-off-by: Lukasz Majewski <lukma at denx.de>
> > > Tested-by: Adam Ford <aford173 at gmail.com> #da850-evm
> > > Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
> > > ---
> > > V4:
> > >  - Rebase the patch and remove SPL_DM_SPI from target ls1046 boards.
> > >
> > >  arch/arm/Kconfig                            | 11 +++++++++++
> > >  board/l+g/vinco/vinco.c                     |  4 ++--
> > >  cmd/sf.c                                    |  4 ++--
> > >  cmd/spi.c                                   |  6 +++---
> > >  common/spl/Kconfig                          | 20 ++++++++++++++++++++
> > >  configs/am57xx_evm_defconfig                |  2 ++
> > >  configs/am57xx_hs_evm_defconfig             |  2 ++
> > >  configs/am57xx_hs_evm_usb_defconfig         |  2 ++
> > >  configs/axm_defconfig                       |  2 ++
> > >  configs/chromebook_link64_defconfig         |  2 ++
> > >  configs/chromebook_samus_tpl_defconfig      |  4 ++++
> > >  configs/dra7xx_evm_defconfig                |  2 ++
> > >  configs/dra7xx_hs_evm_defconfig             |  2 ++
> > >  configs/dra7xx_hs_evm_usb_defconfig         |  2 ++
> > >  configs/j721e_evm_a72_defconfig             |  2 ++
> > >  configs/j721e_evm_r5_defconfig              |  2 ++
> > >  configs/ls1021aiot_qspi_defconfig           |  2 ++
> > >  configs/ls1021aiot_sdcard_defconfig         |  2 ++
> > >  configs/ls1021aqds_qspi_defconfig           |  1 +
> > >  configs/ls1021aqds_sdcard_qspi_defconfig    |  1 +
> > >  configs/ls1021atwr_qspi_defconfig           |  1 +
> > >  configs/sama5d2_xplained_spiflash_defconfig |  2 ++
> > >  configs/sama5d3xek_spiflash_defconfig       |  7 ++++---
> > >  configs/sama5d4_xplained_spiflash_defconfig |  2 ++
> > >  configs/sama5d4ek_spiflash_defconfig        |  2 ++
> > >  configs/stm32mp15_basic_defconfig           |  2 ++
> > >  configs/taurus_defconfig                    |  2 ++
> > >  drivers/mtd/spi/Makefile                    |  4 ++--
> > >  drivers/mtd/spi/sf_probe.c                  |  2 +-
> > >  drivers/net/fm/fm.c                         |  4 ++--
> > >  drivers/spi/Makefile                        |  2 +-
> > >  drivers/spi/atmel_spi.c                     |  4 ++--
> > >  drivers/spi/davinci_spi.c                   |  6 +++---
> > >  drivers/spi/fsl_dspi.c                      |  5 +++--
> > >  drivers/spi/kirkwood_spi.c                  |  2 +-
> > >  drivers/spi/mxc_spi.c                       |  6 +++---
> > >  drivers/spi/omap3_spi.c                     |  4 ++--
> >
> > nondm code on most of the driver will remove in the next version, So I
> > didn't see any usecase of this conversion here.
>
> I think this is still the right direction to go in.  non-DM for SPL is
> allowed and this is part of the logical steps needed for moving forward
> with "now pull non-DM driver into own file for SPL" until the efforts to
> make DM smaller still are ready.  So this series is on my list to test
> and confirm doesn't change binary size on.

Sorry, I can't do a similar task over the years, I'm saying about
nondm part of drivers which doesn't have any footprint issues? You may
be true for nondm part which has SPL size issues like mxc_spi,
sh_qspi, rest are fine to move. I'd remove those that part at max for
next MW.

Jagan.


More information about the U-Boot mailing list