[PATCH v1 0/6] introduce NVM XIP block storage emulation

Abdellatif El Khlifi abdellatif.elkhlifi at arm.com
Mon Feb 6 15:17:52 CET 2023


On Mon, Jan 16, 2023 at 05:28:26PM +0000, abdellatif.elkhlifi at arm.com wrote:
> From: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
> 
> Adding block storage emulation for NVM XIP flash devices.
> 
> Some paltforms such as Corstone-1000 need to see NVM XIP raw flash
> as a block storage device with read only capability.
> 
> Here NVM flash devices are devices with addressable
> memory (e.g: QSPI NOR flash).
> 
> The NVM XIP block storage emulation provides the following features:
> 
> - Emulate NVM XIP raw flash as a block storage device with read only capability
> - Being generic by design and can be used by any platform
> - Device tree node
> - Platforms can use multiple NVM XIP devices at the same time by defining a
>   DT node for each one of them
> - A generic NVMXIP block driver allowing to read from the XIP flash
> - A generic NVMXIP QSPI driver
> - Implemented on top of memory-mapped IO (using readq macro)
> - Enabling NVMXIP in sandbox64
> - A sandbox test case
> - Enabling NVMXIP in Corstone1000 platform as a use case
> 
> For more details please refer to the readme [A].
> 
> [A]: doc/develop/driver-model/nvmxip.rst
> 
> Cheers,
> Abdellatif
> 
> Cc: Tom Rini <trini at konsulko.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Drew Reed <Drew.Reed at arm.com>
> Cc: Xueliang Zhong <Xueliang.Zhong at arm.com>
> 
> Abdellatif El Khlifi (6):
>   drivers/nvmxip: introduce NVM XIP block storage emulation
>   sandbox64: fix: return unsigned long in readq()
>   sandbox64: add support for NVMXIP QSPI
>   corstone1000: add NVM XIP QSPI device tree node
>   corstone1000: enable NVM XIP QSPI flash
>   sandbox64: add a test case for UCLASS_NVMXIP
> 
>  MAINTAINERS                                |   8 ++
>  arch/arm/dts/corstone1000.dtsi             |   9 +-
>  arch/sandbox/cpu/cpu.c                     |   2 +-
>  arch/sandbox/dts/sandbox64.dts             |  13 ++
>  arch/sandbox/dts/test.dts                  |  14 +++
>  arch/sandbox/include/asm/io.h              |   2 +-
>  configs/corstone1000_defconfig             |   1 +
>  configs/sandbox64_defconfig                |   1 +
>  doc/develop/driver-model/index.rst         |   1 +
>  doc/develop/driver-model/nvmxip.rst        |  70 +++++++++++
>  doc/device-tree-bindings/nvmxip/nvmxip.txt |  56 +++++++++
>  drivers/Kconfig                            |   2 +
>  drivers/Makefile                           |   1 +
>  drivers/block/blk-uclass.c                 |   1 +
>  drivers/nvmxip/Kconfig                     |  19 +++
>  drivers/nvmxip/Makefile                    |   8 ++
>  drivers/nvmxip/nvmxip-uclass.c             |  15 +++
>  drivers/nvmxip/nvmxip.c                    | 133 +++++++++++++++++++++
>  drivers/nvmxip/nvmxip.h                    |  51 ++++++++
>  drivers/nvmxip/nvmxip_qspi.c               |  67 +++++++++++
>  include/dm/uclass-id.h                     |   1 +
>  test/dm/Makefile                           |   5 +
>  test/dm/nvmxip.c                           | 117 ++++++++++++++++++
>  23 files changed, 594 insertions(+), 3 deletions(-)
>  create mode 100644 doc/develop/driver-model/nvmxip.rst
>  create mode 100644 doc/device-tree-bindings/nvmxip/nvmxip.txt
>  create mode 100644 drivers/nvmxip/Kconfig
>  create mode 100644 drivers/nvmxip/Makefile
>  create mode 100644 drivers/nvmxip/nvmxip-uclass.c
>  create mode 100644 drivers/nvmxip/nvmxip.c
>  create mode 100644 drivers/nvmxip/nvmxip.h
>  create mode 100644 drivers/nvmxip/nvmxip_qspi.c
>  create mode 100644 test/dm/nvmxip.c
> 
> -- 
> 2.17.1
>

Hi guys, a gentle reminder. Any feedback please ?

Cheers,
Abdellatif


More information about the U-Boot mailing list