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

Schrempf Frieder frieder.schrempf at kontron.de
Wed Oct 23 07:05:39 UTC 2019


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.

> 
> Also please rebase and send this patch, rest look fine for me.
> 

Ok, I will rebase on current master and send a v2.

Thanks,
Frieder


More information about the U-Boot mailing list