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

xtp.h (938B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _ASM_IA64_XTP_H
      3#define _ASM_IA64_XTP_H
      4
      5#include <asm/io.h>
      6
      7#ifdef CONFIG_SMP
      8
      9#define XTP_OFFSET		0x1e0008
     10
     11#define SMP_IRQ_REDIRECTION	(1 << 0)
     12#define SMP_IPI_REDIRECTION	(1 << 1)
     13
     14extern unsigned char smp_int_redirect;
     15
     16/*
     17 * XTP control functions:
     18 *	min_xtp   : route all interrupts to this CPU
     19 *	normal_xtp: nominal XTP value
     20 *	max_xtp   : never deliver interrupts to this CPU.
     21 */
     22
     23static inline void
     24min_xtp (void)
     25{
     26	if (smp_int_redirect & SMP_IRQ_REDIRECTION)
     27		writeb(0x00, ipi_base_addr + XTP_OFFSET); /* XTP to min */
     28}
     29
     30static inline void
     31normal_xtp (void)
     32{
     33	if (smp_int_redirect & SMP_IRQ_REDIRECTION)
     34		writeb(0x08, ipi_base_addr + XTP_OFFSET); /* XTP normal */
     35}
     36
     37static inline void
     38max_xtp (void)
     39{
     40	if (smp_int_redirect & SMP_IRQ_REDIRECTION)
     41		writeb(0x0f, ipi_base_addr + XTP_OFFSET); /* Set XTP to max */
     42}
     43
     44#endif /* CONFIG_SMP */
     45
     46#endif /* _ASM_IA64_XTP_Hy */