/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2021 Western Digital Corporation or its affiliates. * Copyright (C) 2022 Ventana Micro Systems Inc. */ #ifndef __KVM_RISCV_AIA_IMSIC_H #define __KVM_RISCV_AIA_IMSIC_H #include <linux/bitops.h> #define APLIC_MAX_IDC BIT(14) #define APLIC_MAX_SOURCE 1024 #define APLIC_DOMAINCFG 0x0000 #define APLIC_DOMAINCFG_RDONLY 0x80000000 #define APLIC_DOMAINCFG_IE BIT(8) #define APLIC_DOMAINCFG_DM BIT(2) #define APLIC_DOMAINCFG_BE BIT(0) #define APLIC_SOURCECFG_BASE 0x0004 #define APLIC_SOURCECFG_D BIT(10) #define APLIC_SOURCECFG_CHILDIDX_MASK 0x000003ff #define APLIC_SOURCECFG_SM_MASK 0x00000007 #define APLIC_SOURCECFG_SM_INACTIVE 0x0 #define APLIC_SOURCECFG_SM_DETACH 0x1 #define APLIC_SOURCECFG_SM_EDGE_RISE 0x4 #define APLIC_SOURCECFG_SM_EDGE_FALL 0x5 #define APLIC_SOURCECFG_SM_LEVEL_HIGH 0x6 #define APLIC_SOURCECFG_SM_LEVEL_LOW 0x7 #define APLIC_IRQBITS_PER_REG 32 #define APLIC_SETIP_BASE 0x1c00 #define APLIC_SETIPNUM 0x1cdc #define APLIC_CLRIP_BASE 0x1d00 #define APLIC_CLRIPNUM 0x1ddc #define APLIC_SETIE_BASE 0x1e00 #define APLIC_SETIENUM 0x1edc #define APLIC_CLRIE_BASE 0x1f00 #define APLIC_CLRIENUM 0x1fdc #define APLIC_SETIPNUM_LE 0x2000 #define APLIC_SETIPNUM_BE 0x2004 #define APLIC_GENMSI 0x3000 #define APLIC_TARGET_BASE 0x3004 #define APLIC_TARGET_HART_IDX_SHIFT 18 #define APLIC_TARGET_HART_IDX_MASK 0x3fff #define APLIC_TARGET_GUEST_IDX_SHIFT 12 #define APLIC_TARGET_GUEST_IDX_MASK 0x3f #define APLIC_TARGET_IPRIO_MASK 0xff #define APLIC_TARGET_EIID_MASK 0x7ff #endif