blob: e789880b5ddd068972eca96df44d53f33518f7bd [file] [log] [blame]
/*
* Copyright (c) 2018, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef __SPRT_SVC_H__
#define __SPRT_SVC_H__
#include <smccc.h>
#include <utils_def.h>
/* SPRT_VERSION helpers */
#define SPRT_VERSION_MAJOR U(0)
#define SPRT_VERSION_MAJOR_SHIFT 16
#define SPRT_VERSION_MAJOR_MASK U(0x7FFF)
/* TODO: Move up minor version to 1 when SPRT is properly supported. */
#define SPRT_VERSION_MINOR U(0)
#define SPRT_VERSION_MINOR_SHIFT 0
#define SPRT_VERSION_MINOR_MASK U(0xFFFF)
#define SPRT_VERSION_FORM(major, minor) ((((major) & SPRT_VERSION_MAJOR_MASK) << SPRT_VERSION_MAJOR_SHIFT) | \
((minor) & SPRT_VERSION_MINOR_MASK))
#define SPRT_VERSION_COMPILED SPRT_VERSION_FORM(SPRT_VERSION_MAJOR, SPRT_VERSION_MINOR)
/* TODO: Check all values below are correct when they're specified in SPRT. */
/* SPRT function IDs */
#define SPRT_FID_VERSION U(0x0)
#define SPRT_FID_RETURN_RESPONSE U(0x1)
#define SPRT_FID_MASK U(0xFF)
/* Definitions to build the complete SMC ID */
#define SPRT_SMC_ID(sprt_fid) ((FUNCID_SERV_SPRT << FUNCID_SERV_SHIFT) | \
(U(1) << 31) | ((sprt_fid) & SPRT_FID_MASK))
/* Complete SMC IDs */
#define SPRT_VERSION SPRT_SMC_ID(SPRT_FID_VERSION)
#define SPRT_RETURN_RESPONSE SPRT_SMC_ID(SPRT_FID_RETURN_RESPONSE)
/* SPRT error codes. */
#define SPRT_SUCCESS 0
#define SPRT_NOT_SUPPORTED -1
#define SPRT_INVALID_PARAMETER -2
#endif /* __SPRT_SVC_H__ */