1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2021 Western Digital Corporation or its affiliates. 4 * Copyright (C) 2022 Ventana Micro Systems Inc. 5 */ 6 #ifndef __KVM_RISCV_AIA_IMSIC_H 7 #define __KVM_RISCV_AIA_IMSIC_H 8 9 #include <linux/bitops.h> 10 11 #define APLIC_MAX_IDC BIT(14) 12 #define APLIC_MAX_SOURCE 1024 13 14 #define APLIC_DOMAINCFG 0x0000 15 #define APLIC_DOMAINCFG_RDONLY 0x80000000 16 #define APLIC_DOMAINCFG_IE BIT(8) 17 #define APLIC_DOMAINCFG_DM BIT(2) 18 #define APLIC_DOMAINCFG_BE BIT(0) 19 20 #define APLIC_SOURCECFG_BASE 0x0004 21 #define APLIC_SOURCECFG_D BIT(10) 22 #define APLIC_SOURCECFG_CHILDIDX_MASK 0x000003ff 23 #define APLIC_SOURCECFG_SM_MASK 0x00000007 24 #define APLIC_SOURCECFG_SM_INACTIVE 0x0 25 #define APLIC_SOURCECFG_SM_DETACH 0x1 26 #define APLIC_SOURCECFG_SM_EDGE_RISE 0x4 27 #define APLIC_SOURCECFG_SM_EDGE_FALL 0x5 28 #define APLIC_SOURCECFG_SM_LEVEL_HIGH 0x6 29 #define APLIC_SOURCECFG_SM_LEVEL_LOW 0x7 30 31 #define APLIC_IRQBITS_PER_REG 32 32 33 #define APLIC_SETIP_BASE 0x1c00 34 #define APLIC_SETIPNUM 0x1cdc 35 36 #define APLIC_CLRIP_BASE 0x1d00 37 #define APLIC_CLRIPNUM 0x1ddc 38 39 #define APLIC_SETIE_BASE 0x1e00 40 #define APLIC_SETIENUM 0x1edc 41 42 #define APLIC_CLRIE_BASE 0x1f00 43 #define APLIC_CLRIENUM 0x1fdc 44 45 #define APLIC_SETIPNUM_LE 0x2000 46 #define APLIC_SETIPNUM_BE 0x2004 47 48 #define APLIC_GENMSI 0x3000 49 50 #define APLIC_TARGET_BASE 0x3004 51 #define APLIC_TARGET_HART_IDX_SHIFT 18 52 #define APLIC_TARGET_HART_IDX_MASK 0x3fff 53 #define APLIC_TARGET_GUEST_IDX_SHIFT 12 54 #define APLIC_TARGET_GUEST_IDX_MASK 0x3f 55 #define APLIC_TARGET_IPRIO_MASK 0xff 56 #define APLIC_TARGET_EIID_MASK 0x7ff 57 58 #endif 59