Loading...
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Defines for the SRAM driver
4 */
5#ifndef __SRAM_H
6#define __SRAM_H
7
8struct sram_config {
9 int (*init)(void);
10 bool map_only_reserved;
11};
12
13struct sram_partition {
14 void __iomem *base;
15
16 struct gen_pool *pool;
17 struct bin_attribute battr;
18 struct mutex lock;
19 struct list_head list;
20};
21
22struct sram_dev {
23 const struct sram_config *config;
24
25 struct device *dev;
26 void __iomem *virt_base;
27 bool no_memory_wc;
28
29 struct gen_pool *pool;
30
31 struct sram_partition *partition;
32 u32 partitions;
33};
34
35struct sram_reserve {
36 struct list_head list;
37 u32 start;
38 u32 size;
39 struct resource res;
40 bool export;
41 bool pool;
42 bool protect_exec;
43 const char *label;
44};
45
46#ifdef CONFIG_SRAM_EXEC
47int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
48 struct sram_partition *part);
49int sram_add_protect_exec(struct sram_partition *part);
50#else
51static inline int sram_check_protect_exec(struct sram_dev *sram,
52 struct sram_reserve *block,
53 struct sram_partition *part)
54{
55 return -ENODEV;
56}
57
58static inline int sram_add_protect_exec(struct sram_partition *part)
59{
60 return -ENODEV;
61}
62#endif /* CONFIG_SRAM_EXEC */
63#endif /* __SRAM_H */
1/*
2 * Defines for the SRAM driver
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8#ifndef __SRAM_H
9#define __SRAM_H
10
11struct sram_partition {
12 void __iomem *base;
13
14 struct gen_pool *pool;
15 struct bin_attribute battr;
16 struct mutex lock;
17 struct list_head list;
18};
19
20struct sram_dev {
21 struct device *dev;
22 void __iomem *virt_base;
23
24 struct gen_pool *pool;
25 struct clk *clk;
26
27 struct sram_partition *partition;
28 u32 partitions;
29};
30
31struct sram_reserve {
32 struct list_head list;
33 u32 start;
34 u32 size;
35 bool export;
36 bool pool;
37 bool protect_exec;
38 const char *label;
39};
40
41#ifdef CONFIG_SRAM_EXEC
42int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
43 struct sram_partition *part);
44int sram_add_protect_exec(struct sram_partition *part);
45#else
46static inline int sram_check_protect_exec(struct sram_dev *sram,
47 struct sram_reserve *block,
48 struct sram_partition *part)
49{
50 return -ENODEV;
51}
52
53static inline int sram_add_protect_exec(struct sram_partition *part)
54{
55 return -ENODEV;
56}
57#endif /* CONFIG_SRAM_EXEC */
58#endif /* __SRAM_H */