1 /* SPDX-License-Identifier: BSD-2-Clause */ 2 /* 3 * Copyright (c) 2024-2026, Advanced Micro Devices, Inc. All rights reserved. 4 * 5 */ 6 7 #ifndef __ASU_SHAREDMEM_H_ 8 #define __ASU_SHAREDMEM_H_ 9 10 #include <stdint.h> 11 #include <util.h> 12 13 #define ASU_MAX_BUFFERS 8U 14 #define ASU_CHANNEL_RESERVED_MEM 1188U 15 #define ASU_COMMAND_IS_PRESENT 0x1U 16 #define ASU_RESPONSE_IS_PRESENT 0x1U 17 #define ASU_RESPONSE_STATUS_INDEX 0U 18 #define ASU_RESPONSE_BUFF_ADDR_INDEX 1U 19 #define ASU_COMMAND_ID_MASK 0x0000003FU 20 #define ASU_UNIQUE_REQ_ID_MASK 0x00000FC0U 21 #define ASU_UNIQUE_REQ_ID_SHIFT 6U 22 #define ASU_UNIQUE_ID_MAX SHIFT_U32(ASU_MAX_BUFFERS, 1U) 23 #define ASU_MODULE_ID_MASK 0x0003F000U 24 #define ASU_MODULE_ID_SHIFT 12U 25 #define ASU_COMMAND_LENGTH_SHIFT 18U 26 #define ASU_COMMAND_REQ_ARGS 22U 27 #define ASU_COMMAND_RESP_ARGS 17U 28 #define ASU_RTCA_BASEADDR 0xEBE40000U 29 #define ASU_RTCA_COMM_CHANNEL_INFO_ADDR (ASU_RTCA_BASEADDR + 0x10U) 30 #define ASU_RTCA_CHANNEL_BASE_OFFSET 0x18U 31 #define ASU_RTCA_CHANNEL_INFO_LEN 0x8U 32 #define ASU_MAX_IPI_CHANNELS 8U 33 #define ASU_CHANNEL_MEMORY_OFFSET 0x1000U 34 #define ASU_CHANNEL_MEMORY_BASEADDR (ASU_RTCA_BASEADDR + \ 35 ASU_CHANNEL_MEMORY_OFFSET) 36 37 struct asu_req_buf { 38 uint32_t header; 39 uint32_t arg[ASU_COMMAND_REQ_ARGS]; 40 uint32_t reserved; 41 }; 42 43 struct asu_resp_buf { 44 uint32_t header; 45 uint32_t arg[ASU_COMMAND_RESP_ARGS]; 46 uint32_t additionalstatus; 47 uint32_t reserved; 48 }; 49 50 struct asu_channel_queue_buf { 51 uint8_t reqbufstatus; 52 uint8_t respbufstatus; 53 uint16_t reserved; 54 struct asu_req_buf req; 55 struct asu_resp_buf resp; 56 }; 57 58 struct asu_channel_queue { 59 bool cmd_is_present; 60 uint32_t req_sent; 61 uint32_t req_served; 62 struct asu_channel_queue_buf queue_bufs[ASU_MAX_BUFFERS]; 63 }; 64 65 struct asu_channel_memory { 66 uint32_t version; 67 uint8_t reserved[ASU_CHANNEL_RESERVED_MEM]; 68 struct asu_channel_queue p0_chnl_q; 69 struct asu_channel_queue p1_chnl_q; 70 }; 71 72 #endif /* __ASU_SHAREDMEM_H_ */ 73