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

peci-cpu.h (1534B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/* Copyright (c) 2021 Intel Corporation */
      3
      4#ifndef __LINUX_PECI_CPU_H
      5#define __LINUX_PECI_CPU_H
      6
      7#include <linux/types.h>
      8
      9#include "../../arch/x86/include/asm/intel-family.h"
     10
     11#define PECI_PCS_PKG_ID			0  /* Package Identifier Read */
     12#define  PECI_PKG_ID_CPU_ID		0x0000  /* CPUID Info */
     13#define  PECI_PKG_ID_PLATFORM_ID	0x0001  /* Platform ID */
     14#define  PECI_PKG_ID_DEVICE_ID		0x0002  /* Uncore Device ID */
     15#define  PECI_PKG_ID_MAX_THREAD_ID	0x0003  /* Max Thread ID */
     16#define  PECI_PKG_ID_MICROCODE_REV	0x0004  /* CPU Microcode Update Revision */
     17#define  PECI_PKG_ID_MCA_ERROR_LOG	0x0005  /* Machine Check Status */
     18#define PECI_PCS_MODULE_TEMP		9  /* Per Core DTS Temperature Read */
     19#define PECI_PCS_THERMAL_MARGIN		10 /* DTS thermal margin */
     20#define PECI_PCS_DDR_DIMM_TEMP		14 /* DDR DIMM Temperature */
     21#define PECI_PCS_TEMP_TARGET		16 /* Temperature Target Read */
     22#define PECI_PCS_TDP_UNITS		30 /* Units for power/energy registers */
     23
     24struct peci_device;
     25
     26int peci_temp_read(struct peci_device *device, s16 *temp_raw);
     27
     28int peci_pcs_read(struct peci_device *device, u8 index,
     29		  u16 param, u32 *data);
     30
     31int peci_pci_local_read(struct peci_device *device, u8 bus, u8 dev,
     32			u8 func, u16 reg, u32 *data);
     33
     34int peci_ep_pci_local_read(struct peci_device *device, u8 seg,
     35			   u8 bus, u8 dev, u8 func, u16 reg, u32 *data);
     36
     37int peci_mmio_read(struct peci_device *device, u8 bar, u8 seg,
     38		   u8 bus, u8 dev, u8 func, u64 address, u32 *data);
     39
     40#endif /* __LINUX_PECI_CPU_H */