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

Z.q. Hou zhiqiang.hou at nxp.com
Wed Jun 3 11:09:31 CEST 2020


Hi Jagan,

Thanks a lot for your comments!

> -----Original Message-----
> From: Jagan Teki [mailto:jagan at amarulasolutions.com]
> Sent: 2020年6月3日 15:39
> To: Z.q. Hou <zhiqiang.hou at nxp.com>
> Cc: Tom Rini <trini at konsulko.com>; U-Boot-Denx <u-boot at lists.denx.de>;
> Lokesh Vutla <lokeshvutla at ti.com>; Andrew F Davis <afd at ti.com>; Heiko
> Schocher <hs at denx.de>; Simon Glass <sjg at chromium.org>; Feng Li
> <feng.li_2 at nxp.com>; Alison Wang <alison.wang at nxp.com>; Sumit Garg
> <sumit.garg at nxp.com>; Eugen Hristev <eugen.hristev at microchip.com>;
> Patrick Delaunay <patrick.delaunay at st.com>; Vignesh R <vigneshr at ti.com>;
> Joe Hershberger <joe.hershberger at ni.com>; Stefan Roese <sr at denx.de>;
> Wolfgang Denk <wd at denx.de>; Lukasz Majewski <lukma at denx.de>; Miquel
> Raynal <miquel.raynal at bootlin.com>; Marek Vasut <marex at denx.de>; Bin
> Meng <bmeng.cn at gmail.com>; Simon Goldschmidt
> <simon.k.r.goldschmidt at gmail.com>; Markus Klotzbuecher
> <markus.klotzbuecher at kistler.com>; Baruch Siach <baruch at tkos.co.il>;
> Harald Seiler <hws at denx.de>; Joel Johnson <mrjoel at lixil.net>; Anatolij
> Gustschin <agust at denx.de>; Priyanka Jain <priyanka.jain at nxp.com>;
> Madalin Bucur (OSS) <madalin.bucur at oss.nxp.com>; Gervais, Francois
> <FGervais at distech-controls.com>; Udit Agarwal <udit.agarwal at nxp.com>
> Subject: Re: [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to
> CONFIG_$(SPL_TPL_)DM_SPI*
> 
> On Wed, Jun 3, 2020 at 7:16 AM Z.q. Hou <zhiqiang.hou at nxp.com> wrote:
> >
> > Hi Tom and Jagan,
> >
> > Thanks a lot for your comments!
> >
> > > -----Original Message-----
> > > From: Tom Rini <trini at konsulko.com>
> > > Sent: 2020年6月3日 3:02
> > > To: Jagan Teki <jagan at amarulasolutions.com>; Z.q. Hou
> > > <zhiqiang.hou at nxp.com>
> > > Cc: U-Boot-Denx <u-boot at lists.denx.de>; Lokesh Vutla
> > > <lokeshvutla at ti.com>; Andrew F Davis <afd at ti.com>; Heiko Schocher
> > > <hs at denx.de>; Simon Glass <sjg at chromium.org>; Feng Li
> > > <feng.li_2 at nxp.com>; Alison Wang <alison.wang at nxp.com>; Sumit Garg
> > > <sumit.garg at nxp.com>; Eugen Hristev <eugen.hristev at microchip.com>;
> > > Patrick Delaunay <patrick.delaunay at st.com>; Vignesh R
> > > <vigneshr at ti.com>; Joe Hershberger <joe.hershberger at ni.com>; Stefan
> > > Roese <sr at denx.de>; Wolfgang Denk <wd at denx.de>; Lukasz Majewski
> > > <lukma at denx.de>; Miquel Raynal <miquel.raynal at bootlin.com>; Marek
> > > Vasut <marex at denx.de>; Bin Meng <bmeng.cn at gmail.com>; Simon
> > > Goldschmidt <simon.k.r.goldschmidt at gmail.com>; Markus Klotzbuecher
> > > <markus.klotzbuecher at kistler.com>; Baruch Siach <baruch at tkos.co.il>;
> > > Harald Seiler <hws at denx.de>; Joel Johnson <mrjoel at lixil.net>;
> > > Anatolij Gustschin <agust at denx.de>; Priyanka Jain
> > > <priyanka.jain at nxp.com>; Madalin Bucur (OSS)
> > > <madalin.bucur at oss.nxp.com>; Gervais, Francois
> > > <FGervais at distech-controls.com>; Udit Agarwal
> <udit.agarwal at nxp.com>
> > > Subject: Re: [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to
> > > CONFIG_$(SPL_TPL_)DM_SPI*
> > >
> > > On Wed, Jun 03, 2020 at 12:10:30AM +0530, Jagan Teki wrote:
> > > > 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.
> > >
> > > It comes down to where are we at with everything again?  I'm not
> > > saying you have to be the one to split the code out.  But from what
> > > I recall of the thread last week, for mxc_spi we get back to "i.MX6
> > > is having problems with size for DM+SPL".  So we can't just "OK, no
> > > more i.MX6 support".  Full U-Boot needs to be, and I believe is,
> converted.
> > >
> > > So I guess the next question I have really is for Hou Zhiqiang and
> > > is, do you need this series as part of fixing / converting the eSPI
> > > driver and getting NXP platforms converted?  Thanks!
> >
> > Yes, the eSPI DM converting depends on this series, since the SPL now is
> non-DM.
> 
> But, I was wonder why it would touch other drivers, other than fsl_espi.c ?

This series is not belong to eSPI converting patchset, the author of this series
is Lukasz, I help to rebase them to the latest code base, because the eSPI
converting patch depends on this series.

Thanks,
Zhiqiang

> 
> Jagan.


More information about the U-Boot mailing list