mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-30 00:21:06 +00:00
f37af2760e
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>
32 lines
677 B
C
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__ */
|