cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

sram.h (1218B)


      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	struct clk *clk;
     31
     32	struct sram_partition *partition;
     33	u32 partitions;
     34};
     35
     36struct sram_reserve {
     37	struct list_head list;
     38	u32 start;
     39	u32 size;
     40	struct resource res;
     41	bool export;
     42	bool pool;
     43	bool protect_exec;
     44	const char *label;
     45};
     46
     47#ifdef CONFIG_SRAM_EXEC
     48int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
     49			    struct sram_partition *part);
     50int sram_add_protect_exec(struct sram_partition *part);
     51#else
     52static inline int sram_check_protect_exec(struct sram_dev *sram,
     53					  struct sram_reserve *block,
     54					  struct sram_partition *part)
     55{
     56	return -ENODEV;
     57}
     58
     59static inline int sram_add_protect_exec(struct sram_partition *part)
     60{
     61	return -ENODEV;
     62}
     63#endif /* CONFIG_SRAM_EXEC */
     64#endif /* __SRAM_H */