[U-Boot] [PATCH 3/3] mtd: spi: Clean up usage of CONFIG_SPI_FLASH_MTD

Lukasz Majewski lukma at denx.de
Wed Oct 23 07:25:47 UTC 2019


Hi Jagan,

> On Wed, Oct 23, 2019 at 12:35 PM Schrempf Frieder
> <frieder.schrempf at kontron.de> wrote:
> >
> > Hi Jagan,
> >
> > On 22.10.19 20:16, Jagan Teki wrote:  
> > > On Sat, Sep 14, 2019 at 4:14 AM Schrempf Frieder
> > > <frieder.schrempf at kontron.de> wrote:  
> > >>
> > >> From: Frieder Schrempf <frieder.schrempf at kontron.de>
> > >>
> > >> Most boards currently use SPI_FLASH_MTD only in U-Boot proper,
> > >> not in SPL. They often rely on hacks in the board header files
> > >> to include this option conditionally. To be able to fix this, we
> > >> previously introduced a separate option SPL_SPI_FLASH_MTD.
> > >>
> > >> Therefore we can now adjust the Makefile and change the code in
> > >> sf_probe.c and sf_internal.h to use
> > >> CONFIG_IS_ENABLED(SPI_FLASH_MTD).
> > >>
> > >> We also need to move all occurences of CONFIG_SPI_FLASH_MTD from
> > >> the header files to the according defconfigs. The affected
> > >> boards are socfpga, aristainetos, cm_fx6, display5, ventana,
> > >> rcar-gen2, dh_imx6 and da850evm.
> > >>
> > >> We do this all in one patch to guarantee bisectibility.
> > >>
> > >> This change was tested with buildman to make sure it does not
> > >> introduce any regressions by comparing the resulting binary
> > >> sizes.
> > >>
> > >> Signed-off-by: Frieder Schrempf <frieder.schrempf at kontron.de>
> > >> ---
> > >>   configs/aristainetos2_defconfig        |  1 +
> > >>   configs/aristainetos2b_defconfig       |  1 +
> > >>   configs/aristainetos_defconfig         |  1 +
> > >>   configs/cm_fx6_defconfig               |  1 +
> > >>   configs/display5_defconfig             |  1 +
> > >>   configs/display5_factory_defconfig     |  1 +
> > >>   configs/socfpga_arria5_defconfig       |  1 +
> > >>   configs/socfpga_cyclone5_defconfig     |  1 +
> > >>   configs/socfpga_dbm_soc1_defconfig     |  1 +
> > >>   configs/socfpga_de0_nano_soc_defconfig |  1 +
> > >>   configs/socfpga_de10_nano_defconfig    |  1 +
> > >>   configs/socfpga_is1_defconfig          |  1 +
> > >>   configs/socfpga_mcvevk_defconfig       |  1 +
> > >>   configs/socfpga_sockit_defconfig       |  1 +
> > >>   configs/socfpga_socrates_defconfig     |  1 +
> > >>   configs/socfpga_sr1500_defconfig       |  1 +
> > >>   configs/socfpga_vining_fpga_defconfig  |  1 +
> > >>   drivers/mtd/spi/Makefile               |  2 +-
> > >>   drivers/mtd/spi/sf_internal.h          |  2 +-
> > >>   drivers/mtd/spi/sf_probe.c             |  6 +++---
> > >>   include/configs/aristainetos-common.h  |  1 -
> > >>   include/configs/cm_fx6.h               |  7 -------
> > >>   include/configs/da850evm.h             |  7 +------
> > >>   include/configs/dh_imx6.h              |  1 -
> > >>   include/configs/display5.h             |  4 ----
> > >>   include/configs/gw_ventana.h           | 10 +---------
> > >>   include/configs/rcar-gen2-common.h     |  4 +---
> > >>   include/configs/socfpga_common.h       |  4 ----
> > >>   28 files changed, 25 insertions(+), 40 deletions(-)
> > >>
> > >> diff --git a/configs/aristainetos2_defconfig
> > >> b/configs/aristainetos2_defconfig index 18ef5d2dce..0bfc117762
> > >> 100644 --- a/configs/aristainetos2_defconfig
> > >> +++ b/configs/aristainetos2_defconfig
> > >> @@ -44,6 +44,7 @@ CONFIG_SF_DEFAULT_CS=1
> > >>   CONFIG_SF_DEFAULT_MODE=0
> > >>   CONFIG_SF_DEFAULT_SPEED=20000000
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_MTD_UBI_FASTMAP=y
> > >>   CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1
> > >>   CONFIG_PHYLIB=y
> > >> diff --git a/configs/aristainetos2b_defconfig
> > >> b/configs/aristainetos2b_defconfig index 1054c05d8c..e2da747a8f
> > >> 100644 --- a/configs/aristainetos2b_defconfig
> > >> +++ b/configs/aristainetos2b_defconfig
> > >> @@ -42,6 +42,7 @@ CONFIG_SPI_FLASH=y
> > >>   CONFIG_SF_DEFAULT_MODE=0
> > >>   CONFIG_SF_DEFAULT_SPEED=20000000
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_MTD_UBI_FASTMAP=y
> > >>   CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1
> > >>   CONFIG_PHYLIB=y
> > >> diff --git a/configs/aristainetos_defconfig
> > >> b/configs/aristainetos_defconfig index 4080a7b310..5caf95c22f
> > >> 100644 --- a/configs/aristainetos_defconfig
> > >> +++ b/configs/aristainetos_defconfig
> > >> @@ -43,6 +43,7 @@ CONFIG_SF_DEFAULT_BUS=3
> > >>   CONFIG_SF_DEFAULT_MODE=0
> > >>   CONFIG_SF_DEFAULT_SPEED=20000000
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_MTD_UBI_FASTMAP=y
> > >>   CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1
> > >>   CONFIG_PHYLIB=y
> > >> diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
> > >> index fd0db4db5c..15be7db027 100644
> > >> --- a/configs/cm_fx6_defconfig
> > >> +++ b/configs/cm_fx6_defconfig
> > >> @@ -72,6 +72,7 @@ CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >>   CONFIG_SPI_FLASH_SST=y
> > >>   CONFIG_SPI_FLASH_WINBOND=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHYLIB=y
> > >>   CONFIG_MII=y
> > >>   CONFIG_DM_PMIC=y
> > >> diff --git a/configs/display5_defconfig
> > >> b/configs/display5_defconfig index 8609cd5a8c..5a4cc772be 100644
> > >> --- a/configs/display5_defconfig
> > >> +++ b/configs/display5_defconfig
> > >> @@ -75,6 +75,7 @@ CONFIG_SF_DEFAULT_MODE=0
> > >>   CONFIG_SF_DEFAULT_SPEED=50000000
> > >>   CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHYLIB=y
> > >>   CONFIG_PHY_MARVELL=y
> > >>   CONFIG_FEC_MXC=y
> > >> diff --git a/configs/display5_factory_defconfig
> > >> b/configs/display5_factory_defconfig index
> > >> 70c64260d8..66c68e5ea9 100644 ---
> > >> a/configs/display5_factory_defconfig +++
> > >> b/configs/display5_factory_defconfig @@ -74,6 +74,7 @@
> > >> CONFIG_SF_DEFAULT_MODE=0 CONFIG_SF_DEFAULT_SPEED=50000000
> > >>   CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHYLIB=y
> > >>   CONFIG_FEC_MXC=y
> > >>   CONFIG_MII=y
> > >> diff --git a/configs/socfpga_arria5_defconfig
> > >> b/configs/socfpga_arria5_defconfig index 89e5ff8c71..30c2d19941
> > >> 100644 --- a/configs/socfpga_arria5_defconfig
> > >> +++ b/configs/socfpga_arria5_defconfig
> > >> @@ -47,6 +47,7 @@ CONFIG_SPI_FLASH=y
> > >>   CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_cyclone5_defconfig
> > >> b/configs/socfpga_cyclone5_defconfig index
> > >> 00f2104276..dfe011b959 100644 ---
> > >> a/configs/socfpga_cyclone5_defconfig +++
> > >> b/configs/socfpga_cyclone5_defconfig @@ -48,6 +48,7 @@
> > >> CONFIG_SPI_FLASH_MACRONIX=y CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_dbm_soc1_defconfig
> > >> b/configs/socfpga_dbm_soc1_defconfig index
> > >> 1877010a19..ee693f3def 100644 ---
> > >> a/configs/socfpga_dbm_soc1_defconfig +++
> > >> b/configs/socfpga_dbm_soc1_defconfig @@ -46,6 +46,7 @@
> > >> CONFIG_SYS_I2C_DW=y CONFIG_DM_MMC=y
> > >>   CONFIG_MMC_DW=y
> > >>   CONFIG_MTD_DEVICE=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_DM_ETH=y
> > >>   CONFIG_PHY_GIGE=y
> > >>   CONFIG_ETH_DESIGNWARE=y
> > >> diff --git a/configs/socfpga_de0_nano_soc_defconfig
> > >> b/configs/socfpga_de0_nano_soc_defconfig index
> > >> de50f17174..e91d6f62f8 100644 ---
> > >> a/configs/socfpga_de0_nano_soc_defconfig +++
> > >> b/configs/socfpga_de0_nano_soc_defconfig @@ -43,6 +43,7 @@
> > >> CONFIG_SYS_I2C_DW=y CONFIG_DM_MMC=y
> > >>   CONFIG_MMC_DW=y
> > >>   CONFIG_MTD_DEVICE=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_de10_nano_defconfig
> > >> b/configs/socfpga_de10_nano_defconfig index
> > >> 03961195ac..ffe9d6c10c 100644 ---
> > >> a/configs/socfpga_de10_nano_defconfig +++
> > >> b/configs/socfpga_de10_nano_defconfig @@ -39,6 +39,7 @@
> > >> CONFIG_SYS_I2C_DW=y CONFIG_DM_MMC=y
> > >>   CONFIG_MMC_DW=y
> > >>   CONFIG_MTD_DEVICE=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_is1_defconfig
> > >> b/configs/socfpga_is1_defconfig index 6ea06c1104..76ab87250b
> > >> 100644 --- a/configs/socfpga_is1_defconfig
> > >> +++ b/configs/socfpga_is1_defconfig
> > >> @@ -43,6 +43,7 @@ CONFIG_SYS_I2C_DW=y
> > >>   CONFIG_MTD_DEVICE=y
> > >>   CONFIG_SPI_FLASH=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_mcvevk_defconfig
> > >> b/configs/socfpga_mcvevk_defconfig index 161bd6fca3..4d3caaa8ad
> > >> 100644 --- a/configs/socfpga_mcvevk_defconfig
> > >> +++ b/configs/socfpga_mcvevk_defconfig
> > >> @@ -42,6 +42,7 @@ CONFIG_DM_I2C=y
> > >>   CONFIG_SYS_I2C_DW=y
> > >>   CONFIG_DM_MMC=y
> > >>   CONFIG_MMC_DW=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_DM_ETH=y
> > >>   CONFIG_PHY_GIGE=y
> > >>   CONFIG_ETH_DESIGNWARE=y
> > >> diff --git a/configs/socfpga_sockit_defconfig
> > >> b/configs/socfpga_sockit_defconfig index 8ec1c05571..0ffcfda21e
> > >> 100644 --- a/configs/socfpga_sockit_defconfig
> > >> +++ b/configs/socfpga_sockit_defconfig
> > >> @@ -48,6 +48,7 @@ CONFIG_SPI_FLASH_MACRONIX=y
> > >>   CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_socrates_defconfig
> > >> b/configs/socfpga_socrates_defconfig index
> > >> 15f81d1a4b..193af0b0df 100644 ---
> > >> a/configs/socfpga_socrates_defconfig +++
> > >> b/configs/socfpga_socrates_defconfig @@ -48,6 +48,7 @@
> > >> CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_MACRONIX=y
> > >>   CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >>   CONFIG_DM_ETH=y
> > >> diff --git a/configs/socfpga_sr1500_defconfig
> > >> b/configs/socfpga_sr1500_defconfig index 941bf1124a..899dd8396b
> > >> 100644 --- a/configs/socfpga_sr1500_defconfig
> > >> +++ b/configs/socfpga_sr1500_defconfig
> > >> @@ -49,6 +49,7 @@ CONFIG_SPI_FLASH=y
> > >>   CONFIG_SF_DEFAULT_SPEED=100000000
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_PHY_MARVELL=y
> > >>   CONFIG_DM_ETH=y
> > >>   CONFIG_PHY_GIGE=y
> > >> diff --git a/configs/socfpga_vining_fpga_defconfig
> > >> b/configs/socfpga_vining_fpga_defconfig index
> > >> 96f806ab5f..f96f536169 100644 ---
> > >> a/configs/socfpga_vining_fpga_defconfig +++
> > >> b/configs/socfpga_vining_fpga_defconfig @@ -72,6 +72,7 @@
> > >> CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y
> > >>   CONFIG_SPI_FLASH_STMICRO=y
> > >>   # CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
> > >> +CONFIG_SPI_FLASH_MTD=y
> > >>   CONFIG_MTD_UBI_FASTMAP=y
> > >>   CONFIG_PHY_MICREL=y
> > >>   CONFIG_PHY_MICREL_KSZ90X1=y
> > >> diff --git a/drivers/mtd/spi/Makefile b/drivers/mtd/spi/Makefile
> > >> index f99f6cb16e..fb67ba32c6 100644
> > >> --- a/drivers/mtd/spi/Makefile
> > >> +++ b/drivers/mtd/spi/Makefile
> > >> @@ -19,5 +19,5 @@ endif
> > >>
> > >>   obj-$(CONFIG_SPI_FLASH) += spi-nor.o
> > >>   obj-$(CONFIG_SPI_FLASH_DATAFLASH) += sf_dataflash.o sf.o
> > >> -obj-$(CONFIG_SPI_FLASH_MTD) += sf_mtd.o
> > >> +obj-$(CONFIG_$(SPL_)SPI_FLASH_MTD) += sf_mtd.o
> > >>   obj-$(CONFIG_SPI_FLASH_SANDBOX) += sandbox.o
> > >> diff --git a/drivers/mtd/spi/sf_internal.h
> > >> b/drivers/mtd/spi/sf_internal.h index a6bf734830..8542b03685
> > >> 100644 --- a/drivers/mtd/spi/sf_internal.h
> > >> +++ b/drivers/mtd/spi/sf_internal.h
> > >> @@ -94,7 +94,7 @@ int spi_flash_cmd_write(struct spi_slave *spi,
> > >> const u8 *cmd, size_t cmd_len, int
> > >> spi_flash_cmd_get_sw_write_prot(struct spi_flash *flash);
> > >>
> > >>
> > >> -#ifdef CONFIG_SPI_FLASH_MTD
> > >> +#if CONFIG_IS_ENABLED(SPI_FLASH_MTD)
> > >>   int spi_flash_mtd_register(struct spi_flash *flash);
> > >>   void spi_flash_mtd_unregister(void);
> > >>   #endif
> > >> diff --git a/drivers/mtd/spi/sf_probe.c
> > >> b/drivers/mtd/spi/sf_probe.c index 73297e1a0a..f051e473ff 100644
> > >> --- a/drivers/mtd/spi/sf_probe.c
> > >> +++ b/drivers/mtd/spi/sf_probe.c
> > >> @@ -44,7 +44,7 @@ static int spi_flash_probe_slave(struct
> > >> spi_flash *flash) if (ret)
> > >>                  goto err_read_id;
> > >>
> > >> -#ifdef CONFIG_SPI_FLASH_MTD
> > >> +#if CONFIG_IS_ENABLED(SPI_FLASH_MTD)
> > >>          ret = spi_flash_mtd_register(flash);
> > >>   #endif
> > >>
> > >> @@ -83,7 +83,7 @@ struct spi_flash *spi_flash_probe(unsigned int
> > >> busnum, unsigned int cs,
> > >>
> > >>   void spi_flash_free(struct spi_flash *flash)
> > >>   {
> > >> -#ifdef CONFIG_SPI_FLASH_MTD
> > >> +#if CONFIG_IS_ENABLED(SPI_FLASH_MTD)
> > >>          spi_flash_mtd_unregister();
> > >>   #endif
> > >>          spi_free_slave(flash->spi);
> > >> @@ -152,7 +152,7 @@ static int spi_flash_std_probe(struct
> > >> udevice *dev)
> > >>
> > >>   static int spi_flash_std_remove(struct udevice *dev)
> > >>   {
> > >> -#ifdef CONFIG_SPI_FLASH_MTD
> > >> +#if CONFIG_IS_ENABLED(SPI_FLASH_MTD)  
> > >
> > > These ifdef changes look unrelated wrt actual patch. any
> > > comments?  
> >
> > No, they are not unrelated. This is the actual reason for having
> > this patch after all. We want to be able to enable/disable the code
> > for CONFIG_SPI_FLASH_MTD per build target (SPL, U-Boot proper).
> > These changes need to be done in a single patch together with the
> > defconfig and Makefile changes to sustain bisectibility.  
> 
> What I'm trying to say here is, #ifdef CONFIG_SPI_FLASH_MTD and #if
> CONFIG_IS_ENABLED(SPI_FLASH_MTD) is the same but the latter is
> improved version which I feel it is related to another patch.

The spi Kconfig code is so convoluted, that we shall try to do it in a
single patch (as was done here).

Otherwise we will end up with not bisectable code.


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: <http://lists.denx.de/pipermail/u-boot/attachments/20191023/2a986fa3/attachment.sig>


More information about the U-Boot mailing list