mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-04-29 20:24:00 +00:00
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>
33 lines
706 B
C
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 */
|