riscv_aclint.c (0cac736e73723850a99e5142e35d14d8f8efb232) riscv_aclint.c (9323e79f10e5f5d8fffc3b307776173ca11faeae)
1/*
2 * RISC-V ACLINT (Advanced Core Local Interruptor)
3 * URL: https://github.com/riscv/riscv-aclint
4 *
5 * Copyright (c) 2016-2017 Sagar Karandikar, sagark@eecs.berkeley.edu
6 * Copyright (c) 2017 SiFive, Inc.
7 * Copyright (c) 2021 Western Digital Corporation or its affiliates.
8 *

--- 449 unchanged lines hidden (view full) ---

458 sysbus_init_mmio(SYS_BUS_DEVICE(dev), &swi->mmio);
459
460 swi->soft_irqs = g_new(qemu_irq, swi->num_harts);
461 qdev_init_gpio_out(dev, swi->soft_irqs, swi->num_harts);
462
463 /* Claim software interrupt bits */
464 for (i = 0; i < swi->num_harts; i++) {
465 RISCVCPU *cpu = RISCV_CPU(qemu_get_cpu(swi->hartid_base + i));
1/*
2 * RISC-V ACLINT (Advanced Core Local Interruptor)
3 * URL: https://github.com/riscv/riscv-aclint
4 *
5 * Copyright (c) 2016-2017 Sagar Karandikar, sagark@eecs.berkeley.edu
6 * Copyright (c) 2017 SiFive, Inc.
7 * Copyright (c) 2021 Western Digital Corporation or its affiliates.
8 *

--- 449 unchanged lines hidden (view full) ---

458 sysbus_init_mmio(SYS_BUS_DEVICE(dev), &swi->mmio);
459
460 swi->soft_irqs = g_new(qemu_irq, swi->num_harts);
461 qdev_init_gpio_out(dev, swi->soft_irqs, swi->num_harts);
462
463 /* Claim software interrupt bits */
464 for (i = 0; i < swi->num_harts; i++) {
465 RISCVCPU *cpu = RISCV_CPU(qemu_get_cpu(swi->hartid_base + i));
466 /* We don't claim mip.SSIP because it is writeable by software */
466 /* We don't claim mip.SSIP because it is writable by software */
467 if (riscv_cpu_claim_interrupts(cpu, swi->sswi ? 0 : MIP_MSIP) < 0) {
468 error_report("MSIP already claimed");
469 exit(1);
470 }
471 }
472}
473
474static void riscv_aclint_swi_reset_enter(Object *obj, ResetType type)

--- 71 unchanged lines hidden ---
467 if (riscv_cpu_claim_interrupts(cpu, swi->sswi ? 0 : MIP_MSIP) < 0) {
468 error_report("MSIP already claimed");
469 exit(1);
470 }
471 }
472}
473
474static void riscv_aclint_swi_reset_enter(Object *obj, ResetType type)

--- 71 unchanged lines hidden ---