1 /* 2 * Copyright (C) 2020-2022 Intel Corporation. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef RTCT_H 8 #define RTCT_H 9 10 /*Entry IDs for RTCT version 2*/ 11 #define RTCT_V2_COMPATIBILITY 0U 12 #define RTCT_V2_RTCD_LIMIT 1U 13 #define RTCT_V2_CRL_BINARY 2U 14 #define RTCT_V2_IA_WAYMASK 3U 15 #define RTCT_V2_WRC_WAYMASK 4U 16 #define RTCT_V2_GT_WAYMASK 5U 17 #define RTCT_V2_SSRAM_WAYMASK 6U 18 #define RTCT_V2_SSRAM 7U 19 #define RTCT_V2_MEMORY_HIERARCHY_LATENCY 8U 20 #define RTCT_V2_ERROR_LOG_ADDRESS 9U 21 22 struct rtct_entry { 23 uint16_t size; 24 uint16_t format_version; 25 uint32_t type; 26 uint32_t data[64]; 27 } __packed; 28 29 struct rtct_entry_data_compatibility { 30 uint32_t rtct_ver_major; 31 uint32_t rtct_ver_minor; 32 uint32_t rtcd_ver_major; 33 uint32_t rtcd_ver_Minor; 34 } __packed; 35 36 struct rtct_entry_data_ssram_waymask { 37 uint32_t cache_level; 38 uint32_t cache_id; 39 uint32_t waymask; 40 } __packed; 41 42 struct rtct_entry_data_ssram_v2 { 43 uint32_t cache_level; 44 uint32_t cache_id; 45 uint64_t base; 46 uint32_t size; 47 uint32_t shared; 48 } __packed; 49 50 uint64_t get_vssram_gpa_base(void); 51 uint64_t get_vssram_size(void); 52 uint8_t *get_vssram_vrtct(void); 53 void clean_vssram_configs(void); 54 int init_vssram(struct vmctx *ctx); 55 void deinit_vssram(struct vmctx *ctx); 56 int parse_vssram_buf_params(const char *opt); 57 58 #endif /* RTCT_H */ 59