1 /* SPDX-License-Identifier: BSD-3-Clause */ 2 /* 3 * Copyright (c) 2015-2019, Arm Limited and Contributors. All rights reserved. 4 * Copyright (c) 2019, Linaro Limited 5 */ 6 7 #ifndef SCMI_MSG_BASE_H 8 #define SCMI_MSG_BASE_H 9 10 #include <stdint.h> 11 #include <types_ext.h> 12 13 #define SCMI_PROTOCOL_VERSION_BASE 0x20000 14 15 #define SCMI_DEFAULT_STRING_LENGTH 16 16 17 enum scmi_base_message_id { 18 SCMI_BASE_DISCOVER_VENDOR = 0x003, 19 SCMI_BASE_DISCOVER_SUB_VENDOR = 0x004, 20 SCMI_BASE_DISCOVER_IMPLEMENTATION_VERSION = 0x005, 21 SCMI_BASE_DISCOVER_LIST_PROTOCOLS = 0x006, 22 SCMI_BASE_DISCOVER_AGENT = 0x007, 23 SCMI_BASE_NOTIFY_ERRORS = 0x008, 24 }; 25 26 /* 27 * PROTOCOL_ATTRIBUTES 28 */ 29 30 #define SCMI_BASE_PROTOCOL_ATTRS_NUM_PROTOCOLS_POS 0 31 #define SCMI_BASE_PROTOCOL_ATTRS_NUM_AGENTS_POS 8 32 33 #define SCMI_BASE_PROTOCOL_ATTRS_NUM_PROTOCOLS_MASK 0xFF 34 #define SCMI_BASE_PROTOCOL_ATTRS_NUM_AGENTS_MASK 0xFF00 35 36 #define SCMI_BASE_PROTOCOL_ATTRIBUTES(NUM_PROTOCOLS, NUM_AGENTS) \ 37 ((((NUM_PROTOCOLS) << SCMI_BASE_PROTOCOL_ATTRS_NUM_PROTOCOLS_POS) & \ 38 SCMI_BASE_PROTOCOL_ATTRS_NUM_PROTOCOLS_MASK) | \ 39 (((NUM_AGENTS) << SCMI_BASE_PROTOCOL_ATTRS_NUM_AGENTS_POS) & \ 40 SCMI_BASE_PROTOCOL_ATTRS_NUM_AGENTS_MASK)) 41 42 /* 43 * BASE_DISCOVER_VENDOR 44 */ 45 struct scmi_base_discover_vendor_p2a { 46 int32_t status; 47 char vendor_identifier[SCMI_DEFAULT_STRING_LENGTH]; 48 }; 49 50 /* 51 * BASE_DISCOVER_SUB_VENDOR 52 */ 53 struct scmi_base_discover_sub_vendor_p2a { 54 int32_t status; 55 char sub_vendor_identifier[SCMI_DEFAULT_STRING_LENGTH]; 56 }; 57 58 /* 59 * BASE_DISCOVER_IMPLEMENTATION_VERSION 60 * No special structure right now, see protocol_version. 61 */ 62 63 /* 64 * BASE_DISCOVER_LIST_PROTOCOLS 65 */ 66 struct scmi_base_discover_list_protocols_a2p { 67 uint32_t skip; 68 }; 69 70 struct scmi_base_discover_list_protocols_p2a { 71 int32_t status; 72 uint32_t num_protocols; 73 uint32_t protocols[]; 74 }; 75 76 #endif /* SCMI_MSG_BASE_H */ 77