xref: /qemu/include/hw/intc/loongson_ipi_common.h (revision 2252e6c94e34c2373e8d16573284a00541e3c62c)
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