[U-Boot] [UBOOT][PATCHv5 3/6] sf: Add memory mapped read support

Jagan Teki jagannadh.teki at gmail.com
Mon Oct 7 09:06:55 CEST 2013


On Mon, Oct 7, 2013 at 10:46 AM, Sourav Poddar <sourav.poddar at ti.com> wrote:
> Qspi controller can have a memory mapped port which can be used for
> data read. Added support to enable memory mapped port read.
>
> This patch enables the following:
> - It enables exchange of memory map address between mtd and qspi
> through the introduction of "memory_map" flag.
> - Add support to communicate to the driver that memory mapped
>  transfer is to be started through introduction of new flags like
> "SPI_XFER_MEM_MAP" and "SPI_XFER_MEM_MAP_END".
>
> This will enable the spi controller to do memory mapped configurations
> if required.
>
> Signed-off-by: Sourav Poddar <sourav.poddar at ti.com>
> ---
> v4->v5:
> - Make memory map flag more readable by using "MMAP"
>   instead of "MEM_MAP"
> - Correct the memory mapped exit path by adding
>   "MMAP_END"
> - change the commit header to use sf.
>  drivers/mtd/spi/sf_ops.c   |    2 ++
>  drivers/mtd/spi/sf_probe.c |    1 +
>  include/spi.h              |    3 +++
>  3 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mtd/spi/sf_ops.c b/drivers/mtd/spi/sf_ops.c
> index c009af5..2396e22 100644
> --- a/drivers/mtd/spi/sf_ops.c
> +++ b/drivers/mtd/spi/sf_ops.c
> @@ -269,7 +269,9 @@ int spi_flash_cmd_read_ops(struct spi_flash *flash, u32 offset,
>
>         /* Handle memory-mapped SPI */
>         if (flash->memory_map) {
> +               spi_xfer(flash->spi, 0, NULL, NULL, SPI_XFER_MMAP);
>                 memcpy(data, flash->memory_map + offset, len);
> +               spi_xfer(flash->spi, 0, NULL, NULL, SPI_XFER_MMAP_END);
>                 return 0;
>         }
>
> diff --git a/drivers/mtd/spi/sf_probe.c b/drivers/mtd/spi/sf_probe.c
> index 1525636..6aa7086 100644
> --- a/drivers/mtd/spi/sf_probe.c
> +++ b/drivers/mtd/spi/sf_probe.c
> @@ -203,6 +203,7 @@ struct spi_flash *spi_flash_validate_params(struct spi_slave *spi, u8 *idcode)
>         flash->page_size = (ext_jedec == 0x4d00) ? 512 : 256;
>         flash->sector_size = params->sector_size;
>         flash->size = flash->sector_size * params->nr_sectors;
> +       flash->memory_map = spi->memory_map;
>
>         /* Compute erase sector and command */
>         if (params->flags & SECT_4K) {
> diff --git a/include/spi.h b/include/spi.h
> index c44ebe8..f454cae 100644
> --- a/include/spi.h
> +++ b/include/spi.h
> @@ -27,6 +27,8 @@
>  /* SPI transfer flags */
>  #define SPI_XFER_BEGIN 0x01                    /* Assert CS before transfer */
>  #define SPI_XFER_END   0x02                    /* Deassert CS after transfer */
> +#define SPI_XFER_MMAP 0x08                  /* Memory Mapped start */
> +#define SPI_XFER_MMAP_END 0x10              /* Memory Mapped End */
Can you rearranged the code with tab space and comments are in same phase.

-- 
Thanks,
Jagan.
--------
Jagannadha Sutradharudu Teki,
E: jagannadh.teki at gmail.com, P: +91-9676773388
Engineer - System Software Hacker
U-boot - SPI Custodian and Zynq APSOC
Ln: http://www.linkedin.com/in/jaganteki


More information about the U-Boot mailing list