Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/include/linux/irqchip/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 4 kB image not shown  

Quelle  riscv-aplic.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2021 Western Digital Corporation or its affiliates.
 * Copyright (C) 2022 Ventana Micro Systems Inc.
 */

#ifndef __LINUX_IRQCHIP_RISCV_APLIC_H
#define __LINUX_IRQCHIP_RISCV_APLIC_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_MMSICFGADDR  0x1bc0
#define APLIC_MMSICFGADDRH  0x1bc4
#define APLIC_SMSICFGADDR  0x1bc8
#define APLIC_SMSICFGADDRH  0x1bcc

#ifdef CONFIG_RISCV_M_MODE
#define APLIC_xMSICFGADDR  APLIC_MMSICFGADDR
#define APLIC_xMSICFGADDRH  APLIC_MMSICFGADDRH
#else
#define APLIC_xMSICFGADDR  APLIC_SMSICFGADDR
#define APLIC_xMSICFGADDRH  APLIC_SMSICFGADDRH
#endif

#define APLIC_xMSICFGADDRH_L  BIT(31)
#define APLIC_xMSICFGADDRH_HHXS_MASK 0x1f
#define APLIC_xMSICFGADDRH_HHXS_SHIFT 24
#define APLIC_xMSICFGADDRH_HHXS  (APLIC_xMSICFGADDRH_HHXS_MASK << \
      APLIC_xMSICFGADDRH_HHXS_SHIFT)
#define APLIC_xMSICFGADDRH_LHXS_MASK 0x7
#define APLIC_xMSICFGADDRH_LHXS_SHIFT 20
#define APLIC_xMSICFGADDRH_LHXS  (APLIC_xMSICFGADDRH_LHXS_MASK << \
      APLIC_xMSICFGADDRH_LHXS_SHIFT)
#define APLIC_xMSICFGADDRH_HHXW_MASK 0x7
#define APLIC_xMSICFGADDRH_HHXW_SHIFT 16
#define APLIC_xMSICFGADDRH_HHXW  (APLIC_xMSICFGADDRH_HHXW_MASK << \
      APLIC_xMSICFGADDRH_HHXW_SHIFT)
#define APLIC_xMSICFGADDRH_LHXW_MASK 0xf
#define APLIC_xMSICFGADDRH_LHXW_SHIFT 12
#define APLIC_xMSICFGADDRH_LHXW  (APLIC_xMSICFGADDRH_LHXW_MASK << \
      APLIC_xMSICFGADDRH_LHXW_SHIFT)
#define APLIC_xMSICFGADDRH_BAPPN_MASK 0xfff
#define APLIC_xMSICFGADDRH_BAPPN_SHIFT 0
#define APLIC_xMSICFGADDRH_BAPPN (APLIC_xMSICFGADDRH_BAPPN_MASK << \
      APLIC_xMSICFGADDRH_BAPPN_SHIFT)

#define APLIC_xMSICFGADDR_PPN_SHIFT 12

#define APLIC_xMSICFGADDR_PPN_HART(__lhxs) \
 (BIT(__lhxs) - 1)

#define APLIC_xMSICFGADDR_PPN_LHX_MASK(__lhxw) \
 (BIT(__lhxw) - 1)
#define APLIC_xMSICFGADDR_PPN_LHX_SHIFT(__lhxs) \
 ((__lhxs))
#define APLIC_xMSICFGADDR_PPN_LHX(__lhxw, __lhxs) \
 (APLIC_xMSICFGADDR_PPN_LHX_MASK(__lhxw) << \
  APLIC_xMSICFGADDR_PPN_LHX_SHIFT(__lhxs))

#define APLIC_xMSICFGADDR_PPN_HHX_MASK(__hhxw) \
 (BIT(__hhxw) - 1)
#define APLIC_xMSICFGADDR_PPN_HHX_SHIFT(__hhxs) \
 ((__hhxs) + APLIC_xMSICFGADDR_PPN_SHIFT)
#define APLIC_xMSICFGADDR_PPN_HHX(__hhxw, __hhxs) \
 (APLIC_xMSICFGADDR_PPN_HHX_MASK(__hhxw) << \
  APLIC_xMSICFGADDR_PPN_HHX_SHIFT(__hhxs))

#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_HART_IDX  (APLIC_TARGET_HART_IDX_MASK << \
      APLIC_TARGET_HART_IDX_SHIFT)
#define APLIC_TARGET_GUEST_IDX_SHIFT 12
#define APLIC_TARGET_GUEST_IDX_MASK 0x3f
#define APLIC_TARGET_GUEST_IDX  (APLIC_TARGET_GUEST_IDX_MASK << \
      APLIC_TARGET_GUEST_IDX_SHIFT)
#define APLIC_TARGET_IPRIO_SHIFT 0
#define APLIC_TARGET_IPRIO_MASK  0xff
#define APLIC_TARGET_IPRIO  (APLIC_TARGET_IPRIO_MASK << \
      APLIC_TARGET_IPRIO_SHIFT)
#define APLIC_TARGET_EIID_SHIFT  0
#define APLIC_TARGET_EIID_MASK  0x7ff
#define APLIC_TARGET_EIID  (APLIC_TARGET_EIID_MASK << \
      APLIC_TARGET_EIID_SHIFT)

#define APLIC_IDC_BASE   0x4000
#define APLIC_IDC_SIZE   32

#define APLIC_IDC_IDELIVERY  0x00

#define APLIC_IDC_IFORCE  0x04

#define APLIC_IDC_ITHRESHOLD  0x08

#define APLIC_IDC_TOPI   0x18
#define APLIC_IDC_TOPI_ID_SHIFT  16
#define APLIC_IDC_TOPI_ID_MASK  0x3ff
#define APLIC_IDC_TOPI_ID  (APLIC_IDC_TOPI_ID_MASK << \
      APLIC_IDC_TOPI_ID_SHIFT)
#define APLIC_IDC_TOPI_PRIO_SHIFT 0
#define APLIC_IDC_TOPI_PRIO_MASK 0xff
#define APLIC_IDC_TOPI_PRIO  (APLIC_IDC_TOPI_PRIO_MASK << \
      APLIC_IDC_TOPI_PRIO_SHIFT)

#define APLIC_IDC_CLAIMI  0x1c

#endif

Messung V0.5
C=95 H=100 G=97

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.