u-boot/drivers/mtd/nvmxip/nvmxip.h
Abdellatif El Khlifi f37af2760e drivers/mtd/nvmxip: introduce NVM XIP block storage emulation
add 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 implementation is generic and can be used by different platforms.

Two drivers are provided as follows.

  nvmxip-blk :

    a generic block driver allowing to read from the XIP flash

  nvmxip Uclass driver :

        When a device is described in the DT and associated with
        UCLASS_NVMXIP, the Uclass creates a block device and binds it with
	 the nvmxip-blk.

Platforms can use multiple NVM XIP devices at the same time by defining a
DT node for each one of them.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
2023-04-27 17:01:14 -04:00

32 lines
677 B
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
*
* Authors:
* Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
*/
#ifndef __DRIVER_NVMXIP_H__
#define __DRIVER_NVMXIP_H__
#include <blk.h>
#define NVMXIP_BLKDRV_NAME "nvmxip-blk"
#define NVMXIP_BLKDEV_NAME_SZ 20
/**
* struct nvmxip_plat - the NVMXIP driver plat
*
* @phys_base: NVM XIP device base address
* @lba_shift: block size shift count
* @lba: number of blocks
*
* The NVMXIP information read from the DT.
*/
struct nvmxip_plat {
phys_addr_t phys_base;
u32 lba_shift;
lbaint_t lba;
};
#endif /* __DRIVER_NVMXIP_H__ */