acrn-hypervisor/hypervisor/include/arch/x86/rtcm.h
Yonghua Huang 92bbd3ff48 hv: disable host MONITOR-WAIT support when SW SRAM is enabled
Per-core software SRAM L2 cache may be flushed by 'mwait'
extension instruction, which guest VM may execute to enter
core deep sleep. Such kind of flushing is not expected when
software SRAM is enabled for RTVM.

Hypervisor disables MONITOR-WAIT support on both hypervisor
and VMs sides to protect above software SRAM from being flushed.

This patch disable hypervisor(host) MONITOR-WAIT support.

Tracked-On: #5649
Signed-off-by: Yonghua Huang <yonghua.huang@intel.com>
Reviewed-by: Fei Li <fei1.li@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-03-10 11:42:02 +08:00

33 lines
706 B
C

/*
* Copyright (C) 2020 Intel Corporation. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef RTCM_H
#define RTCM_H
#include <rtct.h>
#define MSABI __attribute__((ms_abi))
typedef int32_t MSABI(*rtcm_abi_func)(uint32_t command, void *command_struct);
#define RTCM_CMD_INIT_SOFTWARE_SRAM (int32_t)1U
#define RTCM_CMD_CPUID (int32_t)2U
#define RTCM_CMD_RDMSR (int32_t)3U
#define RTCM_CMD_WRMSR (int32_t)4U
#define RTCM_MAGIC 0x5054434dU
struct rtcm_header {
uint32_t magic;
uint32_t version;
uint64_t command_offset;
} __packed;
bool init_software_sram(bool is_bsp);
void set_rtct_tbl(void *rtct_tbl_addr);
bool is_software_sram_enabled(void);
#endif /* RTCM_H */