
On Wed, Jun 3, 2020 at 12:31 AM Tom Rini trini@konsulko.com wrote:
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@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@nxp.com wrote:
From: Lukasz Majewski lukma@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@denx.de Tested-by: Adam Ford aford173@gmail.com #da850-evm Signed-off-by: Hou Zhiqiang Zhiqiang.Hou@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.
As I said No to mxc_spi, sh_qspi at this point, but rest are fine based on my series and some of the below drivers have nondm code which no board using in the tree.
drivers/spi/atmel_spi.c drivers/spi/davinci_spi.c drivers/spi/fsl_dspi.c drivers/spi/kirkwood_spi.c drivers/spi/mxc_spi.c drivers/spi/omap3_spi.c
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 fsl_espi, I would wait till MW as I mentioned before and will work to get these patches to be in proper shape before MW.
Overall, changes expect fsl_espi, mxc_spi, and sh_qspi can be fine for me.
Jagan.