[PATCH v1 0/6] introduce NVM XIP block storage emulation
abdellatif.elkhlifi at arm.com
abdellatif.elkhlifi at arm.com
Mon Jan 16 18:28:26 CET 2023
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
More information about the U-Boot
mailing list