All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv4 0/3] spi: Split CONFIG_DM_SPI* to CONFIG_{SPL_TPL}DM_SPI*
@ 2020-06-02 13:11 Zhiqiang Hou
  2020-06-02 13:11 ` [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a) Zhiqiang Hou
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Zhiqiang Hou @ 2020-06-02 13:11 UTC (permalink / raw)
  To: u-boot

From: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>

Rebased the patch set below, and fixed build warning on ls1046a by
removing SPL_DM_SPI from target ls1046 boards.
https://patchwork.ozlabs.org/project/uboot/list/?series=129069&archive=both&state=*

Lukasz Majewski (3):
  spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a)
  spi: Move DM_SPI_FLASH and SPI_FLASH_DATAFLASH to Kconfig (for
    ls1021aXXX)
  spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*

 arch/arm/Kconfig                            | 21 +++++++++++++++++++--
 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 ++--
 drivers/spi/sh_qspi.c                       |  4 ++--
 env/sf.c                                    |  2 +-
 include/configs/ls1021aiot.h                |  6 ------
 include/configs/ls1021aqds.h                |  5 -----
 include/configs/ls1021atwr.h                |  5 -----
 include/configs/ls1043a_common.h            |  2 --
 include/spi.h                               |  8 ++++----
 include/spi_flash.h                         |  2 +-
 test/dm/spi.c                               |  2 +-
 46 files changed, 120 insertions(+), 58 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a)
  2020-06-02 13:11 [PATCHv4 0/3] spi: Split CONFIG_DM_SPI* to CONFIG_{SPL_TPL}DM_SPI* Zhiqiang Hou
@ 2020-06-02 13:11 ` Zhiqiang Hou
  2020-06-03  7:19   ` Priyanka Jain
  2020-06-02 13:11 ` [PATCHv4 2/3] spi: Move DM_SPI_FLASH and SPI_FLASH_DATAFLASH to Kconfig (for ls1021aXXX) Zhiqiang Hou
  2020-06-02 13:11 ` [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI* Zhiqiang Hou
  2 siblings, 1 reply; 15+ messages in thread
From: Zhiqiang Hou @ 2020-06-02 13:11 UTC (permalink / raw)
  To: u-boot

From: Lukasz Majewski <lukma@denx.de>

This patch fixes issue with defining the DM_SPI_FLASH in the
configs/include/<board.h> instead of enabling this option in Kconfig.

The problem is that CONFIG_IS_ENABLED(DM_SPI_FLASH) shows false as there
is no DM_SPI_FLASH=y in .config (but the define is set in u-boot.cfg).

As a result conversion of DM_SPI_FLASH to using CONFIG_IS_ENABLED() is not
working properly.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V4:
 - Rebase the patch, no change intended.

 arch/arm/Kconfig                 | 4 ++++
 include/configs/ls1043a_common.h | 2 --
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 21df1c415f..28b8e9354f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1501,6 +1501,8 @@ config TARGET_LS1043AQDS
 	select BOARD_LATE_INIT
 	select SUPPORT_SPL
 	select FSL_DDR_INTERACTIVE if !SPL
+	select FSL_DSPI if !SPL_NO_DSPI
+	select DM_SPI_FLASH if FSL_DSPI && !SPL_NO_DSPI
 	imply SCSI
 	imply SCSI_AHCI
 	help
@@ -1515,6 +1517,8 @@ config TARGET_LS1043ARDB
 	select BOARD_EARLY_INIT_F
 	select BOARD_LATE_INIT
 	select SUPPORT_SPL
+	select FSL_DSPI if !SPL_NO_DSPI
+	select DM_SPI_FLASH if FSL_DSPI && !SPL_NO_DSPI
 	help
 	  Support for Freescale LS1043ARDB platform.
 
diff --git a/include/configs/ls1043a_common.h b/include/configs/ls1043a_common.h
index 985f40412c..0857b15fe0 100644
--- a/include/configs/ls1043a_common.h
+++ b/include/configs/ls1043a_common.h
@@ -176,9 +176,7 @@
 
 /*  DSPI  */
 #ifndef SPL_NO_DSPI
-#define CONFIG_FSL_DSPI
 #ifdef CONFIG_FSL_DSPI
-#define CONFIG_DM_SPI_FLASH
 #define CONFIG_SPI_FLASH_STMICRO	/* cs0 */
 #define CONFIG_SPI_FLASH_SST		/* cs1 */
 #define CONFIG_SPI_FLASH_EON		/* cs2 */
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCHv4 2/3] spi: Move DM_SPI_FLASH and SPI_FLASH_DATAFLASH to Kconfig (for ls1021aXXX)
  2020-06-02 13:11 [PATCHv4 0/3] spi: Split CONFIG_DM_SPI* to CONFIG_{SPL_TPL}DM_SPI* Zhiqiang Hou
  2020-06-02 13:11 ` [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a) Zhiqiang Hou
@ 2020-06-02 13:11 ` Zhiqiang Hou
  2020-06-02 13:11 ` [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI* Zhiqiang Hou
  2 siblings, 0 replies; 15+ messages in thread
From: Zhiqiang Hou @ 2020-06-02 13:11 UTC (permalink / raw)
  To: u-boot

From: Lukasz Majewski <lukma@denx.de>

This patch moves the CONFIG_DM_SPI_FLASH and CONFIG_SPI_FLASH_DATAFLASH
to be defined in Kconfig, not in board specific header file
(include/configs/<board>.h).

Before this change the CONFIG_DM_SPI_FLASH was not set in .config (so it
was not possible to use CONFIG_IS_ENABLED(DM_SPI_FLASH) in SPI DM/DTS
converted drivers), but it was set in u-boot.cfg file.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
---
V4:
 - Rebase the patch, no change intended.

 arch/arm/Kconfig             | 6 ++++--
 include/configs/ls1021aiot.h | 6 ------
 include/configs/ls1021aqds.h | 5 -----
 include/configs/ls1021atwr.h | 5 -----
 4 files changed, 4 insertions(+), 18 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 28b8e9354f..053e169e2c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1447,6 +1447,8 @@ config TARGET_LS1021AQDS
 	select SUPPORT_SPL
 	select SYS_FSL_DDR
 	select FSL_DDR_INTERACTIVE
+	select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
+	select SPI_FLASH_DATAFLASH if FSL_DSPI || FSL_QSPI
 	imply SCSI
 
 config TARGET_LS1021ATWR
@@ -1460,6 +1462,7 @@ config TARGET_LS1021ATWR
 	select CPU_V7_HAS_VIRT
 	select LS1_DEEP_SLEEP
 	select SUPPORT_SPL
+	select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
 	imply SCSI
 
 config TARGET_LS1021ATSN
@@ -1484,6 +1487,7 @@ config TARGET_LS1021AIOT
 	select CPU_V7_HAS_NONSEC
 	select CPU_V7_HAS_VIRT
 	select SUPPORT_SPL
+	select DM_SPI_FLASH if FSL_DSPI || FSL_QSPI
 	imply SCSI
 	help
 	  Support for Freescale LS1021AIOT platform.
@@ -1935,5 +1939,3 @@ config SPL_LDSCRIPT
 	default "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds" if (ARCH_MX23 || ARCH_MX28) && !SPL_FRAMEWORK
 	default "arch/arm/cpu/arm1136/u-boot-spl.lds" if CPU_ARM1136
 	default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
-
-
diff --git a/include/configs/ls1021aiot.h b/include/configs/ls1021aiot.h
index 6e94a2a4c9..8993fb2267 100644
--- a/include/configs/ls1021aiot.h
+++ b/include/configs/ls1021aiot.h
@@ -139,12 +139,6 @@
 #define CONFIG_SPI_FLASH_SPANSION
 #endif
 
-/* DM SPI */
-#if defined(CONFIG_FSL_DSPI) || defined(CONFIG_FSL_QSPI)
-#define CONFIG_CMD_SF
-#define CONFIG_DM_SPI_FLASH
-#endif
-
 /*
  * eTSEC
  */
diff --git a/include/configs/ls1021aqds.h b/include/configs/ls1021aqds.h
index e069467b53..0779b595c3 100644
--- a/include/configs/ls1021aqds.h
+++ b/include/configs/ls1021aqds.h
@@ -363,11 +363,6 @@ unsigned long get_board_ddr_clk(void);
  * MMC
  */
 
-/* DM SPI */
-#if defined(CONFIG_FSL_DSPI) || defined(CONFIG_FSL_QSPI)
-#define CONFIG_DM_SPI_FLASH
-#endif
-
 /*
  * Video
  */
diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
index 53a10ba4dd..16c30d09dc 100644
--- a/include/configs/ls1021atwr.h
+++ b/include/configs/ls1021atwr.h
@@ -234,11 +234,6 @@
  * MMC
  */
 
-/* DM SPI */
-#if defined(CONFIG_FSL_DSPI) || defined(CONFIG_FSL_QSPI)
-#define CONFIG_DM_SPI_FLASH
-#endif
-
 /*
  * Video
  */
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 13:11 [PATCHv4 0/3] spi: Split CONFIG_DM_SPI* to CONFIG_{SPL_TPL}DM_SPI* Zhiqiang Hou
  2020-06-02 13:11 ` [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a) Zhiqiang Hou
  2020-06-02 13:11 ` [PATCHv4 2/3] spi: Move DM_SPI_FLASH and SPI_FLASH_DATAFLASH to Kconfig (for ls1021aXXX) Zhiqiang Hou
@ 2020-06-02 13:11 ` Zhiqiang Hou
  2020-06-02 13:29   ` Jagan Teki
  2 siblings, 1 reply; 15+ messages in thread
From: Zhiqiang Hou @ 2020-06-02 13:11 UTC (permalink / raw)
  To: u-boot

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 ++--
 drivers/spi/sh_qspi.c                       |  4 ++--
 env/sf.c                                    |  2 +-
 include/spi.h                               |  8 ++++----
 include/spi_flash.h                         |  2 +-
 test/dm/spi.c                               |  2 +-
 42 files changed, 112 insertions(+), 38 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 053e169e2c..eb4ee84601 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -549,6 +549,7 @@ config TARGET_GPLUGD
 config ARCH_DAVINCI
 	bool "TI DaVinci"
 	select CPU_ARM926EJS
+	select SPL_DM_SPI if SPL
 	imply CMD_SAVES
 	help
 	  Support for TI's DaVinci platform.
@@ -566,6 +567,8 @@ config ARCH_MVEBU
 	select DM_SERIAL
 	select DM_SPI
 	select DM_SPI_FLASH
+	select SPL_DM_SPI if SPL
+	select SPL_DM_SPI_FLASH if SPL
 	select OF_CONTROL
 	select OF_SEPARATE
 	select SPI
@@ -985,6 +988,8 @@ config ARCH_SOCFPGA
 	imply FAT_WRITE
 	imply SPL
 	imply SPL_DM
+	imply SPL_DM_SPI
+	imply SPL_DM_SPI_FLASH
 	imply SPL_LIBDISK_SUPPORT
 	imply SPL_MMC_SUPPORT
 	imply SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION
@@ -1093,6 +1098,8 @@ config ARCH_ZYNQ
 	select SPL_BOARD_INIT if SPL
 	select SPL_CLK if SPL
 	select SPL_DM if SPL
+	select SPL_DM_SPI if SPL
+	select SPL_DM_SPI_FLASH if SPL
 	select SPL_OF_CONTROL if SPL
 	select SPL_SEPARATE_BSS if SPL
 	select SUPPORT_SPL
@@ -1131,6 +1138,8 @@ config ARCH_ZYNQMP
 	select OF_CONTROL
 	select SPL_BOARD_INIT if SPL
 	select SPL_CLK if SPL
+	select SPL_DM_SPI if SPI
+	select SPL_DM_SPI_FLASH if SPL_DM_SPI
 	select SPL_DM_MAILBOX if SPL
 	select SPL_FIRMWARE if SPL
 	select SPL_SEPARATE_BSS if SPL
@@ -1688,6 +1697,8 @@ config ARCH_ROCKCHIP
 	select OF_CONTROL
 	select SPI
 	select SPL_DM if SPL
+	select SPL_DM_SPI if SPL
+	select SPL_DM_SPI_FLASH if SPL
 	select SYS_MALLOC_F
 	select SYS_THUMB_BUILD if !ARM64
 	imply ADC
diff --git a/board/l+g/vinco/vinco.c b/board/l+g/vinco/vinco.c
index 5a998e37d8..440838c112 100644
--- a/board/l+g/vinco/vinco.c
+++ b/board/l+g/vinco/vinco.c
@@ -34,7 +34,7 @@
 DECLARE_GLOBAL_DATA_PTR;
 
 /* FIXME gpio code here need to handle through DM_GPIO */
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 int spi_cs_is_valid(unsigned int bus, unsigned int cs)
 {
 	return bus == 0 && cs == 0;
@@ -167,7 +167,7 @@ int board_init(void)
 	/* adress of boot parameters */
 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 	vinco_spi0_hw_init();
 #endif
 
diff --git a/cmd/sf.c b/cmd/sf.c
index 727837d9cd..66ea43a44f 100644
--- a/cmd/sf.c
+++ b/cmd/sf.c
@@ -91,7 +91,7 @@ static int do_spi_flash_probe(int argc, char *const argv[])
 	unsigned int speed = CONFIG_SF_DEFAULT_SPEED;
 	unsigned int mode = CONFIG_SF_DEFAULT_MODE;
 	char *endp;
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 	struct udevice *new, *bus_dev;
 	int ret;
 #else
@@ -124,7 +124,7 @@ static int do_spi_flash_probe(int argc, char *const argv[])
 			return -1;
 	}
 
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 	/* Remove the old device, otherwise probe will just be a nop */
 	ret = spi_find_bus_and_cs(bus, cs, &bus_dev, &new);
 	if (!ret) {
diff --git a/cmd/spi.c b/cmd/spi.c
index aec912167c..4aea191412 100644
--- a/cmd/spi.c
+++ b/cmd/spi.c
@@ -38,7 +38,7 @@ static int do_spi_xfer(int bus, int cs)
 	struct spi_slave *slave;
 	int ret = 0;
 
-#ifdef CONFIG_DM_SPI
+#if CONFIG_IS_ENABLED(DM_SPI)
 	char name[30], *str;
 	struct udevice *dev;
 
@@ -63,7 +63,7 @@ static int do_spi_xfer(int bus, int cs)
 		goto done;
 	ret = spi_xfer(slave, bitlen, dout, din,
 		       SPI_XFER_BEGIN | SPI_XFER_END);
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 	/* We don't get an error code in this case */
 	if (ret)
 		ret = -EIO;
@@ -79,7 +79,7 @@ static int do_spi_xfer(int bus, int cs)
 	}
 done:
 	spi_release_bus(slave);
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 	spi_free_slave(slave);
 #endif
 
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index 414b6f396d..58b74ab74e 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -739,6 +739,11 @@ config SPL_DM_SPI
 	help
 	  Enable support for SPI DM drivers in SPL.
 
+config SPL_DM_SPI_FLASH
+	bool "Support SPI DM FLASH drivers in SPL"
+	help
+	  Enable support for SPI DM flash drivers in SPL.
+
 endif
 if SPL_UBI
 config SPL_UBI_LOAD_BY_VOLNAME
@@ -1075,6 +1080,11 @@ config SPL_SPI_FLASH_SFDP_SUPPORT
 	 SPI NOR flashes using Serial Flash Discoverable Parameters (SFDP)
 	 tables as per JESD216 standard in SPL.
 
+config SPL_SPI_FLASH_MTD
+	bool "Support for SPI flash MTD drivers in SPL"
+	help
+	  Enable support for SPI flash MTD drivers in SPL.
+
 config SPL_SPI_LOAD
 	bool "Support loading from SPI flash"
 	help
@@ -1482,6 +1492,16 @@ config TPL_SPI_SUPPORT
 	  Enable support for using SPI in TPL. See SPL_SPI_SUPPORT for
 	  details.
 
+config TPL_DM_SPI
+	bool "Support SPI DM drivers in TPL"
+	help
+	  Enable support for SPI DM drivers in TPL.
+
+config TPL_DM_SPI_FLASH
+	bool "Support SPI DM FLASH drivers in TPL"
+	help
+	  Enable support for SPI DM flash drivers in TPL.
+
 config TPL_YMODEM_SUPPORT
 	bool "Support loading using Ymodem"
 	depends on TPL_SERIAL_SUPPORT
diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
index 42942e9ed4..47c94ce73b 100644
--- a/configs/am57xx_evm_defconfig
+++ b/configs/am57xx_evm_defconfig
@@ -76,6 +76,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_SPI_FLASH_SPANSION=y
@@ -94,6 +95,7 @@ CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
diff --git a/configs/am57xx_hs_evm_defconfig b/configs/am57xx_hs_evm_defconfig
index f80ec38004..5c8c5d53cf 100644
--- a/configs/am57xx_hs_evm_defconfig
+++ b/configs/am57xx_hs_evm_defconfig
@@ -72,6 +72,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_SPI_FLASH_SPANSION=y
@@ -90,6 +91,7 @@ CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
diff --git a/configs/am57xx_hs_evm_usb_defconfig b/configs/am57xx_hs_evm_usb_defconfig
index 3b155cc202..0a1bcfd41f 100644
--- a/configs/am57xx_hs_evm_usb_defconfig
+++ b/configs/am57xx_hs_evm_usb_defconfig
@@ -78,6 +78,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_SPI_FLASH_BAR=y
@@ -97,6 +98,7 @@ CONFIG_DM_REGULATOR_PALMAS=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_USB=y
 CONFIG_DM_USB=y
diff --git a/configs/axm_defconfig b/configs/axm_defconfig
index 1ae78463d4..bbf98b0b04 100644
--- a/configs/axm_defconfig
+++ b/configs/axm_defconfig
@@ -63,6 +63,8 @@ CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
 CONFIG_NAND_ATMEL=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
diff --git a/configs/chromebook_link64_defconfig b/configs/chromebook_link64_defconfig
index a13f6eac80..b3f7a215d9 100644
--- a/configs/chromebook_link64_defconfig
+++ b/configs/chromebook_link64_defconfig
@@ -30,6 +30,8 @@ CONFIG_SPL_SYS_MALLOC_SIMPLE=y
 CONFIG_SPL_CPU_SUPPORT=y
 CONFIG_SPL_ENV_SUPPORT=y
 CONFIG_SPL_I2C_SUPPORT=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPL_NET_SUPPORT=y
 CONFIG_SPL_PCI=y
 CONFIG_SPL_PCH_SUPPORT=y
diff --git a/configs/chromebook_samus_tpl_defconfig b/configs/chromebook_samus_tpl_defconfig
index a12a04b0bf..0a514517ea 100644
--- a/configs/chromebook_samus_tpl_defconfig
+++ b/configs/chromebook_samus_tpl_defconfig
@@ -31,11 +31,15 @@ CONFIG_BLOBLIST_SIZE=0x1000
 CONFIG_BLOBLIST_ADDR=0xff7c0000
 CONFIG_HANDOFF=y
 CONFIG_SPL_SEPARATE_BSS=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPL_NET_SUPPORT=y
 CONFIG_SPL_PCI=y
 CONFIG_SPL_PCH_SUPPORT=y
 CONFIG_TPL_PCI=y
 CONFIG_TPL_PCH_SUPPORT=y
+CONFIG_TPL_DM_SPI=y
+CONFIG_TPL_DM_SPI_FLASH=y
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_CPU=y
 CONFIG_CMD_GPIO=y
diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
index e4547d9dcc..019fe0d217 100644
--- a/configs/dra7xx_evm_defconfig
+++ b/configs/dra7xx_evm_defconfig
@@ -83,6 +83,7 @@ CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_SPI_FLASH_SPANSION=y
@@ -105,6 +106,7 @@ CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
diff --git a/configs/dra7xx_hs_evm_defconfig b/configs/dra7xx_hs_evm_defconfig
index c08bcce903..e14d4186ff 100644
--- a/configs/dra7xx_hs_evm_defconfig
+++ b/configs/dra7xx_hs_evm_defconfig
@@ -86,6 +86,7 @@ CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 CONFIG_SYS_NAND_BUSWIDTH_16BIT=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_SPI_FLASH_SPANSION=y
@@ -108,6 +109,7 @@ CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
diff --git a/configs/dra7xx_hs_evm_usb_defconfig b/configs/dra7xx_hs_evm_usb_defconfig
index 879c2b650b..7bb1cbb7af 100644
--- a/configs/dra7xx_hs_evm_usb_defconfig
+++ b/configs/dra7xx_hs_evm_usb_defconfig
@@ -83,6 +83,7 @@ CONFIG_SPL_MMC_HS200_SUPPORT=y
 CONFIG_MMC_OMAP_HS=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_MODE=0
 CONFIG_SF_DEFAULT_SPEED=76800000
 CONFIG_SPI_FLASH_BAR=y
@@ -105,6 +106,7 @@ CONFIG_DM_SCSI=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TI_QSPI=y
 CONFIG_TIMER=y
 CONFIG_OMAP_TIMER=y
diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig
index 4deb4e219f..175fdbaeca 100644
--- a/configs/j721e_evm_a72_defconfig
+++ b/configs/j721e_evm_a72_defconfig
@@ -120,6 +120,7 @@ CONFIG_FLASH_CFI_MTD=y
 CONFIG_SYS_FLASH_CFI=y
 CONFIG_HBMC_AM654=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
 CONFIG_SPI_FLASH_MTD=y
@@ -146,6 +147,7 @@ CONFIG_DM_SERIAL=y
 CONFIG_SOC_TI=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_CADENCE_QSPI=y
 CONFIG_SYSRESET=y
 CONFIG_SPL_SYSRESET=y
diff --git a/configs/j721e_evm_r5_defconfig b/configs/j721e_evm_r5_defconfig
index ee9217aee2..60ad84ae38 100644
--- a/configs/j721e_evm_r5_defconfig
+++ b/configs/j721e_evm_r5_defconfig
@@ -89,6 +89,7 @@ CONFIG_SPL_MMC_SDHCI_ADMA=y
 CONFIG_MMC_SDHCI_AM654=y
 CONFIG_MTD=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_SFDP_SUPPORT=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PINCTRL=y
@@ -112,6 +113,7 @@ CONFIG_DM_SERIAL=y
 CONFIG_SOC_TI=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_CADENCE_QSPI=y
 CONFIG_SYSRESET=y
 CONFIG_SPL_SYSRESET=y
diff --git a/configs/ls1021aiot_qspi_defconfig b/configs/ls1021aiot_qspi_defconfig
index cb73a04b35..5f576b4255 100644
--- a/configs/ls1021aiot_qspi_defconfig
+++ b/configs/ls1021aiot_qspi_defconfig
@@ -17,6 +17,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
+CONFIG_CMD_SF=y
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="ls1021a-iot-duart"
 CONFIG_ENV_IS_IN_SPI_FLASH=y
@@ -44,6 +45,7 @@ CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_FSL_DSPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
diff --git a/configs/ls1021aiot_sdcard_defconfig b/configs/ls1021aiot_sdcard_defconfig
index 10b6930914..c2c24c39a4 100644
--- a/configs/ls1021aiot_sdcard_defconfig
+++ b/configs/ls1021aiot_sdcard_defconfig
@@ -22,6 +22,7 @@ CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
 CONFIG_CMD_EXT2=y
 CONFIG_CMD_FAT=y
+CONFIG_CMD_SF=y
 # CONFIG_SPL_EFI_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="ls1021a-iot-duart"
@@ -50,6 +51,7 @@ CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_FSL_DSPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
diff --git a/configs/ls1021aqds_qspi_defconfig b/configs/ls1021aqds_qspi_defconfig
index f91534cfdd..0542c5c303 100644
--- a/configs/ls1021aqds_qspi_defconfig
+++ b/configs/ls1021aqds_qspi_defconfig
@@ -64,6 +64,7 @@ CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_FSL_DSPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
diff --git a/configs/ls1021aqds_sdcard_qspi_defconfig b/configs/ls1021aqds_sdcard_qspi_defconfig
index 9871c8edf4..fd49917505 100644
--- a/configs/ls1021aqds_sdcard_qspi_defconfig
+++ b/configs/ls1021aqds_sdcard_qspi_defconfig
@@ -76,6 +76,7 @@ CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPIy=y
 CONFIG_FSL_DSPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
diff --git a/configs/ls1021atwr_qspi_defconfig b/configs/ls1021atwr_qspi_defconfig
index 4c82d66899..8ef0589334 100644
--- a/configs/ls1021atwr_qspi_defconfig
+++ b/configs/ls1021atwr_qspi_defconfig
@@ -62,6 +62,7 @@ CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPI_DM_SPI=y
 CONFIG_FSL_DSPI=y
 CONFIG_FSL_QSPI=y
 CONFIG_USB=y
diff --git a/configs/sama5d2_xplained_spiflash_defconfig b/configs/sama5d2_xplained_spiflash_defconfig
index 43d493bf9c..377d6a32d0 100644
--- a/configs/sama5d2_xplained_spiflash_defconfig
+++ b/configs/sama5d2_xplained_spiflash_defconfig
@@ -66,6 +66,8 @@ CONFIG_DM_MMC=y
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_ATMEL=y
 CONFIG_MTD=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=30000000
 CONFIG_SPI_FLASH_ATMEL=y
diff --git a/configs/sama5d3xek_spiflash_defconfig b/configs/sama5d3xek_spiflash_defconfig
index 6a76d7c9c0..47615464a5 100644
--- a/configs/sama5d3xek_spiflash_defconfig
+++ b/configs/sama5d3xek_spiflash_defconfig
@@ -8,12 +8,12 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x2000
 CONFIG_ENV_SIZE=0x2000
-CONFIG_ENV_OFFSET=0x6000
 CONFIG_ENV_SECT_SIZE=0x1000
-CONFIG_SYS_SPI_U_BOOT_OFFS=0x10000
-CONFIG_DM_GPIO=y
+CONFIG_ENV_OFFSET=0x6000
 CONFIG_SPL_SERIAL_SUPPORT=y
 CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0x10000
+CONFIG_DM_GPIO=y
 CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
 CONFIG_DEBUG_UART_BOARD_INIT=y
@@ -22,6 +22,7 @@ CONFIG_DEBUG_UART_CLOCK=132000000
 CONFIG_SPL_SPI_FLASH_SUPPORT=y
 CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_SPL_TEXT_BASE=0x300000
+CONFIG_SPL_DM_SPI=y
 CONFIG_DEBUG_UART=y
 CONFIG_ENV_VARS_UBOOT_CONFIG=y
 CONFIG_FIT=y
diff --git a/configs/sama5d4_xplained_spiflash_defconfig b/configs/sama5d4_xplained_spiflash_defconfig
index 3be18e65a4..8c43fc785b 100644
--- a/configs/sama5d4_xplained_spiflash_defconfig
+++ b/configs/sama5d4_xplained_spiflash_defconfig
@@ -67,6 +67,7 @@ CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
 CONFIG_NAND_ATMEL=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=30000000
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_DM_ETH=y
@@ -80,6 +81,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_ATMEL_USART=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TIMER=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_PIT_TIMER=y
diff --git a/configs/sama5d4ek_spiflash_defconfig b/configs/sama5d4ek_spiflash_defconfig
index a7541a22d6..a4addddffb 100644
--- a/configs/sama5d4ek_spiflash_defconfig
+++ b/configs/sama5d4ek_spiflash_defconfig
@@ -64,6 +64,7 @@ CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
 CONFIG_NAND_ATMEL=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SF_DEFAULT_SPEED=30000000
 CONFIG_SPI_FLASH_ATMEL=y
 CONFIG_DM_ETH=y
@@ -77,6 +78,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_ATMEL_USART=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_TIMER=y
 CONFIG_SPL_TIMER=y
 CONFIG_ATMEL_PIT_TIMER=y
diff --git a/configs/stm32mp15_basic_defconfig b/configs/stm32mp15_basic_defconfig
index c7dd2926c9..87f15bd3db 100644
--- a/configs/stm32mp15_basic_defconfig
+++ b/configs/stm32mp15_basic_defconfig
@@ -90,6 +90,7 @@ CONFIG_MTD_RAW_NAND=y
 CONFIG_NAND_STM32_FMC2=y
 CONFIG_MTD_SPI_NAND=y
 CONFIG_DM_SPI_FLASH=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_MACRONIX=y
 CONFIG_SPI_FLASH_SPANSION=y
 CONFIG_SPI_FLASH_STMICRO=y
@@ -120,6 +121,7 @@ CONFIG_RTC_STM32=y
 CONFIG_SERIAL_RX_BUFFER=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y
+CONFIG_SPL_DM_SPI=y
 CONFIG_STM32_QSPI=y
 CONFIG_STM32_SPI=y
 CONFIG_USB=y
diff --git a/configs/taurus_defconfig b/configs/taurus_defconfig
index 19d85f9b5a..5149365617 100644
--- a/configs/taurus_defconfig
+++ b/configs/taurus_defconfig
@@ -71,6 +71,8 @@ CONFIG_MTD=y
 CONFIG_MTD_RAW_NAND=y
 # CONFIG_SYS_NAND_USE_FLASH_BBT is not set
 CONFIG_NAND_ATMEL=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_SPL_DM_SPI_FLASH=y
 CONFIG_DM_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_PHYLIB=y
diff --git a/drivers/mtd/spi/Makefile b/drivers/mtd/spi/Makefile
index b5dfa300de..952fd1e45a 100644
--- a/drivers/mtd/spi/Makefile
+++ b/drivers/mtd/spi/Makefile
@@ -3,7 +3,7 @@
 # (C) Copyright 2006
 # Wolfgang Denk, DENX Software Engineering, wd at denx.de.
 
-obj-$(CONFIG_DM_SPI_FLASH) += sf-uclass.o
+obj-$(CONFIG_$(SPL_TPL_)DM_SPI_FLASH) += sf-uclass.o
 spi-nor-y := sf_probe.o spi-nor-ids.o
 
 ifdef CONFIG_SPL_BUILD
@@ -19,5 +19,5 @@ endif
 
 obj-$(CONFIG_SPI_FLASH) += spi-nor.o
 obj-$(CONFIG_SPI_FLASH_DATAFLASH) += sf_dataflash.o
-obj-$(CONFIG_$(SPL_)SPI_FLASH_MTD) += sf_mtd.o
+obj-$(CONFIG_$(SPL_TPL_)SPI_FLASH_MTD) += sf_mtd.o
 obj-$(CONFIG_SPI_FLASH_SANDBOX) += sandbox.o
diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
index c2e51f9c68..444770f3e5 100644
--- a/drivers/mtd/spi/sf_probe.c
+++ b/drivers/mtd/spi/sf_probe.c
@@ -54,7 +54,7 @@ err_read_id:
 	return ret;
 }
 
