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

v2m.c (832B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <linux/of.h>
      3#include <linux/of_address.h>
      4#include <asm/mach/arch.h>
      5
      6#include "vexpress.h"
      7
      8#define SYS_FLAGSSET		0x030
      9#define SYS_FLAGSCLR		0x034
     10
     11void vexpress_flags_set(u32 data)
     12{
     13	static void __iomem *base;
     14
     15	if (!base) {
     16		struct device_node *node = of_find_compatible_node(NULL, NULL,
     17				"arm,vexpress-sysreg");
     18
     19		base = of_iomap(node, 0);
     20	}
     21
     22	if (WARN_ON(!base))
     23		return;
     24
     25	writel(~0, base + SYS_FLAGSCLR);
     26	writel(data, base + SYS_FLAGSSET);
     27}
     28
     29static const char * const v2m_dt_match[] __initconst = {
     30	"arm,vexpress",
     31	NULL,
     32};
     33
     34DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express")
     35	.dt_compat	= v2m_dt_match,
     36	.l2c_aux_val	= 0x00400000,
     37	.l2c_aux_mask	= 0xfe0fffff,
     38	.smp		= smp_ops(vexpress_smp_dt_ops),
     39	.smp_init	= smp_init_ops(vexpress_smp_init_ops),
     40MACHINE_END