blob: 7ac54e9c3612e8b5995c25039ecaebf5e7720c1b [file]
/** @file
Definitions for Arm CCA Realm Service Interface.
Copyright (c) 2022 - 2023, ARM Ltd. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@par Glossary:
- Rsi or RSI - Realm Service Interface
- IPA - Intermediate Physical Address
@par Reference(s):
- Realm Management Monitor (RMM) Specification, version 1.0-rel0
(https://developer.arm.com/documentation/den0137/)
**/
#pragma once
/** RSI Command Return codes
See Section B5.4.1, RMM Specification, version 1.0-rel0.
The width of the RsiCommandReturnCode enumeration is 64 bits.
*/
#define RSI_SUCCESS 0ULL
#define RSI_ERROR_INPUT 1ULL
#define RSI_ERROR_STATE 2ULL
#define RSI_INCOMPLETE 3ULL
#define RSI_ERROR_UNKNOWN 4ULL
/** RSI interface Version
See Section B5.4.4, RMM Specification, version 1.0-rel0.
The width of the RsiInterfaceVersion fieldset is 64 bits.
*/
#define RSI_VER_MINOR_MASK 0x0000FFFFULL
#define RSI_VER_MAJOR_MASK 0x7FFF0000ULL
#define RSI_VER_MAJOR_SHIFT 16
#define RSI_VERSION_MASK (RSI_VER_MAJOR_MASK | RSI_VER_MINOR_MASK)
#define RMM_VERSION(Major, Minor) ((Minor & RSI_VER_MINOR_MASK) | \
((Major << RSI_VER_MAJOR_SHIFT) & RSI_VER_MAJOR_MASK))
#define RSI_GET_MAJOR_REVISION(Rev) \
((Rev & RSI_VER_MAJOR_MASK) >> RSI_VER_MAJOR_SHIFT)
#define RSI_GET_MINOR_REVISION(Rev) \
((Rev & RSI_VER_MINOR_MASK))
//
// Static assert checks.
//
STATIC_ASSERT (
sizeof (ARM_CCA_REALM_CONFIG) == SIZE_4KB,
"sizeof (ARM_CCA_REALM_CONFIG) == SIZE_4KB"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, IpaWidth) == ARM_CCA_REALM_CFG_OFFSET_IPA_WIDTH,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, IpaWidth) == ARM_CCA_REALM_CFG_OFFSET_IPA_WIDTH"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, HashAlgorithm) == ARM_CCA_REALM_CFG_OFFSET_HASH_ALGO,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, HashAlgorithm) == ARM_CCA_REALM_CFG_OFFSET_HASH_ALGO"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved) == ARM_CCA_REALM_CFG_OFFSET_RESERVED,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved) == ARM_CCA_REALM_CFG_OFFSET_RESERVED"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, Rpv) == ARM_CCA_REALM_CFG_OFFSET_RPV,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, Rpv) == ARM_CCA_REALM_CFG_OFFSET_RPV"
);
STATIC_ASSERT (
OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved1) == ARM_CCA_REALM_CFG_OFFSET_RESERVED1,
"OFFSET_OF (ARM_CCA_REALM_CONFIG, Reserved1) == ARM_CCA_REALM_CFG_OFFSET_RESERVED1"
);
STATIC_ASSERT (
sizeof (ARM_CCA_RSI_HOST_CALL_ARGS) == ARM_CCA_RSI_HOST_CALL_ARGS_SIZE,
"sizeof (ARM_CCA_RSI_HOST_CALL_ARGS) == ARM_CCA_RSI_HOST_CALL_ARGS_SIZE"
);