-#ifndef CONFIG_DM_SPI_FLASH
+#if !CONFIG_IS_ENABLED(DM_SPI_FLASH)
 struct spi_flash *spi_flash_probe(unsigned int busnum, unsigned int cs,
 				  unsigned int max_hz, unsigned int spi_mode)
 {
diff --git a/drivers/net/fm/fm.c b/drivers/net/fm/fm.c
index 8ab1816395..bbb1738c4b 100644
--- a/drivers/net/fm/fm.c
+++ b/drivers/net/fm/fm.c
@@ -383,7 +383,7 @@ int fm_init_common(int index, struct ccsr_fman *reg)
 		addr = malloc(CONFIG_SYS_QE_FMAN_FW_LENGTH);
 		int ret = 0;
 
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 		struct udevice *new;
 
 		/* speed and mode will be read from DT */
@@ -470,7 +470,7 @@ int fm_init_common(int index, struct ccsr_fman *reg)
 	void *addr = malloc(CONFIG_SYS_QE_FMAN_FW_LENGTH);
 	int ret = 0;
 
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 	struct udevice *new;
 
 	/* speed and mode will be read from DT */
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index 6441694c8d..11d8d22cef 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -4,7 +4,7 @@
 # Wolfgang Denk, DENX Software Engineering, wd at denx.de.
 
 # There are many options which enable SPI, so make this library available
-ifdef CONFIG_DM_SPI
+ifdef CONFIG_$(SPL_TPL_)DM_SPI
 obj-y += spi-uclass.o
 obj-$(CONFIG_SANDBOX) += spi-emul-uclass.o
 obj-$(CONFIG_SOFT_SPI) += soft_spi.o
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
index f076e92a93..e2f2b3be44 100644
--- a/drivers/spi/atmel_spi.c
+++ b/drivers/spi/atmel_spi.c
@@ -14,7 +14,7 @@
 
 #include <asm/arch/clk.h>
 #include <asm/arch/hardware.h>
-#ifdef CONFIG_DM_SPI
+#if CONFIG_IS_ENABLED(DM_SPI)
 #include <asm/arch/at91_spi.h>
 #endif
 #if CONFIG_IS_ENABLED(DM_GPIO)
@@ -23,7 +23,7 @@
 
 #include "atmel_spi.h"
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 
 static int spi_has_wdrbt(struct atmel_spi_slave *slave)
 {
diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c
index 97ac97b1a5..f619534764 100644
--- a/drivers/spi/davinci_spi.c
+++ b/drivers/spi/davinci_spi.c
@@ -55,7 +55,7 @@
 /* SPIDEF */
 #define SPIDEF_CSDEF0_MASK	BIT(0)
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 #define SPI0_BUS		0
 #define SPI0_BASE		CONFIG_SYS_SPI_BASE
 /*
@@ -122,7 +122,7 @@ struct davinci_spi_regs {
 
 /* davinci spi slave */
 struct davinci_spi_slave {
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 	struct spi_slave slave;
 #endif
 	struct davinci_spi_regs *regs;
@@ -346,7 +346,7 @@ out:
 	return 0;
 }
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 
 static inline struct davinci_spi_slave *to_davinci_spi(struct spi_slave *slave)
 {
diff --git a/drivers/spi/fsl_dspi.c b/drivers/spi/fsl_dspi.c
index 1cdb233110..d9575aaf54 100644
--- a/drivers/spi/fsl_dspi.c
+++ b/drivers/spi/fsl_dspi.c
@@ -100,7 +100,7 @@ struct fsl_dspi_priv {
 	struct dspi *regs;
 };
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 struct fsl_dspi {
 	struct spi_slave slave;
 	struct fsl_dspi_priv priv;
@@ -414,7 +414,8 @@ static int fsl_dspi_cfg_speed(struct fsl_dspi_priv *priv, uint speed)
 
 	return 0;
 }
-#ifndef CONFIG_DM_SPI
+
+#if !CONFIG_IS_ENABLED(DM_SPI)
 int spi_cs_is_valid(unsigned int bus, unsigned int cs)
 {
 	if (((cs >= 0) && (cs < 8)) && ((bus >= 0) && (bus < 8)))
diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index 01fcf6bef5..60ca09f2ac 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -94,7 +94,7 @@ static int _spi_xfer(struct kwspi_registers *reg, unsigned int bitlen,
 	return 0;
 }
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 
 static struct kwspi_registers *spireg =
 	(struct kwspi_registers *)MVEBU_SPI_BASE;
diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c
index f52ebf4d67..aad3780365 100644
--- a/drivers/spi/mxc_spi.c
+++ b/drivers/spi/mxc_spi.c
@@ -67,7 +67,7 @@ static inline struct mxc_spi_slave *to_mxc_spi_slave(struct spi_slave *slave)
 
 static void mxc_spi_cs_activate(struct mxc_spi_slave *mxcs)
 {
-#if defined(CONFIG_DM_SPI)
+#if CONFIG_IS_ENABLED(DM_SPI)
 	struct udevice *dev = mxcs->dev;
 	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
 
@@ -85,7 +85,7 @@ static void mxc_spi_cs_activate(struct mxc_spi_slave *mxcs)
 
 static void mxc_spi_cs_deactivate(struct mxc_spi_slave *mxcs)
 {
-#if defined(CONFIG_DM_SPI)
+#if CONFIG_IS_ENABLED(DM_SPI)
 	struct udevice *dev = mxcs->dev;
 	struct dm_spi_slave_platdata *slave_plat = dev_get_parent_platdata(dev);
 
@@ -415,7 +415,7 @@ static int mxc_spi_claim_bus_internal(struct mxc_spi_slave *mxcs, int cs)
 	return 0;
 }
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *dout,
 		void *din, unsigned long flags)
 {
diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c
index 6a615d1498..ae08531f1e 100644
--- a/drivers/spi/omap3_spi.c
+++ b/drivers/spi/omap3_spi.c
@@ -109,7 +109,7 @@ struct mcspi {
 };
 
 struct omap3_spi_priv {
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 	struct spi_slave slave;
 #endif
 	struct mcspi *regs;
@@ -455,7 +455,7 @@ static void _omap3_spi_claim_bus(struct omap3_spi_priv *priv)
 	writel(conf, &priv->regs->modulctrl);
 }
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 
 static inline struct omap3_spi_priv *to_omap3_spi(struct spi_slave *slave)
 {
diff --git a/drivers/spi/sh_qspi.c b/drivers/spi/sh_qspi.c
index 2839dd1ceb..aa1c03047e 100644
--- a/drivers/spi/sh_qspi.c
+++ b/drivers/spi/sh_qspi.c
@@ -68,7 +68,7 @@ struct sh_qspi_regs {
 };
 
 struct sh_qspi_slave {
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 	struct spi_slave	slave;
 #endif
 	struct sh_qspi_regs	*regs;
@@ -223,7 +223,7 @@ static int sh_qspi_xfer_common(struct sh_qspi_slave *ss, unsigned int bitlen,
 	return ret;
 }
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 static inline struct sh_qspi_slave *to_sh_qspi(struct spi_slave *slave)
 {
 	return container_of(slave, struct sh_qspi_slave, slave);
diff --git a/env/sf.c b/env/sf.c
index 23de5a3495..a4106807c7 100644
--- a/env/sf.c
+++ b/env/sf.c
@@ -38,7 +38,7 @@ static struct spi_flash *env_flash;
 
 static int setup_flash_device(void)
 {
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 	struct udevice *new;
 	int	ret;
 
diff --git a/include/spi.h b/include/spi.h
index 5cc6d6e008..9b4fb8dc0b 100644
--- a/include/spi.h
+++ b/include/spi.h
@@ -39,7 +39,7 @@
 
 #define SPI_DEFAULT_WORDLEN	8
 
-#ifdef CONFIG_DM_SPI
+#if CONFIG_IS_ENABLED(DM_SPI)
 /* TODO(sjg at chromium.org): Remove this and use max_hz from struct spi_slave */
 struct dm_spi_bus {
 	uint max_hz;
@@ -131,7 +131,7 @@ enum spi_polarity {
  * @flags:		Indication of SPI flags.
  */
 struct spi_slave {
-#ifdef CONFIG_DM_SPI
+#if CONFIG_IS_ENABLED(DM_SPI)
 	struct udevice *dev;	/* struct spi_slave is dev->parentdata */
 	uint max_hz;
 	uint speed;
@@ -317,7 +317,7 @@ void spi_flash_copy_mmap(void *data, void *offset, size_t len);
  */
 int spi_cs_is_valid(unsigned int bus, unsigned int cs);
 
-#ifndef CONFIG_DM_SPI
+#if !CONFIG_IS_ENABLED(DM_SPI)
 /**
  * Activate a SPI chipselect.
  * This function is provided by the board code when using a driver
@@ -367,7 +367,7 @@ static inline int spi_w8r8(struct spi_slave *slave, unsigned char byte)
 	return ret < 0 ? ret : din[1];
 }
 
-#ifdef CONFIG_DM_SPI
+#if CONFIG_IS_ENABLED(DM_SPI)
 
 /**
  * struct spi_cs_info - Information about a bus chip select
diff --git a/include/spi_flash.h b/include/spi_flash.h
index 0b23f57a71..e8348adec2 100644
--- a/include/spi_flash.h
+++ b/include/spi_flash.h
@@ -52,7 +52,7 @@ struct dm_spi_flash_ops {
 /* Access the serial operations for a device */
 #define sf_get_ops(dev) ((struct dm_spi_flash_ops *)(dev)->driver->ops)
 
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 /**
  * spi_flash_read_dm() - Read data from SPI flash
  *
diff --git a/test/dm/spi.c b/test/dm/spi.c
index 8e417acc5f..474008cde0 100644
--- a/test/dm/spi.c
+++ b/test/dm/spi.c
@@ -117,7 +117,7 @@ static int dm_test_spi_xfer(struct unit_test_state *uts)
 	 * Since we are about to destroy all devices, we must tell sandbox
 	 * to forget the emulation device
 	 */
-#ifdef CONFIG_DM_SPI_FLASH
+#if CONFIG_IS_ENABLED(DM_SPI_FLASH)
 	sandbox_sf_unbind_emul(state_get_current(), busnum, cs);
 #endif
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 13:11 ` [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI* Zhiqiang Hou
@ 2020-06-02 13:29   ` Jagan Teki
  2020-06-02 18:27     ` Tom Rini
  0 siblings, 1 reply; 15+ messages in thread
From: Jagan Teki @ 2020-06-02 13:29 UTC (permalink / raw)
  To: u-boot

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.

Jagan.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 13:29   ` Jagan Teki
@ 2020-06-02 18:27     ` Tom Rini
  2020-06-02 18:40       ` Jagan Teki
  0 siblings, 1 reply; 15+ messages in thread
From: Tom Rini @ 2020-06-02 18:27 UTC (permalink / raw)
  To: u-boot

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.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200602/33b6e0df/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 18:27     ` Tom Rini
@ 2020-06-02 18:40       ` Jagan Teki
  2020-06-02 19:01         ` Tom Rini
  0 siblings, 1 reply; 15+ messages in thread
From: Jagan Teki @ 2020-06-02 18:40 UTC (permalink / raw)
  To: u-boot

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.

Jagan.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 18:40       ` Jagan Teki
@ 2020-06-02 19:01         ` Tom Rini
  2020-06-02 19:11           ` Jagan Teki
  2020-06-03  1:46           ` Z.q. Hou
  0 siblings, 2 replies; 15+ messages in thread
From: Tom Rini @ 2020-06-02 19:01 UTC (permalink / raw)
  To: u-boot

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.

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!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200602/a35df26c/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 19:01         ` Tom Rini
@ 2020-06-02 19:11           ` Jagan Teki
  2020-06-03  9:48             ` Lukasz Majewski
  2020-06-03  1:46           ` Z.q. Hou
  1 sibling, 1 reply; 15+ messages in thread
From: Jagan Teki @ 2020-06-02 19:11 UTC (permalink / raw)
  To: u-boot

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.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 19:01         ` Tom Rini
  2020-06-02 19:11           ` Jagan Teki
@ 2020-06-03  1:46           ` Z.q. Hou
  2020-06-03  7:39             ` Jagan Teki
  1 sibling, 1 reply; 15+ messages in thread
From: Z.q. Hou @ 2020-06-03  1:46 UTC (permalink / raw)
  To: u-boot

Hi Tom and Jagan,

Thanks a lot for your comments!

> -----Original Message-----
> From: Tom Rini <trini@konsulko.com>
> Sent: 2020?6?3? 3:02
> To: Jagan Teki <jagan@amarulasolutions.com>; Z.q. Hou
> <zhiqiang.hou@nxp.com>
> Cc: U-Boot-Denx <u-boot@lists.denx.de>; Lokesh Vutla
> <lokeshvutla@ti.com>; Andrew F Davis <afd@ti.com>; Heiko Schocher
> <hs@denx.de>; Simon Glass <sjg@chromium.org>; Feng Li
> <feng.li_2@nxp.com>; Alison Wang <alison.wang@nxp.com>; Sumit Garg
> <sumit.garg@nxp.com>; Eugen Hristev <eugen.hristev@microchip.com>;
> Patrick Delaunay <patrick.delaunay@st.com>; Vignesh R <vigneshr@ti.com>;
> Joe Hershberger <joe.hershberger@ni.com>; Stefan Roese <sr@denx.de>;
> Wolfgang Denk <wd@denx.de>; Lukasz Majewski <lukma@denx.de>; Miquel
> Raynal <miquel.raynal@bootlin.com>; Marek Vasut <marex@denx.de>; Bin
> Meng <bmeng.cn@gmail.com>; Simon Goldschmidt
> <simon.k.r.goldschmidt@gmail.com>; Markus Klotzbuecher
> <markus.klotzbuecher@kistler.com>; Baruch Siach <baruch@tkos.co.il>;
> Harald Seiler <hws@denx.de>; Joel Johnson <mrjoel@lixil.net>; Anatolij
> Gustschin <agust@denx.de>; Priyanka Jain <priyanka.jain@nxp.com>;
> Madalin Bucur (OSS) <madalin.bucur@oss.nxp.com>; Gervais, Francois
> <FGervais@distech-controls.com>; Udit Agarwal <udit.agarwal@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@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.
> 
> 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.

Thanks,
Zhiqiang

> 
> --
> Tom

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a)
  2020-06-02 13:11 ` [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a) Zhiqiang Hou
@ 2020-06-03  7:19   ` Priyanka Jain
  2020-06-03  9:01     ` Z.q. Hou
  0 siblings, 1 reply; 15+ messages in thread
From: Priyanka Jain @ 2020-06-03  7:19 UTC (permalink / raw)
  To: u-boot

>-----Original Message-----
>From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Zhiqiang Hou
>Sent: Tuesday, June 2, 2020 6:41 PM
>To: u-boot at lists.denx.de; lokeshvutla at ti.com; afd at ti.com; hs at denx.de;
>sjg at chromium.org; feng.li_2 at nxp.com; Alison Wang
><alison.wang@nxp.com>; sumit.garg at nxp.com;
>eugen.hristev at microchip.com; patrick.delaunay at st.com;
>jagan at amarulasolutions.com; vigneshr at ti.com; joe.hershberger at ni.com;
>sr at denx.de; wd at denx.de; lukma at denx.de; miquel.raynal at bootlin.com;
>marex at denx.de; bmeng.cn at gmail.com; simon.k.r.goldschmidt at gmail.com;
>markus.klotzbuecher at kistler.com; baruch at tkos.co.il; hws at denx.de;
>mrjoel at lixil.net; agust at denx.de; Priyanka Jain <priyanka.jain@nxp.com>;
>Madalin Bucur (OSS) <madalin.bucur@oss.nxp.com>; Gervais, Francois
><FGervais@distech-controls.com>; Udit Agarwal <udit.agarwal@nxp.com>
>Cc: Z.q. Hou <zhiqiang.hou@nxp.com>
>Subject: [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's
>ls1043a)
>
>From: Lukasz Majewski <lukma@denx.de>
>
>This patch fixes issue with defining the DM_SPI_FLASH in the
>configs/include/<board.h> instead of enabling this option in Kconfig.
>
>The problem is that CONFIG_IS_ENABLED(DM_SPI_FLASH) shows false as
>there is no DM_SPI_FLASH=y in .config (but the define is set in u-boot.cfg).
>
>As a result conversion of DM_SPI_FLASH to using CONFIG_IS_ENABLED() is not
>working properly.
>
>Signed-off-by: Lukasz Majewski <lukma@denx.de>
>Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
>---
>V4:
> - Rebase the patch, no change intended.
>
> arch/arm/Kconfig                 | 4 ++++
> include/configs/ls1043a_common.h | 2 --
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
>diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index
>21df1c415f..28b8e9354f 100644
>--- a/arch/arm/Kconfig
>+++ b/arch/arm/Kconfig
>@@ -1501,6 +1501,8 @@ config TARGET_LS1043AQDS
> 	select BOARD_LATE_INIT
> 	select SUPPORT_SPL
> 	select FSL_DDR_INTERACTIVE if !SPL
>+	select FSL_DSPI if !SPL_NO_DSPI
>+	select DM_SPI_FLASH if FSL_DSPI && !SPL_NO_DSPI
Since you have already added check for !SPL_NO_DSPI in previous statement, no need to add here.
> 	imply SCSI
> 	imply SCSI_AHCI
> 	help
>@@ -1515,6 +1517,8 @@ config TARGET_LS1043ARDB
> 	select BOARD_EARLY_INIT_F
> 	select BOARD_LATE_INIT
> 	select SUPPORT_SPL
>+	select FSL_DSPI if !SPL_NO_DSPI
>+	select DM_SPI_FLASH if FSL_DSPI && !SPL_NO_DSPI
Since you have already added check for !SPL_NO_DSPI in previous statement, no need to add here.
> 	help
> 	  Support for Freescale LS1043ARDB platform.
>
>diff --git a/include/configs/ls1043a_common.h
>b/include/configs/ls1043a_common.h
>index 985f40412c..0857b15fe0 100644
>--- a/include/configs/ls1043a_common.h
>+++ b/include/configs/ls1043a_common.h
>@@ -176,9 +176,7 @@
>
> /*  DSPI  */
> #ifndef SPL_NO_DSPI
>-#define CONFIG_FSL_DSPI
> #ifdef CONFIG_FSL_DSPI
>-#define CONFIG_DM_SPI_FLASH
> #define CONFIG_SPI_FLASH_STMICRO	/* cs0 */
> #define CONFIG_SPI_FLASH_SST		/* cs1 */
> #define CONFIG_SPI_FLASH_EON		/* cs2 */
>--
>2.17.1
Thanks
Priyanka

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-03  1:46           ` Z.q. Hou
@ 2020-06-03  7:39             ` Jagan Teki
  2020-06-03  9:09               ` Z.q. Hou
  0 siblings, 1 reply; 15+ messages in thread
From: Jagan Teki @ 2020-06-03  7:39 UTC (permalink / raw)
  To: u-boot

On Wed, Jun 3, 2020 at 7:16 AM Z.q. Hou <zhiqiang.hou@nxp.com> wrote:
>
> Hi Tom and Jagan,
>
> Thanks a lot for your comments!
>
> > -----Original Message-----
> > From: Tom Rini <trini@konsulko.com>
> > Sent: 2020?6?3? 3:02
> > To: Jagan Teki <jagan@amarulasolutions.com>; Z.q. Hou
> > <zhiqiang.hou@nxp.com>
> > Cc: U-Boot-Denx <u-boot@lists.denx.de>; Lokesh Vutla
> > <lokeshvutla@ti.com>; Andrew F Davis <afd@ti.com>; Heiko Schocher
> > <hs@denx.de>; Simon Glass <sjg@chromium.org>; Feng Li
> > <feng.li_2@nxp.com>; Alison Wang <alison.wang@nxp.com>; Sumit Garg
> > <sumit.garg@nxp.com>; Eugen Hristev <eugen.hristev@microchip.com>;
> > Patrick Delaunay <patrick.delaunay@st.com>; Vignesh R <vigneshr@ti.com>;
> > Joe Hershberger <joe.hershberger@ni.com>; Stefan Roese <sr@denx.de>;
> > Wolfgang Denk <wd@denx.de>; Lukasz Majewski <lukma@denx.de>; Miquel
> > Raynal <miquel.raynal@bootlin.com>; Marek Vasut <marex@denx.de>; Bin
> > Meng <bmeng.cn@gmail.com>; Simon Goldschmidt
> > <simon.k.r.goldschmidt@gmail.com>; Markus Klotzbuecher
> > <markus.klotzbuecher@kistler.com>; Baruch Siach <baruch@tkos.co.il>;
> > Harald Seiler <hws@denx.de>; Joel Johnson <mrjoel@lixil.net>; Anatolij
> > Gustschin <agust@denx.de>; Priyanka Jain <priyanka.jain@nxp.com>;
> > Madalin Bucur (OSS) <madalin.bucur@oss.nxp.com>; Gervais, Francois
> > <FGervais@distech-controls.com>; Udit Agarwal <udit.agarwal@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@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.
> >
> > 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 ?

Jagan.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a)
  2020-06-03  7:19   ` Priyanka Jain
@ 2020-06-03  9:01     ` Z.q. Hou
  0 siblings, 0 replies; 15+ messages in thread
From: Z.q. Hou @ 2020-06-03  9:01 UTC (permalink / raw)
  To: u-boot

Hi Priyanka,

Thanks a lot for your comments!

> -----Original Message-----
> From: Priyanka Jain (OSS)
> Sent: 2020?6?3? 15:20
> To: Z.q. Hou <zhiqiang.hou@nxp.com>; u-boot at lists.denx.de;
> lokeshvutla at ti.com; afd at ti.com; hs at denx.de; sjg at chromium.org;
> feng.li_2 at nxp.com; Alison Wang <alison.wang@nxp.com>;
> sumit.garg at nxp.com; eugen.hristev at microchip.com;
> patrick.delaunay at st.com; jagan at amarulasolutions.com; vigneshr at ti.com;
> joe.hershberger at ni.com; sr at denx.de; wd at denx.de; lukma at denx.de;
> miquel.raynal at bootlin.com; marex at denx.de; bmeng.cn at gmail.com;
> simon.k.r.goldschmidt at gmail.com; markus.klotzbuecher at kistler.com;
> baruch at tkos.co.il; hws at denx.de; mrjoel at lixil.net; agust at denx.de; Madalin
> Bucur (OSS) <madalin.bucur@oss.nxp.com>; Gervais, Francois
> <FGervais@distech-controls.com>; Udit Agarwal <udit.agarwal@nxp.com>
> Cc: Z.q. Hou <zhiqiang.hou@nxp.com>
> Subject: RE: [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's
> ls1043a)
> 
> >-----Original Message-----
> >From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Zhiqiang Hou
> >Sent: Tuesday, June 2, 2020 6:41 PM
> >To: u-boot at lists.denx.de; lokeshvutla at ti.com; afd at ti.com; hs at denx.de;
> >sjg at chromium.org; feng.li_2 at nxp.com; Alison Wang
> <alison.wang@nxp.com>;
> >sumit.garg at nxp.com; eugen.hristev at microchip.com;
> >patrick.delaunay at st.com; jagan at amarulasolutions.com; vigneshr at ti.com;
> >joe.hershberger at ni.com; sr at denx.de; wd at denx.de; lukma at denx.de;
> >miquel.raynal at bootlin.com; marex at denx.de; bmeng.cn at gmail.com;
> >simon.k.r.goldschmidt at gmail.com; markus.klotzbuecher at kistler.com;
> >baruch at tkos.co.il; hws at denx.de; mrjoel at lixil.net; agust at denx.de;
> >Priyanka Jain <priyanka.jain@nxp.com>; Madalin Bucur (OSS)
> ><madalin.bucur@oss.nxp.com>; Gervais, Francois
> ><FGervais@distech-controls.com>; Udit Agarwal <udit.agarwal@nxp.com>
> >Cc: Z.q. Hou <zhiqiang.hou@nxp.com>
> >Subject: [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's
> >ls1043a)
> >
> >From: Lukasz Majewski <lukma@denx.de>
> >
> >This patch fixes issue with defining the DM_SPI_FLASH in the
> >configs/include/<board.h> instead of enabling this option in Kconfig.
> >
> >The problem is that CONFIG_IS_ENABLED(DM_SPI_FLASH) shows false as
> >there is no DM_SPI_FLASH=y in .config (but the define is set in u-boot.cfg).
> >
> >As a result conversion of DM_SPI_FLASH to using CONFIG_IS_ENABLED() is
> >not working properly.
> >
> >Signed-off-by: Lukasz Majewski <lukma@denx.de>
> >Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
> >---
> >V4:
> > - Rebase the patch, no change intended.
> >
> > arch/arm/Kconfig                 | 4 ++++
> > include/configs/ls1043a_common.h | 2 --
> > 2 files changed, 4 insertions(+), 2 deletions(-)
> >
> >diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index
> >21df1c415f..28b8e9354f 100644
> >--- a/arch/arm/Kconfig
> >+++ b/arch/arm/Kconfig
> >@@ -1501,6 +1501,8 @@ config TARGET_LS1043AQDS
> > 	select BOARD_LATE_INIT
> > 	select SUPPORT_SPL
> > 	select FSL_DDR_INTERACTIVE if !SPL
> >+	select FSL_DSPI if !SPL_NO_DSPI
> >+	select DM_SPI_FLASH if FSL_DSPI && !SPL_NO_DSPI
> Since you have already added check for !SPL_NO_DSPI in previous statement,
> no need to add here.

Make sense, will drop the redundant condition in next version.

> > 	imply SCSI
> > 	imply SCSI_AHCI
> > 	help
> >@@ -1515,6 +1517,8 @@ config TARGET_LS1043ARDB
> > 	select BOARD_EARLY_INIT_F
> > 	select BOARD_LATE_INIT
> > 	select SUPPORT_SPL
> >+	select FSL_DSPI if !SPL_NO_DSPI
> >+	select DM_SPI_FLASH if FSL_DSPI && !SPL_NO_DSPI
> Since you have already added check for !SPL_NO_DSPI in previous statement,
> no need to add here.

Ditto.

Thanks,
Zhiqiang

> > 	help
> > 	  Support for Freescale LS1043ARDB platform.
> >
> >diff --git a/include/configs/ls1043a_common.h
> >b/include/configs/ls1043a_common.h
> >index 985f40412c..0857b15fe0 100644
> >--- a/include/configs/ls1043a_common.h
> >+++ b/include/configs/ls1043a_common.h
> >@@ -176,9 +176,7 @@
> >
> > /*  DSPI  */
> > #ifndef SPL_NO_DSPI
> >-#define CONFIG_FSL_DSPI
> > #ifdef CONFIG_FSL_DSPI
> >-#define CONFIG_DM_SPI_FLASH
> > #define CONFIG_SPI_FLASH_STMICRO	/* cs0 */
> > #define CONFIG_SPI_FLASH_SST		/* cs1 */
> > #define CONFIG_SPI_FLASH_EON		/* cs2 */
> >--
> >2.17.1
> Thanks
> Priyanka

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-03  7:39             ` Jagan Teki
@ 2020-06-03  9:09               ` Z.q. Hou
  0 siblings, 0 replies; 15+ messages in thread
From: Z.q. Hou @ 2020-06-03  9:09 UTC (permalink / raw)
  To: u-boot

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@nxp.com>
> Cc: Tom Rini <trini@konsulko.com>; U-Boot-Denx <u-boot@lists.denx.de>;
> Lokesh Vutla <lokeshvutla@ti.com>; Andrew F Davis <afd@ti.com>; Heiko
> Schocher <hs@denx.de>; Simon Glass <sjg@chromium.org>; Feng Li
> <feng.li_2@nxp.com>; Alison Wang <alison.wang@nxp.com>; Sumit Garg
> <sumit.garg@nxp.com>; Eugen Hristev <eugen.hristev@microchip.com>;
> Patrick Delaunay <patrick.delaunay@st.com>; Vignesh R <vigneshr@ti.com>;
> Joe Hershberger <joe.hershberger@ni.com>; Stefan Roese <sr@denx.de>;
> Wolfgang Denk <wd@denx.de>; Lukasz Majewski <lukma@denx.de>; Miquel
> Raynal <miquel.raynal@bootlin.com>; Marek Vasut <marex@denx.de>; Bin
> Meng <bmeng.cn@gmail.com>; Simon Goldschmidt
> <simon.k.r.goldschmidt@gmail.com>; Markus Klotzbuecher
> <markus.klotzbuecher@kistler.com>; Baruch Siach <baruch@tkos.co.il>;
> Harald Seiler <hws@denx.de>; Joel Johnson <mrjoel@lixil.net>; Anatolij
> Gustschin <agust@denx.de>; Priyanka Jain <priyanka.jain@nxp.com>;
> Madalin Bucur (OSS) <madalin.bucur@oss.nxp.com>; Gervais, Francois
> <FGervais@distech-controls.com>; Udit Agarwal <udit.agarwal@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@nxp.com> wrote:
> >
> > Hi Tom and Jagan,
> >
> > Thanks a lot for your comments!
> >
> > > -----Original Message-----
> > > From: Tom Rini <trini@konsulko.com>
> > > Sent: 2020?6?3? 3:02
> > > To: Jagan Teki <jagan@amarulasolutions.com>; Z.q. Hou
> > > <zhiqiang.hou@nxp.com>
> > > Cc: U-Boot-Denx <u-boot@lists.denx.de>; Lokesh Vutla
> > > <lokeshvutla@ti.com>; Andrew F Davis <afd@ti.com>; Heiko Schocher
> > > <hs@denx.de>; Simon Glass <sjg@chromium.org>; Feng Li
> > > <feng.li_2@nxp.com>; Alison Wang <alison.wang@nxp.com>; Sumit Garg
> > > <sumit.garg@nxp.com>; Eugen Hristev <eugen.hristev@microchip.com>;
> > > Patrick Delaunay <patrick.delaunay@st.com>; Vignesh R
> > > <vigneshr@ti.com>; Joe Hershberger <joe.hershberger@ni.com>; Stefan
> > > Roese <sr@denx.de>; Wolfgang Denk <wd@denx.de>; Lukasz Majewski
> > > <lukma@denx.de>; Miquel Raynal <miquel.raynal@bootlin.com>; Marek
> > > Vasut <marex@denx.de>; Bin Meng <bmeng.cn@gmail.com>; Simon
> > > Goldschmidt <simon.k.r.goldschmidt@gmail.com>; Markus Klotzbuecher
> > > <markus.klotzbuecher@kistler.com>; Baruch Siach <baruch@tkos.co.il>;
> > > Harald Seiler <hws@denx.de>; Joel Johnson <mrjoel@lixil.net>;
> > > Anatolij Gustschin <agust@denx.de>; Priyanka Jain
> > > <priyanka.jain@nxp.com>; Madalin Bucur (OSS)
> > > <madalin.bucur@oss.nxp.com>; Gervais, Francois
> > > <FGervais@distech-controls.com>; Udit Agarwal
> <udit.agarwal@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@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.
> > >
> > > 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.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI*
  2020-06-02 19:11           ` Jagan Teki
@ 2020-06-03  9:48             ` Lukasz Majewski
  0 siblings, 0 replies; 15+ messages in thread
From: Lukasz Majewski @ 2020-06-03  9:48 UTC (permalink / raw)
  To: u-boot

Hi Jagan,

> 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

Sorry to jump in late - the mxc_spi.c's non-dm part may be needed as it
is used to have _really_ tiny SPL.

Please correct me if I misunderstood something - the non-dm part of
mxc_spi.c will NOT be removed?

> 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.




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200603/d7537693/attachment.sig>

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-06-03  9:48 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-02 13:11 [PATCHv4 0/3] spi: Split CONFIG_DM_SPI* to CONFIG_{SPL_TPL}DM_SPI* Zhiqiang Hou
2020-06-02 13:11 ` [PATCHv4 1/3] spi: Move DM_SPI_FLASH to Kconfig (for NXP's ls1043a) Zhiqiang Hou
2020-06-03  7:19   ` Priyanka Jain
2020-06-03  9:01     ` Z.q. Hou
2020-06-02 13:11 ` [PATCHv4 2/3] spi: Move DM_SPI_FLASH and SPI_FLASH_DATAFLASH to Kconfig (for ls1021aXXX) Zhiqiang Hou
2020-06-02 13:11 ` [PATCHv4 3/3] spi: Convert CONFIG_DM_SPI* to CONFIG_$(SPL_TPL_)DM_SPI* Zhiqiang Hou
2020-06-02 13:29   ` Jagan Teki
2020-06-02 18:27     ` Tom Rini
2020-06-02 18:40       ` Jagan Teki
2020-06-02 19:01         ` Tom Rini
2020-06-02 19:11           ` Jagan Teki
2020-06-03  9:48             ` Lukasz Majewski
2020-06-03  1:46           ` Z.q. Hou
2020-06-03  7:39             ` Jagan Teki
2020-06-03  9:09               ` Z.q. Hou

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.