qemu/include/hw/intc/ibex_plic.h
<<
>>
Prefs
   1/*
   2 * QEMU RISC-V lowRISC Ibex PLIC
   3 *
   4 * Copyright (c) 2020 Western Digital
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms and conditions of the GNU General Public License,
   8 * version 2 or later, as published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope it will be useful, but WITHOUT
  11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  13 * more details.
  14 *
  15 * You should have received a copy of the GNU General Public License along with
  16 * this program.  If not, see <http://www.gnu.org/licenses/>.
  17 */
  18
  19#ifndef HW_IBEX_PLIC_H
  20#define HW_IBEX_PLIC_H
  21
  22#include "hw/sysbus.h"
  23#include "qom/object.h"
  24
  25#define TYPE_IBEX_PLIC "ibex-plic"
  26OBJECT_DECLARE_SIMPLE_TYPE(IbexPlicState, IBEX_PLIC)
  27
  28struct IbexPlicState {
  29    /*< private >*/
  30    SysBusDevice parent_obj;
  31
  32    /*< public >*/
  33    MemoryRegion mmio;
  34
  35    uint32_t *pending;
  36    uint32_t *hidden_pending;
  37    uint32_t *claimed;
  38    uint32_t *source;
  39    uint32_t *priority;
  40    uint32_t *enable;
  41    uint32_t threshold;
  42    uint32_t claim;
  43
  44    /* config */
  45    uint32_t num_cpus;
  46    uint32_t num_sources;
  47
  48    uint32_t pending_base;
  49    uint32_t pending_num;
  50
  51    uint32_t source_base;
  52    uint32_t source_num;
  53
  54    uint32_t priority_base;
  55    uint32_t priority_num;
  56
  57    uint32_t enable_base;
  58    uint32_t enable_num;
  59
  60    uint32_t threshold_base;
  61
  62    uint32_t claim_base;
  63
  64    qemu_irq *external_irqs;
  65};
  66
  67#endif /* HW_IBEX_PLIC_H */
  68