Hi York, On 27 February 2016 at 02:14, york sun <york....@nxp.com> wrote: > On 02/22/2016 10:18 AM, Jagan Teki wrote: >> Hi York, >> >> On 15 February 2016 at 02:16, Jagan Teki <jt...@openedev.com> wrote: >>> Compared to previous patch series this series adds spi-nor >>> core with spi-nor controller drivers are of "mtd uclass" >>> >>> This is whole series for all spi-nor related changes, and while >>> series tested on spansion spi-nor chip. >>> >>> Know issue: >>> - arch/x86/lib/mrccache.c uses dm_spi_flash_ops, this need to fix. >>> >>> Why this framework: >>> >>> Some of the SPI device drivers at drivers/spi not a real >>> spi controllers, Unlike normal/generic SPI controllers they >>> operates only with SPI-NOR flash devices. these were technically >>> termed as SPI-NOR controllers, Ex: drivers/spi/fsl_qspi.c >>> >>> The problem with these were resides at drivers/spi is entire >>> SPI layer becomes SPI-NOR flash oriented which is absolutely >>> a wrong indication where SPI layer getting effected more with >>> flash operations - So this SPI-NOR core will resolve this issue >>> by separating all SPI-NOR flash operations from spi layer and >>> creats a generic layer called SPI-NOR core which can be used to >>> interact SPI-NOR to SPI driver interface layer and the SPI-NOR >>> controller driver. The idea is taken from Linux spi-nor framework. >>> >>> Before SPI-NOR: >>> >>> ----------------------- >>> cmd/sf.c >>> ----------------------- >>> spi_flash.c >>> ----------------------- >>> sf_probe.c >>> ----------------------- >>> spi-uclass >>> ----------------------- >>> spi drivers >>> ----------------------- >>> SPI NOR chip >>> ----------------------- >>> >>> After SPI-NOR: >>> >>> ------------------------------ >>> cmd/sf.c >>> ------------------------------ >>> spi-nor.c >>> ------------------------------- >>> m25p80.c spi nor drivers >>> ------------------------------- >>> spi-uclass SPI NOR chip >>> ------------------------------- >>> spi drivers >>> ------------------------------- >>> SPI NOR chip >>> ------------------------------- >>> >>> SPI-NOR with MTD: >>> >>> ------------------------------ >>> cmd/sf.c >>> ------------------------------ >>> MTD core >>> ------------------------------ >>> spi-nor.c >>> ------------------------------- >>> m25p80.c spi nor drivers >>> ------------------------------- >>> spi-uclass SPI NOR chip >>> ------------------------------- >>> spi drivers >>> ------------------------------- >>> SPI NOR chip >>> ------------------------------- >>> >>> drivers/mtd/spi-nor/spi-nor.c: spi-nor core >>> drivers/mtd/spi-nor/m25p80.c: mtd uclass driver >>> which is an interface layer b/w spi-nor core drivers/spi >>> drivers/mtd/spi-nor/fsl_qspi.c: spi-nor controller driver(mtd uclass) >>> >>> Changes for v6: >>> - Fixed git bisectable issues, with buildman. >>> - Fixed spi-nor compilation issues >>> - newly designed changes. >>> >>> Changes for v5: >>> - newly designed changes >>> >>> Testing: >>> $ git clone git://git.denx.de/u-boot-spi.git >>> $ cd u-boot-spi >>> $ git checkout -b spi-nor origin/spi-nor >>> >>> Jagan Teki (76): >>> mtd: Add m25p80 driver >>> mtd: Add Kconfig entry for MTD_M25P80 >>> mtd: Add SPI-NOR core support >>> doc: device-tree-bindings: jedec,spi-nor >>> mtd: spi-nor: Add Kconfig entry for MTD_SPI_NOR >>> mtd: spi-nor: Add kconfig for MTD_SPI_NOR_USE_4K_SECTORS >>> mtd: spi-nor: Add MTD support >>> mtd: spi-nor: Add spi_nor support in m25p80 >>> mtd: spi-nor: Add dm spi-nor probing >>> mtd: spi-nor: Add spi_flash_probe for mtd-dm-spi-nor >>> mtd: spi-nor: Add spi_flash_free for mtd-dm-spi-nor >>> mtd: spi-nor: m25p80: Add spi_nor support for non-dm >>> sf: Rename erase_size to erasesize >>> sf: Use erasesize instead of sector_size >>> sf: Use uint64_t for flash->size >>> spi_flash: Use mtd_info operation for SPI-NOR >>> spi_flash: Use spi_flash_t instead of struct spi_flash >>> mtd: spi-nor: Move spi_read_then_write to spi layer >>> spi: Rename spi_read_then_write to spi_write_then_read >>> mtd: spi-nor: Rename SPI_FLASH_BAR to SPI_NOR_BAR >>> mtd: spi-nor: Add Kconfig entry for SPI_NOR_BAR >>> mtd: spi-nor: Copy spl files from drivers/mtd/spi >>> mtd: spi-nor: spl: Follow ascending order of include headers >>> mtd: spi-nor: fsl_espi_spl: Use mtd_info >>> mtd: spi-nor: spi_spl_load: Use mtd_info >>> mtd: spi-nor: Add flash vendor Kconfig entries >>> arm: zynq: Kconfig: Select MTD uclass >>> arm: zynq: Kconfig: Drop DM_SPI_FLASH >>> defconfigs: zynq_microzed: Drop CONFIG_SPI_FLASH >>> defconfig: zynq_microzed: Enable CONFIG_MTD_M25P80 >>> defconfig: zynq_microzed: Enable CONFIG_MTD_SPI_NOR >>> spl: Add CONFIG_SPL_SPI_NOR_SUPPORT >>> configs: zynq: Use CONFIG_SPL_SPI_NOR_SUPPORT >>> configs: zynq: Use CONFIG_SPL_MTD_SUPPORT >>> mtd: spi-nor: Copy sf_dataflash >>> mtd: dataflash: Remove unneeded spi data >>> mtd: dataflash: Move flash id detection into jedec_probe >>> mtd: dataflash: Fix add_dataflash return logic >>> mtd: dataflash: Add UCLASS_MTD support >>> mtd: dataflash: Use spi_write_then_read >>> mtd: dataflash: Drop sf_internal.h >>> mtd: dataflash: Minor cleanups >>> mtd: Rename sf_dataflash.c to mtd_dataflash.c >>> mtd: spi-nor: Add Kconfig entry for mtd_dataflash >>> mtd: dataflash: Add MTD_DATAFLASH_WRITE_VERIFY >>> mtd: spi-nor: Add kconfig MTD_DATAFLASH_WRITE_VERIFY >>> configs: ls1021aqds: Drop DM_SPI_FLASH and DATAFLASH >>> defconfig: ls1021aqds_qspi: Enable SPI-NOR >>> defconfig: ls1021aqds_qspi: Enable CONFIG_MTD_DATAFLASH >> >> Can you pls- test the dataflash changes? use u-boot-spi/spi-nor >> > Jagan, > > I am getting there. Will test sf probe/read/write and probably boot on > selected > platforms. Is there any specific platform/test in your mind?
Yes, these tests OK. and if possible please verify 'sf protect' as well. thanks! -- Jagan. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot