public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v1 0/6] introduce NVM XIP block storage emulation
@ 2023-01-16 17:28 abdellatif.elkhlifi
  2023-01-16 17:28 ` [PATCH v1 1/6] drivers/nvmxip: " abdellatif.elkhlifi
                   ` (7 more replies)
  0 siblings, 8 replies; 27+ messages in thread
From: abdellatif.elkhlifi @ 2023-01-16 17:28 UTC (permalink / raw)
  To: u-boot; +Cc: nd, trini, sjg, Abdellatif El Khlifi, Drew Reed, Xueliang Zhong

From: Abdellatif El Khlifi <abdellatif.elkhlifi@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@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Drew Reed <Drew.Reed@arm.com>
Cc: Xueliang Zhong <Xueliang.Zhong@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


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2023-04-27 23:23 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-16 17:28 [PATCH v1 0/6] introduce NVM XIP block storage emulation abdellatif.elkhlifi
2023-01-16 17:28 ` [PATCH v1 1/6] drivers/nvmxip: " abdellatif.elkhlifi
2023-02-07 18:38   ` Simon Glass
2023-04-17  9:19     ` Abdellatif El Khlifi
2023-01-16 17:28 ` [PATCH v1 2/6] sandbox64: fix: return unsigned long in readq() abdellatif.elkhlifi
2023-01-16 17:28 ` [PATCH v1 3/6] sandbox64: add support for NVMXIP QSPI abdellatif.elkhlifi
2023-02-07  4:02   ` Simon Glass
2023-02-07 16:30     ` Tom Rini
2023-02-07 18:38       ` Simon Glass
2023-04-17  9:25         ` Abdellatif El Khlifi
2023-01-16 17:28 ` [PATCH v1 4/6] corstone1000: add NVM XIP QSPI device tree node abdellatif.elkhlifi
2023-01-16 17:28 ` [PATCH v1 5/6] corstone1000: enable NVM XIP QSPI flash abdellatif.elkhlifi
2023-01-16 17:28 ` [PATCH v1 6/6] sandbox64: add a test case for UCLASS_NVMXIP abdellatif.elkhlifi
2023-02-07  4:02   ` Simon Glass
2023-04-17  9:21     ` Abdellatif El Khlifi
2023-02-06 14:17 ` [PATCH v1 0/6] introduce NVM XIP block storage emulation Abdellatif El Khlifi
2023-02-07  4:02   ` Simon Glass
2023-04-17  9:11 ` [PATCH v2 0/7] " Abdellatif El Khlifi
2023-04-17  9:11   ` [PATCH v2 1/7] drivers/mtd/nvmxip: " Abdellatif El Khlifi
2023-04-17  9:11   ` [PATCH v2 2/7] drivers/mtd/nvmxip: introduce QSPI XIP driver Abdellatif El Khlifi
2023-04-17  9:11   ` [PATCH v2 3/7] sandbox64: fix: return unsigned long in readq() Abdellatif El Khlifi
2023-04-19  1:49     ` Simon Glass
2023-04-17  9:11   ` [PATCH v2 4/7] sandbox64: add support for NVMXIP QSPI Abdellatif El Khlifi
2023-04-17  9:11   ` [PATCH v2 5/7] corstone1000: add NVM XIP QSPI device tree node Abdellatif El Khlifi
2023-04-17  9:11   ` [PATCH v2 6/7] corstone1000: enable NVM XIP QSPI flash Abdellatif El Khlifi
2023-04-17  9:11   ` [PATCH v2 7/7] sandbox64: add a test case for UCLASS_NVMXIP Abdellatif El Khlifi
2023-04-27 23:23   ` [PATCH v2 0/7] introduce NVM XIP block storage emulation Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox