1 /*
2  * Copyright (C) 2020-2022 Intel Corporation.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef RTCM_H
8 #define RTCM_H
9 
10 #include <asm/rtct.h>
11 
12 #define MSABI __attribute__((ms_abi))
13 
14 typedef int32_t MSABI(*rtcm_abi_func)(uint32_t command, void *command_struct);
15 
16 #define RTCM_CMD_INIT_SOFTWARE_SRAM	(int32_t)1U
17 #define RTCM_CMD_CPUID			(int32_t)2U
18 #define RTCM_CMD_RDMSR			(int32_t)3U
19 #define RTCM_CMD_WRMSR			(int32_t)4U
20 
21 #define RTCM_MAGIC_PTCM 0x5054434dU /* "PTCM", CRL header magic number for RTCT version 1 */
22 #define RTCM_MAGIC_RTCM 0x5254434dU /* "RTCM", CRL header magic number for RTCT version 2 */
23 
24 struct rtcm_header {
25 	uint32_t magic;
26 	uint32_t version;
27 	uint64_t command_offset;
28 } __packed;
29 
30 bool init_software_sram(bool is_bsp);
31 void set_rtct_tbl(void *rtct_tbl_addr);
32 bool is_software_sram_enabled(void);
33 #endif /* RTCM_H */
34