2019-06-04 01:11:33 -07:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
2017-01-12 13:52:18 -07:00
|
|
|
/*
|
|
|
|
* Defines for the SRAM driver
|
|
|
|
*/
|
|
|
|
#ifndef __SRAM_H
|
|
|
|
#define __SRAM_H
|
|
|
|
|
2021-07-15 03:34:23 -07:00
|
|
|
struct sram_config {
|
|
|
|
int (*init)(void);
|
|
|
|
bool map_only_reserved;
|
|
|
|
};
|
|
|
|
|
2017-01-12 13:52:18 -07:00
|
|
|
struct sram_partition {
|
|
|
|
void __iomem *base;
|
|
|
|
|
|
|
|
struct gen_pool *pool;
|
|
|
|
struct bin_attribute battr;
|
|
|
|
struct mutex lock;
|
|
|
|
struct list_head list;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct sram_dev {
|
2021-07-15 03:34:23 -07:00
|
|
|
const struct sram_config *config;
|
|
|
|
|
2017-01-12 13:52:18 -07:00
|
|
|
struct device *dev;
|
|
|
|
void __iomem *virt_base;
|
2021-07-15 03:34:23 -07:00
|
|
|
bool no_memory_wc;
|
2017-01-12 13:52:18 -07:00
|
|
|
|
|
|
|
struct gen_pool *pool;
|
|
|
|
|
|
|
|
struct sram_partition *partition;
|
|
|
|
u32 partitions;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct sram_reserve {
|
|
|
|
struct list_head list;
|
|
|
|
u32 start;
|
|
|
|
u32 size;
|
2021-07-15 03:34:23 -07:00
|
|
|
struct resource res;
|
2017-01-12 13:52:18 -07:00
|
|
|
bool export;
|
|
|
|
bool pool;
|
2017-01-12 13:52:20 -07:00
|
|
|
bool protect_exec;
|
2017-01-12 13:52:18 -07:00
|
|
|
const char *label;
|
|
|
|
};
|
2017-01-12 13:52:19 -07:00
|
|
|
|
|
|
|
#ifdef CONFIG_SRAM_EXEC
|
|
|
|
int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
|
|
|
|
struct sram_partition *part);
|
|
|
|
int sram_add_protect_exec(struct sram_partition *part);
|
|
|
|
#else
|
|
|
|
static inline int sram_check_protect_exec(struct sram_dev *sram,
|
|
|
|
struct sram_reserve *block,
|
|
|
|
struct sram_partition *part)
|
|
|
|
{
|
|
|
|
return -ENODEV;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline int sram_add_protect_exec(struct sram_partition *part)
|
|
|
|
{
|
|
|
|
return -ENODEV;
|
|
|
|
}
|
|
|
|
#endif /* CONFIG_SRAM_EXEC */
|
2017-01-12 13:52:18 -07:00
|
|
|
#endif /* __SRAM_H */
|