17e555781SBibo Mao /* SPDX-License-Identifier: GPL-2.0-or-later */ 27e555781SBibo Mao /* 37e555781SBibo Mao * Loongson ipi interrupt header files 47e555781SBibo Mao * 57e555781SBibo Mao * Copyright (C) 2021 Loongson Technology Corporation Limited 67e555781SBibo Mao */ 77e555781SBibo Mao 87e555781SBibo Mao #ifndef HW_LOONGSON_IPI_COMMON_H 97e555781SBibo Mao #define HW_LOONGSON_IPI_COMMON_H 107e555781SBibo Mao 117e555781SBibo Mao #include "qom/object.h" 127e555781SBibo Mao #include "hw/sysbus.h" 137e555781SBibo Mao 147e555781SBibo Mao #define TYPE_LOONGSON_IPI_COMMON "loongson_ipi_common" 157e555781SBibo Mao OBJECT_DECLARE_TYPE(LoongsonIPICommonState, 167e555781SBibo Mao LoongsonIPICommonClass, LOONGSON_IPI_COMMON) 177e555781SBibo Mao 187e555781SBibo Mao struct LoongsonIPICommonState { 197e555781SBibo Mao SysBusDevice parent_obj; 207e555781SBibo Mao }; 217e555781SBibo Mao 227e555781SBibo Mao struct LoongsonIPICommonClass { 237e555781SBibo Mao SysBusDeviceClass parent_class; 247e555781SBibo Mao }; 257e555781SBibo Mao 26*2252e6c9SBibo Mao /* Mainy used by iocsr read and write */ 27*2252e6c9SBibo Mao #define SMP_IPI_MAILBOX 0x1000ULL 28*2252e6c9SBibo Mao 29*2252e6c9SBibo Mao #define CORE_STATUS_OFF 0x0 30*2252e6c9SBibo Mao #define CORE_EN_OFF 0x4 31*2252e6c9SBibo Mao #define CORE_SET_OFF 0x8 32*2252e6c9SBibo Mao #define CORE_CLEAR_OFF 0xc 33*2252e6c9SBibo Mao #define CORE_BUF_20 0x20 34*2252e6c9SBibo Mao #define CORE_BUF_28 0x28 35*2252e6c9SBibo Mao #define CORE_BUF_30 0x30 36*2252e6c9SBibo Mao #define CORE_BUF_38 0x38 37*2252e6c9SBibo Mao #define IOCSR_IPI_SEND 0x40 38*2252e6c9SBibo Mao #define IOCSR_MAIL_SEND 0x48 39*2252e6c9SBibo Mao #define IOCSR_ANY_SEND 0x158 40*2252e6c9SBibo Mao 41*2252e6c9SBibo Mao #define MAIL_SEND_ADDR (SMP_IPI_MAILBOX + IOCSR_MAIL_SEND) 42*2252e6c9SBibo Mao #define MAIL_SEND_OFFSET 0 43*2252e6c9SBibo Mao #define ANY_SEND_OFFSET (IOCSR_ANY_SEND - IOCSR_MAIL_SEND) 44*2252e6c9SBibo Mao 457e555781SBibo Mao #endif 46